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

Hierarchy (view full)

Properties

shape: any

The geometry shape used for testing point intersection

texture: Texture

The tiling texture used for this template, if any

template: Graphics

The template graphics

The measurement ruler label

controlIcon: ControlIcon

A control icon for interacting with the object

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

mouseInteractionManager: MouseInteractionManager

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

_borderThickness: number = 3

Internal property used to configure the control border thickness

#original: PlaceableObject

The object that this object is a preview of if this object is a preview.

#lastQuadtreeBounds: Rectangle

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

#drawing: Promise<PlaceableObject> = ...

An internal reference to a Promise in-progress to draw the Placeable Object.

#drawn: boolean = false

Has this Placeable Object been drawn and is there no drawing in progress?

embeddedName: string = "MeasuredTemplate"

Identify the official Document name for this PlaceableObject class

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

Type declaration

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

            Accessors

            • get isAuthor(): boolean
            • A convenient reference for whether the current User is the author of the MeasuredTemplate document.

              Returns boolean

            • get bounds(): Rectangle
            • The bounding box for this PlaceableObject. This is required if the layer uses a Quadtree, otherwise it is optional

              Returns Rectangle

            • 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 _original(): PlaceableObject
            • The object that this object is a preview of if this object is a preview.

              Returns PlaceableObject

            • get isOwner(): boolean
            • A convenient reference for whether the current User has full control over the document.

              Returns boolean

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

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

              • NONE: number
              • HOVER: number
              • CLICKED: number
              • GRABBED: 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

            • get layer(): PlaceablesLayer
            • Provide a reference to the CanvasLayer which contains this PlaceableObject.

              Returns PlaceablesLayer

            • get sheet(): FormApplication
            • 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
            • An indicator for whether the object is currently a hover target

              Returns boolean

            • get hasActiveHUD(): boolean
            • Is the HUD display active for this Placeable?

              Returns boolean

            Methods

            • Parameters

              • options: any

              Returns Promise<void>

            • Highlight the grid squares which should be shown under the area of effect

              Returns void

            • Define additional steps taken when an existing placeable object of this type is updated with new data

              Parameters

              • changed: any
              • options: any
              • userId: any

              Returns void

            • 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.

            • 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.

            • 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

              See

              MouseInteractionManager##handleClickRight

            • Get the snapped position for a given position or the current position.

              Parameters

              • Optional position: Point

                The position to be used instead of the current position

              Returns Point

              The snapped position

            • Draw the placeable object into its parent container

              Parameters

              • Optional options: any = {}

                Options which may modify the draw and refresh workflow

              Returns Promise<PlaceableObject>

              The drawn object

            • Refresh all incremental render flags for the PlaceableObject. This method is no longer used by the core software but provided for backwards compatibility.

              Parameters

              • Optional options: any = {}

                Options which may modify the refresh workflow

              Returns PlaceableObject

              The refreshed object

            • 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 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

            • Internal

              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

                  An explicit angle, either this or delta must be provided

                • delta: number

                  A relative angle delta, either this or the angle must be provided

                • snap: number

                  A precision (in degrees) to which the resulting angle should snap. Default is 0.

              Returns number

              The new rotation angle for the object

            • Internal

              Obtain a shifted position for the Placeable Object

              Parameters

              • dx: -1 | 0 | 1

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

              • dy: -1 | 0 | 1

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

              Returns Point

              The shifted target coordinates

            • 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?

            • Perform the database updates that should occur as the result of a drag-left-drop operation.

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns any[]

              An array of database updates to perform for documents in this collection

            • Protected

              Refresh the displayed state of the MeasuredTemplate. This refresh occurs when the user interaction state changes.

              Returns void

            • Protected

              Refresh the elevation of the control icon.

              Returns void

            • Protected

              Refresh the position of the MeasuredTemplate

              Returns void

            • Protected

              Refresh the underlying geometric shape of the MeasuredTemplate.

              Returns void

            • Protected

              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 | Polygon | Circle

            • Protected

              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

            • Protected

              Update the displayed ruler tooltip text

              Returns void

            • Protected

              Get the shape to highlight on a Scene which uses grid-less mode.

              Returns Rectangle | Polygon | Circle

            • Protected

              Get an array of points which define top-left grid spaces to highlight for square or hexagonal grids.

              Returns Point[]

            • Protected Internal

              Is this PlaceableObject within the selection rectangle?

              Parameters

              • rectangle: Rectangle

                The selection rectangle

              Returns any

            • Protected

              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

            • Protected

              Define additional steps taken when an existing placeable object of this type is deleted

              Parameters

              • options: any
              • userId: string

              Returns void

            • Protected

              Additional events which trigger once control of the object is established

              Parameters

              • options: any

                Optional parameters which apply for specific implementations

              Returns void

            • Protected

              Additional events which trigger once control of the object is released

              Parameters

              • options: any

                Options which modify the releasing workflow

              Returns void

            • Protected

              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.

            • Protected

              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.

            • Protected

              Does the User have permission to left-click drag this Placeable Object?

              Parameters

              • user: User

                The User performing the action.

              • event: any

                The event object.

              Returns boolean

              The returned status.

            • Protected

              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.

            • Protected

              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.

            • Protected

              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.

            • Protected

              Actions that should be taken for this Placeable Object when a mouseover event occurs. Hover events on PlaceableObject instances allow event propagation by default.

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              • options: {
                    hoverOutOthers: boolean;
                } = {}

                Options which customize event handling

                • hoverOutOthers: boolean

                  Trigger hover-out behavior on sibling objects

              Returns void

              See

              MouseInteractionManager##handlePointerOver

            • Protected

              Actions that should be taken for this Placeable Object when a mouseout event occurs

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

              See

              MouseInteractionManager##handlePointerOut

            • Protected

              Should the placeable propagate left click downstream?

              Parameters

              • event: FederatedEvent

              Returns boolean

            • Protected

              Callback actions which occur on a single left-click event to assume control of the object

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

              See

              MouseInteractionManager##handleClickLeft

            • Protected

              Callback actions which occur on a single left-unclick event to assume control of the object

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

            • Protected

              Callback actions which occur on a double left-click event to activate

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

              See

              MouseInteractionManager##handleClickLeft2

            • Protected

              Should the placeable propagate right click downstream?

              Parameters

              • event: FederatedEvent

              Returns boolean

            • Protected

              Callback actions which occur on a single right-unclick event

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

            • Protected

              Callback actions which occur on a double right-click event to configure properties of the object

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

              See

              MouseInteractionManager##handleClickRight2

            • Protected

              Callback actions which occur when a mouse-drag action is first begun.

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

              See

              MouseInteractionManager##handleDragStart

            • Protected

              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

            • Protected

              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

            • Protected

              Callback actions which occur on a mouse-move operation.

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

              See

              MouseInteractionManager##handleDragMove

            • Protected

              Callback actions which occur on a mouse-move operation.

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns boolean

              See

              MouseInteractionManager##handleDragDrop

            • Protected

              Callback actions which occur on a mouse-move operation.

              Parameters

              • event: FederatedEvent

                The triggering mouse click event

              Returns void

              See

              MouseInteractionManager##handleDragCancel

            • Protected

              Callback actions which occur on a right mouse-drag operation.

              Parameters

              • event: FederatedEvent

                The triggering mouse click event

              Returns any

              See

              MouseInteractionManager##handleDragStart

            • Protected

              Callback actions which occur on a right mouse-drag operation.

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns any

              See

              MouseInteractionManager##handleDragMove

            • Protected

              Callback actions which occur on a right mouse-drag operation.

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns Promise<any>

              See

              MouseInteractionManager##handleDragDrop

            • Protected

              Callback actions which occur on a right mouse-drag operation.

              Parameters

              • event: FederatedEvent

                The triggering mouse click event

              Returns any

              See

              MouseInteractionManager##handleDragCancel

            • Protected

              Callback action which occurs on a long press.

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              • origin: Point

                The local canvas coordinates of the mousepress.

              Returns any

              See

              MouseInteractionManager##handleLongPress

            • Perform database updates using the result of a drag-left-drop operation.

              Parameters

              • updates: any[]

                The database updates for documents in this collection

              Returns Promise<void>

            • Get a Circular area of effect given a radius of effect

              Parameters

              • distance: number

                The radius of the circle in grid units

              Returns Polygon | Circle

            • Get a Conical area of effect given a direction, angle, and distance

              Parameters

              • distance: number

                The radius of the cone in grid units

              • direction: number

                The direction of the cone in degrees

              • angle: number

                The angle of the cone in degrees

              Returns Polygon | Circle

            • Get a Rectangular area of effect given a width and height

              Parameters

              • distance: number

                The length of the diagonal in grid units

              • direction: number

                The direction of the diagonal in degrees

              Returns Rectangle

            • Get a rotated Rectangular area of effect given a width, height, and direction

              Parameters

              • distance: number

                The length of the ray in grid units

              • direction: number

                The direction of the ray in degrees

              • width: number

                The width of the ray in grid units

              Returns Polygon