rhodonite
    Preparing search index...

    Class LightGizmo

    Abstract Gizmo class that provides a foundation for creating interactive gizmo objects in 3D scenes. Gizmos are typically used for manipulation tools like transform handles, rotation rings, or other interactive visual aids.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    __engine: Engine
    __isVisible: boolean = false

    the target entity which this gizmo belong to

    The top entity of this gizmo group. A programmer who implements a gizmo class has to make this entity a child of the target entity's scene graph component that the gizmo will belong to manually.

    _tags: RnTags = {}

    Collection of tags associated with this object

    currentMaxObjectCount: number = 0

    Current maximum object count for UID generation

    InvalidObjectUID: -1

    Invalid object UID constant

    Accessors

    • get isSetup(): boolean

      Checks whether the gizmo has been properly initialized and set up.

      Returns boolean

      True if the gizmo's top entity exists and setup is complete, false otherwise

    • get isVisible(): boolean

      Gets the current visibility state of the gizmo

      Returns boolean

      True if the gizmo is visible, false otherwise

    • set isVisible(flg: boolean): void

      Sets the visibility state of the gizmo

      Parameters

      • flg: boolean

        True to make the gizmo visible, false to hide it

      Returns void

    • get objectUID(): number

      Gets the unique object identifier

      Returns number

      The object's UID

    • get uniqueName(): string

      Gets the unique name of this object

      Returns string

      The unique name string

    Methods

    • Internal method to set the visibility of the gizmo and all its child entities

      Parameters

      • flg: boolean

        True to show the gizmo, false to hide it

      Returns void

    • Internal

      Initializes the gizmo entities and visual representation if not already done. Creates a mesh entity with a light gizmo primitive and attaches it to the target entity.

      Returns void

    • Internal

      Updates the transform properties (position, rotation, scale) of the gizmo to match the target entity. The gizmo's position is set to either the target's position or the center of its bounding box, and its scale is adjusted based on the target's bounding box size.

      Returns void

    • Retrieves a complete tag object (name and value) for the specified tag name

      Parameters

      • tagName: string

        The name of the tag to retrieve

      Returns Tag

      A Tag object containing the name and value

    • Retrieves the value associated with a specific tag name

      Parameters

      • tagName: string

        The name of the tag whose value to retrieve

      Returns any

      The tag value, or undefined if the tag doesn't exist

    • Checks whether this object has a tag with the specified name

      Parameters

      • tagName: string

        The name of the tag to check for

      Returns boolean

      True if the tag exists (value is not null/undefined), false otherwise

    • Checks if this object has a tag with the specified name and value

      Parameters

      • tagName: string

        The tag name to match

      • tagValue: string

        The tag value to match

      Returns boolean

      True if the object has a matching tag, false otherwise

    • Checks if this object has all the specified tags with exactly matching values

      Parameters

      • tags: RnTags

        Object containing tag names as keys and expected values

      Returns boolean

      True if all specified tags exist with matching values, false otherwise

    • Checks if the object's combined tag string contains all the provided search strings. This allows for flexible searching within tag names and values.

      Parameters

      • stringArray: string[]

        Array of strings that must all be present in the combined tag string

      Returns boolean

      True if all strings are found in the combined tag string, false otherwise

    • Applies appropriate tags to the gizmo entities for identification and categorization This method ensures that all gizmo entities are properly tagged for rendering and processing pipelines

      Returns void

    • Attempts to set a tag on this object. If the tag already exists, it will be replaced.

      Parameters

      • tag: Tag

        The tag object containing the name and value to set

      Returns boolean

      True if the tag was successfully set, false if the tag name contains invalid characters

    • Attempts to set a unique name for this object

      Parameters

      • name: string

        The desired unique name

      • toAddNameIfConflict: boolean

        If true, appends UID to make name unique when conflicts occur; if false, fails on conflict

      Returns boolean

      True if the name was successfully set, false if there was a conflict and toAddNameIfConflict was false

    • Validates that a tag string contains only allowed characters (alphanumeric and underscore)

      Parameters

      • val: string

        The string to validate

      Returns boolean

      True if the string contains only valid characters, false if it contains invalid characters

    • Retrieves an RnObject instance by its unique identifier

      Parameters

      • objectUid: number

        The unique identifier of the object to retrieve

      Returns RnObject | undefined

      The RnObject instance or undefined if not found or garbage collected

    • Retrieves an RnObject instance by its unique name

      Parameters

      • uniqueName: string

        The unique name of the object to retrieve

      Returns RnObject | undefined

      The RnObject instance or undefined if not found or garbage collected

    • Searches for the first object that has a specific tag with the given value

      Parameters

      • tag: string

        The tag name to search for

      • value: string

        The tag value to match

      Returns WeakRef<RnObject> | undefined

      WeakRef to the first matching object, or undefined if not found