Geometry class abstract Geometry

Vertex (and optional index) data along with the vertex shader used to transform it.

Geometry is the geometry half of a MeshPrimitive — the shading half is supplied by a Material. Built-in subclasses cover the two supported vertex layouts:

  • UnskinnedGeometry — 48-byte vertices: position, normal, UV, color.
  • SkinnedGeometry — 80-byte vertices: unskinned + 4 joint indices + 4 joint weights. Used in conjunction with a Skin.

Construct an instance directly and call uploadVertexData (or setVertices/setIndices with already-uploaded buffer views) to supply mesh data. For procedurally generated meshes, MeshGeometry and GeometryBuilder assemble a Geometry from vertex attribute arrays without packing vertex bytes by hand.

Implementers

Constructors

Geometry()

Properties

hashCode int
The hash code for this object.
no setterinherited
localBoundingSphere → Sphere?
Local-space bounding sphere paired with localBounds. Same nullability semantics.
no setter
localBounds → Aabb3?
Local-space axis-aligned bounding box of this geometry's vertex positions, or null if bounds are unknown. Computed by uploadVertexData for procedural geometry, populated from baked scene-package bounds for imported geometry, and (for the advanced setVertices path where the caller manages its own GPU buffer) left null unless the caller assigns it via setLocalBounds.
no setter
primitiveType ↔ PrimitiveType
How the vertex/index data is assembled into primitives when drawn.
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
vertexShader Shader
The vertex shader used when rendering this geometry.
no setter

Methods

bind(RenderPass pass, HostBuffer transientsBuffer, Matrix4 modelTransform, Matrix4 cameraTransform, Vector3 cameraPosition) → void
Binds vertex/index buffers and per-frame uniforms onto pass in preparation for a draw call.
draw(RenderPass pass, {int instanceCount = 1}) → void
Emits this geometry's draw call after bind has prepared the render pass.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
setIndices(BufferView indices, IndexType indexType) → void
Binds an already-uploaded index buffer view, with element width determined by indexType.
setJointsTexture(Texture? texture, int width) → void
Hook for skinned geometries to receive the joints texture computed by Skin.getJointsTexture.
setLocalBounds(Aabb3? aabb, Sphere? sphere) → void
Override the bounds. Useful for callers driving setVertices from a caller-managed gpu.DeviceBuffer who want to participate in bounds-driven scene queries (e.g. frustum culling).
setVertexShader(Shader shader) → void
Assigns the vertex shader used when this geometry is drawn.
setVertices(BufferView vertices, int vertexCount) → void
Binds an already-uploaded vertex buffer view as this geometry's vertex source.
toString() String
A string representation of this object.
inherited
uploadVertexData(ByteData vertices, int vertexCount, ByteData? indices, {IndexType indexType = gpu.IndexType.int16}) → void
Allocates a gpu.DeviceBuffer and uploads vertices (and optional indices) into it in one step.

Operators

operator ==(Object other) bool
The equality operator.
inherited