Class BoundsScaleInteractiveGizmo

The BoundsScaleInteractiveGizmo implements a BuiltInInteractiveGizmo that allows an object to be scaled by dragging handles placed at the face-centers of its local-space AABB.

Hierarchy (view full)

Constructors

Properties

_isDragActive: boolean
_position: Vector3
_worldAxes: Matrix3
cornerHandleSize: number

Size of the handles at the corners.

edgeCylinderRadius: number

Radius of the cylinder used to render edge handles when hovered or active.

edgeRotationIndicatorRadius: number

Radius of the rotation indicator circles drawn at edge midpoints.

faceHandleSize: number

Size of the handles on the faces.

gizmoLayer: rsx.LayerMask

Layer of the gizmo.

maxHandleSizeExtentFraction: number

Maximum handle size as a fraction of the smallest bounds half-extent, preventing handles from overlapping on large objects.

Accessors

  • get delta(): Vector3
  • Returns the amount of scaling since the start of the drag.

    Returns Vector3

  • set delta(value): void
  • The delta of the current drag operation.

    Parameters

    Returns void

  • get isDragging(): boolean
  • Determines if the gizmo currently being interacted with (clicking, or dragging).

    Returns boolean

  • get isEdgeRotateDragged(): boolean
  • Returns true when an edge handle is being dragged for rotation.

    Returns boolean

  • get isEnabled(): boolean
  • Determines the active state of the gizmo. If disabled, the gizmo will not render or receive input.

    Returns boolean

  • get isFreeMoveDragged(): boolean
  • True, if the object is being dragged by its bounds and not locked to an axis.

    Returns boolean

  • get isHovering(): boolean
  • Determines if the gizmo currently being hovered.

    Returns boolean

  • get isMoveDragged(): boolean
  • Returns true when the object is being translated via the free-move handle or a face-move drag.

    Returns boolean

  • get isScaleDragged(): boolean
  • Returns true when a face or corner handle is being dragged for scaling.

    Returns boolean

  • get localBoundsExtents(): Vector3
  • Returns Vector3

  • set localBoundsExtents(value): void
  • Local-space AABB half-extents set this frame.

    Parameters

    Returns void

  • get moveGridDelta(): Immutable<Vector3>
  • World-space camera-plane translation delta when dragging on the bounds area; zero when inactive.

    Returns Immutable<Vector3>

  • get rotationDelta(): Quaternion
  • Rotation delta since the start of the edge-drag; identity when idle.

    Returns Quaternion

  • get rotationDeltaAngle(): rsx.Degree
  • Angle component of the rotation delta in degrees.

    Returns rsx.Degree

  • get worldAxes(): Matrix3
  • World axes of the gizmo. Columns are the world-space local X, Y, Z directions.

    Returns Matrix3

  • set worldAxes(value): void
  • Parameters

    Returns void

  • get worldPosition(): Vector3
  • World position of the gizmo.

    Returns Vector3

  • set worldPosition(value): void
  • Parameters

    Returns void

  • get worldRotation(): Quaternion
  • World rotation of the gizmo.

    Returns Quaternion

  • set worldRotation(value): void
  • Parameters

    Returns void

Methods

  • Virtual

    Called every frame after handle input is processed. Active handle sliders should contain values signals if and how much they were dragged.

    Parameters

    Returns void

    Implementing classes must call super

Events

onDragStart: Event<any[], void>

Invoked when a drag is started and a new delta is available.

The onDrag event is invoked right after this event. Do not integrate the current delta during this event.

onDrag: Event<any[], void>

Invoked when a drag is performed and a new delta is available.

onDragFinished: Event<any[], void>

Invoked when the drag finished.