Views
ModelJson.views.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Argument } from "./Argument.js";
import type { PropertyNode } from "./PropertyNode.js";
import type { ViewMethod } from "./ViewMethod.js";
/**
* A `views[]` entry — `{key, method, args?, properties?}`: ONE method
* `view`; args `position`/`target`/`up`/`projection`/`fov`/`height`, both
* lenses storable at once, only the active projection's read at evaluate.
* `properties` carries display style (`background`/`shading`/`exposure`/
* `shadows`/`axes`).
*/
export type ViewNode = {
/**
* identity — unique in the document's one key namespace, every lane.
*/
key: string,
/**
* intent — editor chrome, printed VERBATIM (not an expression); absent
* falls back to `key` (`SceneMenu.ts`: `view.label ?? view.key`).
*/
label?: string,
/**
* intent — the one closed-literal views-lane head, `view`.
*/
method: ViewMethod,
/**
* intent — the pose args (`position`/`target`/`up`), `projection`, and
* both lenses (`fov`/`height`).
*/
args?: Array<Argument>,
/**
* intent — display style (`background`/`shading`/`exposure`/`shadows`/`axes`).
*/
properties?: Array<PropertyNode>, };// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
/**
* The one views-lane head method, a closed enum — a view is ONE node, not
* a chain: `method` is fixed to `view`; its `projection` ARG (not the
* method) picks perspective or orthographic — one class/struct serving
* both projections at once, as SketchUp's `Camera` and Blender's `Camera`
* (both lens fields present regardless of the active one) do.
*/
export type ViewMethod = "view";// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Argument } from "./Argument.js";
/**
* One entry of a `properties` list — `{ method, args? }`, OPEN at the shape
* tier: which methods are legal in which home is a registry check
* (`crate::validate::registry` for an object's placement properties,
* `crate::validate::lanes` for a material/layer/pattern's own), never a
* schema enum.
*/
export type PropertyNode = {
/**
* intent — the registry-checked property method.
*/
method: string,
/**
* intent — the method's arguments.
*/
args?: Array<Argument>, };// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
/**
* intent — `properties.visible`: absent/`true` = every view, `false` = none,
* a list = exactly those view keys, an arrow `(camera) => boolean` = the
* cameras the function holds for (its source text, run at render resolve time
* against the session's camera by `Sight::satisfies`, because a component's
* own `views` are ignored once it is placed and the host's camera is unknown
* inside it). Empty list refused at evaluate. Render ships it as `All(bool)`
* against the session's `Sight` (`render::placement_shown`): the active view's
* pose, else the free camera the host reported; a list holds only in a named
* view, and with no pose at all nothing holds.
*/
export type PerViewFlag = boolean | Array<string> | string;// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
/**
* One value + its domain — the shape of every arg (a parameter's value, a
* step arg, a properties arg). `min`/`max` are numeric-only; `options`, when
* present, is the arg's whole domain.
*/
export type Argument = {
/**
* identity — the arg's name; meant unique among its owning node's
* `args`, but nothing rejects a duplicate — `node_args::node_arg_input`/
* `set_node_arg` read and write only the FIRST match, silently ignoring
* any later one.
*/
key: string,
/**
* intent — an expression string, authored and underivable; may be
* empty (an unselected file parameter authors nothing, so this arg's
* min/max/options do not apply).
*/
input: string,
/**
* intent — expression → number, inclusive lower bound.
*/
min?: string,
/**
* intent — expression → number, inclusive upper bound.
*/
max?: string,
/**
* intent — expression → non-empty array, the arg's whole domain.
*/
options?: string,
/**
* intent — expression → `[{ time, value }]`, explicit key pairs on the
* document's one timeline (USD `timeSamples`, Blender `keyframe_points`).
* Legal ONLY on the `value` arg of a `length`/`number`/`angle`/`integer`
* PARAMETER — the parameter is the clip; any other arg fails loud. The
* host plays it (`engine_animation_set`); the engine never samples it.
*/
keyframes?: string,
/**
* intent — expression → boolean: whether the configurator shows this
* parameter to the buyer (true = shown, absent = shown; a parameter
* hidden this way still evaluates and still feeds every expression that
* reads it). Legal ONLY on the `value` arg of a PARAMETER — any other
* arg fails loud. It may read any parameter of the scope, so a
* parameter can be conditional on another.
*/
visible?: string, };Catalog methods
Every engine_catalog node whose context names "views".
6 catalog method(s) whose context names "views".
axes
Axes · step · returns boolean · context: views
Default key: axes.
World-axes visibility for this view; absent = host default (on).
| key | type | default | min | max | options | tooltip |
|---|---|---|---|---|---|---|
value | boolean | World-axes visibility for this view; absent = host default (on). |
background
Background · step · returns color · context: views
Default key: background.
A view's clear color.
| key | type | default | min | max | options | tooltip |
|---|---|---|---|---|---|---|
value | color | Viewport clear color. Absent = the host's own background. |
exposure
Exposure · step · returns number · context: views
Default key: exposure.
A view's metered-exposure multiplier; realistic shading only.
| key | type | default | min | max | options | tooltip |
|---|---|---|---|---|---|---|
value | number | 0 | Linear multiplier on metered auto-exposure. Shading 'realistic' only; absent = 1. |
shading
Shading · step · returns string · context: views
Default key: shading.
A view's display mode.
| key | type | default | min | max | options | tooltip |
|---|---|---|---|---|---|---|
value | string | ['wireframe', 'shaded', 'realistic', 'xray'] | 'shaded' is the self-lit matcap editing look (default); 'realistic' is the only mode materializing lights and the environment; 'wireframe' is the line overlay; 'xray' is the shaded look with see-through faces. |
shadows
Shadows · step · returns boolean · context: views
Default key: shadows.
Analytic sun-study overlay for this view; absent = off.
| key | type | default | min | max | options | tooltip |
|---|---|---|---|---|---|---|
value | boolean | Analytic sun-study overlay for this view; absent = off. |
view
View · step · returns view · context: views
Default key: view.
A camera pose with a projection switch — perspective reads
fov, orthographic readsheight.
| key | type | default | min | max | options | tooltip |
|---|---|---|---|---|---|---|
position | point | [1000, 1000, 1000] | Eye position. | |||
target | point | [0, 0, 0] | Look-at point; must differ from position. | |||
up | vector | [0, 0, 1] | Up direction; must not be parallel to (target - position). | |||
projection | string | 'perspective' | ['perspective', 'orthographic'] | Which lens is read — 'perspective' (fov) or 'orthographic' (height). | ||
fov | number | 45 | 1 | 179 | Vertical field of view, degrees — read only when projection is 'perspective'. | |
height | length | 2000 | 0 | World height seen by the frame, mm, not an elevation — read only when projection is 'orthographic'. |