Scaling gizmo.

Hierarchy (view full)

Constructors

Properties

_app: AppBase

Internal reference to the app containing the gizmo.

Internal reference to camera component to view the gizmo.

Internal reference to the graphics device of the app.

_dragging: boolean = false

Internal state for if the gizmo is being dragged.

_guideColors: {} = ...

Internal version of the guide line color.

Type declaration

    _layer: Layer

    Internal reference to layer to render the gizmo..

    _meshColors: Object = ...

    Internal color for meshs.

    _nodeScales: Map<GraphNode, Vec3> = ...

    Internal mapping from each attached node to their starting scale.

    _rootStartRot: Quat = ...

    Internal gizmo starting rotation in world space.

    _scale: number = 1

    Internal version of the gizmo scale. Defaults to 1.

    _selectedAxis: string = ''

    Internal currently selected axis.

    _selectedIsPlane: boolean = false

    Internal state of if currently selected shape is a plane.

    _selectionStartAngle: number = 0

    Internal selection starting angle in world space.

    _selectionStartPoint: Vec3 = ...

    Internal selection starting coordinates in world space.

    _useUniformScaling: boolean = false

    Internal state if transform should use uniform scaling.

    intersectData: IntersectData[] = []

    The intersection data object.

    nodes: GraphNode[] = []

    The graph nodes attached to the gizmo.

    root: Entity

    The root gizmo entity.

    snapIncrement: number = 1

    Accessors

    Methods

    • Set the shape to be enabled or disabled.

      Parameters

      • shapeAxis: string

        The shape axis. Can be:

        SHAPEAXIS_X SHAPEAXIS_Y SHAPEAXIS_Z SHAPEAXIS_YZ SHAPEAXIS_XZ SHAPEAXIS_XY SHAPEAXIS_XYZ SHAPEAXIS_FACE

      • enabled: boolean

        The enabled state of shape.

      Returns void

    • Fire an event, all additional arguments are passed on to the event listener.

      Parameters

      • name: string

        Name of event to fire.

      • Optional arg1: any

        First argument that is passed to the event handler.

      • Optional arg2: any

        Second argument that is passed to the event handler.

      • Optional arg3: any

        Third argument that is passed to the event handler.

      • Optional arg4: any

        Fourth argument that is passed to the event handler.

      • Optional arg5: any

        Fifth argument that is passed to the event handler.

      • Optional arg6: any

        Sixth argument that is passed to the event handler.

      • Optional arg7: any

        Seventh argument that is passed to the event handler.

      • Optional arg8: any

        Eighth argument that is passed to the event handler.

      Returns EventHandler

      Self for chaining.

      Example

      obj.fire('test', 'This is the message');
      
    • Test if there are any handlers bound to an event name.

      Parameters

      • name: string

        The name of the event to test.

      Returns boolean

      True if the object has handlers bound to the specified event name.

      Example

      obj.on('test', function () { }); // bind an event to 'test'
      obj.hasEvent('test'); // returns true
      obj.hasEvent('hello'); // returns false
    • Get the enabled state of the shape.

      Parameters

      • shapeAxis: string

        The shape axis. Can be:

        SHAPEAXIS_X SHAPEAXIS_Y SHAPEAXIS_Z SHAPEAXIS_YZ SHAPEAXIS_XZ SHAPEAXIS_XY SHAPEAXIS_XYZ SHAPEAXIS_FACE

      Returns boolean

      • Then enabled state of the shape
    • Detach an event handler from an event. If callback is not provided then all callbacks are unbound from the event, if scope is not provided then all events with the callback will be unbound.

      Parameters

      • Optional name: string

        Name of the event to unbind.

      • Optional callback: HandleEventCallback

        Function to be unbound.

      • Optional scope: object

        Scope that was used as the this when the event is fired.

      Returns EventHandler

      Self for chaining.

      Example

      const handler = function () {
      };
      obj.on('test', handler);

      obj.off(); // Removes all events
      obj.off('test'); // Removes all events called 'test'
      obj.off('test', handler); // Removes all handler functions, called 'test'
      obj.off('test', handler, this); // Removes all handler functions, called 'test' with scope this
    • Attach an event handler to an event.

      Parameters

      • name: string

        Name of the event to bind the callback to.

      • callback: HandleEventCallback

        Function that is called when event is fired. Note the callback is limited to 8 arguments.

      • Optional scope: object = ...

        Object to use as 'this' when the event is fired, defaults to current this.

      Returns EventHandle

      Can be used for removing event in the future.

      Example

      obj.on('test', function (a, b) {
      console.log(a + b);
      });
      obj.fire('test', 1, 2); // prints 3 to the console

      Example

      const evt = obj.on('test', function (a, b) {
      console.log(a + b);
      });
      // some time later
      evt.off();
    • Attach an event handler to an event. This handler will be removed after being fired once.

      Parameters

      • name: string

        Name of the event to bind the callback to.

      • callback: HandleEventCallback

        Function that is called when event is fired. Note the callback is limited to 8 arguments.

      • Optional scope: object = ...

        Object to use as 'this' when the event is fired, defaults to current this.

      Returns EventHandle

      • can be used for removing event in the future.

      Example

      obj.once('test', function (a, b) {
      console.log(a + b);
      });
      obj.fire('test', 1, 2); // prints 3 to the console
      obj.fire('test', 1, 2); // not going to get handled

    Events

    EVENT_NODESATTACH: string = 'nodes:attach'

    Fired when graph nodes are attached.

    Example

    const gizmo = new pc.Gizmo(app, camera, layer);
    gizmo.on('nodes:attach', () => {
    console.log('Graph nodes attached');
    });
    EVENT_NODESDETACH: string = 'nodes:detach'

    Fired when graph nodes are detached.

    Example

    const gizmo = new pc.Gizmo(app, camera, layer);
    gizmo.on('nodes:detach', () => {
    console.log('Graph nodes detached');
    });
    EVENT_POINTERDOWN: string = 'pointer:down'

    Fired when the pointer is down on the gizmo.

    Example

    const gizmo = new pc.Gizmo(app, camera, layer);
    gizmo.on('pointer:down', (x, y, meshInstance) => {
    console.log(`Pointer was down on ${meshInstance.node.name} at ${x}, ${y}`);
    });
    EVENT_POINTERMOVE: string = 'pointer:move'

    Fired when the pointer is moving over the gizmo.

    Example

    const gizmo = new pc.Gizmo(app, camera, layer);
    gizmo.on('pointer:move', (x, y, meshInstance) => {
    console.log(`Pointer was moving on ${meshInstance.node.name} at ${x}, ${y}`);
    });
    EVENT_POINTERUP: string = 'pointer:up'

    Fired when the pointer is up off the gizmo.

    Example

    const gizmo = new pc.Gizmo(app, camera, layer);
    gizmo.on('pointer:up', (x, y, meshInstance) => {
    console.log(`Pointer was up on ${meshInstance.node.name} at ${x}, ${y}`);
    })
    EVENT_POSITIONUPDATE: string = 'position:update'

    Fired when the gizmo's position is updated.

    Example

    const gizmo = new pc.Gizmo(app, camera, layer);
    gizmo.on('position:update', (position) => {
    console.log(`The gizmo's position was updated to ${position}`);
    })
    EVENT_RENDERUPDATE: string = 'render:update'

    Fired when when the gizmo render has updated.

    Example

    const gizmo = new pc.TransformGizmo(app, camera, layer);
    gizmo.on('render:update', () => {
    console.log('Gizmo render has been updated');
    });
    EVENT_ROTATIONUPDATE: string = 'rotation:update'

    Fired when the gizmo's rotation is updated.

    Example

    const gizmo = new pc.Gizmo(app, camera, layer);
    gizmo.on('rotation:update', (rotation) => {
    console.log(`The gizmo's rotation was updated to ${rotation}`);
    });
    EVENT_SCALEUPDATE: string = 'scale:update'

    Fired when the gizmo's scale is updated.

    Example

    const gizmo = new pc.Gizmo(app, camera, layer);
    gizmo.on('scale:update', (scale) => {
    console.log(`The gizmo's scale was updated to ${scale}`);
    });
    EVENT_TRANSFORMEND: string = 'transform:end'

    Fired when when the transformation has ended.

    Example

    const gizmo = new pc.TransformGizmo(app, camera, layer);
    gizmo.on('transform:end', () => {
    console.log('Transformation ended');
    });
    EVENT_TRANSFORMMOVE: string = 'transform:move'

    Fired during the transformation.

    Example

    const gizmo = new pc.TransformGizmo(app, camera, layer);
    gizmo.on('transform:move', (pointDelta, angleDelta) => {
    console.log('Transformation moved by ${pointDelta} (angle: ${angleDelta})');
    });
    EVENT_TRANSFORMSTART: string = 'transform:start'

    Fired when when the transformation has started.

    Example

    const gizmo = new pc.TransformGizmo(app, camera, layer);
    gizmo.on('transform:start', () => {
    console.log('Transformation started');
    });