SpatialPanel class

A floating UI panel in VR space. Renders a rectangle with background, border, and content callback.

Inheritance

Constructors

SpatialPanel({String name = 'panel', required CameraRig cameraRig, double panelWidth = 1.0, double panelHeight = 0.6, Color backgroundColor = const Color(0xE0161B22), Color borderColor = const Color(0xFF30363D), double borderWidth = 1, double cornerRadius = 8, double opacity = 1.0, void onRenderContent(Canvas canvas, Size panelSize)?, bool lockY = true})

Properties

backgroundColor ↔ Color
getter/setter pair
borderColor ↔ Color
getter/setter pair
borderWidth ↔ double
getter/setter pair
cameraRig → CameraRig
finalinherited
childCount → int
no setterinherited
children → List<Node>
no setterinherited
cornerRadius ↔ double
getter/setter pair
hashCode → int
The hash code for this object.
no setterinherited
isRenderable → bool
Whether this node contributes pixels during a render pass.
no setteroverride
isTransparent → bool
Whether this node requires back-to-front alpha ordering.
no setteroverride
localAabb → Aabb
Override to provide local-space bounding box.
no setterinherited
localMatrix → Matrix4
Local transform matrix.
no setterinherited
lockY → bool
If true, only rotates on Y axis (cylindrical billboarding).
finalinherited
name ↔ String
getter/setter pairinherited
onRenderContent ↔ void Function(Canvas canvas, Size panelSize)?
Custom render callback for panel content.
getter/setter pair
opacity ↔ double
getter/setter pair
ownWorldAabb → Aabb
Computes the AABB of this node's own geometry in world space (without descendants). Used for self-hits in raycasting and physics.
no setterinherited
panelHeight ↔ double
Panel height in world units.
getter/setter pair
panelWidth ↔ double
Panel width in world units.
getter/setter pair
parent → Node?
no setterinherited
pointable ↔ Pointable?
getter/setter pairinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
transform → Transform3D
finalinherited
visible ↔ bool
getter/setter pairinherited
worldAabb → Aabb
Computes the AABB of this node AND all its descendants in world space. Group nodes have no geometry, so their own box would be a phantom ±0.5m cube at their position — using it for culling wrongly discarded entire subtrees. The union is cached and invalidated on any transform or hierarchy change in the subtree.
no setterinherited
worldMatrix → Matrix4
World transform matrix (accumulated from root).
no setterinherited
worldPosition → Vector3
World position extracted from world matrix.
no setterinherited

Methods

addChild(Node child) → void
inherited
collectVisible() → List<Node>
Collects all visible nodes in the tree.
inherited
findChild(String name) → Node?
Finds a child by name recursively.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onRender(Canvas canvas, Matrix4 viewProjection) → void
Override for custom rendering.
override
onTransformChanged() → void
Called when any transform property changes.
inherited
onUpdate(double dt) → void
Override for custom per-frame logic.
inherited
removeChild(Node child) → void
inherited
removeFromParent() → void
inherited
render(Canvas canvas, Matrix4 viewProjection) → void
Renders this node and children to the canvas.
inherited
toString() → String
A string representation of this object.
inherited
traverse(void visitor(Node child)) → void
Traverses the tree depth-first, calling visitor for each node.
inherited
update(double dt) → void
Called once per frame before rendering.
inherited

Operators

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