An AmbientLight is an implementation of PlaceableObject which represents a dynamic light source within the Scene.

Hierarchy (view full)

Properties

field: Graphics

The area that is affected by this light.

lightSource: any

A reference to the PointSource object which defines this light or darkness area of effect. This is undefined if the AmbientLight does not provide an active source of light.

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.

#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 = "AmbientLight"

Identify the official Document name for this PlaceableObject class

RENDER_FLAGS: {
    redraw: {
        propagate: string[];
    };
    refresh: {
        propagate: string[];
        alias: boolean;
    };
    refreshField: {
        propagate: string[];
    };
    refreshPosition: {};
    refreshState: {};
    refreshElevation: {};
} = ...

Type declaration

  • redraw: {
        propagate: string[];
    }
    • propagate: string[]
  • refresh: {
        propagate: string[];
        alias: boolean;
    }
    • propagate: string[]
    • alias: boolean
  • refreshField: {
        propagate: string[];
    }
    • propagate: string[]
  • refreshPosition: {}
    • refreshState: {}
      • refreshElevation: {}

        Accessors

        • 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 sourceId(): string
        • Returns string

        • get config(): LightData
        • A convenience accessor to the LightData configuration object

          Returns LightData

        • get global(): boolean
        • Test whether a specific AmbientLight source provides global illumination

          Returns boolean

        • get radius(): number
        • The maximum radius in pixels of the light field

          Returns number

        • get dimRadius(): number
        • Get the pixel radius of dim light emitted by this light source

          Returns number

        • get brightRadius(): number
        • Get the pixel radius of bright light emitted by this light source

          Returns number

        • get isVisible(): boolean
        • Is this Ambient Light currently visible? By default, true only if the source actively emits light or darkness.

          Returns boolean

        • get isLightSource(): boolean
        • Check if the point source is a LightSource instance

          Returns boolean

        • get isDarknessSource(): boolean
        • Check if the point source is a DarknessSource instance

          Returns boolean

        • get emitsDarkness(): boolean
        • Does this Ambient Light actively emit darkness light given its properties and the current darkness level of the Scene?

          Returns boolean

        • get emitsLight(): boolean
        • Does this Ambient Light actively emit positive light given its properties and the current darkness level of the Scene?

          Returns boolean

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

        • Refresh the display of the ControlIcon for this AmbientLight source.

          Returns void

        • Update the LightSource associated with this AmbientLight object.

          Parameters

          • Optional options: {
                deleted: boolean;
            } = {}

            Options which modify how the source is updated

            • deleted: boolean

              Indicate that this light source has been deleted

          Returns void

        • Register pending canvas operations which should occur after a new PlaceableObject of this type is created

          Parameters

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

          Returns void

        • Parameters

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

          Returns void

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

          Parameters

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

          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.

        • Does the User have permission to left-click drag this 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

        • Callback actions which occur on a mouse-move operation.

          Parameters

          • event: any

            The triggering canvas interaction event

          Returns void

          See

          MouseInteractionManager##handleDragMove

        • 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

        • 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

        • Rotate the PlaceableObject to a certain angle of facing

          Parameters

          • angle: number

            The desired angle of rotation

          • snap: number

            Snap the angle of rotation to a certain target degree increment

          Returns Promise<PlaceableObject>

          The rotated object

        • 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

          Is the source of this Ambient Light disabled?

          Returns boolean

        • Protected

          Refresh the shape of the light field-of-effect. This is refreshed when the AmbientLight fov polygon changes.

          Returns void

        • Protected

          Refresh the position of the AmbientLight. Called with the coordinates change.

          Returns void

        • Protected

          Refresh the elevation of the control icon.

          Returns void

        • Protected

          Refresh the state of the light. Called when the disabled state or darkness conditions change.

          Returns void

        • Protected

          Get the light source data.

          Returns LightSourceData

        • Protected Internal

          Is this PlaceableObject within the selection rectangle?

          Parameters

          • rectangle: Rectangle

            The selection rectangle

          Returns any

        • Protected

          Get the target opacity that should be used for a Placeable Object depending on its preview state.

          Returns number

        • 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 control the 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 view details of the 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 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 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

          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

        • Returns a new point source: DarknessSource or LightSource, depending on the config data.

          Returns any

          The created source

        • Destroy the existing BaseEffectSource instance for this AmbientLight.

          Returns void

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