Options
All
  • Public
  • Public/Protected
  • All
Menu

A type of Placeable Object which highlights an area of the grid as covered by some area of effect.

see

MeasuredTemplateDocument

see

TemplateLayer

Hierarchy

Index

Constructors

Properties

shape: any

The geometry shape used for testing point intersection

texture: Texture

The tiling texture used for this template, if any

template: any

The template graphics

controlIcon: ControlIcon

The template control icon

The measurement ruler label

visible: any
alpha: number
ray: Ray
scene: Scene

Retain a reference to the Scene within which this Placeable Object resides

document: Document

A reference to the Scene embedded Document instance which this object represents

vision: { fov: Circle; los: PointSourcePolygon }

Track the field of vision for the placeable object. This is necessary to determine whether a player has line-of-sight towards a placeable object or vice-versa

Type declaration

mouseInteractionManager: MouseInteractionManager

A mouse interaction manager instance which handles mouse workflows related to this object.

cullable: boolean
_preview: any
_borderThickness: number = 3

Internal property used to configure the control border thickness

_dragPassthrough: boolean = false

Passthrough certain drag operations on locked objects.

_isHoverIn: boolean = false

Know if a placeable is in the hover-in state.

#lastQuadtreeBounds: Rectangle

The bounds that the placeable was added to the quadtree with.

#drawn: boolean = false

Has this placeable been drawn yet?

#controlled: boolean = false
#hover: boolean = false
embeddedName: string = "MeasuredTemplate"

Identify the official Document name for this PlaceableObject class

RENDER_FLAGS: { redraw: { propagate: string[] }; refresh: { propagate: string[]; alias: boolean }; refreshState: {}; refreshShape: { propagate: string[] }; refreshPosition: { propagate: string[] }; refreshGrid: {}; refreshText: {} } = ...
override

Type declaration

  • redraw: { propagate: string[] }
    • propagate: string[]
  • refresh: { propagate: string[]; alias: boolean }
    • propagate: string[]
    • alias: boolean
  • refreshState: {}
    • refreshShape: { propagate: string[] }
      • propagate: string[]
    • refreshPosition: { propagate: string[] }
      • propagate: string[]
    • refreshGrid: {}
      • refreshText: {}

        Accessors

        • inheritdoc

          Returns Rectangle

        • get borderColor(): number
        • A convenience accessor for the border color as a numeric hex code

          Returns number

        • get fillColor(): number
        • A convenience accessor for the fill color as a numeric hex code

          Returns number

        • get owner(): boolean
        • A flag for whether the current User has full ownership over the MeasuredTemplate document.

          Returns boolean

        • get isVisible(): boolean
        • Is this MeasuredTemplate currently visible on the Canvas?

          Returns boolean

        • get highlightId(): string
        • A unique identifier which is used to uniquely identify related objects like a template effect or grid highlight.

          Returns string

        • get interactionState(): { NONE: number; HOVER: number; CLICKED: number; DRAG: number; DROP: number }
        • The mouse interaction state of this placeable.

          Returns { NONE: number; HOVER: number; CLICKED: number; DRAG: number; DROP: number }

          • NONE: number
          • HOVER: number
          • CLICKED: number
          • DRAG: number
          • DROP: number
        • get center(): Point
        • The central coordinate pair of the placeable object based on it's own width and height

          Returns Point

        • get id(): string
        • The id of the corresponding Document which this PlaceableObject represents.

          Returns string

        • get objectId(): string
        • A unique identifier which is used to uniquely identify elements on the canvas related to this object.

          Returns string

        • get sourceId(): string
        • The named identified for the source object associated with this PlaceableObject. This differs from the objectId because the sourceId is the same for preview objects as for the original.

          Returns string

        • get isPreview(): boolean
        • Is this placeable object a temporary preview?

          Returns boolean

        • get hasPreview(): boolean
        • Does there exist a temporary preview of this placeable object?

          Returns boolean

        • The field-of-vision polygon for the object, if it has been computed

          Returns Circle

        • Provide a reference to the CanvasLayer which contains this PlaceableObject.

          Returns PlaceablesLayer

        • The line-of-sight polygon for the object, if it has been computed

          Returns PointSourcePolygon

        • A Form Application which is used to configure the properties of this Placeable Object or the Document it represents.

          Returns FormApplication

        • get controlled(): boolean
        • An indicator for whether the object is currently controlled

          Returns boolean

        • get hover(): boolean
        • set hover(state: boolean): void
        • An indicator for whether the object is currently a hover target

          Returns boolean

        • An indicator for whether the object is currently a hover target

          Parameters

          • state: boolean

          Returns void

        Methods

        • _draw(): Promise<void>
        • _destroy(options: any): void
        • _applyRenderFlags(flags: any): void
        • _getTargetAlpha(): 1 | 0.8
        • highlightGrid(): void
        • Highlight the grid squares which should be shown under the area of effect

          Returns void

        • rotate(angle: any, snap: any): Promise<any>
        • _onUpdate(data: any, options: any, userId: any): any
        • _canControl(user: any, event: any): any
        • _canHUD(user: any, event: any): boolean
        • Can the User access the HUD for this Placeable Object?

          Parameters

          • user: any

            The User performing the action.

          • event: any

            The event object.

          Returns boolean

          The returned status.

        • _canConfigure(user: any, event: any): boolean
        • Does the User have permission to configure the Placeable Object?

          Parameters

          • user: any

            The User performing the action.

          • event: any

            The event object.

          Returns boolean

          The returned status.

        • _canView(user: any, event: any): any
        • _onClickRight(event: any): void
        • Callback actions which occur on a single right-click event to configure properties of the object

          Parameters

          • event: any

            The triggering canvas interaction event

          Returns void

        • applyRenderFlags(): void
        • destroy(options: any): any
        • Refresh all incremental render flags for the PlaceableObject. This method is no longer used by the core software but provided for backwards compatibility.

          Parameters

          • options: any = {}

          Returns PlaceableObject

          The refreshed object

        • _updateQuadtree(): void
        • control(options?: { releaseOthers: boolean }): boolean
        • Assume control over a PlaceableObject, flagging it as controlled and enabling downstream behaviors

          Parameters

          • options: { releaseOthers: boolean } = {}

            Additional options which modify the control request

            • releaseOthers: boolean

              Release any other controlled objects first

          Returns boolean

          A flag denoting whether control was successful

        • release(options?: any): boolean
        • Release control over a PlaceableObject, removing it from the controlled set

          Parameters

          • options: any = {}

            Options which modify the releasing workflow

          Returns boolean

          A Boolean flag confirming the object was released.

        • Clone the placeable object, returning a new object with identical attributes. The returned object is non-interactive, and has no assigned ID. If you plan to use it permanently you should call the create method.

          Returns PlaceableObject

          A new object with identical data

        • _updateRotation(options?: { angle: number; delta: number; snap: number }): number
        • Determine a new angle of rotation for a PlaceableObject either from an explicit angle or from a delta offset.

          Parameters

          • options: { angle: number; delta: number; snap: number } = {}

            An object which defines the rotation update parameters

            • angle: number
            • delta: number
            • snap: number

          Returns number

          The new rotation angle for the object

        • _getShiftedPosition(dx: number, dy: number): { x: number; y: number }
        • Obtain a shifted position for the Placeable Object

          Parameters

          • dx: number

            The number of grid units to shift along the X-axis

          • dy: number

            The number of grid units to shift along the Y-axis

          Returns { x: number; y: number }

          The shifted target coordinates

          • x: number
          • y: number
        • activateListeners(): void
        • can(user: User, action: string): boolean
        • Test whether a user can perform a certain interaction regarding a Placeable Object

          Parameters

          • user: User

            The User performing the action

          • action: string

            The named action being attempted

          Returns boolean

          Does the User have rights to perform the action?

        • Compute the geometry for the template using its document data. Subclasses can override this method to take control over how different shapes are rendered.

          Returns Rectangle | Circle | Polygon

        • _refreshTemplate(): void
        • Refresh the display of the template outline and shape. Subclasses may override this method to take control over how the template is visually rendered.

          Returns void

        • _refreshRulerText(): void
        • Update the displayed ruler tooltip text

          Returns void

        • _getGridHighlightPositions(): Point[]
        • Get an array of points which define top-left grid spaces to highlight for square or hexagonal grids.

          Returns Point[]

        • _onCreate(data: any, options: any, userId: string): void
        • Register pending canvas operations which should occur after a new PlaceableObject of this type is created

          Parameters

          • data: any
          • options: any
          • userId: string

          Returns void

        • _onDelete(options: any, userId: string): void
        • Define additional steps taken when an existing placeable object of this type is deleted

          Parameters

          • options: any
          • userId: string

          Returns void

        • _onControl(options: any): void
        • Additional events which trigger once control of the object is established

          Parameters

          • options: any

            Optional parameters which apply for specific implementations

          Returns void

        • _onRelease(options: any): void
        • Additional events which trigger once control of the object is released

          Parameters

          • options: any

            Options which modify the releasing workflow

          Returns void

        • _canCreate(user: User, event: any): boolean
        • Does the User have permission to create the underlying Document?

          Parameters

          • user: User

            The User performing the action.

          • event: any

            The event object.

          Returns boolean

          The returned status.

        • _canDrag(user: User, event: any): boolean
        • Does the User have permission to drag this Placeable Object?

          Parameters

          • user: User

            The User performing the action.

          • event: any

            The event object.

          Returns boolean

          The returned status.

        • _canHover(user: User, event: any): boolean
        • Does the User have permission to hover on this Placeable Object?

          Parameters

          • user: User

            The User performing the action.

          • event: any

            The event object.

          Returns boolean

          The returned status.

        • _canUpdate(user: User, event: any): boolean
        • Does the User have permission to update the underlying Document?

          Parameters

          • user: User

            The User performing the action.

          • event: any

            The event object.

          Returns boolean

          The returned status.

        • _canDelete(user: User, event: any): boolean
        • Does the User have permission to delete the underlying Document?

          Parameters

          • user: User

            The User performing the action.

          • event: any

            The event object.

          Returns boolean

          The returned status.

        • _onHoverIn(event: FederatedEvent, options?: { hoverOutOthers: boolean }): boolean
        • Actions that should be taken for this Placeable Object when a mouseover event occurs. Hover events on PlaceableObject instances allow event propagation by default.

          see

          MouseInteractionManager##handleMouseOver

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          • options: { hoverOutOthers: boolean } = {}

            Options which customize event handling

            • hoverOutOthers: boolean

          Returns boolean

          True if the event was handled, otherwise false

        • _onHoverOut(event: FederatedEvent): boolean
        • Actions that should be taken for this Placeable Object when a mouseout event occurs

          see

          MouseInteractionManager##handleMouseOut

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns boolean

          True if the event was handled, otherwise false

        • _propagateLeftClick(event: FederatedEvent): boolean
        • _onClickLeft(event: FederatedEvent): void
        • Callback actions which occur on a single left-click event to assume control of the object

          see

          MouseInteractionManager##handleClickLeft

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns void

        • _onClickLeft2(event: FederatedEvent): void
        • Callback actions which occur on a double left-click event to activate

          see

          MouseInteractionManager##handleClickLeft2

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns void

        • _propagateRightClick(event: FederatedEvent): boolean
        • _onClickRight2(event: FederatedEvent): void
        • Callback actions which occur on a double right-click event to configure properties of the object

          see

          MouseInteractionManager##handleClickRight2

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns void

        • _onDragLeftStart(event: FederatedEvent): any
        • Callback actions which occur when a mouse-drag action is first begun.

          see

          MouseInteractionManager##handleDragStart

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns any

        • _onDragStart(): void
        • Begin a drag operation from the perspective of the preview clone. Modify the appearance of both the clone (this) and the original (_original) object.

          Returns void

        • _onDragEnd(): void
        • Conclude a drag operation from the perspective of the preview clone. Modify the appearance of both the clone (this) and the original (_original) object.

          Returns void

        • _onDragLeftMove(event: FederatedEvent): any
        • Callback actions which occur on a mouse-move operation.

          see

          MouseInteractionManager##handleDragMove

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns any

        • _onDragLeftDrop(event: FederatedEvent): Promise<any>
        • Callback actions which occur on a mouse-move operation.

          see

          MouseInteractionManager##handleDragDrop

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns Promise<any>

        • _onDragLeftCancel(event: FederatedEvent): any
        • Callback actions which occur on a mouse-move operation.

          see

          MouseInteractionManager##handleDragCancel

          Parameters

          • event: FederatedEvent

            The triggering mouse click event

          Returns any

        • _onLongPress(event: FederatedEvent, origin: Point): any
        • Callback action which occurs on a long press.

          see

          MouseInteractionManager##handleLongPress

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          • origin: Point

            The local canvas coordinates of the mousepress.

          Returns any

        • Draw the ControlIcon for the MeasuredTemplate

          Returns ControlIcon

        • Draw the Text label used for the MeasuredTemplate

          Returns PreciseText

        • #refreshState(): void
        • Refresh the displayed state of the MeasuredTemplate. This refresh occurs when the user interaction state changes.

          Returns void

        • #refreshPosition(): void
        • Refresh the position of the MeasuredTemplate

          Returns void

        • #refreshShape(): void
        • Refresh the underlying geometric shape of the MeasuredTemplate.

          Returns void

        • #getCircleShape(distance: number): Circle
        • Get a Circular area of effect given a radius of effect

          Parameters

          • distance: number

          Returns Circle

        • #getConeShape(direction: number, angle: number, distance: number): Polygon
        • Get a Conical area of effect given a direction, angle, and distance

          Parameters

          • direction: number
          • angle: number
          • distance: number

          Returns Polygon

        • #getRectShape(direction: number, distance: number): Rectangle
        • Get a Rectangular area of effect given a width and height

          Parameters

          • direction: number
          • distance: number

          Returns Rectangle

        • #getRayShape(direction: number, distance: number, width: number): Polygon
        • Get a rotated Rectangular area of effect given a width, height, and direction

          Parameters

          • direction: number
          • distance: number
          • width: number

          Returns Polygon