@hatiolab/figure-model 0.9.3 → 0.9.5
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.d.ts +9 -0
- package/dist/asset.d.ts.map +1 -1
- package/dist/asset.js +9 -0
- package/dist/asset.js.map +1 -1
- package/dist/authoring-actions.js +3 -3
- package/dist/authoring-actions.js.map +1 -1
- package/dist/authoring-fastening.d.ts.map +1 -1
- package/dist/authoring-fastening.js +182 -13
- package/dist/authoring-fastening.js.map +1 -1
- package/dist/authoring-geometry.d.ts +10 -1
- package/dist/authoring-geometry.d.ts.map +1 -1
- package/dist/authoring-geometry.js +41 -3
- package/dist/authoring-geometry.js.map +1 -1
- package/dist/authoring-nodes.d.ts +20 -0
- package/dist/authoring-nodes.d.ts.map +1 -1
- package/dist/authoring-nodes.js +34 -0
- package/dist/authoring-nodes.js.map +1 -1
- package/dist/authoring-occupancy.d.ts.map +1 -1
- package/dist/authoring-occupancy.js +137 -36
- package/dist/authoring-occupancy.js.map +1 -1
- package/dist/authoring-types.d.ts +33 -1
- package/dist/authoring-types.d.ts.map +1 -1
- package/dist/face-overhang.d.ts +22 -2
- package/dist/face-overhang.d.ts.map +1 -1
- package/dist/face-overhang.js +139 -1
- package/dist/face-overhang.js.map +1 -1
- package/dist/fasten-place.d.ts +77 -0
- package/dist/fasten-place.d.ts.map +1 -1
- package/dist/fasten-place.js +214 -2
- package/dist/fasten-place.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/joint-writing.d.ts.map +1 -1
- package/dist/joint-writing.js +67 -6
- package/dist/joint-writing.js.map +1 -1
- package/dist/kernel-version.d.ts +1 -1
- package/dist/kernel-version.js +1 -1
- package/dist/proposal.js +2 -2
- package/dist/proposal.js.map +1 -1
- package/dist/shape-edit.d.ts +1 -1
- package/dist/shape-edit.js +1 -1
- package/dist/shape-extreme.d.ts +55 -4
- package/dist/shape-extreme.d.ts.map +1 -1
- package/dist/shape-extreme.js +118 -4
- package/dist/shape-extreme.js.map +1 -1
- package/dist/size-edit.d.ts +32 -8
- package/dist/size-edit.d.ts.map +1 -1
- package/dist/size-edit.js +68 -125
- package/dist/size-edit.js.map +1 -1
- package/package.json +1 -1
package/dist/fasten-place.js
CHANGED
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
import { figurePlacementOf, upgradeFigurePlacement } from "./asset.js";
|
|
10
10
|
import { evaluate } from "./command-preview.js";
|
|
11
11
|
import { compileFigureGraph, figureShapeFaces } from "./graph.js";
|
|
12
|
-
import { ownSpansOf, mul3, mv3, transpose3, IDENTITY } from "./authoring-geometry.js";
|
|
13
|
-
import { figureReachValue, figureShapeExtremeAlong } from "./shape-extreme.js";
|
|
12
|
+
import { ownSpansOf, mul3, mv3, transpose3, IDENTITY, aroundOf, aroundNormalOf, planeOf } from "./authoring-geometry.js";
|
|
13
|
+
import { figureReachValue, figureShapeExtremeAlong, figureSurfaceFormOf as surfaceFormOf } from "./shape-extreme.js";
|
|
14
|
+
import { figureShapeBoundsOf } from "./shape-ops.js";
|
|
15
|
+
import { applyFigureAuthoring } from "./authoring-actions.js";
|
|
14
16
|
import { AXES } from "./words.js";
|
|
15
17
|
/**
|
|
16
18
|
* The axes across the face a part is fastened to: the two that are not its normal -- the plane's by the figure's
|
|
@@ -88,4 +90,214 @@ export function figureFastenPlaceOf(a) {
|
|
|
88
90
|
}
|
|
89
91
|
return at;
|
|
90
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* The curved surface a part can be fastened to at a point (ADR-0140 3.9): `around` -- a cylinder's side, `axis` its
|
|
95
|
+
* push -- or `toward` -- a sphere's or an ellipsoid's, `axis` the one it is turned about. Nothing for a part with flat
|
|
96
|
+
* faces only, a frustum, or rounded corners.
|
|
97
|
+
*/
|
|
98
|
+
export function figureSurfaceOf(source, part) {
|
|
99
|
+
const m = upgradeFigurePlacement(source).document.model;
|
|
100
|
+
const shape = m.nodes.find((n) => n.id === `${part}.shape`);
|
|
101
|
+
const form = shape ? surfaceFormOf(m, part, part) : undefined;
|
|
102
|
+
return form ? { form, axis: (shape.params?.axis ?? 'y') } : undefined;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* The point on `target`'s curved surface on the side `part` stands on now (ADR-0140 3.9, its default): the direction
|
|
106
|
+
* from the target's middle to the middle of the part's real extent, in the target's own frame. On a sphere that
|
|
107
|
+
* direction is `toward`; on a cylinder's side its angle round the push is `around`, and how far along the push the
|
|
108
|
+
* part's middle is from the side's middle is `along` -- to a tenth of a millimetre, the centre when nearer than half one.
|
|
109
|
+
* Nothing when the target has no such surface, or the part stands on its axis, or beyond a cylinder's end -- an end
|
|
110
|
+
* disc faces it there, not the side.
|
|
111
|
+
*/
|
|
112
|
+
export function figureSurfaceKeptPlaceOf(source, part, target, values = {}) {
|
|
113
|
+
const form = figureSurfaceOf(source, target)?.form;
|
|
114
|
+
if (!form)
|
|
115
|
+
return undefined;
|
|
116
|
+
const asset = upgradeFigurePlacement(source);
|
|
117
|
+
const m = asset.document.model;
|
|
118
|
+
const geometry = evaluate(source, values);
|
|
119
|
+
const poseOf = (id) => geometry.find(g => g.id === id)?.pose;
|
|
120
|
+
const [mine, theirs] = [poseOf(part), poseOf(target)];
|
|
121
|
+
if (!mine || !theirs)
|
|
122
|
+
return undefined;
|
|
123
|
+
const graph = compileFigureGraph(m).evaluate({ ...asset.designInputs, ...asset.stateDefaults, ...values }).values;
|
|
124
|
+
const R = mul3(transpose3(theirs.r), mine.r);
|
|
125
|
+
const o = mv3(transpose3(theirs.r), mine.t.map((v, i) => v - theirs.t[i]));
|
|
126
|
+
/* The middle of its real extent, in the target's frame. */
|
|
127
|
+
const middle = AXES.map((_, k) => {
|
|
128
|
+
const along = (sign) => figureReachValue(figureShapeExtremeAlong(m, part, mv3(transpose3(R), AXES.map((_, i) => (i === k ? sign : 0))), part), graph);
|
|
129
|
+
return o[k] + (along(1) - along(-1)) / 2;
|
|
130
|
+
});
|
|
131
|
+
if (form === 'toward') {
|
|
132
|
+
const length = Math.hypot(...middle);
|
|
133
|
+
if (length < 1e-9)
|
|
134
|
+
return undefined;
|
|
135
|
+
return { toward: Object.fromEntries(AXES.map((a, i) => [a, Math.round((middle[i] / length) * 1e6) / 1e6 || 0])) };
|
|
136
|
+
}
|
|
137
|
+
const shape = m.nodes.find((n) => n.id === `${target}.shape`);
|
|
138
|
+
const push = shape.params.axis;
|
|
139
|
+
const across = middle.map((v, i) => (AXES[i] === push ? 0 : v));
|
|
140
|
+
if (Math.hypot(...across) < 1e-9)
|
|
141
|
+
return undefined;
|
|
142
|
+
const span = ownSpansOf(m, target, target)[push];
|
|
143
|
+
const at = (terms) => terms.reduce((s, t) => s + t.k * graph[t.ref], 0);
|
|
144
|
+
const off = Math.round((middle[AXES.indexOf(push)] - (span ? (at(span.lo) + at(span.hi)) / 2 : 0)) * 10) / 10;
|
|
145
|
+
if (span && Math.abs(off) > Math.abs(at(span.hi) - at(span.lo)) / 2)
|
|
146
|
+
return undefined;
|
|
147
|
+
return { around: Math.round(aroundOf(push, across) * 10) / 10 % 360, along: Math.abs(off) < 0.5 ? 'centre' : { mm: off } };
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* An angle chosen round a curved surface (ADR-0140 3.9, stage 4): caught at every 45° within 5°, else to a whole degree
|
|
151
|
+
* -- one rule for an angle dragged in the fastening window and one pressed on the canvas (chief architect 2026-10-20).
|
|
152
|
+
*/
|
|
153
|
+
export function figureCaughtAngleOf(degrees) {
|
|
154
|
+
const near = Math.round(degrees / 45) * 45;
|
|
155
|
+
return (Math.abs(degrees - near) <= 5 ? near : Math.round(degrees)) || 0;
|
|
156
|
+
}
|
|
157
|
+
/** A point of a curved surface as the angles it is chosen by (`figureSurfacePlaceOf` is the way back). */
|
|
158
|
+
export function figureSurfaceAnglesOf(surface, place) {
|
|
159
|
+
if ('around' in place)
|
|
160
|
+
return { around: place.around };
|
|
161
|
+
const n = AXES.map(a => place.toward[a] ?? 0);
|
|
162
|
+
const k = AXES.indexOf(surface.axis);
|
|
163
|
+
const flat = n.map((c, i) => (i === k ? 0 : c));
|
|
164
|
+
return {
|
|
165
|
+
azimuth: Math.hypot(...flat) > 1e-9 ? aroundOf(surface.axis, flat) : 0,
|
|
166
|
+
elevation: (Math.asin(Math.max(-1, Math.min(1, n[k]))) * 180) / Math.PI
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* The point the angles choose, `along` a cylinder's side kept from `place`: a sphere's direction is its azimuth's
|
|
171
|
+
* direction across its axis, raised by its elevation, written as the record keeps it (to a millionth).
|
|
172
|
+
*/
|
|
173
|
+
export function figureSurfacePlaceOf(surface, place, angles) {
|
|
174
|
+
if ('around' in angles)
|
|
175
|
+
return { around: ((angles.around % 360) + 360) % 360, along: 'along' in place ? place.along : 'centre' };
|
|
176
|
+
const e = (Math.max(-90, Math.min(90, angles.elevation)) * Math.PI) / 180;
|
|
177
|
+
const across = aroundNormalOf(surface.axis, angles.azimuth);
|
|
178
|
+
const k = AXES.indexOf(surface.axis);
|
|
179
|
+
const n = across.map((c, i) => (i === k ? Math.sin(e) : Math.cos(e) * c)).map(c => Math.round(c * 1e6) / 1e6 || 0);
|
|
180
|
+
return { toward: { x: n[0], y: n[1], z: n[2] } };
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* What a press on a part lands on, for a fastening (ADR-0140 stage 4, chief architect 2026-10-20): `point` and `normal`
|
|
184
|
+
* in the part's own frame, as the scene tells them -- the normal of the drawn triangle.
|
|
185
|
+
* - A flat face: the triangle's normal within 1° of the face's outward one, the point on its plane within the larger
|
|
186
|
+
* of 0.5 mm and a ten-thousandth of the part's diagonal. `at` is where on it, from its middle on each axis across
|
|
187
|
+
* it -- the place a part pressed there is put, as a point of a curved surface is -- to a tenth of a millimetre,
|
|
188
|
+
* an axis nearer the middle than half a millimetre left out (as `figureFastenKeptPlaceOf` says a place).
|
|
189
|
+
* - Else a point of its curved surface, from the point alone -- the drawn triangles of a side or a sphere lean off the
|
|
190
|
+
* true normal by up to half their angle: round a cylinder's push the point's angle, and how far along it from the
|
|
191
|
+
* middle; on a sphere or an ellipsoid the normal there, n_i ∝ p_i / r_i². The angles caught as the window catches
|
|
192
|
+
* them (`figureCaughtAngleOf`).
|
|
193
|
+
* - Else -- rounded corners, a frustum's side, a mesh -- nothing to fasten to there: `not`.
|
|
194
|
+
*/
|
|
195
|
+
export function figureFastenTargetAt(source, part, point, normal, values = {}) {
|
|
196
|
+
const asset = upgradeFigurePlacement(source);
|
|
197
|
+
const m = asset.document.model;
|
|
198
|
+
const shape = m.nodes.find((n) => n.id === `${part}.shape`);
|
|
199
|
+
const graph = compileFigureGraph(m).evaluate({ ...asset.designInputs, ...asset.stateDefaults, ...values }).values;
|
|
200
|
+
const body = evaluate(source, values).find(g => g.id === part);
|
|
201
|
+
const bounds = body?.shape ? figureShapeBoundsOf(body.shape) : undefined;
|
|
202
|
+
const diagonal = bounds ? Math.hypot(...AXES.map(a => bounds[a].max - bounds[a].min)) : 0;
|
|
203
|
+
const tolerance = Math.max(0.5, diagonal * 1e-4);
|
|
204
|
+
const length = Math.hypot(...normal);
|
|
205
|
+
const n = normal.map(v => v / (length || 1));
|
|
206
|
+
const faces = (shape && figureShapeFaces(shape, m)) ?? {};
|
|
207
|
+
for (const [name, face] of Object.entries(faces)) {
|
|
208
|
+
if (face.contact === 'line')
|
|
209
|
+
continue;
|
|
210
|
+
const k = AXES.indexOf(face.axis);
|
|
211
|
+
if (n[k] * face.normal < Math.cos(Math.PI / 180))
|
|
212
|
+
continue;
|
|
213
|
+
const plane = planeOf(shape, face).reduce((sum, t) => sum + t.k * graph[t.ref], 0);
|
|
214
|
+
if (Math.abs(point[k] - plane) > tolerance)
|
|
215
|
+
continue;
|
|
216
|
+
const spans = ownSpansOf(m, part, part);
|
|
217
|
+
const value = (terms) => terms.reduce((sum, t) => sum + t.k * graph[t.ref], 0);
|
|
218
|
+
const at = {};
|
|
219
|
+
for (const axis of AXES.filter(a => a !== face.axis)) {
|
|
220
|
+
const span = spans[axis];
|
|
221
|
+
const off = Math.round((point[AXES.indexOf(axis)] - (span ? (value(span.lo) + value(span.hi)) / 2 : 0)) * 10) / 10;
|
|
222
|
+
if (Math.abs(off) >= 0.5)
|
|
223
|
+
at[axis] = off;
|
|
224
|
+
}
|
|
225
|
+
return { face: name, at };
|
|
226
|
+
}
|
|
227
|
+
const surface = figureSurfaceOf(source, part);
|
|
228
|
+
if (!surface)
|
|
229
|
+
return { not: 'curved' };
|
|
230
|
+
const push = surface.axis;
|
|
231
|
+
if (surface.form === 'around') {
|
|
232
|
+
const across = point.map((v, i) => (AXES[i] === push ? 0 : v));
|
|
233
|
+
const span = ownSpansOf(m, part, part)[push];
|
|
234
|
+
const value = (terms) => terms.reduce((sum, t) => sum + t.k * graph[t.ref], 0);
|
|
235
|
+
const off = Math.round((point[AXES.indexOf(push)] - (span ? (value(span.lo) + value(span.hi)) / 2 : 0)) * 10) / 10;
|
|
236
|
+
return { surface: { around: figureCaughtAngleOf(aroundOf(push, across)) % 360, along: Math.abs(off) < 0.5 ? 'centre' : { mm: off } } };
|
|
237
|
+
}
|
|
238
|
+
/* A sphere or an ellipsoid: the normal of x²/a² + … = 1 at the point, its radii read as the shape has them. */
|
|
239
|
+
const radial = graph[shape.args[0]], axial = graph[shape.args[1]];
|
|
240
|
+
const r = AXES.map(a => (a === push ? axial : radial));
|
|
241
|
+
const raw = point.map((v, i) => v / (r[i] * r[i]));
|
|
242
|
+
const size = Math.hypot(...raw);
|
|
243
|
+
if (!(size > 0))
|
|
244
|
+
return { not: 'curved' };
|
|
245
|
+
const toward = Object.fromEntries(AXES.map((a, i) => [a, raw[i] / size]));
|
|
246
|
+
const angles = figureSurfaceAnglesOf(surface, { toward });
|
|
247
|
+
return { surface: figureSurfacePlaceOf(surface, { toward }, { azimuth: figureCaughtAngleOf(angles.azimuth), elevation: figureCaughtAngleOf(angles.elevation) }) };
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* The gap that keeps a part where it stands when it is fastened to `to` (ADR-0140 3.6, user 2026-10-20: 「현재 상태로
|
|
251
|
+
* 붙이기」): how far it is now from where the fastening would put it with no gap, along the face's outward normal -- the
|
|
252
|
+
* plane's, a face's, or a curved surface's at its point -- in the direction a gap moves it (out for meet and centre, in
|
|
253
|
+
* for flush). With its pose kept (3.6) and its place across the face kept (`figureFastenKeptPlaceOf`,
|
|
254
|
+
* `figureSurfaceKeptPlaceOf`), the part does not move. The fastening itself works it out, so the rule is the one rule;
|
|
255
|
+
* to a tenth of a millimetre, none nearer than half one, and none where the fastening is refused.
|
|
256
|
+
*/
|
|
257
|
+
export function figureFastenKeptGapOf(source, part, to, facing = 'meet', values = {}) {
|
|
258
|
+
const asset = upgradeFigurePlacement(source);
|
|
259
|
+
const poseIn = (a, id) => evaluate(a, values).find(g => g.id === id)?.pose;
|
|
260
|
+
const now = poseIn(source, part);
|
|
261
|
+
if (!now)
|
|
262
|
+
return 0;
|
|
263
|
+
let placed;
|
|
264
|
+
try {
|
|
265
|
+
placed = applyFigureAuthoring(asset, {
|
|
266
|
+
kind: 'attach',
|
|
267
|
+
part,
|
|
268
|
+
to: to === 'plane' ? { plane: 'mounting-plane' } : to,
|
|
269
|
+
facing,
|
|
270
|
+
replace: (asset.joints ?? []).some(j => j.body1.part === part)
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
return 0;
|
|
275
|
+
}
|
|
276
|
+
const after = poseIn(placed, part);
|
|
277
|
+
if (!after)
|
|
278
|
+
return 0;
|
|
279
|
+
/* The outward normal in the target's own frame, then in the figure's. */
|
|
280
|
+
let own;
|
|
281
|
+
if (to === 'plane')
|
|
282
|
+
own = AXES.map(a => (a === (figurePlacementOf(asset) === 'wall' ? 'z' : 'y') ? 1 : 0));
|
|
283
|
+
else if ('surface' in to) {
|
|
284
|
+
const surface = figureSurfaceOf(source, to.part);
|
|
285
|
+
if (!surface)
|
|
286
|
+
return 0;
|
|
287
|
+
own = 'around' in to.surface ? aroundNormalOf(surface.axis, to.surface.around) : AXES.map(a => to.surface.toward[a] ?? 0);
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
const shape = asset.document.model.nodes.find((n) => n.id === `${to.part}.shape`);
|
|
291
|
+
const face = shape && figureShapeFaces(shape)?.[to.face];
|
|
292
|
+
if (!face)
|
|
293
|
+
return 0;
|
|
294
|
+
own = AXES.map(a => (a === face.axis ? face.normal : 0));
|
|
295
|
+
}
|
|
296
|
+
const theirs = to === 'plane' ? undefined : poseIn(placed, to.part);
|
|
297
|
+
const n = theirs ? mv3(theirs.r, own) : own;
|
|
298
|
+
const length = Math.hypot(...n) || 1;
|
|
299
|
+
const off = now.t.reduce((sum, v, i) => sum + (v - after.t[i]) * (n[i] / length), 0);
|
|
300
|
+
const gap = Math.round((facing === 'flush' ? -off : off) * 10) / 10;
|
|
301
|
+
return Math.abs(gap) < 0.5 ? 0 : gap;
|
|
302
|
+
}
|
|
91
303
|
//# sourceMappingURL=fasten-place.js.map
|
package/dist/fasten-place.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fasten-place.js","sourceRoot":"","sources":["../src/fasten-place.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fasten-place.js","sourceRoot":"","sources":["../src/fasten-place.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { type FigureEditControl, type FigureEditRequest, type FigureInputChange
|
|
|
11
11
|
export { createFigureEditorWorkspace, type FigureEditorWorkspace, type FigureWorkspaceView, type FigureWorkspaceExport, type FigureLeaveOptions, type FigureOpenOptions } from './editor-workspace.ts';
|
|
12
12
|
export { compileFigureCapabilities } from './capabilities.ts';
|
|
13
13
|
export { compileFigureDocument, parseFigureDocument, serializeFigureDocument } from './document.ts';
|
|
14
|
-
export { compileFigureAsset, parseFigureAsset, serializeFigureAsset, captureFigureAuthoredInputs, upgradeFigurePlacement, figurePlacementOf } from './asset.ts';
|
|
14
|
+
export { compileFigureAsset, parseFigureAsset, serializeFigureAsset, captureFigureAuthoredInputs, upgradeFigurePlacement, figurePlacementOf, figurePlaneFacingOf } from './asset.ts';
|
|
15
15
|
export { publicInputRefusal } from './public-inputs.ts';
|
|
16
16
|
export { FIGURE_EXTENSION_KEYS_MAX, FIGURE_EXTENSION_VALUE_MAX_BYTES, checkFigureExtensionKey, figureExtensionValueText } from './extensions.ts';
|
|
17
17
|
export { inspectFigureAsset, FIGURE_INSPECT_LIMITS, cornerExtremalBasis, FIGURE_DESIGN_EXTREME_BASIS, figureWorldBoxesOf, figureOccupiedBoxesOf, figureWritersOf, figurePartsExtentOf, type FigureInspection, type FigureViolation, type FigureCoverage, type FigureInspectOptions, type FigureWorldBox } from './gate.ts';
|
|
@@ -28,10 +28,11 @@ export { figureRenderBatchesOf, figureStillBodiesOf, figureStillJudgeOf, figureC
|
|
|
28
28
|
export { figureScoreOf, figurePartCountOf, figurePartBudgetOf, figureGradeOf, figureMaterialKeyOf, figureIndependentBodiesOf, FIGURE_GRADE_SCALE, FIGURE_BUDGET_KEYS, FIGURE_PER_INSTANCE, type FigureScore, type FigureBudgetUse, type FigureBudgetKey } from './score.ts';
|
|
29
29
|
export { applyFigureAuthoring } from './authoring-actions.ts';
|
|
30
30
|
export { proposeFigureOccupancy } from './authoring-occupancy.ts';
|
|
31
|
-
export {
|
|
31
|
+
export { aroundNormalOf as figureAroundNormalOf, aroundOf as figureAroundOf } from './authoring-geometry.ts';
|
|
32
|
+
export { figureFastenAxesOf, figureFastenKeptPlaceOf, figureFastenKeptGapOf, figureFastenPlaceOf, figureSurfaceOf, figureSurfaceKeptPlaceOf, figureCaughtAngleOf, figureSurfaceAnglesOf, figureSurfacePlaceOf, figureFastenTargetAt, type FigureSurfaceAngles, type FigureFastenTarget, type FigureFastenAlignment } from './fasten-place.ts';
|
|
32
33
|
export { FIGURE_JOINT_SEAT_KEYS, FIGURE_JOINT_MOTION_KEYS, figureJointAsFixed, figureJointWithMotion, type FigureJointMotion } from './joint-fields.ts';
|
|
33
34
|
export { proposeFigureProportion } from './authoring-proportion.ts';
|
|
34
|
-
export { type FigureProportionPlan, FIGURE_FACES, type FigureBindingPlace, type FigureAuthoringAction, type FigureFaceRemap, type FigureDimensionSource, type FigureMeasure, type FigureFaceAlignment, type FigureFace, type FigureMotionRequest, type FigureOccupancyProposal, type RemovalNotice, type FigureJoint, type FigureJointType, type FigureJointAxis, type FigureJointVector, type FigureJointPivot, type FigureOriginEnd, type FigureFacing, FIGURE_JOINT_TYPES, FIGURE_JOINT_PIVOTS, FIGURE_FACINGS } from './authoring-types.ts';
|
|
35
|
+
export { type FigureProportionPlan, FIGURE_FACES, type FigureBindingPlace, type FigureAuthoringAction, type FigureFaceRemap, type FigureDimensionSource, type FigureMeasure, type FigureFaceAlignment, type FigureSurfacePlace, type FigureFace, type FigureMotionRequest, type FigureOccupancyProposal, type RemovalNotice, type FigureJoint, type FigureJointType, type FigureJointAxis, type FigureJointVector, type FigureJointPivot, type FigureOriginEnd, type FigureFacing, FIGURE_JOINT_TYPES, FIGURE_JOINT_PIVOTS, FIGURE_FACINGS } from './authoring-types.ts';
|
|
35
36
|
export { figureAttachmentsOf, checkFigureJoints } from './joint-writing.ts';
|
|
36
37
|
export { figureBindingsOf, figureSlotLayoutOf } from './authoring-bindings.ts';
|
|
37
38
|
export type * from './asset-types.ts';
|
|
@@ -39,7 +40,7 @@ export { FIGURE_PLACEMENTS } from './asset-types.ts';
|
|
|
39
40
|
export { applyFigureProposal, FIGURE_PROPOSAL_GRAMMAR, FIGURE_PROPOSAL_KINDS, type FigureProposalStep, type FigureProposalWord } from './proposal.ts';
|
|
40
41
|
export { figureFollowOf, type FigureFollow } from './follow.ts';
|
|
41
42
|
export { planFigureResize, type FigureResizePlan, type FigureResizeRequest, type FigureResizeRefusalCode } from './resize-plan.ts';
|
|
42
|
-
export {
|
|
43
|
+
export { figureSizeEditOf, figureSizeEditorOf, type FigureSizeKeep, type FigureSizeEdit, figurePlaneAlignChanges, type FigurePlaneAlignRefusal, type FigurePlaneContact } from './size-edit.ts';
|
|
43
44
|
export { figureRoomOnlyInputsOf, figureRoomRefitOf, type FigureRoomRefit, type FigureRoomOutside, type FigureRoomFinding } from './room.ts';
|
|
44
45
|
export { figureShapeProviderOf, figureEditableAxesOf, figureFollowableAxesOf, type FigureShapeProvider, type FigureShapeEdit, type FigureShapeEditRefusal, type FigureShapeTerm } from './shape-provider.ts';
|
|
45
46
|
export { FIGURE_SECTION_PLANE, FIGURE_SECTION_TOLERANCE, FIGURE_SECTION_POINT_LIMIT, checkFigureSection, normalizeFigureSection, figureSectionSidesOf, figureSectionSideId, figureSectionTopologyChange, figureSectionAreaOf, figureSectionBoundsOf, figureCavitySectionOf, type FigureSection, type FigureSectionPoint, type FigureSectionSide, type FigureSectionIssue, type FigureCavityRefusal } from './section.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACjF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9J,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3G,OAAO,EAAE,2BAA2B,EAAE,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACtM,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACnG,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -19,7 +19,7 @@ export {} from "./input-preview.js";
|
|
|
19
19
|
export { createFigureEditorWorkspace } from "./editor-workspace.js";
|
|
20
20
|
export { compileFigureCapabilities } from "./capabilities.js";
|
|
21
21
|
export { compileFigureDocument, parseFigureDocument, serializeFigureDocument } from "./document.js";
|
|
22
|
-
export { compileFigureAsset, parseFigureAsset, serializeFigureAsset, captureFigureAuthoredInputs, upgradeFigurePlacement, figurePlacementOf } from "./asset.js";
|
|
22
|
+
export { compileFigureAsset, parseFigureAsset, serializeFigureAsset, captureFigureAuthoredInputs, upgradeFigurePlacement, figurePlacementOf, figurePlaneFacingOf } from "./asset.js";
|
|
23
23
|
export { publicInputRefusal } from "./public-inputs.js";
|
|
24
24
|
export { FIGURE_EXTENSION_KEYS_MAX, FIGURE_EXTENSION_VALUE_MAX_BYTES, checkFigureExtensionKey, figureExtensionValueText } from "./extensions.js";
|
|
25
25
|
export { inspectFigureAsset, FIGURE_INSPECT_LIMITS, cornerExtremalBasis, FIGURE_DESIGN_EXTREME_BASIS, figureWorldBoxesOf, figureOccupiedBoxesOf, figureWritersOf, figurePartsExtentOf } from "./gate.js";
|
|
@@ -36,7 +36,8 @@ export { figureRenderBatchesOf, figureStillBodiesOf, figureStillJudgeOf, figureC
|
|
|
36
36
|
export { figureScoreOf, figurePartCountOf, figurePartBudgetOf, figureGradeOf, figureMaterialKeyOf, figureIndependentBodiesOf, FIGURE_GRADE_SCALE, FIGURE_BUDGET_KEYS, FIGURE_PER_INSTANCE } from "./score.js";
|
|
37
37
|
export { applyFigureAuthoring } from "./authoring-actions.js";
|
|
38
38
|
export { proposeFigureOccupancy } from "./authoring-occupancy.js";
|
|
39
|
-
export {
|
|
39
|
+
export { aroundNormalOf as figureAroundNormalOf, aroundOf as figureAroundOf } from "./authoring-geometry.js";
|
|
40
|
+
export { figureFastenAxesOf, figureFastenKeptPlaceOf, figureFastenKeptGapOf, figureFastenPlaceOf, figureSurfaceOf, figureSurfaceKeptPlaceOf, figureCaughtAngleOf, figureSurfaceAnglesOf, figureSurfacePlaceOf, figureFastenTargetAt } from "./fasten-place.js";
|
|
40
41
|
export { FIGURE_JOINT_SEAT_KEYS, FIGURE_JOINT_MOTION_KEYS, figureJointAsFixed, figureJointWithMotion } from "./joint-fields.js";
|
|
41
42
|
export { proposeFigureProportion } from "./authoring-proportion.js";
|
|
42
43
|
export { FIGURE_FACES, FIGURE_JOINT_TYPES, FIGURE_JOINT_PIVOTS, FIGURE_FACINGS } from "./authoring-types.js";
|
|
@@ -46,7 +47,7 @@ export { FIGURE_PLACEMENTS } from "./asset-types.js";
|
|
|
46
47
|
export { applyFigureProposal, FIGURE_PROPOSAL_GRAMMAR, FIGURE_PROPOSAL_KINDS } from "./proposal.js";
|
|
47
48
|
export { figureFollowOf } from "./follow.js";
|
|
48
49
|
export { planFigureResize } from "./resize-plan.js";
|
|
49
|
-
export {
|
|
50
|
+
export { figureSizeEditOf, figureSizeEditorOf, figurePlaneAlignChanges } from "./size-edit.js";
|
|
50
51
|
export { figureRoomOnlyInputsOf, figureRoomRefitOf } from "./room.js";
|
|
51
52
|
export { figureShapeProviderOf, figureEditableAxesOf, figureFollowableAxesOf } from "./shape-provider.js";
|
|
52
53
|
/* The shape operations (ADR-0100): sections, pushes and turns, their named features, and the one written form. */
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EAExB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAA6B,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAuB,MAAM,gBAAgB,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACjF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAA+E,MAAM,aAAa,CAAA;AAC9J,OAAO,EAA0E,MAAM,oBAAoB,CAAA;AAC3G,OAAO,EAAE,2BAA2B,EAAqI,MAAM,uBAAuB,CAAA;AACtM,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACnG,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joint-writing.d.ts","sourceRoot":"","sources":["../src/joint-writing.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAKL,KAAK,WAAW,EAGhB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"joint-writing.d.ts","sourceRoot":"","sources":["../src/joint-writing.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAKL,KAAK,WAAW,EAGhB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EASlB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC3B,MAAM,sBAAsB,CAAA;AAiC7B,KAAK,OAAO,GAAG,GAAG,CAAA;AAgHlB,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAKrF;AAED,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEhF;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,WAAW,WAAwB,CAAA;AAEhE,oGAAoG;AACpG,eAAO,MAAM,cAAc,GAAI,GAAG,WAAW,KAAG,OAAuC,CAAA;AAEvF,wHAAwH;AACxH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAQ/E;AA+fD,8FAA8F;AAC9F,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,QAexD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,CAAC,EAAE,WAAW,GACb,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,GAAG,SAAS,KAAK,IAAI,CAAA;CAAE,CAAC,CA8C1G;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,EAAE,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,qBAAqB,GAC3D,aAAa,GAAG,SAAS,CAK3B;AAsBD,8GAA8G;AAC9G,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,QAwC3C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,QAsB1D;AAED,sFAAsF;AACtF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,SAAS,QAsDhG;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,QAgCrD;AAqCD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,qBAAqB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,EAAE,QAAQ,GAAE,OAAe,QAuD7H;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAiB1D;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,OAAO,EACd,CAAC,EAAE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,GACrE,OAAO,CAwET"}
|
package/dist/joint-writing.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
/*
|
|
5
5
|
* The joint records (ADR-0093): checking one, writing its nodes, and writing every joint again after a command.
|
|
6
6
|
*/
|
|
7
|
-
import { compileFigureAssetUnjointed } from "./asset.js";
|
|
7
|
+
import { compileFigureAssetUnjointed, figurePlaneFacingOf } from "./asset.js";
|
|
8
8
|
import { compileFigureGraph, figureShapeFaces } from "./graph.js";
|
|
9
9
|
import { remappedFaces } from "./shape-edit.js";
|
|
10
10
|
import { REPEAT_LIMIT, AXES } from "./words.js";
|
|
@@ -17,7 +17,8 @@ import { figureShapeExtremeAlong, lin, plus, times, writeFigureReach } from "./s
|
|
|
17
17
|
const everyKey = () => (...keys) => keys;
|
|
18
18
|
const JOINT_FIELDS = {
|
|
19
19
|
joint: everyKey()('id', 'type', 'body0', 'body1', 'origin', 'axis', 'lowerLimit', 'upperLimit', 'travel', 'state', 'mimic', 'repeat'),
|
|
20
|
-
body0: everyKey()('part', 'face', 'plane', 'at'),
|
|
20
|
+
body0: everyKey()('part', 'face', 'surface', 'plane', 'at'),
|
|
21
|
+
surface: everyKey()('toward', 'around', 'along'),
|
|
21
22
|
body1: everyKey()('part', 'at'),
|
|
22
23
|
origin: everyKey()('facing', 'gap', 'align', 'childRotate', 'pivot', 'offset', 'parentRotate'),
|
|
23
24
|
axes: everyKey()('x', 'y', 'z'),
|
|
@@ -55,6 +56,13 @@ function knownJointFields(j, path) {
|
|
|
55
56
|
};
|
|
56
57
|
only(j, JOINT_FIELDS.joint, path);
|
|
57
58
|
only(j.body0, JOINT_FIELDS.body0, `${path}.body0`);
|
|
59
|
+
const surface = j.body0?.surface;
|
|
60
|
+
only(surface, JOINT_FIELDS.surface, `${path}.body0.surface`);
|
|
61
|
+
if (surface && typeof surface === 'object') {
|
|
62
|
+
only(surface.toward, JOINT_FIELDS.axes, `${path}.body0.surface.toward`);
|
|
63
|
+
only(surface.along, JOINT_FIELDS.alignment, `${path}.body0.surface.along`);
|
|
64
|
+
measure(surface.along?.mm, `${path}.body0.surface.along.mm`);
|
|
65
|
+
}
|
|
58
66
|
only(j.body1, JOINT_FIELDS.body1, `${path}.body1`);
|
|
59
67
|
const o = j.origin;
|
|
60
68
|
only(o, JOINT_FIELDS.origin, `${path}.origin`);
|
|
@@ -118,6 +126,42 @@ export function jointVectorOf(axis, path) {
|
|
|
118
126
|
return v.map(x => x / n);
|
|
119
127
|
}
|
|
120
128
|
const hasParentRotate = (j) => AXES.some(a => (j.origin?.parentRotate?.[a] ?? 0) !== 0);
|
|
129
|
+
/**
|
|
130
|
+
* A point on a curved surface, as its record says it (ADR-0140 3.9): one form -- the normal `toward`, a unit vector, or
|
|
131
|
+
* `around` and `along` on a cylinder's side. Where on it is the surface's own word, so `align` is not; and the seat
|
|
132
|
+
* frame is the surface's there, so a parent-end rotation is not taken with it. Which forms a shape takes is said when
|
|
133
|
+
* it is written (placeOnFace).
|
|
134
|
+
*/
|
|
135
|
+
function checkSurfacePlace(j, path) {
|
|
136
|
+
const s = j.body0.surface;
|
|
137
|
+
const at = `${path}.body0.surface`;
|
|
138
|
+
if (!s || typeof s !== 'object')
|
|
139
|
+
fail('JOINT_SCHEMA', at, 'a place on a surface is { toward } or { around, along }');
|
|
140
|
+
const round = 'toward' in s && s.toward !== undefined;
|
|
141
|
+
const side = ('around' in s && s.around !== undefined) || ('along' in s && s.along !== undefined);
|
|
142
|
+
if (round === side)
|
|
143
|
+
fail('JOINT_SCHEMA', at, 'a place on a surface is { toward } on a round surface or { around, along } on a side, one of them');
|
|
144
|
+
if (round) {
|
|
145
|
+
const v = AXES.map(a => s.toward?.[a] ?? 0);
|
|
146
|
+
if (!v.every(x => typeof x === 'number' && Number.isFinite(x)))
|
|
147
|
+
fail('JOINT_SCHEMA', `${at}.toward`, 'toward is three finite numbers { x, y, z }');
|
|
148
|
+
const n = Math.hypot(...v);
|
|
149
|
+
if (!(n > 1e-9))
|
|
150
|
+
fail('JOINT_SCHEMA', `${at}.toward`, 'toward is the outward normal there; a zero vector points nowhere');
|
|
151
|
+
if (Math.abs(n - 1) > 1e-5)
|
|
152
|
+
fail('JOINT_SCHEMA', `${at}.toward`, `toward is a unit vector; this one is ${round6(n)} long`);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
if (typeof s.around !== 'number' || !Number.isFinite(s.around))
|
|
156
|
+
fail('JOINT_SCHEMA', `${at}.around`, 'around is the normal\'s angle about the push axis, in degrees');
|
|
157
|
+
if (s.along === undefined)
|
|
158
|
+
fail('JOINT_SCHEMA', `${at}.along`, "along says where on the push: 'centre', 'min', 'max' or { mm }");
|
|
159
|
+
}
|
|
160
|
+
if (j.origin?.align !== undefined && Object.values(j.origin.align).some(v => v !== undefined))
|
|
161
|
+
fail('JOINT_SCHEMA', `${path}.origin.align`, 'on a surface the place is the surface\'s own words (toward, around, along), not align');
|
|
162
|
+
if (hasParentRotate(j))
|
|
163
|
+
fail('JOINT_SCHEMA', `${path}.origin.parentRotate`, 'on a surface the joint frame is the surface\'s there; it is not turned again');
|
|
164
|
+
}
|
|
121
165
|
/**
|
|
122
166
|
* The joint frame's own words (ADR-0107, contract 2026-10-03): the pivot, the offset and the parent end's rotation, and
|
|
123
167
|
* the ends placed by an origin. A joint at its parent's origin is placed by offset and parentRotate alone: a face's
|
|
@@ -133,15 +177,17 @@ function checkJointFrames(j, path) {
|
|
|
133
177
|
fail('JOINT_SCHEMA', `${path}.body0`, `${String(body0.at)} is not a place on a part; at: 'origin' is`);
|
|
134
178
|
if ('at' in body1 && body1.at !== 'origin')
|
|
135
179
|
fail('JOINT_SCHEMA', `${path}.body1`, `${String(body1.at)} is not a place on a part; at: 'origin' is`);
|
|
136
|
-
if ('at' in body0 && ('face' in body0 || 'plane' in body0))
|
|
180
|
+
if ('at' in body0 && ('face' in body0 || 'plane' in body0 || 'surface' in body0))
|
|
137
181
|
fail('JOINT_SCHEMA', `${path}.body0`, "a joint hangs at a part's origin or on a face, not both");
|
|
182
|
+
if ('surface' in body0)
|
|
183
|
+
checkSurfacePlace(j, path);
|
|
138
184
|
if (isOriginPlaced(j)) {
|
|
139
185
|
for (const key of ['align', 'gap', 'facing', 'childRotate', 'pivot'])
|
|
140
186
|
if (o[key] !== undefined)
|
|
141
187
|
fail('JOINT_SCHEMA', `${path}.origin.${key}`, `${key} places a part on a face; ${body0.part}'s origin is a point and a frame, placed by offset and parentRotate`);
|
|
142
188
|
}
|
|
143
189
|
else if ('at' in body1)
|
|
144
|
-
fail('JOINT_SCHEMA', `${path}.body1`, `a child is placed by its origin only at its parent's origin; ${'plane' in body0 ? 'the mounting plane' : `${body0.part}'s ${String(body0.face)}`} is a face`);
|
|
190
|
+
fail('JOINT_SCHEMA', `${path}.body1`, `a child is placed by its origin only at its parent's origin; ${'plane' in body0 ? 'the mounting plane' : 'surface' in body0 ? `${body0.part}'s surface` : `${body0.part}'s ${String(body0.face)}`} is a face`);
|
|
145
191
|
if (o.pivot !== undefined && !FIGURE_JOINT_PIVOTS.includes(o.pivot))
|
|
146
192
|
fail('JOINT_SCHEMA', `${path}.origin.pivot`, `${String(o.pivot)} is not a pivot; ${FIGURE_JOINT_PIVOTS.join(', ')}`);
|
|
147
193
|
if (o.pivot === 'child-face' && o.facing === 'centre')
|
|
@@ -270,6 +316,8 @@ function checkJoint(asset, j) {
|
|
|
270
316
|
const row = `${path}.repeat`;
|
|
271
317
|
if (!('part' in j.body0))
|
|
272
318
|
fail('JOINT_SCHEMA', row, 'a row fills the part it is fastened to; the mounting plane has no length to fill');
|
|
319
|
+
if ('surface' in j.body0)
|
|
320
|
+
fail('JOINT_SCHEMA', row, 'a row runs across a flat face, from edge to edge; one on a curved surface is not covered yet (ADR-0140 3.9)');
|
|
273
321
|
/* A row runs across a face, from edge to edge: a frame moved, turned or placed at an origin is not covered yet. */
|
|
274
322
|
if (isOriginPlaced(j))
|
|
275
323
|
fail('JOINT_SCHEMA', row, 'a row runs across the face it is fastened to; a joint placed at an origin has none');
|
|
@@ -864,7 +912,20 @@ export function fastenAsJoint(asset, a, standing = asset) {
|
|
|
864
912
|
let id = a.part;
|
|
865
913
|
for (let k = 2; !was && taken.has(id); k++)
|
|
866
914
|
id = `${a.part}-${k}`;
|
|
867
|
-
|
|
915
|
+
/* A point on a curved surface is kept as said; its normal written as a unit vector, as the record holds it (3.9). */
|
|
916
|
+
const surfaceOf = (s) => {
|
|
917
|
+
if (!s || typeof s !== 'object' || !s.toward || typeof s.toward !== 'object')
|
|
918
|
+
return s;
|
|
919
|
+
const v = AXES.map(a => s.toward[a] ?? 0);
|
|
920
|
+
const n = Math.hypot(...v);
|
|
921
|
+
return Number.isFinite(n) && n > 1e-9 ? { toward: Object.fromEntries(AXES.map((a, i) => [a, round6(v[i] / n)])) } : s;
|
|
922
|
+
};
|
|
923
|
+
const body0 = to?.plane !== undefined ? { plane: to.plane } : to && 'surface' in to ? { part: to.part, surface: surfaceOf(to.surface) } : { part: to?.part, face: to?.face };
|
|
924
|
+
/*
|
|
925
|
+
Not said, a part on the mounting plane meets it toward the side the placement uses: a ceiling's part hangs below it
|
|
926
|
+
(ADR-0140 3.11). The record leaves out only meet, which is what a record without a way reads as.
|
|
927
|
+
*/
|
|
928
|
+
const facing = a.facing ?? (to?.plane !== undefined ? figurePlaneFacingOf(asset) : undefined);
|
|
868
929
|
/* Its pose now, in the new parent's frame (ADR-0140 3.6): it is fastened as it stands. */
|
|
869
930
|
const pose = childRotateOf(standing, a.part, body0, was?.origin?.parentRotate);
|
|
870
931
|
setJoint(asset, {
|
|
@@ -877,7 +938,7 @@ export function fastenAsJoint(asset, a, standing = asset) {
|
|
|
877
938
|
...(was?.origin?.pivot ? { pivot: was.origin.pivot } : {}),
|
|
878
939
|
...(was?.origin?.offset ? { offset: was.origin.offset } : {}),
|
|
879
940
|
...(was?.origin?.parentRotate ? { parentRotate: was.origin.parentRotate } : {}),
|
|
880
|
-
...(a.facing ? { facing
|
|
941
|
+
...(facing && (a.facing || facing !== 'meet') ? { facing } : {}),
|
|
881
942
|
...(a.gap !== undefined ? { gap: a.gap } : {}),
|
|
882
943
|
...(a.align ? { align: a.align } : {})
|
|
883
944
|
}
|