@hatiolab/figure-model 0.1.91 → 0.1.93
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -12
- package/README.md +25 -25
- package/dist/{v3-asset-types.d.ts → asset-types.d.ts} +67 -67
- package/dist/asset-types.d.ts.map +1 -0
- package/dist/asset-types.js +2 -0
- package/dist/asset-types.js.map +1 -0
- package/dist/asset.d.ts +8 -0
- package/dist/asset.d.ts.map +1 -0
- package/dist/{v3-asset.js → asset.js} +23 -23
- package/dist/asset.js.map +1 -0
- package/dist/{v3-authoring-actions.d.ts → authoring-actions.d.ts} +66 -66
- package/dist/authoring-actions.d.ts.map +1 -0
- package/dist/{v3-authoring-actions.js → authoring-actions.js} +107 -78
- package/dist/authoring-actions.js.map +1 -0
- package/dist/{v3-authoring-session.d.ts → authoring-session.d.ts} +21 -21
- package/dist/authoring-session.d.ts.map +1 -0
- package/dist/{v3-authoring-session.js → authoring-session.js} +4 -4
- package/dist/authoring-session.js.map +1 -0
- package/dist/capabilities.d.ts +3 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/{v3-capabilities.js → capabilities.js} +8 -8
- package/dist/capabilities.js.map +1 -0
- package/dist/contract.d.ts +7 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +12 -0
- package/dist/contract.js.map +1 -0
- package/dist/{v3-cost.d.ts → cost.d.ts} +5 -5
- package/dist/cost.d.ts.map +1 -0
- package/dist/{v3-cost.js → cost.js} +11 -11
- package/dist/cost.js.map +1 -0
- package/dist/{v3-create.d.ts → create.d.ts} +8 -8
- package/dist/{v3-create.d.ts.map → create.d.ts.map} +1 -1
- package/dist/{v3-create.js → create.js} +26 -26
- package/dist/create.js.map +1 -0
- package/dist/document.d.ts +5 -0
- package/dist/document.d.ts.map +1 -0
- package/dist/document.js +31 -0
- package/dist/document.js.map +1 -0
- package/dist/{v3-driver.d.ts → driver.d.ts} +10 -10
- package/dist/driver.d.ts.map +1 -0
- package/dist/{v3-driver.js → driver.js} +10 -10
- package/dist/driver.js.map +1 -0
- package/dist/{v3-editor-workspace.d.ts → editor-workspace.d.ts} +73 -73
- package/dist/editor-workspace.d.ts.map +1 -0
- package/dist/{v3-editor-workspace.js → editor-workspace.js} +29 -29
- package/dist/editor-workspace.js.map +1 -0
- package/dist/{v3-examples.d.ts → examples.d.ts} +5 -5
- package/dist/examples.d.ts.map +1 -0
- package/dist/{v3-examples.js → examples.js} +11 -11
- package/dist/examples.js.map +1 -0
- package/dist/{v3-follow.d.ts → follow.d.ts} +5 -5
- package/dist/follow.d.ts.map +1 -0
- package/dist/{v3-follow.js → follow.js} +2 -2
- package/dist/follow.js.map +1 -0
- package/dist/{v3-gate.d.ts → gate.d.ts} +28 -28
- package/dist/gate.d.ts.map +1 -0
- package/dist/{v3-gate.js → gate.js} +42 -42
- package/dist/gate.js.map +1 -0
- package/dist/{v3-graph-types.d.ts → graph-types.d.ts} +33 -33
- package/dist/graph-types.d.ts.map +1 -0
- package/dist/graph-types.js +2 -0
- package/dist/graph-types.js.map +1 -0
- package/dist/{v3-graph.d.ts → graph.d.ts} +14 -14
- package/dist/graph.d.ts.map +1 -0
- package/dist/{v3-graph.js → graph.js} +16 -16
- package/dist/graph.js.map +1 -0
- package/dist/index.d.ts +33 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -33
- package/dist/index.js.map +1 -1
- package/dist/{v3-instance-size.d.ts → instance-size.d.ts} +14 -14
- package/dist/instance-size.d.ts.map +1 -0
- package/dist/{v3-instance-size.js → instance-size.js} +13 -13
- package/dist/instance-size.js.map +1 -0
- package/dist/json.d.ts +12 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/{v3-json.js → json.js} +13 -13
- package/dist/json.js.map +1 -0
- package/dist/kernel-version.d.ts +8 -0
- package/dist/kernel-version.d.ts.map +1 -0
- package/dist/{v3-kernel-version.js → kernel-version.js} +4 -4
- package/dist/kernel-version.js.map +1 -0
- package/dist/{v3-part-edit.d.ts → part-edit.d.ts} +10 -10
- package/dist/part-edit.d.ts.map +1 -0
- package/dist/{v3-part-edit.js → part-edit.js} +65 -65
- package/dist/part-edit.js.map +1 -0
- package/dist/proposal.d.ts +42 -0
- package/dist/proposal.d.ts.map +1 -0
- package/dist/{v3-proposal.js → proposal.js} +21 -21
- package/dist/proposal.js.map +1 -0
- package/dist/{v3-public-inputs.d.ts → public-inputs.d.ts} +4 -4
- package/dist/public-inputs.d.ts.map +1 -0
- package/dist/{v3-public-inputs.js → public-inputs.js} +3 -3
- package/dist/public-inputs.js.map +1 -0
- package/dist/recipe-build.d.ts +27 -0
- package/dist/recipe-build.d.ts.map +1 -0
- package/dist/{v3-recipe-build.js → recipe-build.js} +9 -9
- package/dist/recipe-build.js.map +1 -0
- package/dist/recipe-from-parts.d.ts +8 -0
- package/dist/recipe-from-parts.d.ts.map +1 -0
- package/dist/{v3-recipe-from-parts.js → recipe-from-parts.js} +9 -9
- package/dist/recipe-from-parts.js.map +1 -0
- package/dist/{v3-recipe.d.ts → recipe.d.ts} +25 -25
- package/dist/recipe.d.ts.map +1 -0
- package/dist/{v3-recipe.js → recipe.js} +30 -30
- package/dist/recipe.js.map +1 -0
- package/dist/release-contract.d.ts +19 -0
- package/dist/release-contract.d.ts.map +1 -0
- package/dist/{v3-release-contract.js → release-contract.js} +5 -5
- package/dist/release-contract.js.map +1 -0
- package/dist/{v3-render-batches.d.ts → render-batches.d.ts} +8 -8
- package/dist/render-batches.d.ts.map +1 -0
- package/dist/{v3-render-batches.js → render-batches.js} +4 -4
- package/dist/render-batches.js.map +1 -0
- package/dist/{v3-score.d.ts → score.d.ts} +19 -19
- package/dist/score.d.ts.map +1 -0
- package/dist/{v3-score.js → score.js} +32 -32
- package/dist/score.js.map +1 -0
- package/dist/{v3-shape-sampling.d.ts → shape-sampling.d.ts} +4 -4
- package/dist/shape-sampling.d.ts.map +1 -0
- package/dist/{v3-shape-sampling.js → shape-sampling.js} +3 -3
- package/dist/shape-sampling.js.map +1 -0
- package/dist/{v3-surface.d.ts → surface.d.ts} +5 -5
- package/dist/surface.d.ts.map +1 -0
- package/dist/{v3-surface.js → surface.js} +7 -7
- package/dist/surface.js.map +1 -0
- package/dist/{v3-words.d.ts → words.d.ts} +3 -3
- package/dist/words.d.ts.map +1 -0
- package/dist/{v3-words.js → words.js} +3 -3
- package/dist/words.js.map +1 -0
- package/docs/{assembly-constraints-v3.md → assembly-constraints.md} +1 -1
- package/docs/{v3-asset-persistence.md → asset-persistence.md} +8 -8
- package/docs/{v3-authoring-transactions.md → authoring-transactions.md} +2 -2
- package/docs/{v3-capability-bindings.md → capability-bindings.md} +8 -8
- package/docs/{v3-common-kernel-experiment.md → common-kernel-experiment.md} +4 -4
- package/docs/{v3-core-semantics.md → core-semantics.md} +5 -5
- package/docs/{v3-cutover.md → cutover.md} +4 -4
- package/docs/{v3-design.md → design.md} +11 -11
- package/docs/{v3-document-contract.md → document-contract.md} +9 -9
- package/docs/{v3-dryroom-profile-validation.md → dryroom-profile-validation.md} +4 -4
- package/docs/{v3-editor-integration.md → editor-integration.md} +6 -6
- package/docs/{v3-full-conveyor-validation.md → full-conveyor-validation.md} +4 -4
- package/docs/{v3-full-dryroom-validation.md → full-dryroom-validation.md} +4 -4
- package/docs/{v3-full-forklift-validation.md → full-forklift-validation.md} +5 -5
- package/docs/{v3-full-robot-validation.md → full-robot-validation.md} +4 -4
- package/docs/{v3-layout-system.md → layout-system.md} +4 -4
- package/docs/{v3-legacy-risk-audit-2026-09-23.md → legacy-risk-audit-2026-09-23.md} +5 -5
- package/docs/{v3-minimal-model.md → minimal-model.md} +6 -6
- package/docs/{v3-motion-contract.md → motion-contract.md} +3 -3
- package/docs/{v3-openusd-review.md → openusd-review.md} +8 -8
- package/docs/{v3-operator-contracts.md → operator-contracts.md} +6 -6
- package/docs/{v3-payload-collision-validation.md → payload-collision-validation.md} +4 -4
- package/docs/{v3-payload-contact-validation.md → payload-contact-validation.md} +5 -5
- package/docs/prototypes/README.md +10 -10
- package/docs/prototypes/{v3-asset-samples.mjs → asset-samples.mjs} +6 -6
- package/docs/prototypes/{v3-asset-store.mjs → asset-store.mjs} +3 -3
- package/docs/prototypes/{v3-asset-store.test.mjs → asset-store.test.mjs} +6 -6
- package/docs/prototypes/asset.mjs +1 -0
- package/docs/prototypes/{v3-asset.schema.json → asset.schema.json} +2 -2
- package/docs/prototypes/{v3-asset.test.mjs → asset.test.mjs} +10 -10
- package/docs/prototypes/authoring-session.mjs +1 -0
- package/docs/prototypes/{v3-authoring-session.test.mjs → authoring-session.test.mjs} +6 -6
- package/docs/prototypes/capability-plan.mjs +1 -0
- package/docs/prototypes/{v3-capability-plan.test.mjs → capability-plan.test.mjs} +5 -5
- package/docs/prototypes/{v3-capability-samples.mjs → capability-samples.mjs} +2 -2
- package/docs/prototypes/document.mjs +2 -0
- package/docs/prototypes/{v3-document.schema.json → document.schema.json} +1 -1
- package/docs/prototypes/{v3-document.test.mjs → document.test.mjs} +7 -7
- package/docs/prototypes/{v3-dryroom-mesh.mjs → dryroom-mesh.mjs} +1 -1
- package/docs/prototypes/{v3-dryroom-mesh.test.mjs → dryroom-mesh.test.mjs} +1 -1
- package/docs/prototypes/{v3-editor-browser.mjs → editor-browser.mjs} +13 -13
- package/docs/prototypes/editor-workspace.mjs +1 -0
- package/docs/prototypes/{v3-editor-workspace.test.mjs → editor-workspace.test.mjs} +3 -3
- package/docs/prototypes/{v3-feature-pattern.test.mjs → feature-pattern.test.mjs} +1 -1
- package/docs/prototypes/{v3-full-conveyor.mjs → full-conveyor.mjs} +2 -2
- package/docs/prototypes/{v3-full-conveyor.test.mjs → full-conveyor.test.mjs} +3 -3
- package/docs/prototypes/{v3-full-dryroom.mjs → full-dryroom.mjs} +2 -2
- package/docs/prototypes/{v3-full-dryroom.test.mjs → full-dryroom.test.mjs} +3 -3
- package/docs/prototypes/{v3-full-forklift.mjs → full-forklift.mjs} +2 -2
- package/docs/prototypes/{v3-full-forklift.test.mjs → full-forklift.test.mjs} +3 -3
- package/docs/prototypes/{v3-full-robot.mjs → full-robot.mjs} +2 -2
- package/docs/prototypes/{v3-full-robot.test.mjs → full-robot.test.mjs} +4 -4
- package/docs/prototypes/{v3-kernel.test.mjs → kernel.test.mjs} +1 -1
- package/docs/prototypes/{v3-layout.test.mjs → layout.test.mjs} +1 -1
- package/docs/prototypes/{v3-more-samples.test.mjs → more-samples.test.mjs} +2 -2
- package/docs/prototypes/{v3-payload-collision.mjs → payload-collision.mjs} +2 -2
- package/docs/prototypes/{v3-payload-collision.test.mjs → payload-collision.test.mjs} +3 -3
- package/docs/prototypes/{v3-payload-fit.mjs → payload-fit.mjs} +2 -2
- package/docs/prototypes/{v3-payload-fit.test.mjs → payload-fit.test.mjs} +4 -4
- package/docs/prototypes/render-full-dryroom.mjs +12 -12
- package/docs/prototypes/{v3-repeated-binding.mjs → repeated-binding.mjs} +1 -1
- package/docs/prototypes/{v3-repeated-binding.test.mjs → repeated-binding.test.mjs} +6 -6
- package/docs/prototypes/{v3-runtime-browser.mjs → runtime-browser.mjs} +26 -26
- package/docs/prototypes/{v3-samples.test.mjs → samples.test.mjs} +1 -1
- package/docs/prototypes/{v3-spatial-plan.test.mjs → spatial-plan.test.mjs} +1 -1
- package/docs/prototypes/typed-plan.mjs +3 -0
- package/docs/prototypes/{v3-typed-plan.test.mjs → typed-plan.test.mjs} +1 -1
- package/docs/prototypes/{v3-typed-repeat.test.mjs → typed-repeat.test.mjs} +2 -2
- package/docs/{v3-repeated-binding-validation.md → repeated-binding-validation.md} +4 -4
- package/docs/{v3-research-review.md → research-review.md} +2 -2
- package/docs/{v3-review-2026-09-22.md → review-2026-09-22.md} +10 -10
- package/docs/{v3-runtime-extraction.md → runtime-extraction.md} +16 -16
- package/docs/{v3-sample-validation-expanded.md → sample-validation-expanded.md} +5 -5
- package/docs/{v3-sample-validation.md → sample-validation.md} +3 -3
- package/docs/{v3-shape-dimension-contract.md → shape-dimension-contract.md} +12 -12
- package/docs/{v3-shapeassembly-reproduction.md → shapeassembly-reproduction.md} +4 -4
- package/docs/{v3-spatial-contracts.md → spatial-contracts.md} +5 -5
- package/docs/status.md +12 -0
- package/docs/{v3-storage-integration.md → storage-integration.md} +5 -5
- package/docs/{v3-typed-repeat-contracts.md → typed-repeat-contracts.md} +3 -3
- package/package.json +3 -3
- package/dist/v3-asset-types.d.ts.map +0 -1
- package/dist/v3-asset-types.js +0 -2
- package/dist/v3-asset-types.js.map +0 -1
- package/dist/v3-asset.d.ts +0 -8
- package/dist/v3-asset.d.ts.map +0 -1
- package/dist/v3-asset.js.map +0 -1
- package/dist/v3-authoring-actions.d.ts.map +0 -1
- package/dist/v3-authoring-actions.js.map +0 -1
- package/dist/v3-authoring-session.d.ts.map +0 -1
- package/dist/v3-authoring-session.js.map +0 -1
- package/dist/v3-capabilities.d.ts +0 -3
- package/dist/v3-capabilities.d.ts.map +0 -1
- package/dist/v3-capabilities.js.map +0 -1
- package/dist/v3-contract.d.ts +0 -7
- package/dist/v3-contract.d.ts.map +0 -1
- package/dist/v3-contract.js +0 -12
- package/dist/v3-contract.js.map +0 -1
- package/dist/v3-cost.d.ts.map +0 -1
- package/dist/v3-cost.js.map +0 -1
- package/dist/v3-create.js.map +0 -1
- package/dist/v3-document.d.ts +0 -5
- package/dist/v3-document.d.ts.map +0 -1
- package/dist/v3-document.js +0 -31
- package/dist/v3-document.js.map +0 -1
- package/dist/v3-driver.d.ts.map +0 -1
- package/dist/v3-driver.js.map +0 -1
- package/dist/v3-editor-workspace.d.ts.map +0 -1
- package/dist/v3-editor-workspace.js.map +0 -1
- package/dist/v3-examples.d.ts.map +0 -1
- package/dist/v3-examples.js.map +0 -1
- package/dist/v3-follow.d.ts.map +0 -1
- package/dist/v3-follow.js.map +0 -1
- package/dist/v3-gate.d.ts.map +0 -1
- package/dist/v3-gate.js.map +0 -1
- package/dist/v3-graph-types.d.ts.map +0 -1
- package/dist/v3-graph-types.js +0 -2
- package/dist/v3-graph-types.js.map +0 -1
- package/dist/v3-graph.d.ts.map +0 -1
- package/dist/v3-graph.js.map +0 -1
- package/dist/v3-instance-size.d.ts.map +0 -1
- package/dist/v3-instance-size.js.map +0 -1
- package/dist/v3-json.d.ts +0 -12
- package/dist/v3-json.d.ts.map +0 -1
- package/dist/v3-json.js.map +0 -1
- package/dist/v3-kernel-version.d.ts +0 -8
- package/dist/v3-kernel-version.d.ts.map +0 -1
- package/dist/v3-kernel-version.js.map +0 -1
- package/dist/v3-part-edit.d.ts.map +0 -1
- package/dist/v3-part-edit.js.map +0 -1
- package/dist/v3-proposal.d.ts +0 -42
- package/dist/v3-proposal.d.ts.map +0 -1
- package/dist/v3-proposal.js.map +0 -1
- package/dist/v3-public-inputs.d.ts.map +0 -1
- package/dist/v3-public-inputs.js.map +0 -1
- package/dist/v3-recipe-build.d.ts +0 -27
- package/dist/v3-recipe-build.d.ts.map +0 -1
- package/dist/v3-recipe-build.js.map +0 -1
- package/dist/v3-recipe-from-parts.d.ts +0 -8
- package/dist/v3-recipe-from-parts.d.ts.map +0 -1
- package/dist/v3-recipe-from-parts.js.map +0 -1
- package/dist/v3-recipe.d.ts.map +0 -1
- package/dist/v3-recipe.js.map +0 -1
- package/dist/v3-release-contract.d.ts +0 -19
- package/dist/v3-release-contract.d.ts.map +0 -1
- package/dist/v3-release-contract.js.map +0 -1
- package/dist/v3-render-batches.d.ts.map +0 -1
- package/dist/v3-render-batches.js.map +0 -1
- package/dist/v3-score.d.ts.map +0 -1
- package/dist/v3-score.js.map +0 -1
- package/dist/v3-shape-sampling.d.ts.map +0 -1
- package/dist/v3-shape-sampling.js.map +0 -1
- package/dist/v3-surface.d.ts.map +0 -1
- package/dist/v3-surface.js.map +0 -1
- package/dist/v3-words.d.ts.map +0 -1
- package/dist/v3-words.js.map +0 -1
- package/docs/prototypes/v3-asset.mjs +0 -1
- package/docs/prototypes/v3-authoring-session.mjs +0 -1
- package/docs/prototypes/v3-capability-plan.mjs +0 -1
- package/docs/prototypes/v3-document.mjs +0 -2
- package/docs/prototypes/v3-editor-workspace.mjs +0 -1
- package/docs/prototypes/v3-typed-plan.mjs +0 -3
- package/docs/v3-status.md +0 -50
- /package/docs/prototypes/{v3-kernel.mjs → kernel.mjs} +0 -0
- /package/docs/prototypes/{v3-linear-comparison.py → linear-comparison.py} +0 -0
- /package/docs/prototypes/{v3-semantics.test.mjs → semantics.test.mjs} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Axis } from './
|
|
2
|
-
import type {
|
|
1
|
+
import type { Axis } from './words.ts';
|
|
2
|
+
import type { FigureAsset, FigurePlacement } from './asset-types.ts';
|
|
3
3
|
/** The six faces of a box-shaped part, and the axis each one faces along. */
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const FIGURE_FACES: {
|
|
5
5
|
readonly left: "x";
|
|
6
6
|
readonly right: "x";
|
|
7
7
|
readonly bottom: "y";
|
|
@@ -9,22 +9,22 @@ export declare const V3_FACES: {
|
|
|
9
9
|
readonly back: "z";
|
|
10
10
|
readonly front: "z";
|
|
11
11
|
};
|
|
12
|
-
export type
|
|
12
|
+
export type FigureFace = keyof typeof FIGURE_FACES;
|
|
13
13
|
/**
|
|
14
14
|
* The face a part is fastened by: one of its six, or `centre` -- its own middle, which every shape has (ADR-0093,
|
|
15
15
|
* 2026-09-26). Fastened by its centre, the part's middle is on the target's face (plus the gap), and a turn there
|
|
16
16
|
* turns it about its middle: a roller spinning in place.
|
|
17
17
|
*/
|
|
18
|
-
export type
|
|
18
|
+
export type FigureChildFace = FigureFace | 'centre';
|
|
19
19
|
/**
|
|
20
20
|
* UsdPhysics's joint types (ADR-0093, amended 2026-09-25: the joint follows USD). A `fixed` joint is a fastening; a
|
|
21
21
|
* `revolute` joint turns -- with no limits it turns without end, its value a phase (-180..180), as USD's revolute
|
|
22
22
|
* joint without limits does; a `prismatic` joint slides.
|
|
23
23
|
*/
|
|
24
|
-
export declare const
|
|
25
|
-
export type
|
|
24
|
+
export declare const FIGURE_JOINT_TYPES: readonly ["fixed", "revolute", "prismatic"];
|
|
25
|
+
export type FigureJointType = (typeof FIGURE_JOINT_TYPES)[number];
|
|
26
26
|
/** UsdPhysics's axis tokens. */
|
|
27
|
-
export type
|
|
27
|
+
export type FigureJointAxis = 'X' | 'Y' | 'Z';
|
|
28
28
|
/**
|
|
29
29
|
* A joint, in UsdPhysics's words (ADR-0093): `body0` is what it hangs from -- a part's face, or the plane the figure is
|
|
30
30
|
* mounted on -- and `body1` the part it carries, by one of its faces. The joint frame is on body0's face (USD's
|
|
@@ -32,28 +32,28 @@ export type V3JointAxis = 'X' | 'Y' | 'Z';
|
|
|
32
32
|
* Angles are degrees and lengths millimetres, as in a USD stage with `metersPerUnit = 0.001`. The rest pose is every
|
|
33
33
|
* joint at 0.
|
|
34
34
|
*
|
|
35
|
-
*
|
|
35
|
+
* extensions, which USD has no field for: every length may be an expression of the figure's design inputs (a
|
|
36
36
|
* joint on a link moves when the link grows); the faces are named features; `mimic` (URDF's, and PhysX's and Newton's
|
|
37
37
|
* extensions); `travel`, a slide whose length follows a part's size.
|
|
38
38
|
*/
|
|
39
|
-
export interface
|
|
39
|
+
export interface FigureJoint {
|
|
40
40
|
id: string;
|
|
41
|
-
type:
|
|
41
|
+
type: FigureJointType;
|
|
42
42
|
body0: {
|
|
43
43
|
part: string;
|
|
44
|
-
face:
|
|
44
|
+
face: FigureFace;
|
|
45
45
|
} | {
|
|
46
46
|
plane: 'mounting-plane';
|
|
47
47
|
};
|
|
48
48
|
body1: {
|
|
49
49
|
part: string;
|
|
50
|
-
face:
|
|
50
|
+
face: FigureChildFace;
|
|
51
51
|
};
|
|
52
52
|
/** Where on body0's face, and how body1 stands in the joint frame (quarter turns only, in degrees). */
|
|
53
53
|
origin?: {
|
|
54
54
|
facing?: 'meet' | 'flush';
|
|
55
|
-
gap?:
|
|
56
|
-
align?: Partial<Record<Axis,
|
|
55
|
+
gap?: FigureMeasure;
|
|
56
|
+
align?: Partial<Record<Axis, FigureFaceAlignment>>;
|
|
57
57
|
turn?: Partial<Record<Axis, number>>;
|
|
58
58
|
/**
|
|
59
59
|
* Degrees about the normal of the face the child is fastened by (r3 §6's twist): the faces still meet, so any
|
|
@@ -64,16 +64,16 @@ export interface V3Joint {
|
|
|
64
64
|
twist?: number;
|
|
65
65
|
};
|
|
66
66
|
/** The axis a moving joint turns about or slides along, in the joint frame (USD `physics:axis`). */
|
|
67
|
-
axis?:
|
|
67
|
+
axis?: FigureJointAxis;
|
|
68
68
|
/** USD `physics:lowerLimit` / `physics:upperLimit`: degrees for revolute, millimetres for prismatic. */
|
|
69
69
|
lowerLimit?: number;
|
|
70
70
|
upperLimit?: number;
|
|
71
71
|
/**
|
|
72
|
-
*
|
|
72
|
+
* extension: a prismatic joint whose distance follows the figure -- its value is a share (0..1 unless the limits
|
|
73
73
|
* say otherwise) of this length: a part's width, the instance's, times and plus.
|
|
74
74
|
*/
|
|
75
75
|
travel?: {
|
|
76
|
-
source?:
|
|
76
|
+
source?: FigureDimensionSource;
|
|
77
77
|
times?: number;
|
|
78
78
|
plus?: number;
|
|
79
79
|
};
|
|
@@ -84,14 +84,14 @@ export interface V3Joint {
|
|
|
84
84
|
start?: number;
|
|
85
85
|
sweep?: number;
|
|
86
86
|
};
|
|
87
|
-
/**
|
|
87
|
+
/** extension (URDF's mimic): the value is the leader's times `multiplier` plus `offset`, in this joint's unit. */
|
|
88
88
|
mimic?: {
|
|
89
89
|
joint: string;
|
|
90
90
|
multiplier: number;
|
|
91
91
|
offset?: number;
|
|
92
92
|
};
|
|
93
93
|
/**
|
|
94
|
-
*
|
|
94
|
+
* extension (r3 §8, a row of copies -- USD's PointInstancer, URDF has none): the part fastened is repeated along
|
|
95
95
|
* `axis` across the parent's face, from the parent's one edge to the other. Without `count` the row fills that
|
|
96
96
|
* length, as many copies as fit at `pitch`, and so follows the parent's size; with `count`, that many spread evenly
|
|
97
97
|
* over it. Only a fastening repeats. What is fastened to the part is on every copy, and every copy moves on the part's
|
|
@@ -99,11 +99,11 @@ export interface V3Joint {
|
|
|
99
99
|
* `rise`: each copy stands `mm` further along a second axis than the one before -- a stair's steps (G2).
|
|
100
100
|
*/
|
|
101
101
|
repeat?: {
|
|
102
|
-
axis:
|
|
103
|
-
pitch:
|
|
102
|
+
axis: FigureJointAxis;
|
|
103
|
+
pitch: FigureMeasure;
|
|
104
104
|
count?: number;
|
|
105
105
|
rise?: {
|
|
106
|
-
axis:
|
|
106
|
+
axis: FigureJointAxis;
|
|
107
107
|
mm: number;
|
|
108
108
|
};
|
|
109
109
|
};
|
|
@@ -112,7 +112,7 @@ export interface V3Joint {
|
|
|
112
112
|
* What a dimension follows. Named rather than implied, because "as wide as the gate" and "as wide as the
|
|
113
113
|
* opening" and "as wide as the rail" are three different intentions that happen to agree at one size.
|
|
114
114
|
*/
|
|
115
|
-
export type
|
|
115
|
+
export type FigureDimensionSource =
|
|
116
116
|
/** The instance's own size on an axis, as a board scales it. */
|
|
117
117
|
{
|
|
118
118
|
of: 'instance';
|
|
@@ -134,16 +134,16 @@ export type V3DimensionSource =
|
|
|
134
134
|
* keeps up when the instance is resized. `{ from: ..., times, plus }` reads the same sources a dimension link
|
|
135
135
|
* does, which is why an opening can be "the instance's width" in a gap as well as in a dimension.
|
|
136
136
|
*/
|
|
137
|
-
export type
|
|
138
|
-
from:
|
|
137
|
+
export type FigureMeasure = number | {
|
|
138
|
+
from: FigureDimensionSource;
|
|
139
139
|
times?: number;
|
|
140
140
|
plus?: number;
|
|
141
141
|
};
|
|
142
142
|
/** Where a part sits inside the face it is fastened to, on one of that face's two axes. */
|
|
143
|
-
export type
|
|
144
|
-
mm:
|
|
143
|
+
export type FigureFaceAlignment = 'centre' | 'min' | 'max' | {
|
|
144
|
+
mm: FigureMeasure;
|
|
145
145
|
};
|
|
146
|
-
export type
|
|
146
|
+
export type FigureAuthoringAction =
|
|
147
147
|
/**
|
|
148
148
|
* "This side of this part follows that." The value becomes `source × times + plus`, as graph nodes, so it
|
|
149
149
|
* keeps following after the instance is resized. An axis that already follows something is refused unless
|
|
@@ -153,7 +153,7 @@ export type V3AuthoringAction =
|
|
|
153
153
|
kind: 'link-dimension';
|
|
154
154
|
part: string;
|
|
155
155
|
axis: Axis;
|
|
156
|
-
source:
|
|
156
|
+
source: FigureDimensionSource;
|
|
157
157
|
times?: number;
|
|
158
158
|
plus?: number;
|
|
159
159
|
replace?: boolean;
|
|
@@ -201,17 +201,17 @@ export type V3AuthoringAction =
|
|
|
201
201
|
| {
|
|
202
202
|
kind: 'attach';
|
|
203
203
|
part: string;
|
|
204
|
-
face:
|
|
204
|
+
face: FigureChildFace;
|
|
205
205
|
/** The face of another part, or the plane the figure is mounted on, which is a thing a part can stand on. */
|
|
206
206
|
to: {
|
|
207
207
|
part: string;
|
|
208
|
-
face:
|
|
208
|
+
face: FigureFace;
|
|
209
209
|
} | {
|
|
210
210
|
plane: 'mounting-plane';
|
|
211
211
|
};
|
|
212
212
|
facing?: 'meet' | 'flush';
|
|
213
|
-
gap?:
|
|
214
|
-
align?: Partial<Record<Axis,
|
|
213
|
+
gap?: FigureMeasure;
|
|
214
|
+
align?: Partial<Record<Axis, FigureFaceAlignment>>;
|
|
215
215
|
/** Degrees about the face's normal (the record's `origin.twist`). */
|
|
216
216
|
twist?: number;
|
|
217
217
|
replace?: boolean;
|
|
@@ -222,14 +222,14 @@ export type V3AuthoringAction =
|
|
|
222
222
|
part: string;
|
|
223
223
|
}
|
|
224
224
|
/**
|
|
225
|
-
* "This is a joint" -- URDF's joint record, with
|
|
225
|
+
* "This is a joint" -- URDF's joint record, with values (ADR-0093): which face of the child sits on which face
|
|
226
226
|
* of the parent, and whether it stays fixed, turns (revolute, continuous) or slides (prismatic). The record is the
|
|
227
227
|
* canon; the joint's graph nodes are made from it. `id` names it; a record with an id already there replaces it.
|
|
228
228
|
*/
|
|
229
229
|
/** `narrowRange` as for `link-dimension`: a joint that rows its part makes the largest size finite. */
|
|
230
230
|
| {
|
|
231
231
|
kind: 'set-joint';
|
|
232
|
-
joint:
|
|
232
|
+
joint: FigureJoint;
|
|
233
233
|
narrowRange?: boolean;
|
|
234
234
|
}
|
|
235
235
|
/** "This joint is gone." Its child stays where it stands, fastened to nothing. */
|
|
@@ -245,8 +245,8 @@ export type V3AuthoringAction =
|
|
|
245
245
|
*/
|
|
246
246
|
| {
|
|
247
247
|
kind: 'declare-occupancy';
|
|
248
|
-
proposal:
|
|
249
|
-
placement:
|
|
248
|
+
proposal: FigureOccupancyProposal;
|
|
249
|
+
placement: FigurePlacement;
|
|
250
250
|
padding?: Partial<Record<Axis, number>>;
|
|
251
251
|
}
|
|
252
252
|
/**
|
|
@@ -254,7 +254,7 @@ export type V3AuthoringAction =
|
|
|
254
254
|
* inputs `size.x · size.y · size.z` a part can then follow (`link-dimension` with `of: 'instance'`). Without them
|
|
255
255
|
* a board draws the figure at its authored size whatever box it is placed in. `at` is the authored size; absent,
|
|
256
256
|
* it is what the parts take up now. The range is the author's; the command refuses only a size the figure cannot
|
|
257
|
-
* take, found by `
|
|
257
|
+
* take, found by `figureInstanceSizeLimitsOf` and folded by `foldInstanceSizeRange`
|
|
258
258
|
* (chief architect's ruling 2026-09-24). `replace` changes the range of sizes already declared.
|
|
259
259
|
*/
|
|
260
260
|
| {
|
|
@@ -270,7 +270,7 @@ export type V3AuthoringAction =
|
|
|
270
270
|
| {
|
|
271
271
|
kind: 'set-mounting-face';
|
|
272
272
|
part: string;
|
|
273
|
-
face:
|
|
273
|
+
face: FigureFace;
|
|
274
274
|
}
|
|
275
275
|
/** "It is not mounted on anything in particular." */
|
|
276
276
|
| {
|
|
@@ -314,7 +314,7 @@ export type V3AuthoringAction =
|
|
|
314
314
|
* own measure, each fastening's offset and gap in millimetres, and each row's pitch become their value now over the
|
|
315
315
|
* size the figure is at now, times that size -- written as the links a person would write one by one, so any part
|
|
316
316
|
* can be given its own number again (`unlink-dimension`). A measure that already follows something is left, and
|
|
317
|
-
* named (`
|
|
317
|
+
* named (`proposeFigureProportion`). Angles, ratios and counts are not lengths (chief architect's ruling 2026-09-25).
|
|
318
318
|
*/
|
|
319
319
|
| {
|
|
320
320
|
kind: 'follow-size-in-proportion';
|
|
@@ -333,7 +333,7 @@ export type V3AuthoringAction =
|
|
|
333
333
|
| {
|
|
334
334
|
kind: 'set-repeat';
|
|
335
335
|
part: string;
|
|
336
|
-
pitch: number |
|
|
336
|
+
pitch: number | FigureMeasure;
|
|
337
337
|
}
|
|
338
338
|
/**
|
|
339
339
|
* "The figure has this design value" -- a number of its own, in a unit, held to a range (ADR-0096): what a row's pitch
|
|
@@ -423,7 +423,7 @@ export type V3AuthoringAction =
|
|
|
423
423
|
label: string;
|
|
424
424
|
role: 'seat' | 'grip';
|
|
425
425
|
part: string;
|
|
426
|
-
face:
|
|
426
|
+
face: FigureFace;
|
|
427
427
|
accepts: readonly string[];
|
|
428
428
|
capacity: number;
|
|
429
429
|
region?: Record<Axis, number>;
|
|
@@ -443,16 +443,16 @@ export type V3AuthoringAction =
|
|
|
443
443
|
name: string;
|
|
444
444
|
};
|
|
445
445
|
/** Apply one authoring command. Throws on any refusal, leaving the asset it was given untouched. */
|
|
446
|
-
export declare function
|
|
446
|
+
export declare function applyFigureAuthoring(source: FigureAsset, action: FigureAuthoringAction): FigureAsset;
|
|
447
447
|
/** What each part is fastened to, for a reader that wants the structure rather than the graph. */
|
|
448
|
-
export declare function
|
|
448
|
+
export declare function figureAttachmentsOf(asset: FigureAsset): Record<string, string | null>;
|
|
449
449
|
/** The records follow a part's new name -- as a joint's parent, as its child, and as the joint a follower follows -- and the nodes are made again from them. */
|
|
450
|
-
export declare function
|
|
450
|
+
export declare function renameFigurePartInJoints(asset: FigureAsset, from: string, to: string): void;
|
|
451
451
|
/**
|
|
452
452
|
* A copied part is fastened as the original is: its own record, the same faces and place, so it is not held by nodes
|
|
453
453
|
* no record makes. A moving joint gets its own control -- a copy is a second thing, not the original's shadow.
|
|
454
454
|
*/
|
|
455
|
-
export declare function
|
|
455
|
+
export declare function copyFigurePartJoint(asset: FigureAsset, from: string, to: string): void;
|
|
456
456
|
/**
|
|
457
457
|
* What taking a part away changed besides the part (chief architect's ruling 2026-09-27, ADR-0093): nothing the author
|
|
458
458
|
* did not pick goes with it; what hung from it, moved with it or followed it is let go, and named here, and one undo
|
|
@@ -493,7 +493,7 @@ export interface RemovalNotice {
|
|
|
493
493
|
* size or place becomes the number it is now. One thing is refused, by name: a row laid along it, or hanging in it --
|
|
494
494
|
* a row is made from its record, and a record needs the part (ADR-0093).
|
|
495
495
|
*/
|
|
496
|
-
export declare function
|
|
496
|
+
export declare function releaseFigurePartJoints(asset: FigureAsset, part: string, options?: {
|
|
497
497
|
spaceFittedAgain?: boolean;
|
|
498
498
|
}): RemovalNotice;
|
|
499
499
|
/**
|
|
@@ -502,26 +502,26 @@ export declare function releaseV3PartJoints(asset: V3Asset, part: string, option
|
|
|
502
502
|
* (FORKLIFT), a still older one left some the declaration no longer reaches (WALL_LAMP), and a part's own chain the
|
|
503
503
|
* space also reads is the part's (2026-09-27).
|
|
504
504
|
*/
|
|
505
|
-
export declare function spaceOnlyNodesOf(asset:
|
|
505
|
+
export declare function spaceOnlyNodesOf(asset: FigureAsset): Set<string>;
|
|
506
506
|
/**
|
|
507
507
|
* A node no drawn body, declaration or record reaches, reading a value that is gone: an earlier fitting's space left
|
|
508
508
|
* reading a joint's node that went with its part (WALL_LAMP's shade, 2026-09-27). It was read by nothing before, and it
|
|
509
509
|
* goes with what it read. A node something does reach is left, and the figure is refused as broken.
|
|
510
510
|
*/
|
|
511
|
-
export declare function dropDeadDanglers(asset:
|
|
511
|
+
export declare function dropDeadDanglers(asset: FigureAsset): void;
|
|
512
512
|
/** Every value a drawn body, a declaration or a record reaches, however far up. */
|
|
513
|
-
export declare function liveRefsOf(asset:
|
|
513
|
+
export declare function liveRefsOf(asset: FigureAsset): Set<string>;
|
|
514
514
|
/**
|
|
515
515
|
* The records are the canon: made again from them, the joints' nodes must be the nodes the asset holds. An asset
|
|
516
516
|
* whose nodes or records were edited apart is refused, not quietly rebuilt (ADR-0093, chief architect's condition).
|
|
517
517
|
*/
|
|
518
|
-
export declare function
|
|
518
|
+
export declare function checkFigureJoints(asset: FigureAsset): void;
|
|
519
519
|
/**
|
|
520
520
|
* "This part moves like this."
|
|
521
521
|
*
|
|
522
522
|
* Added on top of whatever the part is fastened to, never instead of it: the motion becomes its own node between
|
|
523
523
|
* the part's pose and the frame it is fastened into, so the fastening is still there and still holds when the
|
|
524
|
-
* parent is resized (
|
|
524
|
+
* parent is resized (designer's ruling 2026-09-23 — attachment and motion may not overwrite one pose).
|
|
525
525
|
*
|
|
526
526
|
* Named rather than assumed:
|
|
527
527
|
* - `frame`: which frame the axis is measured in. `attachment`, the default, is the frame the part is fastened
|
|
@@ -535,7 +535,7 @@ export declare function checkV3Joints(asset: V3Asset): void;
|
|
|
535
535
|
* distance.
|
|
536
536
|
* - `clip`: optional, and named. A clip is declared, never inferred from an id.
|
|
537
537
|
*/
|
|
538
|
-
export interface
|
|
538
|
+
export interface FigureMotionRequest {
|
|
539
539
|
kind: 'add-motion';
|
|
540
540
|
part: string;
|
|
541
541
|
motion: {
|
|
@@ -553,7 +553,7 @@ export interface V3MotionRequest {
|
|
|
553
553
|
sweep?: number;
|
|
554
554
|
};
|
|
555
555
|
travel?: {
|
|
556
|
-
source?:
|
|
556
|
+
source?: FigureDimensionSource;
|
|
557
557
|
times?: number;
|
|
558
558
|
plus?: number;
|
|
559
559
|
};
|
|
@@ -572,7 +572,7 @@ export interface V3MotionRequest {
|
|
|
572
572
|
/**
|
|
573
573
|
* The room a figure takes up, worked out from its parts.
|
|
574
574
|
*
|
|
575
|
-
* Proposing and declaring are two steps on purpose (
|
|
575
|
+
* Proposing and declaring are two steps on purpose (designer's ruling 2026-09-23). What the parts come to is
|
|
576
576
|
* a candidate; the author confirms it. Nothing here ever widens a declaration that is already in the asset
|
|
577
577
|
* because the model changed — a figure that has outgrown its declared volume is something the gate reports, not
|
|
578
578
|
* something an authoring command papers over. Re-propose and confirm again.
|
|
@@ -584,7 +584,7 @@ export interface V3MotionRequest {
|
|
|
584
584
|
* Naming the face the figure is mounted on is a separate command. It is a different claim from how much room
|
|
585
585
|
* the figure takes up, and an author may want one without the other.
|
|
586
586
|
*/
|
|
587
|
-
export interface
|
|
587
|
+
export interface FigureOccupancyProposal {
|
|
588
588
|
over: 'rest' | 'range';
|
|
589
589
|
/** What the bounds come to at the asset's current design inputs, so a person sees what they are confirming. */
|
|
590
590
|
at: Record<Axis, {
|
|
@@ -601,28 +601,28 @@ export interface V3OccupancyProposal {
|
|
|
601
601
|
/**
|
|
602
602
|
* The figure this was read from, as one value. Confirming a proposal against a different figure is refused:
|
|
603
603
|
* comparing the list of parts was not enough, because widening a part keeps the list and changes the answer
|
|
604
|
-
* (
|
|
604
|
+
* (designer's counterexample 2026-09-23 — a 100 mm part grown to 300 mm slipped an unseen volume through).
|
|
605
605
|
*/
|
|
606
606
|
basis: string;
|
|
607
607
|
}
|
|
608
608
|
/** What the parts come to, and what a person is being asked to confirm. Reads the asset; changes nothing. */
|
|
609
|
-
export declare function
|
|
609
|
+
export declare function proposeFigureOccupancy(asset: FigureAsset, options?: {
|
|
610
610
|
over?: 'rest' | 'range';
|
|
611
|
-
}):
|
|
611
|
+
}): FigureOccupancyProposal;
|
|
612
612
|
/** The places things are held, with the part and face each sits on -- what a screen lists. */
|
|
613
|
-
export interface
|
|
613
|
+
export interface FigureBindingPlace {
|
|
614
614
|
id: string;
|
|
615
615
|
label: string;
|
|
616
616
|
role: 'seat' | 'grip';
|
|
617
617
|
part: string | null;
|
|
618
|
-
face:
|
|
618
|
+
face: FigureFace | null;
|
|
619
619
|
accepts: string[];
|
|
620
620
|
capacity: number;
|
|
621
621
|
region: Record<Axis, number> | null;
|
|
622
622
|
}
|
|
623
|
-
export declare function
|
|
623
|
+
export declare function figureBindingsOf(asset: FigureAsset): FigureBindingPlace[];
|
|
624
624
|
/** What 「every length follows the one ratio」 changes, and what it leaves and why. */
|
|
625
|
-
export interface
|
|
625
|
+
export interface FigureProportionPlan {
|
|
626
626
|
/** A part's own measure on a shape axis, and the share of the figure's size on that axis it becomes. */
|
|
627
627
|
dimensions: Array<{
|
|
628
628
|
part: string;
|
|
@@ -647,5 +647,5 @@ export interface V3ProportionPlan {
|
|
|
647
647
|
}>;
|
|
648
648
|
}
|
|
649
649
|
/** Reads the asset; changes nothing. Refused for a figure that does not grow by one ratio. */
|
|
650
|
-
export declare function
|
|
651
|
-
//# sourceMappingURL=
|
|
650
|
+
export declare function proposeFigureProportion(asset: FigureAsset): FigureProportionPlan;
|
|
651
|
+
//# sourceMappingURL=authoring-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authoring-actions.d.ts","sourceRoot":"","sources":["../src/authoring-actions.ts"],"names":[],"mappings":"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"}
|