IModelNode ​

Contract 2.0.0 · package sha256 a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e · generated from configurator-runtime.d.ts by services/onsite-scripter/scripts/build-contract-docs.mjs; edit the source, not this file.

Interface · import type { IModelNode } from '@holostep-configurators/runtime-client/contract'; · stable · since 2.0.0 · section 21. Stored data (vendored; replaces @holo/interfaces)

Stored GLB node. Fields not declared pass through, as on every node (IConfiguratorNode). dek, encryption and keyRef never appear in any output; plainGlbUrl and plainOptGlbUrl are input-only.

Members ​

Member Kind Summary
type property Always 'ModelNode'.
glbUrl property The GLB (or .holo).
optGlbUrl? property The optimized twin the runtime prefers when present.
plainGlbUrl? property Input-only: the public twin the runtime draws when the .holo fails to fetch, decrypt or parse ('asset-degraded').
plainOptGlbUrl? property Input-only: the twin of optGlbUrl, drawn and resolved as plainGlbUrl is.
encrypted? property True for an encrypted (.holo) asset.
position property Metres, in world space (or the parent model's, with space: 'parent').
rotation property Euler XYZ, radians (stored format, unchanged).
scale property 1 on each axis is the authored size.
defaultNodeId? property The nodeId of its selected child; placed, and checked when applyPatch writes it, as IGroupNode.defaultNodeId (spec section 6.9, ID10).
globalMaterialList? property Which of its meshes global-material groups dress.
magneticPlanes? property Its connector-plane configs (spec section 6.12).
space? property · labs 'parent': position, rotation and scale are local to the nearest ModelNode ancestor, so the child moves, hides and disposes with it.
tryOn? property · labs The node's try-on rig record, which Holostep's rig pipeline writes and the runtime only reads: kind is the body part the rig fits, and approved is set once a rig passed review, with format, the rig file's format…
tryOnUrl? property · labs The approved rig's GLB (tryOn).
tryOnCandidateUrl? property · labs A candidate rig awaiting review.

Inherited from IConfiguratorNode: _id, nodeId, label, order, enabled, expanded, createdAt, updatedAt, children, thumbnailUrl, attributes.

Declaration ​

ts
export interface IModelNode extends IConfiguratorNode {
  type: 'ModelNode';
  glbUrl: string;
  optGlbUrl?: string;
  plainGlbUrl?: string;
  plainOptGlbUrl?: string;
  encrypted?: boolean;
  position: Point3;
  rotation: Point3;
  scale: Point3;
  defaultNodeId?: string;
  globalMaterialList?: IGlobalMaterialListEntry[];
  magneticPlanes?: IMagneticPlaneConfig[];
  space?: 'world' | 'parent';
  tryOn?: {
    kind: TryOnKind;
    approved?: {
      format: number;
    };
  };
  tryOnUrl?: string;
  tryOnCandidateUrl?: string;
}

Generic-API test (spec 3.1) ​

Rule Result
1. Neutral name pass: IModelNode names no product
2. A precedent not recorded: no ledger row (coverage.json) names this member or its owner
3. Two apps, or labs not recorded: no ledger row names this member or its owner
4. The cheaper fix first not recorded per member (Appendix B decides it per need)