Types
The node graph's own type names (33) and the data each one is. A flat set — these are the graph's type identifiers, not TypeScript classes.
| | name | data type | description |
|---|---|---|---|
| | curveEntity | { id: string, geometry: NurbsCurveJSON, visible?: boolean, layer?: string, material?: string, label?: string, sourceKey?: string } | 1D wire — line / arc / bezier / nurbs curve. NO type tag — kind is sniffed from the geometry shape (curve geometry = NurbsCurveJSON, has controlPoints). |
| | faceEntity | { id: string, geometry: { loops: [x,y,z][][], uvMatrix?: number[16] }, visible?: boolean, layer?: string, material?: string, label?: string, sourceKey?: string } | Flat bounded region; a solid is faceEntity[]. NO type tag — kind is sniffed from the geometry shape (face geometry has loops). loops = 3D world polygons, outer loop first then holes; uvMatrix = row-major 4×4 plane→world frame for UV / 2D projection. |
| | pointEntity | { id: string, geometry: [x,y,z], visible?: boolean, layer?: string, material?: string, label?: string, sourceKey?: string } | Point marker — render-only, from the pointEntity generator. NO type tag — kind is sniffed from the geometry shape (point geometry = [x,y,z]). |
| | groupEntity | { id: string, definition: string, transformation: number[16], material?: string, layer?: string, name?: string, visible?: boolean } | ONE placement of a GroupDefinition (SketchUp component model). `definition` = id of the shared content `{ id: string, entities: EntityJSON[] }` in the model's runtime definitions map — child entities stored ONCE, the definition itself is NOT a scene entity. `transformation` = column-major 4×4 (translation at indices 12,13,14). A node's value is groupEntity[]: N placements, 1 shared definition. Kind = has `definition` (no `geometry`). |
| | entity | (curveEntity|faceEntity|pointEntity|groupEntity)[] | Generic ops over any scene entity (move/rotate/array/mirror…). An entity has NO type tag — kind is discriminated by its geometry shape (a groupEntity by its `definition` field). |
| | material | MaterialJSON | Material definition |
| | layer | LayerJSON | Layer definition |
| | number | number | Unitless number |
| | length | number (mm) | Distance (mm) |
| | angle | number (deg) | Degrees |
| | binary | 0 | 1 | 0 or 1 — multiply with a dimension to collapse it |
| | string | string | Text (single-quoted literal) |
| | color | #rrggbb | #rrggbb hex string |
| | vector | [x,y,z] | Direction [x, y, z] or [x, y] (z defaults to 0) |
| | point | [x,y,z] | Position [x, y, z] or [x, y] (z defaults to 0) |
| | plane | {point:[x,y,z],normal:[nx,ny,nz]} | Infinite plane: a point on the plane + unit normal. Build via Plane.fromPointNormal. |
| | axis | {origin:[x,y,z],direction:[dx,dy,dz]} | Directed half-line: origin + unit direction (magnitude dropped). Build via Axis.fromPointDirection / Axis.fromTwoPoints. |
| | curve | NurbsCurveJSON { degree, knots, controlPoints, weights } | Curve geometry value (NURBS) — the geometry of a curveEntity. Use with Curve.* functions; a curveEntity arg unwraps to this. |
| | face | { loops: [x,y,z][][], uvMatrix?: number[16] } | Face geometry value — the geometry of a faceEntity. Use with Face.* functions; a faceEntity arg unwraps to this. |
| | surface | NurbsSurfaceJSON { degreeU, degreeV, knotsU, knotsV, controlPoints, weights } | NURBS surface value (computation only — not a scene entity). Use with Surface.* functions; a curved generator tessellates one to faceEntity[]. |
| | function | (args) => value | Lambda expression |
| | model | string (model ref) | Model reference |
| | object | object | Parameter group |
| | group | object | Visual group |
| | area | number | Area unit |
| | volume | number | Volume unit |
| | mass | number | Mass unit |
| | currency | number | Currency |
| | font | FontData | Opentype-parsed font object (fetch + parse happens async in Phase 1 via store.loadFonts). Returned by loadFont parameter; consumed synchronously by text generator's font arg. |
| | image | string | Image reference — URL or data URI, returned by loadImage parameter, consumed by material texture args. |
| | url | string (uri) | Asset URI — bare-id, https://, or data: URI. Used as the input field value for loadModel / loadFont / loadImage parameters. |
| | fn | Function | Callback function: (entity, index) => value. Accepted alongside a static value for per-entity variation. |
| | keyValue | {key:string,value:unknown} | Key-value override pair. Used by a node's dynamic args (DynamicArgDef) to target one specific parameter inside a referenced value by name — e.g. loadModel's replace* args drive a promoted parameter of the loaded sub-model. |