Skip to content
ParaShape

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).

keytypedefaultminmaxoptionstooltip
valuebooleanWorld-axes visibility for this view; absent = host default (on).

background

Background · step · returns color · context: views

Default key: background.

A view's clear color.

keytypedefaultminmaxoptionstooltip
valuecolorViewport 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.

keytypedefaultminmaxoptionstooltip
valuenumber0Linear 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.

keytypedefaultminmaxoptionstooltip
valuestring['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.

keytypedefaultminmaxoptionstooltip
valuebooleanAnalytic 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 reads height.

keytypedefaultminmaxoptionstooltip
positionpoint[1000, 1000, 1000]Eye position.
targetpoint[0, 0, 0]Look-at point; must differ from position.
upvector[0, 0, 1]Up direction; must not be parallel to (target - position).
projectionstring'perspective'['perspective', 'orthographic']Which lens is read — 'perspective' (fov) or 'orthographic' (height).
fovnumber451179Vertical field of view, degrees — read only when projection is 'perspective'.
heightlength20000World height seen by the frame, mm, not an elevation — read only when projection is 'orthographic'.
📖 2 min read