MotionScript

@motion-script/core


@motion-script/core / Graphics3DOp

Type Alias: Graphics3DOp

Graphics3DOp = { kind: "push"; transform?: Transform3D; } | { kind: "pop"; } | { geometry: Geometry3D; kind: "mesh"; material: Material3D | readonly Material3D[]; transform?: Transform3D; } | { kind: "light"; light: Light3D; transform?: Transform3D; } | { colors?: readonly Color[]; geometry: Geometry3D; instances: readonly Transform3D[]; kind: "instances"; material: Material3D; transform?: Transform3D; } | { geometry: Geometry3D; kind: "points"; material: Material3D; transform?: Transform3D; } | { geometry: Geometry3D; kind: "line"; material: Material3D; mode: LineMode3D; transform?: Transform3D; } | { kind: "sprite"; material: Material3D; transform?: Transform3D; } | { animation?: readonly ModelAnimation3D[]; kind: "model"; override?: Readonly<Record<string, Material3D>>; src: string; transform?: Transform3D; }

Defined in: render3d/graphics3d.ts:48

One recorded operation in a Graphics3D command list.

Hierarchy is expressed with push/pop; a drawable's geometry and material are inline sub-descriptors, not ops, because in a 3D scene graph they are properties of an object rather than children of it.

Union Members

Type Literal

{ kind: "push"; transform?: Transform3D; }


Type Literal

{ kind: "pop"; }


Type Literal

{ geometry: Geometry3D; kind: "mesh"; material: Material3D | readonly Material3D[]; transform?: Transform3D; }


Type Literal

{ kind: "light"; light: Light3D; transform?: Transform3D; }


Type Literal

{ colors?: readonly Color[]; geometry: Geometry3D; instances: readonly Transform3D[]; kind: "instances"; material: Material3D; transform?: Transform3D; }

colors?

optional colors?: readonly Color[]

Per-instance tint. Needs a material that reads instance colour.

geometry

geometry: Geometry3D

instances

instances: readonly Transform3D[]

Per-instance placement. Length drives the instance count.

kind

kind: "instances"

material

material: Material3D

transform?

optional transform?: Transform3D


Type Literal

{ geometry: Geometry3D; kind: "points"; material: Material3D; transform?: Transform3D; }


Type Literal

{ geometry: Geometry3D; kind: "line"; material: Material3D; mode: LineMode3D; transform?: Transform3D; }


Type Literal

{ kind: "sprite"; material: Material3D; transform?: Transform3D; }


Type Literal

{ animation?: readonly ModelAnimation3D[]; kind: "model"; override?: Readonly<Record<string, Material3D>>; src: string; transform?: Transform3D; }

animation?

optional animation?: readonly ModelAnimation3D[]

kind

kind: "model"

override?

optional override?: Readonly<Record<string, Material3D>>

Replace materials on the loaded graph, keyed by mesh or material name.

src

src: string

transform?

optional transform?: Transform3D