Skip to content

Documentation / @ripl/3d / Shape3D

Class: Shape3D<TState> ​

Defined in: 3d/src/core/shape.ts:80

Base class for 3D shapes, handling model transforms, face projection, shading, and hit testing.

Extends ​

Extended by ​

Type Parameters ​

Type ParameterDefault type
TState extends Shape3DStateShape3DState

Constructors ​

Constructor ​

new Shape3D<TState>(type, options): Shape3D<TState>

Defined in: 3d/src/core/shape.ts:143

Parameters ​

ParameterType
typestring
optionsShape3DOptions<TState>

Returns ​

Shape3D<TState>

Overrides ​

Shape.constructor

Properties ​

PropertyModifierTypeDefault valueInherited fromDefined in
abstractpublicbooleanfalseShape.abstractcore/src/core/element.ts:289
classListreadonlySet<string>undefinedShape.classListcore/src/core/element.ts:287
context?protectedContext<Element, Record<string, unknown>>undefinedShape.contextcore/src/core/element.ts:283
datapublicunknownundefinedShape.datacore/src/core/element.ts:292
hitPath?protectedContextPathundefined-3d/src/core/shape.ts:82
idpublicstringundefinedShape.idcore/src/core/element.ts:285
parent?publicGroup<ElementEventMap>undefinedShape.parentcore/src/core/element.ts:291
pointerEventspublicElementPointerEvents'all'Shape.pointerEventscore/src/core/element.ts:290
stateprotectedTStateundefinedShape.statecore/src/core/element.ts:282
typereadonlystringundefinedShape.typecore/src/core/element.ts:286
defaultKeyreadonlytypeof defaultKeyundefinedShape.defaultKeycore/src/core/disposer.ts:10

Accessors ​

direction ​

Get Signature ​

get direction(): TState["direction"]

Defined in: core/src/core/element.ts:296

Returns ​

TState["direction"]

Set Signature ​

set direction(value): void

Defined in: core/src/core/element.ts:300

Parameters ​
ParameterType
valueTState["direction"]
Returns ​

void

Inherited from ​

Shape.direction


fill ​

Get Signature ​

get fill(): TState["fill"]

Defined in: core/src/core/element.ts:304

Returns ​

TState["fill"]

Set Signature ​

set fill(value): void

Defined in: core/src/core/element.ts:308

Parameters ​
ParameterType
valueTState["fill"]
Returns ​

void

Inherited from ​

Shape.fill


filter ​

Get Signature ​

get filter(): TState["filter"]

Defined in: core/src/core/element.ts:312

Returns ​

TState["filter"]

Set Signature ​

set filter(value): void

Defined in: core/src/core/element.ts:316

Parameters ​
ParameterType
valueTState["filter"]
Returns ​

void

Inherited from ​

Shape.filter


font ​

Get Signature ​

get font(): TState["font"]

Defined in: core/src/core/element.ts:320

Returns ​

TState["font"]

Set Signature ​

set font(value): void

Defined in: core/src/core/element.ts:324

Parameters ​
ParameterType
valueTState["font"]
Returns ​

void

Inherited from ​

Shape.font


globalCompositeOperation ​

Get Signature ​

get globalCompositeOperation(): TState["globalCompositeOperation"]

Defined in: core/src/core/element.ts:336

Returns ​

TState["globalCompositeOperation"]

Set Signature ​

set globalCompositeOperation(value): void

Defined in: core/src/core/element.ts:340

Parameters ​
ParameterType
valueTState["globalCompositeOperation"]
Returns ​

void

Inherited from ​

Shape.globalCompositeOperation


lineCap ​

Get Signature ​

get lineCap(): TState["lineCap"]

Defined in: core/src/core/element.ts:344

Returns ​

TState["lineCap"]

Set Signature ​

set lineCap(value): void

Defined in: core/src/core/element.ts:348

Parameters ​
ParameterType
valueTState["lineCap"]
Returns ​

void

Inherited from ​

Shape.lineCap


lineDash ​

Get Signature ​

get lineDash(): TState["lineDash"]

Defined in: core/src/core/element.ts:352

Returns ​

TState["lineDash"]

Set Signature ​

set lineDash(value): void

Defined in: core/src/core/element.ts:356

Parameters ​
ParameterType
valueTState["lineDash"]
Returns ​

void

Inherited from ​

Shape.lineDash


lineDashOffset ​

Get Signature ​

get lineDashOffset(): TState["lineDashOffset"]

Defined in: core/src/core/element.ts:360

Returns ​

TState["lineDashOffset"]

Set Signature ​

set lineDashOffset(value): void

Defined in: core/src/core/element.ts:364

Parameters ​
ParameterType
valueTState["lineDashOffset"]
Returns ​

void

Inherited from ​

Shape.lineDashOffset


lineJoin ​

Get Signature ​

get lineJoin(): TState["lineJoin"]

Defined in: core/src/core/element.ts:368

Returns ​

TState["lineJoin"]

Set Signature ​

set lineJoin(value): void

Defined in: core/src/core/element.ts:372

Parameters ​
ParameterType
valueTState["lineJoin"]
Returns ​

void

Inherited from ​

Shape.lineJoin


lineWidth ​

Get Signature ​

get lineWidth(): TState["lineWidth"]

Defined in: core/src/core/element.ts:376

Returns ​

TState["lineWidth"]

Set Signature ​

set lineWidth(value): void

Defined in: core/src/core/element.ts:380

Parameters ​
ParameterType
valueTState["lineWidth"]
Returns ​

void

Inherited from ​

Shape.lineWidth


miterLimit ​

Get Signature ​

get miterLimit(): TState["miterLimit"]

Defined in: core/src/core/element.ts:384

Returns ​

TState["miterLimit"]

Set Signature ​

set miterLimit(value): void

Defined in: core/src/core/element.ts:388

Parameters ​
ParameterType
valueTState["miterLimit"]
Returns ​

void

Inherited from ​

Shape.miterLimit


opacity ​

Get Signature ​

get opacity(): TState["opacity"]

Defined in: core/src/core/element.ts:328

Returns ​

TState["opacity"]

Set Signature ​

set opacity(value): void

Defined in: core/src/core/element.ts:332

Parameters ​
ParameterType
valueTState["opacity"]
Returns ​

void

Inherited from ​

Shape.opacity


rotation ​

Get Signature ​

get rotation(): TState["rotation"]

Defined in: core/src/core/element.ts:488

Returns ​

TState["rotation"]

Set Signature ​

set rotation(value): void

Defined in: core/src/core/element.ts:492

Parameters ​
ParameterType
valueTState["rotation"]
Returns ​

void

Inherited from ​

Shape.rotation


rotationX ​

Get Signature ​

get rotationX(): TState["rotationX"]

Defined in: 3d/src/core/shape.ts:111

Returns ​

TState["rotationX"]

Set Signature ​

set rotationX(value): void

Defined in: 3d/src/core/shape.ts:115

Parameters ​
ParameterType
valueTState["rotationX"]
Returns ​

void


rotationY ​

Get Signature ​

get rotationY(): TState["rotationY"]

Defined in: 3d/src/core/shape.ts:119

Returns ​

TState["rotationY"]

Set Signature ​

set rotationY(value): void

Defined in: 3d/src/core/shape.ts:123

Parameters ​
ParameterType
valueTState["rotationY"]
Returns ​

void


rotationZ ​

Get Signature ​

get rotationZ(): TState["rotationZ"]

Defined in: 3d/src/core/shape.ts:127

Returns ​

TState["rotationZ"]

Set Signature ​

set rotationZ(value): void

Defined in: 3d/src/core/shape.ts:131

Parameters ​
ParameterType
valueTState["rotationZ"]
Returns ​

void


shadowBlur ​

Get Signature ​

get shadowBlur(): TState["shadowBlur"]

Defined in: core/src/core/element.ts:392

Returns ​

TState["shadowBlur"]

Set Signature ​

set shadowBlur(value): void

Defined in: core/src/core/element.ts:396

Parameters ​
ParameterType
valueTState["shadowBlur"]
Returns ​

void

Inherited from ​

Shape.shadowBlur


shadowColor ​

Get Signature ​

get shadowColor(): TState["shadowColor"]

Defined in: core/src/core/element.ts:400

Returns ​

TState["shadowColor"]

Set Signature ​

set shadowColor(value): void

Defined in: core/src/core/element.ts:404

Parameters ​
ParameterType
valueTState["shadowColor"]
Returns ​

void

Inherited from ​

Shape.shadowColor


shadowOffsetX ​

Get Signature ​

get shadowOffsetX(): TState["shadowOffsetX"]

Defined in: core/src/core/element.ts:408

Returns ​

TState["shadowOffsetX"]

Set Signature ​

set shadowOffsetX(value): void

Defined in: core/src/core/element.ts:412

Parameters ​
ParameterType
valueTState["shadowOffsetX"]
Returns ​

void

Inherited from ​

Shape.shadowOffsetX


shadowOffsetY ​

Get Signature ​

get shadowOffsetY(): TState["shadowOffsetY"]

Defined in: core/src/core/element.ts:416

Returns ​

TState["shadowOffsetY"]

Set Signature ​

set shadowOffsetY(value): void

Defined in: core/src/core/element.ts:420

Parameters ​
ParameterType
valueTState["shadowOffsetY"]
Returns ​

void

Inherited from ​

Shape.shadowOffsetY


stroke ​

Get Signature ​

get stroke(): TState["stroke"]

Defined in: core/src/core/element.ts:424

Returns ​

TState["stroke"]

Set Signature ​

set stroke(value): void

Defined in: core/src/core/element.ts:428

Parameters ​
ParameterType
valueTState["stroke"]
Returns ​

void

Inherited from ​

Shape.stroke


textAlign ​

Get Signature ​

get textAlign(): TState["textAlign"]

Defined in: core/src/core/element.ts:432

Returns ​

TState["textAlign"]

Set Signature ​

set textAlign(value): void

Defined in: core/src/core/element.ts:436

Parameters ​
ParameterType
valueTState["textAlign"]
Returns ​

void

Inherited from ​

Shape.textAlign


textBaseline ​

Get Signature ​

get textBaseline(): TState["textBaseline"]

Defined in: core/src/core/element.ts:440

Returns ​

TState["textBaseline"]

Set Signature ​

set textBaseline(value): void

Defined in: core/src/core/element.ts:444

Parameters ​
ParameterType
valueTState["textBaseline"]
Returns ​

void

Inherited from ​

Shape.textBaseline


transformOriginX ​

Get Signature ​

get transformOriginX(): TState["transformOriginX"]

Defined in: core/src/core/element.ts:496

Returns ​

TState["transformOriginX"]

Set Signature ​

set transformOriginX(value): void

Defined in: core/src/core/element.ts:500

Parameters ​
ParameterType
valueTState["transformOriginX"]
Returns ​

void

Inherited from ​

Shape.transformOriginX


transformOriginY ​

Get Signature ​

get transformOriginY(): TState["transformOriginY"]

Defined in: core/src/core/element.ts:504

Returns ​

TState["transformOriginY"]

Set Signature ​

set transformOriginY(value): void

Defined in: core/src/core/element.ts:508

Parameters ​
ParameterType
valueTState["transformOriginY"]
Returns ​

void

Inherited from ​

Shape.transformOriginY


transformScaleX ​

Get Signature ​

get transformScaleX(): TState["transformScaleX"]

Defined in: core/src/core/element.ts:472

Returns ​

TState["transformScaleX"]

Set Signature ​

set transformScaleX(value): void

Defined in: core/src/core/element.ts:476

Parameters ​
ParameterType
valueTState["transformScaleX"]
Returns ​

void

Inherited from ​

Shape.transformScaleX


transformScaleY ​

Get Signature ​

get transformScaleY(): TState["transformScaleY"]

Defined in: core/src/core/element.ts:480

Returns ​

TState["transformScaleY"]

Set Signature ​

set transformScaleY(value): void

Defined in: core/src/core/element.ts:484

Parameters ​
ParameterType
valueTState["transformScaleY"]
Returns ​

void

Inherited from ​

Shape.transformScaleY


translateX ​

Get Signature ​

get translateX(): TState["translateX"]

Defined in: core/src/core/element.ts:456

Returns ​

TState["translateX"]

Set Signature ​

set translateX(value): void

Defined in: core/src/core/element.ts:460

Parameters ​
ParameterType
valueTState["translateX"]
Returns ​

void

Inherited from ​

Shape.translateX


translateY ​

Get Signature ​

get translateY(): TState["translateY"]

Defined in: core/src/core/element.ts:464

Returns ​

TState["translateY"]

Set Signature ​

set translateY(value): void

Defined in: core/src/core/element.ts:468

Parameters ​
ParameterType
valueTState["translateY"]
Returns ​

void

Inherited from ​

Shape.translateY


x ​

Get Signature ​

get x(): TState["x"]

Defined in: 3d/src/core/shape.ts:87

Returns ​

TState["x"]

Set Signature ​

set x(value): void

Defined in: 3d/src/core/shape.ts:91

Parameters ​
ParameterType
valueTState["x"]
Returns ​

void


y ​

Get Signature ​

get y(): TState["y"]

Defined in: 3d/src/core/shape.ts:95

Returns ​

TState["y"]

Set Signature ​

set y(value): void

Defined in: 3d/src/core/shape.ts:99

Parameters ​
ParameterType
valueTState["y"]
Returns ​

void


z ​

Get Signature ​

get z(): TState["z"]

Defined in: 3d/src/core/shape.ts:103

Returns ​

TState["z"]

Set Signature ​

set z(value): void

Defined in: 3d/src/core/shape.ts:107

Parameters ​
ParameterType
valueTState["z"]
Returns ​

void


zIndex ​

Get Signature ​

get zIndex(): number

Defined in: 3d/src/core/shape.ts:135

Returns ​

number

Set Signature ​

set zIndex(_value): void

Defined in: 3d/src/core/shape.ts:139

Parameters ​
ParameterType
_valuenumber
Returns ​

void

Overrides ​

Shape.zIndex

Methods ​

clone() ​

clone(): Element<TState, ElementEventMap>

Defined in: core/src/core/element.ts:565

Creates a shallow clone of this element with the same id, classes, and state.

Returns ​

Element<TState, ElementEventMap>

Inherited from ​

Shape.clone


computeFaces() ​

protected computeFaces(): Face3D[]

Defined in: 3d/src/core/shape.ts:162

Returns ​

Face3D[]


destroy() ​

destroy(): void

Defined in: core/src/core/element.ts:642

Emits a destroyed event, clears all listeners, and disposes retained resources.

Returns ​

void

Inherited from ​

Shape.destroy


dispose() ​

protected dispose(key?): void

Defined in: core/src/core/disposer.ts:24

Disposes all resources under the given key, or all resources if no key is provided.

Parameters ​

ParameterType
key?PropertyKey

Returns ​

void

Inherited from ​

Shape.dispose


emit() ​

Call Signature ​

emit<TEvent>(event): TEvent

Defined in: core/src/core/event-bus.ts:127

Emits an event, invoking all matching handlers and bubbling to the parent if applicable.

Type Parameters ​
Type ParameterDefault type
TEvent extends Event<undefined>Event<undefined>
Parameters ​
ParameterType
eventTEvent
Returns ​

TEvent

Inherited from ​

Shape.emit

Call Signature ​

emit<TEvent>(type, data): Event<ElementEventMap[TEvent]>

Defined in: core/src/core/event-bus.ts:128

Emits an event, invoking all matching handlers and bubbling to the parent if applicable.

Type Parameters ​
Type Parameter
TEvent extends keyof ElementEventMap
Parameters ​
ParameterType
typeTEvent
dataElementEventMap[TEvent]
Returns ​

Event<ElementEventMap[TEvent]>

Inherited from ​

Shape.emit


getBoundingBox() ​

getBoundingBox(): Box

Defined in: 3d/src/core/shape.ts:188

Returns the axis-aligned bounding box for this element. Override in subclasses for accurate geometry.

Returns ​

Box

Overrides ​

Shape.getBoundingBox


getDepth() ​

getDepth(context): number

Defined in: 3d/src/core/shape.ts:184

Returns the projected depth of this shape's origin in the given 3D context.

Parameters ​

ParameterType
contextContext3D

Returns ​

number


getModelMatrix() ​

protected getModelMatrix(): Matrix4

Defined in: 3d/src/core/shape.ts:166

Returns ​

Matrix4


getStateValue() ​

protected getStateValue<TKey>(key): TState[TKey]

Defined in: core/src/core/element.ts:534

Reads a state value, falling back to the parent’s value if the local value is nil (property inheritance).

Type Parameters ​

Type Parameter
TKey extends string | number | symbol

Parameters ​

ParameterType
keyTKey

Returns ​

TState[TKey]

Inherited from ​

Shape.getStateValue


has() ​

has(type): boolean

Defined in: core/src/core/event-bus.ts:84

Returns whether there are any listeners registered for the given event type.

Parameters ​

ParameterType
typekeyof ElementEventMap

Returns ​

boolean

Inherited from ​

Shape.has


interpolate() ​

interpolate(newState, interpolators?): Interpolator<void>

Defined in: core/src/core/element.ts:585

Creates an interpolator that transitions from the current state towards the target state, supporting keyframes and custom interpolator overrides.

Parameters ​

ParameterType
newStatePartial<ElementInterpolationState<TState>>
interpolatorsPartial<ElementInterpolators<TState>>

Returns ​

Interpolator<void>

Inherited from ​

Shape.interpolate


intersectsWith() ​

intersectsWith(x, y, options?): boolean

Defined in: 3d/src/core/shape.ts:306

Tests whether a point intersects this element’s bounding box. Override for custom hit testing.

Parameters ​

ParameterType
xnumber
ynumber
options?Partial<ElementIntersectionOptions>

Returns ​

boolean

Overrides ​

Shape.intersectsWith


off() ​

off<TEvent>(type, handler): void

Defined in: core/src/core/event-bus.ts:102

Removes a previously registered handler for the given event type.

Type Parameters ​

Type Parameter
TEvent extends keyof ElementEventMap

Parameters ​

ParameterType
typeTEvent
handlerEventHandler<ElementEventMap[TEvent]>

Returns ​

void

Inherited from ​

Shape.off


on() ​

on<TEvent>(event, handler, options?): Disposable

Defined in: core/src/core/element.ts:547

Subscribes a handler to the given event type and returns a disposable for cleanup.

Type Parameters ​

Type Parameter
TEvent extends keyof ElementEventMap

Parameters ​

ParameterType
eventTEvent
handlerEventHandler<ElementEventMap[TEvent]>
options?EventSubscriptionOptions

Returns ​

Disposable

Inherited from ​

Shape.on


once() ​

once<TEvent>(type, handler, options?): Disposable

Defined in: core/src/core/event-bus.ts:117

Subscribes a handler that is automatically removed after it fires once.

Type Parameters ​

Type Parameter
TEvent extends keyof ElementEventMap

Parameters ​

ParameterType
typeTEvent
handlerEventHandler<ElementEventMap[TEvent]>
options?EventSubscriptionOptions

Returns ​

Disposable

Inherited from ​

Shape.once


render() ​

render(context): void

Defined in: 3d/src/core/shape.ts:223

Renders this element by applying transforms and context state, then invoking the optional callback.

Parameters ​

ParameterType
contextContext

Returns ​

void

Overrides ​

Shape.render


retain() ​

protected retain(value, key?): void

Defined in: core/src/core/disposer.ts:13

Registers a disposable resource under an optional key for later cleanup.

Parameters ​

ParameterTypeDefault value
valueDisposableundefined
keyPropertyKeyDisposer.defaultKey

Returns ​

void

Inherited from ​

Shape.retain


setStateValue() ​

protected setStateValue<TKey>(key, value): void

Defined in: 3d/src/core/shape.ts:157

Sets a state value and emits an updated event.

Type Parameters ​

Type Parameter
TKey extends string | number | symbol

Parameters ​

ParameterType
keyTKey
valueTState[TKey]

Returns ​

void

Overrides ​

Shape.setStateValue


transformVertices() ​

protected transformVertices(vertices, matrix?): Vector3[]

Defined in: 3d/src/core/shape.ts:177

Parameters ​

ParameterType
verticesVector3[]
matrix?Matrix4

Returns ​

Vector3[]