Skip to content
ParaShape

Views

ModelJson.views. One node per view. visible / section active use PerViewFlag.

// 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?}`, the same node
 * shape a materials/layers entry carries: ONE method, `view`, taking
 * `position`/`target`/`up`, `projection` (`'perspective'` | `'orthographic'`,
 * default `'perspective'`), and both lenses — `fov` (perspective) and
 * `height` (orthographic) — may be stored at once; only the active
 * projection's lens is 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).
 */
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`, and its `projection` ARG (not the
 * method) picks perspective or orthographic. SketchUp `Sketchup::Camera` is
 * ONE class for both projections (`perspective?`/`perspective=`; `fov`
 * "only applicable to perspective cameras"; `height` "only valid if it is
 * not a perspective camera" — https://ruby.sketchup.com/Sketchup/Camera.html).
 * Blender's `bpy.types.Camera` is the same shape: one `type` enum
 * (`'PERSP'`/`'ORTHO'`/`'PANO'`) plus BOTH lens fields present at once —
 * `lens` ("Perspective Camera lens value in millimeters") and
 * `ortho_scale` ("Orthographic Camera scale (similar to zoom)") —
 * https://docs.blender.org/api/current/bpy.types.Camera.html.
 */
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`), 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. Empty list refused at evaluate. Render
 * ships it as `All(bool)` against the session's active view
 * (`render::placement_shown`); the free camera (no active view) is in no list.
 */
export type PerViewFlag = boolean | Array<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, unique among its owning node's `args`.
 */
key: string, 
/**
 * geometry — an expression string; 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, };

Catalog methods

Every engine_catalog node whose context names "views" — the one head (view, closed to projection: 'perspective' | 'orthographic') plus the five style properties (background/shading/exposure/shadows/axes), matching ViewNode.properties's own doc comment above.

6 catalog method(s) whose context names "views".

axes

Axes · step · returns binary · context: views

Default key: axes.

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

keytypedefaultminmaxoptionstooltip
valuebinaryWorld-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']'shaded' is the self-lit matcap editing look (default); 'realistic' is the only mode materializing lights and the environment; 'wireframe' is the line overlay.

shadows

Shadows · step · returns binary · context: views

Default key: shadows.

Analytic sun-study overlay for this view; absent = off.

keytypedefaultminmaxoptionstooltip
valuebinaryAnalytic 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