The base class for all gizmos.

Hierarchy (view full)

Constructors

  • Creates a new Gizmo object.

    Parameters

    • app: AppBase

      The application instance.

    • camera: CameraComponent

      The camera component.

    • layer: Layer

      The render layer.

    Returns Gizmo

    Example

    const gizmo = new pcx.Gizmo(app, camera, layer);
    

Properties

_app: AppBase

Internal reference to the app containing the gizmo.

_camera: CameraComponent

Internal reference to camera component to view the gizmo.

_coordSpace: string = GIZMO_WORLD

Internal version of coordinate space. Defaults to GIZMO_WORLD.

_device: AppBase

Internal reference to the graphics device of the app.

_layer: Layer

Internal reference to layer to render the gizmo..

_scale: number = 1

Internal version of the gizmo scale. Defaults to 1.

_size: number = 1

Internal version of the gizmo size. Defaults to 1.

intersectData: IntersectData[] = []

The intersection data object.

nodes: GraphNode[] = []

The graph nodes attached to the gizmo.

root: Entity

The root gizmo entity.

Accessors

Methods

  • Attach an array of graph nodes to the gizmo.

    Parameters

    • Optional nodes: GraphNode[] = []

      The graph nodes. Defaults to [].

    Returns void

    Example

    const gizmo = new pcx.Gizmo(app, camera, layer);
    gizmo.attach([boxA, boxB]);
  • Destroys the gizmo instance; detaches all graph nodes.

    Returns void

    Example

    const gizmo = new pcx.Gizmo(app, camera, layer);
    gizmo.attach([boxA, boxB]);
    gizmo.destroy();
  • Detaches all graph nodes from the gizmo.

    Returns void

    Example

    const gizmo = new pcx.Gizmo(app, camera, layer);
    gizmo.attach([boxA, boxB]);
    gizmo.detach();

Events

EVENT_NODESATTACH: string = 'nodes:attach'

Fired when graph nodes are attached.

Example

const gizmo = new pcx.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 pcx.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 pcx.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 pcx.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 pcx.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 pcx.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 pcx.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 pcx.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 pcx.Gizmo(app, camera, layer);
gizmo.on('scale:update', (scale) => {
console.log(`The gizmo's scale was updated to ${scale}`);
});