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).
| key | type | default | min | max | options | tooltip |
|---|---|---|---|---|---|---|
value | binary | 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'] | '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.
| key | type | default | min | max | options | tooltip |
|---|---|---|---|---|---|---|
value | binary | 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'. |