Documentation / scene / Shape
Abstract Class: Shape<T>
Defined in: libs/scene/src/shapes/shape.ts:25
Abstract base class for any kind of shapes
Extends
Extended by
BoxShapeBoxFrameShapeCapsuleShapeCylinderShapeTorusShapePlaneShapeSphereShapeTetrahedronShapeTetrahedronFrameShape
Type Parameters
T
T extends ShapeCreationOptions = ShapeCreationOptions
Implements
Clonable<Shape<T>>
Constructors
Constructor
new Shape<
T>(options?):Shape<T>
Defined in: libs/scene/src/shapes/shape.ts:40
Creates an instance of shape
Parameters
options?
T
The creation options
Returns
Shape<T>
Overrides
Properties
_defaultOptions
static_defaultOptions:object
Defined in: libs/scene/src/shapes/shape.ts:29
needNormal
needNormal:
boolean=true
needTangent
needTangent:
boolean=true
needUV
needUV:
boolean=true
transform
transform:
any=null
_options
protected_options:DeepRequireOptionals<T>
Defined in: libs/scene/src/shapes/shape.ts:35
Accessors
disposed
Get Signature
get disposed():
boolean
Defined in: libs/base/dist/index.d.ts:6065
Returns
boolean
Inherited from
id
Get Signature
get id():
number
Defined in: libs/scene/src/render/primitive.ts:100
Unique runtime identifier of this primitive.
Returns
number
The numeric instance id.
Inherited from
changeTag
Get Signature
get changeTag():
number
Defined in: libs/scene/src/render/primitive.ts:109
Change tag that increments whenever draw-affecting state changes. Useful for invalidating cached render bundles.
Returns
number
The current change tag value.
Inherited from
primitiveType
Get Signature
get primitiveType():
PrimitiveType
Defined in: libs/scene/src/render/primitive.ts:146
Primitive topology.
Returns
PrimitiveType
Set Signature
set primitiveType(
type):void
Defined in: libs/scene/src/render/primitive.ts:149
Parameters
type
PrimitiveType
Returns
void
Inherited from
indexStart
Get Signature
get indexStart():
number
Defined in: libs/scene/src/render/primitive.ts:159
Starting index/vertex for drawing.
Returns
number
Set Signature
set indexStart(
val):void
Defined in: libs/scene/src/render/primitive.ts:162
Parameters
val
number
Returns
void
Inherited from
indexCount
Get Signature
get indexCount():
number
Defined in: libs/scene/src/render/primitive.ts:172
Number of indices/vertices to draw.
Returns
number
Set Signature
set indexCount(
val):void
Defined in: libs/scene/src/render/primitive.ts:176
Parameters
val
number
Returns
void
Inherited from
options
Get Signature
get options():
DeepRequireOptionals<T>
Defined in: libs/scene/src/shapes/shape.ts:102
Get shape creation options
Returns
DeepRequireOptionals<T>
Set Signature
set options(
options):void
Defined in: libs/scene/src/shapes/shape.ts:105
Parameters
options
T
Returns
void
type
Get Signature
get
abstracttype():string
Defined in: libs/scene/src/shapes/shape.ts:109
Get shape type
Returns
string
Methods
on()
Call Signature
on<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:635
IEventTarget.on
Type Parameters
K
K extends "dispose" | "bv_changed"
Parameters
type
K
listener
EventListener<object & object, K>
context?
unknown
Returns
void
Inherited from
Call Signature
on<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:594
IEventTarget.on
Type Parameters
K
K extends "dispose"
Parameters
type
K
listener
EventListener<{ dispose: []; }, K>
context?
unknown
Returns
void
Inherited from
once()
Call Signature
once<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:639
IEventTarget.once
Type Parameters
K
K extends "dispose" | "bv_changed"
Parameters
type
K
listener
EventListener<object & object, K>
context?
unknown
Returns
void
Inherited from
Call Signature
once<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:598
IEventTarget.once
Type Parameters
K
K extends "dispose"
Parameters
type
K
listener
EventListener<{ dispose: []; }, K>
context?
unknown
Returns
void
Inherited from
off()
Call Signature
off<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:643
IEventTarget.off
Type Parameters
K
K extends "dispose" | "bv_changed"
Parameters
type
K
listener
EventListener<object & object, K>
context?
unknown
Returns
void
Inherited from
Call Signature
off<
K>(type,listener?,context?):void
Defined in: libs/base/dist/index.d.ts:602
IEventTarget.off
Type Parameters
K
K extends "dispose"
Parameters
type
K
listener?
EventListener<{ dispose: []; }>
context?
unknown
Returns
void
Inherited from
dispatchEvent()
Call Signature
dispatchEvent<
K>(type, ...args):void
Defined in: libs/base/dist/index.d.ts:647
IEventTarget.dispatchEvent
Type Parameters
K
K extends "dispose" | "bv_changed"
Parameters
type
K
args
...object & object[K]
Returns
void
Inherited from
Call Signature
dispatchEvent<
K>(type, ...args):void
Defined in: libs/base/dist/index.d.ts:606
IEventTarget.dispatchEvent
Type Parameters
K
K extends "dispose"
Parameters
type
K
args
...object[K]
Returns
void
Inherited from
dispose()
dispose():
void
Defined in: libs/base/dist/index.d.ts:6066
Returns
void
Inherited from
copyFrom()
copyFrom(
other):void
Defined in: libs/scene/src/render/primitive.ts:134
Copy from another primitive.
Copies:
- All vertex buffers and the index buffer
- Primitive type, index start, index count
Parameters
other
this
The source primitive to copy from.
Returns
void
void
Inherited from
getNumVertices()
getNumVertices():
number
Defined in: libs/scene/src/render/primitive.ts:188
Query total vertex count from the position buffer, if present.
Returns
number
Total vertex count; 0 if no position buffer is set.
Inherited from
getNumFaces()
getNumFaces():
number
Defined in: libs/scene/src/render/primitive.ts:200
Query total face/segment count based on topology and buffer size.
- For indexed geometry: derived from index buffer.
- For non-indexed: derived from position vertex count.
Returns
number
Total primitive count for the current topology.
Inherited from
removeVertexBuffer()
removeVertexBuffer(
semantic):void
Defined in: libs/scene/src/render/primitive.ts:230
Remove all vertex buffers that match a given semantic.
This releases retained buffers, marks the layout dirty, and invalidates bundles.
Parameters
semantic
VertexSemantic
The vertex semantic to remove (e.g., 'position', 'normal').
Returns
void
void
Inherited from
getVertexBuffer()
getVertexBuffer(
semantic):StructuredBuffer<unknown>
Defined in: libs/scene/src/render/primitive.ts:250
Get the vertex buffer that matches a given semantic.
Parameters
semantic
VertexSemantic
The vertex semantic to look up.
Returns
StructuredBuffer<unknown>
The matching vertex buffer, or null if not found.
Inherited from
getVertexBufferInfo()
getVertexBufferInfo(
semantic):VertexBufferInfo
Defined in: libs/scene/src/render/primitive.ts:264
Get vertex buffer information for a given semantic.
Parameters
semantic
VertexSemantic
The vertex semantic to look up.
Returns
VertexBufferInfo
The VertexBufferInfo, or null if not found.
Inherited from
createAndSetVertexBuffer()
createAndSetVertexBuffer(
format,data,stepMode?):StructuredBuffer<unknown>
Defined in: libs/scene/src/render/primitive.ts:279
Create a vertex buffer from data and add it to the primitive.
- For interleaved layouts, pass an array of
VertexAttribFormat. - For a single attribute, pass a single
VertexAttribFormat.
Parameters
format
VertexAttribFormat | VertexAttribFormat[]
Vertex attribute format(s).
data
TypedArray
Typed array with vertex data.
stepMode?
VertexStepMode
Optional step mode (e.g., 'vertex', 'instance').
Returns
StructuredBuffer<unknown>
The created StructuredBuffer.
Inherited from
Primitive.createAndSetVertexBuffer
setVertexBuffer()
setVertexBuffer(
buffer,stepMode?):StructuredBuffer<unknown>
Defined in: libs/scene/src/render/primitive.ts:299
Add an existing vertex buffer to the primitive.
Ownership note: The primitive retains the buffer; it will be released or disposed when replaced or on dispose.
Parameters
buffer
StructuredBuffer
The vertex buffer to add.
stepMode?
VertexStepMode
Optional step mode for the buffer.
Returns
StructuredBuffer<unknown>
The same buffer.
Inherited from
createAndSetIndexBuffer()
createAndSetIndexBuffer(
data,dynamic?):IndexBuffer<unknown>
Defined in: libs/scene/src/render/primitive.ts:317
Create an index buffer from data and set it on the primitive.
Parameters
data
Uint16Array<ArrayBuffer> | Uint32Array<ArrayBuffer>
Index data as Uint16Array or Uint32Array.
dynamic?
boolean
Whether the index buffer is dynamic (unmanaged).
Returns
IndexBuffer<unknown>
The created IndexBuffer.
Inherited from
Primitive.createAndSetIndexBuffer
setIndexBuffer()
setIndexBuffer(
buffer):void
Defined in: libs/scene/src/render/primitive.ts:335
Set or replace the index buffer.
Ownership note: The primitive retains the buffer; previous buffer is released. Marks the vertex layout dirty and invalidates bundles.
Parameters
buffer
IndexBuffer<unknown>
The index buffer to set (non-null).
Returns
void
void
Inherited from
getIndexBuffer()
getIndexBuffer():
IndexBuffer<unknown>
Defined in: libs/scene/src/render/primitive.ts:350
Get the current index buffer.
Returns
IndexBuffer<unknown>
The index buffer, or undefined/null if none set.
Inherited from
draw()
draw():
void
Defined in: libs/scene/src/render/primitive.ts:358
Issue a non-instanced draw for the current topology and range.
Preconditions: A valid vertex layout and indexCount > 0.
Returns
void
Inherited from
drawInstanced()
drawInstanced(
numInstances):void
Defined in: libs/scene/src/render/primitive.ts:371
Issue an instanced draw for the current topology and range.
Preconditions: A valid vertex layout and indexCount > 0.
Parameters
numInstances
number
Number of instances to draw.
Returns
void
Inherited from
onDispose()
protectedonDispose():void
Defined in: libs/scene/src/render/primitive.ts:380
Dispose this primitive and release associated GPU resources.
Returns
void
Inherited from
getBoundingVolume()
getBoundingVolume():
BoundingVolume
Defined in: libs/scene/src/render/primitive.ts:405
Get the bounding volume associated with this primitive.
Returns
The current bounding volume, or null if not set.
Inherited from
setBoundingVolume()
setBoundingVolume(
bv):void
Defined in: libs/scene/src/render/primitive.ts:416
Set or replace the bounding volume of this primitive.
Triggers registered bounding-volume change callbacks.
Parameters
bv
The bounding volume to set.
Returns
void
void
Inherited from
raycast()
raycast(
ray):number
Defined in: libs/scene/src/render/primitive.ts:428
Test intersection against the current axis-aligned bounding box (AABB).
Parameters
ray
Ray
Ray to test against the primitive's AABB (derived from its bounding volume).
Returns
number
The distance from ray origin to the intersection, or null if no hit or no AABB.
Inherited from
computeTangent()
protectedstaticcomputeTangent(v0,v1,v2,uv0,uv1,uv2,normal):number[]
Defined in: libs/scene/src/shapes/shape.ts:44
Parameters
v0
number[]
v1
number[]
v2
number[]
uv0
number[]
uv1
number[]
uv2
number[]
normal
number[]
Returns
number[]
clone()
abstractclone():this
Defined in: libs/scene/src/shapes/shape.ts:100
Create a shallow clone: copies topology, draw range, and buffers.
Note: Buffers are re-retained on the new primitive.
Returns
this
A cloned Primitive instance.
Implementation of
Clonable.clone
Overrides
normalizeOptions()
normalizeOptions(
options?):DeepRequireOptionals<T>
Defined in: libs/scene/src/shapes/shape.ts:115
Normalize options
Parameters
options?
T
creation options
Returns
DeepRequireOptionals<T>
Normalized creation options