@hatiolab/figure-model 0.1.93 → 0.1.95
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/dist/asset-types.d.ts +7 -1
- package/dist/asset-types.d.ts.map +1 -1
- package/dist/asset.d.ts +12 -0
- package/dist/asset.d.ts.map +1 -1
- package/dist/asset.js +29 -8
- package/dist/asset.js.map +1 -1
- package/dist/authoring-actions.d.ts +13 -2
- package/dist/authoring-actions.d.ts.map +1 -1
- package/dist/authoring-actions.js +58 -31
- package/dist/authoring-actions.js.map +1 -1
- package/dist/authoring-session.d.ts +2 -0
- package/dist/authoring-session.d.ts.map +1 -1
- package/dist/authoring-session.js.map +1 -1
- package/dist/clip-keeping.d.ts +30 -0
- package/dist/clip-keeping.d.ts.map +1 -0
- package/dist/clip-keeping.js +77 -0
- package/dist/clip-keeping.js.map +1 -0
- package/dist/command-preview.d.ts +125 -0
- package/dist/command-preview.d.ts.map +1 -0
- package/dist/command-preview.js +246 -0
- package/dist/command-preview.js.map +1 -0
- package/dist/editor-workspace.d.ts +65 -1
- package/dist/editor-workspace.d.ts.map +1 -1
- package/dist/editor-workspace.js +48 -6
- package/dist/editor-workspace.js.map +1 -1
- package/dist/gate.d.ts +8 -0
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +13 -7
- package/dist/gate.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel-version.d.ts +1 -1
- package/dist/kernel-version.js +1 -1
- package/dist/part-edit.d.ts +3 -2
- package/dist/part-edit.d.ts.map +1 -1
- package/dist/part-edit.js +22 -6
- package/dist/part-edit.js.map +1 -1
- package/dist/proposal.d.ts +15 -2
- package/dist/proposal.d.ts.map +1 -1
- package/dist/proposal.js +12 -4
- package/dist/proposal.js.map +1 -1
- package/dist/release-contract.d.ts.map +1 -1
- package/dist/release-contract.js +3 -2
- package/dist/release-contract.js.map +1 -1
- package/dist/resize-plan.d.ts +61 -0
- package/dist/resize-plan.d.ts.map +1 -0
- package/dist/resize-plan.js +189 -0
- package/dist/resize-plan.js.map +1 -0
- package/dist/room.d.ts +53 -0
- package/dist/room.d.ts.map +1 -0
- package/dist/room.js +90 -0
- package/dist/room.js.map +1 -0
- package/dist/shape-provider.d.ts +37 -0
- package/dist/shape-provider.d.ts.map +1 -0
- package/dist/shape-provider.js +69 -0
- package/dist/shape-provider.js.map +1 -0
- package/dist/size-edit.d.ts +38 -0
- package/dist/size-edit.d.ts.map +1 -0
- package/dist/size-edit.js +178 -0
- package/dist/size-edit.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { compileFigureGraph } from "./graph.js";
|
|
2
|
+
import { figureShapeProviderOf } from "./shape-provider.js";
|
|
3
|
+
import { KEPT_FACE } from "./resize-plan.js";
|
|
4
|
+
import { compileFigureAsset, figurePlacementOf, upgradeFigurePlacement } from "./asset.js";
|
|
5
|
+
import { figureOccupiedBoxesOf, figureWritersOf } from "./gate.js";
|
|
6
|
+
import { AXES } from "./words.js";
|
|
7
|
+
const round6 = (v) => Math.round(v * 1e6) / 1e6;
|
|
8
|
+
/** The changes as given, and the part's own position along the plane's normal moved so the kept face stays where it is. */
|
|
9
|
+
/**
|
|
10
|
+
* How a part stands turned, for the face a size change keeps: `none`, `about-normal` (turned only about the plane's
|
|
11
|
+
* normal, so its named face along the normal still lies along the plane), `other`, or `unknown` when a turn is not a
|
|
12
|
+
* number here (worked out, or state).
|
|
13
|
+
*/
|
|
14
|
+
function turnKindOf(asset, pose, normal) {
|
|
15
|
+
const m = asset.document.model;
|
|
16
|
+
const turn = pose.args.slice(3, 6).map(ref => m.constants.find((c) => c.id === ref)?.value ?? asset.designInputs[ref]);
|
|
17
|
+
if (turn.some(t => typeof t !== 'number' || !Number.isFinite(t)))
|
|
18
|
+
return 'unknown';
|
|
19
|
+
if (turn.every(t => t === 0))
|
|
20
|
+
return 'none';
|
|
21
|
+
return AXES.every((axis, i) => axis === normal || turn[i] === 0) ? 'about-normal' : 'other';
|
|
22
|
+
}
|
|
23
|
+
export function figureSizeEditChanges(asset, part, changes) {
|
|
24
|
+
asset = upgradeFigurePlacement(asset);
|
|
25
|
+
const given = [...changes];
|
|
26
|
+
const kept = KEPT_FACE[figurePlacementOf(asset)];
|
|
27
|
+
if (!kept)
|
|
28
|
+
return given;
|
|
29
|
+
const m = asset.document.model;
|
|
30
|
+
const node = (id) => m.nodes.find((n) => n.id === id);
|
|
31
|
+
const place = node(part);
|
|
32
|
+
const pose = node(`${part}.pose`);
|
|
33
|
+
if (place?.op !== 'place@1' || pose?.op !== 'rigid@1')
|
|
34
|
+
return given;
|
|
35
|
+
if ((asset.joints ?? []).some((j) => j.body1?.part === part) || node(`${part}.chain`) || node(`${part}.seat.rigid`))
|
|
36
|
+
return given;
|
|
37
|
+
const shape = m.nodes.find((n) => Object.values(n.outputs ?? {}).includes(place.args[0]));
|
|
38
|
+
const face = shape && figureShapeProviderOf(shape.op)?.faces[kept.face];
|
|
39
|
+
if (!face || face.axis !== kept.normal)
|
|
40
|
+
return given;
|
|
41
|
+
const position = pose.args[AXES.indexOf(kept.normal)];
|
|
42
|
+
const own = position === `${part}.position.${kept.normal}` && m.inputs.some((i) => i.id === position && i.role === 'design');
|
|
43
|
+
if (!own || given.some(c => c.input === position))
|
|
44
|
+
return given;
|
|
45
|
+
const turn = turnKindOf(asset, pose, kept.normal);
|
|
46
|
+
if (turn === 'unknown')
|
|
47
|
+
return given;
|
|
48
|
+
const graph = compileFigureGraph(m);
|
|
49
|
+
const before = { ...asset.designInputs, ...asset.stateDefaults };
|
|
50
|
+
const after = { ...before };
|
|
51
|
+
for (const c of given)
|
|
52
|
+
after[c.input] = c.value;
|
|
53
|
+
/*
|
|
54
|
+
Unturned, or turned only about the plane's normal, the named face still lies along the plane: it is kept. Turned any
|
|
55
|
+
other way, it does not; the point kept is the extreme the part covers along the normal -- its lowest on a floor, its
|
|
56
|
+
highest on a ceiling, its backmost on a wall -- as the one-off align measures it (designer 2026-09-27: a turned
|
|
57
|
+
part typed into its fields must still land as meant).
|
|
58
|
+
*/
|
|
59
|
+
const planeAt = (inputs) => {
|
|
60
|
+
if (turn !== 'other') {
|
|
61
|
+
const values = graph.evaluate(inputs).values;
|
|
62
|
+
return face.plane.reduce((sum, p) => sum + p.k * values[shape.args[p.arg]], 0);
|
|
63
|
+
}
|
|
64
|
+
const geometry = compileFigureAsset({ ...asset, designInputs: { ...asset.designInputs, ...inputs } }).evaluate().geometry;
|
|
65
|
+
const box = figureOccupiedBoxesOf(geometry, figureWritersOf(asset)).find(b => b.part === part);
|
|
66
|
+
return box.centre[kept.normal] + (kept.outward > 0 ? -1 : 1) * (box.extent[kept.normal] / 2) - (inputs[position] ?? 0);
|
|
67
|
+
};
|
|
68
|
+
const shift = planeAt(before) - planeAt(after);
|
|
69
|
+
if (!Number.isFinite(shift) || Math.abs(shift) < 1e-9)
|
|
70
|
+
return given;
|
|
71
|
+
return [...given, { kind: 'set-design', input: position, unit: 'mm', value: round6(before[position] + shift) }];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Per axis of the part's own frame, the face a size change keeps: 1 the low face (the part grows toward +), -1 the high
|
|
75
|
+
* face, 0 its centre -- what `figureSizeEditChanges` writes for a part placed by its own numbers, and what a fastening
|
|
76
|
+
* keeps for a fastened one (its face along the normal, its edges where it is aligned min or max). A gizmo drag shows
|
|
77
|
+
* this while it is dragged, so what the author sees is what is written (designer 2026-09-27: 「드래그 중 미리보기와
|
|
78
|
+
* 확정에 같은 기준면·간격 규칙」). Undefined where it cannot be said in the part's own axes -- a fastening turned or
|
|
79
|
+
* twisted -- and the caller must not guess one.
|
|
80
|
+
*/
|
|
81
|
+
export function figureScaleAnchorOf(asset, part) {
|
|
82
|
+
asset = upgradeFigurePlacement(asset);
|
|
83
|
+
const m = asset.document.model;
|
|
84
|
+
const node = (id) => m.nodes.find((n) => n.id === id);
|
|
85
|
+
const pose = node(`${part}.pose`);
|
|
86
|
+
if (!node(part) || pose?.op !== 'rigid@1')
|
|
87
|
+
return undefined;
|
|
88
|
+
const centre = { x: 0, y: 0, z: 0 };
|
|
89
|
+
const joint = (asset.joints ?? []).find((j) => j.body1?.part === part);
|
|
90
|
+
if (joint) {
|
|
91
|
+
const o = joint.origin ?? {};
|
|
92
|
+
if (o.twist || Object.values(o.turn ?? {}).some(t => t))
|
|
93
|
+
return undefined;
|
|
94
|
+
const anchor = { ...centre };
|
|
95
|
+
const face = joint.body1.face;
|
|
96
|
+
const FACE = { left: ['x', 1], right: ['x', -1], bottom: ['y', 1], top: ['y', -1], back: ['z', 1], front: ['z', -1] };
|
|
97
|
+
if (FACE[face])
|
|
98
|
+
anchor[FACE[face][0]] = FACE[face][1];
|
|
99
|
+
for (const [axis, how] of Object.entries(o.align ?? {}))
|
|
100
|
+
if (how === 'min')
|
|
101
|
+
anchor[axis] = 1;
|
|
102
|
+
else if (how === 'max')
|
|
103
|
+
anchor[axis] = -1;
|
|
104
|
+
return anchor;
|
|
105
|
+
}
|
|
106
|
+
if (node(`${part}.chain`) || node(`${part}.seat.rigid`))
|
|
107
|
+
return undefined;
|
|
108
|
+
const kept = KEPT_FACE[figurePlacementOf(asset)];
|
|
109
|
+
/* Placed at the centre, a size edit leaves the position as it is: the part grows about its centre. */
|
|
110
|
+
if (!kept)
|
|
111
|
+
return centre;
|
|
112
|
+
/*
|
|
113
|
+
Turned only about the plane's normal, its own axis along the normal is the plane's: the face is kept as unturned.
|
|
114
|
+
Turned any other way, the point kept is an extreme of what it covers, which no face of its own frame is: a drag
|
|
115
|
+
cannot show it, and the caller must not guess one (the fields keep it).
|
|
116
|
+
*/
|
|
117
|
+
const turn = turnKindOf(asset, pose, kept.normal);
|
|
118
|
+
if (turn === 'other' || turn === 'unknown')
|
|
119
|
+
return undefined;
|
|
120
|
+
const position = pose.args[AXES.indexOf(kept.normal)];
|
|
121
|
+
if (position !== `${part}.position.${kept.normal}`)
|
|
122
|
+
return centre;
|
|
123
|
+
return { ...centre, [kept.normal]: kept.outward };
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* "Put it on the plane, this once" -- the modeller's one-off align tool, by the figure's placement (designer 2026-09-27):
|
|
127
|
+
* a floor figure's part brings its bottom to Y 0, a ceiling one's its top, a wall one's its back to Z 0, and a centred
|
|
128
|
+
* figure's part its centre to the origin's height. Only the part's own position number moves; nothing is fastened, so a
|
|
129
|
+
* later change of size keeps the face by the size rule, not by a fastening (ADR-0097 §5.2: aligning once is not
|
|
130
|
+
* attaching). A part standing turned is aligned by the extent it covers turned, its lowest (highest, backmost) point,
|
|
131
|
+
* since its named face no longer lies along the plane.
|
|
132
|
+
*
|
|
133
|
+
* Refused, with the reason: a fastened part (its fastening places it), and a part whose position is worked out. The
|
|
134
|
+
* part's turn is never changed: only the one position number is written.
|
|
135
|
+
*/
|
|
136
|
+
export function figurePlaneAlignChanges(asset, part) {
|
|
137
|
+
asset = upgradeFigurePlacement(asset);
|
|
138
|
+
const placement = figurePlacementOf(asset);
|
|
139
|
+
const kept = KEPT_FACE[placement];
|
|
140
|
+
const m = asset.document.model;
|
|
141
|
+
const node = (id) => m.nodes.find((n) => n.id === id);
|
|
142
|
+
const pose = node(`${part}.pose`);
|
|
143
|
+
if ((asset.joints ?? []).some((j) => j.body1?.part === part) || node(`${part}.chain`) || node(`${part}.seat.rigid`))
|
|
144
|
+
return { changes: [], refusal: 'HELD' };
|
|
145
|
+
const axis = kept?.normal ?? 'y';
|
|
146
|
+
const position = pose?.args?.[AXES.indexOf(axis)];
|
|
147
|
+
if (pose?.op !== 'rigid@1' || position !== `${part}.position.${axis}` || !m.inputs.some((i) => i.id === position && i.role === 'design'))
|
|
148
|
+
return { changes: [], refusal: 'POSITION_RULE' };
|
|
149
|
+
const geometry = compileFigureAsset(asset).evaluate().geometry;
|
|
150
|
+
const box = figureOccupiedBoxesOf(geometry, figureWritersOf(asset)).find(b => b.part === part);
|
|
151
|
+
if (!box)
|
|
152
|
+
return { changes: [], refusal: 'NO_FACE' };
|
|
153
|
+
const values = compileFigureGraph(m).evaluate({ ...asset.designInputs, ...asset.stateDefaults }).values;
|
|
154
|
+
/* Where the kept point is now along the plane's normal: the named face for an unturned part, its covered extent turned. */
|
|
155
|
+
let at;
|
|
156
|
+
let contact;
|
|
157
|
+
if (!kept)
|
|
158
|
+
(at = box.centre[axis]), (contact = 'centre');
|
|
159
|
+
else {
|
|
160
|
+
const shape = m.nodes.find((n) => Object.values(n.outputs ?? {}).includes(node(part)?.args?.[0]));
|
|
161
|
+
const turn = turnKindOf(asset, pose, axis);
|
|
162
|
+
const named = shape ? figureShapeProviderOf(shape.op)?.faces[kept.face] : undefined;
|
|
163
|
+
const square = turn === 'none' || turn === 'about-normal';
|
|
164
|
+
/* A face lies on the plane only for a part standing square to it; otherwise what touches is the extreme it covers. */
|
|
165
|
+
if (named && square && named.axis === axis)
|
|
166
|
+
(at = values[position] + named.plane.reduce((sum, p) => sum + p.k * values[shape.args[p.arg]], 0)),
|
|
167
|
+
(contact = 'face');
|
|
168
|
+
else
|
|
169
|
+
(at = box.centre[axis] + (kept.outward > 0 ? -1 : 1) * (box.extent[axis] / 2)),
|
|
170
|
+
/* A shape with a face there, turned off the plane, is tilted; one with no face there (a ball) is not said to be. */
|
|
171
|
+
(contact = named && !square ? 'tilted' : 'extreme');
|
|
172
|
+
}
|
|
173
|
+
const next = Math.round((values[position] - at) * 1e6) / 1e6;
|
|
174
|
+
if (Math.abs(next - values[position]) < 1e-9)
|
|
175
|
+
return { changes: [], contact };
|
|
176
|
+
return { changes: [{ kind: 'set-design', input: position, unit: 'mm', value: next }], contact };
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=size-edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"size-edit.js","sourceRoot":"","sources":["../src/size-edit.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hatiolab/figure-model",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.95",
|
|
4
4
|
"description": "The figure format (figure-asset-1): a kernel that evaluates a figure from its declared relations, the authoring commands a modeller and an AI share, the release gate and the score.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"figure",
|