Skip to content
Shapemetry

@huukhanhnguyen/model / lanes/views/nodes

lanes/views/nodes

evaluateView()

evaluateView(model, key): Resolved<{ data: ViewSpaceData; extent: BoundingBox2d; frame: Transformation; }>

Resolve one views[] entry (a saved query over the 3D scene — head look direction + filter + style, see views.ts; scale and crop live on the sheet placement, not here) into flat drawing data documents. Pulls a persistent, dirty-gated ViewNode (nodes/LaneNode.ts).

Parameters

model

Model

key

string

Returns

Resolved<{ data: ViewSpaceData; extent: BoundingBox2d; frame: Transformation; }>


foldView()

foldView(model, view): FoldedView

Config-fold one views[] entry against THIS model — the door every consumer that only needs the DEFINITION (camera pose, style name, family) must use. A bare foldViewChain(view) has no cameras lane and no parameter scope, so a view3d head naming a cameras[] key folded to the hard-coded default pose (1000,1000,1000 → origin) and the 3D viewport framed empty space.

Parameters

model

Model

view

View

Returns

FoldedView


viewNodeOf()

viewNodeOf(model, key): ChainNode<View, Resolved<{ data: ViewSpaceData; extent: BoundingBox2d; frame: Transformation; }>>

A view stays a ChainNode: the head picks Flat/Section/Projection and viewFilter/viewStyle remain stackable steps. A LaneNode would fit a one-record cameras[] entry; filters genuinely stack, so the existing class is the truth — no thirteenth node class.

Parameters

model

Model

key

string

Returns

ChainNode<View, Resolved<{ data: ViewSpaceData; extent: BoundingBox2d; frame: Transformation; }>>

Last updated: 📖 1 min readEdit on GitHub