Collection of candidate viewpoints across every space in the source SpaceGraph. Produced by a ViewpointSampler and consumed by a TourPlanner.

nodesBySpaceId lets the tour planner pull the candidate set for each space without rescanning the flat list — most planners pick one viewpoint per visited space, so the per-space bucket is the natural access pattern.

interface ViewpointGraph {
    nodes: readonly ViewpointGraphNode[];
    nodesBySpaceId: ReadonlyMap<string, readonly ViewpointGraphNode[]>;
}

Properties

nodes: readonly ViewpointGraphNode[]

All viewpoints across all spaces.

nodesBySpaceId: ReadonlyMap<string, readonly ViewpointGraphNode[]>

Viewpoints grouped by their owning SpaceGraphNode.id. Empty arrays are valid — some spaces may have no usable viewpoints (e.g. tiny utility closets the sampler couldn't place a clearance-respecting camera in).