One traversable space ("room") in the building. Produced by a SpaceExtractor — typically from an IfcSpace for IFC sources, or from horizontal-slab clustering for the geometry fallback.

Carries the world-space bounds the viewpoint sampler operates inside, the floor elevation the camera should rest above, and back-references to the source SceneObject / DataObject for pick-back and label resolution.

interface SpaceGraphNode {
    aabb: AABB3;
    centroid: Vec3;
    dataObjectId?: string;
    edges: readonly SpaceGraphEdge[];
    floorElevation: number;
    id: string;
    label?: string;
    sceneObjectId?: string;
}

Properties

aabb: AABB3

World-space AABB of the space's volume.

centroid: Vec3

World-space centroid — the default "centre of the room" viewpoint anchor.

dataObjectId?: string

DataObject id, e.g. an IfcSpace global id.

edges: readonly SpaceGraphEdge[]

Edges (portals to adjacent spaces) incident on this node. Same instances as in SpaceGraph.edges; duplicated as a back-reference for cheap adjacency lookups.

floorElevation: number

World-space floor elevation. Used by the sampler to place the camera eye options.eyeHeight units above the floor instead of at room-centroid altitude. Coordinate depends on the scene's worldUp.

id: string

Unique node id within the parent SpaceGraph.

label?: string

Human-readable label — typically IfcSpace.LongName or .Name. Surfaced on the corresponding CameraTourWaypoint.label for narration overlays.

sceneObjectId?: string

SceneObject id backing this space, if one exists.