@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
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
view
Returns
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
key
string
Returns
ChainNode<View, Resolved<{ data: ViewSpaceData; extent: BoundingBox2d; frame: Transformation; }>>