LineSegmentsGeometry class Geometry
A batch of thick, disconnected line segments, each expanded into a camera-facing quad of a fixed world-space width in the vertex shader and drawn in a single instanced call.
Native line primitives render one pixel wide on every backend;
LineSegmentsGeometry is the styled alternative for bulk segment sets, a
model wireframe from MeshData.extractEdges, debug visualization, or any
large set of independent segments. The expansion runs on the GPU, so the
segments cost no per-frame CPU work (PolylineGeometry remains the
choice for connected paths that need joins, caps, and dashes).
Pair it with any material; the expanded ribbon carries the standard
vertex outputs (camera-facing normals, u along each segment and v
across it, white vertex color). Segment endpoints are in the geometry's
local space and the owning node's transform places the whole batch.
When the source LineSegmentData carries normals, normalOffset pushes
each endpoint off the surface along them at construction, which keeps a
wireframe overlay from z-fighting the mesh it traces.
Constructors
- LineSegmentsGeometry(LineSegmentData segments, {double width = 0.01, double normalOffset = 0.0})
-
Creates a segment batch from
segments.
Properties
- bindsModelTransformInstance → bool
-
Whether the color encoder should bind the node's model transform as a
one-element instance-rate buffer at the slot after this geometry's
vertex streams.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- instancedVertexLayout → VertexLayoutDescriptor?
-
The explicit pipeline vertex layout this geometry's vertex shader
expects, or null for the shader bundle's default interleaved layout.
no setter
- isDoubleSided → bool
-
Whether this geometry should be drawn without back-face culling.
no setter
- isReadable → bool Geometry
-
Whether this geometry retains CPU-side vertex data, making
extractMeshData available.
no setterinherited
- localBoundingSphere → Sphere?
-
Local-space bounding sphere paired with localBounds. Same
nullability semantics.
no setterinherited
- localBounds → Aabb3?
-
Local-space axis-aligned bounding box of this geometry's vertex
positions, or
nullif 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) leftnullunless the caller assigns it via setLocalBounds.no setterinherited - materialVertexVariant → String
-
The
.fmatvertex-variant key for this geometry's mesh type, used to select a custom material's generated vertex shader (seeMaterial.materialVertexShader). Unskinned geometry is'unskinned'; SkinnedGeometry overrides this to'skinned'.no setter - primitiveType ↔ PrimitiveType
-
How the vertex/index data is assembled into primitives when drawn.
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- segmentCount → int
-
The number of segments drawn.
no setter
- vertexShader → Shader
-
The vertex shader used when rendering this geometry.
no setterinherited
- width ↔ double
-
The ribbon's world-space width. Takes effect on the next frame.
getter/setter pair
Methods
-
bind(
RenderPass pass, TransientWriter transientsBuffer, Matrix4 modelTransform, Matrix4 cameraTransform, Vector3 cameraPosition, {Shader? shaderOverride}) → void -
Binds vertex/index buffers and per-frame uniforms onto
passin preparation for a draw call.override -
draw(
RenderPass pass, {int instanceCount = 1}) → void -
Emits this geometry's draw call after bind has prepared the render pass.
override
-
extractMeshData(
) → MeshData Geometry -
Copies this geometry's retained CPU vertex/index data out as an
isolate-transferable MeshData snapshot.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
setCustomAttribute(
String name, Float32List data, {required int components}) → void Geometry -
Attaches a custom per-vertex attribute stream named
name, matching a material'sattributesentry (and the generated shader'sin <name>).inherited -
setIndices(
BufferView indices, IndexType indexType) → void -
Binds an already-uploaded index buffer view, with element width
determined by
indexType.inherited -
setJointsTexture(
Texture? texture, int width) → void -
Hook for skinned geometries to receive the joints texture computed
by Skin.getJointsTexture.
inherited
-
setLocalBounds(
Aabb3? aabb, Sphere? sphere) → void -
Override the bounds. Useful for callers driving setVertices from
a caller-managed
gpu.DeviceBufferwho want to participate in bounds-driven scene queries (e.g. frustum culling).inherited -
setVertexShader(
Shader shader) → void -
Assigns the vertex
shaderused when this geometry is drawn.inherited -
setVertexShaderName(
String name) → void -
Assigns the vertex shader by
namefrom baseShaderLibrary.inherited -
setVertices(
BufferView vertices, int vertexCount) → void -
Binds an already-uploaded vertex buffer view as this geometry's
vertex source.
inherited
-
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.DeviceBufferand uploadsvertices(and optionalindices) into it in one step.inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited