@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"face-overhang.d.ts","sourceRoot":"","sources":["../src/face-overhang.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAM5C,2HAA2H;AAC3H,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,kBAAkB,CAAA;IACvB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAA;CACrD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,kBAAkB,CAAA;IACtB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IACxD;;;;OAIG;IACH,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QACrC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QACnC,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,IAAI,CAAC,EAAE,OAAO,CAAA;KACf,CAAA;IACD,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD,+GAA+G;IAC/G,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IACxC,yGAAyG;IACzG,KAAK,EAAE,OAAO,CAAA;CACf;AAED,yHAAyH;AACzH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,kBAAkB,CAAA;IACtB
|
|
1
|
+
{"version":3,"file":"face-overhang.d.ts","sourceRoot":"","sources":["../src/face-overhang.ts"],"names":[],"mappings":"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"}
|
package/dist/face-overhang.js
CHANGED
|
@@ -11,7 +11,7 @@ import { figurePlacementOf, upgradeFigurePlacement } from "./asset.js";
|
|
|
11
11
|
import { evaluate, figureBodyOwnerOf, figurePartFaceOf } from "./command-preview.js";
|
|
12
12
|
import { compileFigureGraph, figureShapeFaces } from "./graph.js";
|
|
13
13
|
import { ownSpansOf, mul3, mv3, transpose3, IDENTITY } from "./authoring-geometry.js";
|
|
14
|
-
import { figureReachValue, figureShapeExtremeAlong } from "./shape-extreme.js";
|
|
14
|
+
import { figureDiscOf, figureReachValue, figureRoundAbout, figureShapeExtremeAlong } from "./shape-extreme.js";
|
|
15
15
|
import { figureShapeContactOf } from "./shape-ops.js";
|
|
16
16
|
import { figureFastenAxesOf, figureFastenPlaceOf } from "./fasten-place.js";
|
|
17
17
|
import { AXES } from "./words.js";
|
|
@@ -86,6 +86,8 @@ export function figureFaceMeasureOf(source, part, values = {}, place = {}) {
|
|
|
86
86
|
let known = true;
|
|
87
87
|
let exact = true;
|
|
88
88
|
const sign = on === 'plane' ? 1 : faceSignOf(m, on);
|
|
89
|
+
const discRadius = on === 'plane' ? undefined : figureDiscOf(m, on.part, on.face, on.part);
|
|
90
|
+
const covers = [];
|
|
89
91
|
for (const body of bodies) {
|
|
90
92
|
const R = mul3(toTheirs, body.pose.r);
|
|
91
93
|
const o = mv3(toTheirs, body.pose.t.map((v, i) => v - theirs.t[i]));
|
|
@@ -100,6 +102,18 @@ export function figureFaceMeasureOf(source, part, values = {}, place = {}) {
|
|
|
100
102
|
const square = R.every(row => row.filter(v => Math.abs(v) > 1e-9).length === 1);
|
|
101
103
|
if (body.shape.mesh && !square)
|
|
102
104
|
exact = false;
|
|
105
|
+
if (discRadius) {
|
|
106
|
+
const middle = Object.fromEntries(axes.map(a => [a, (own[a].lo + own[a].hi) / 2]));
|
|
107
|
+
const half = Object.fromEntries(axes.map(a => [a, (own[a].hi - own[a].lo) / 2]));
|
|
108
|
+
const n = AXES.indexOf(normal);
|
|
109
|
+
if (figureRoundAbout(m, part, mv3(back, AXES.map((_, i) => (i === n ? 1 : 0))), part))
|
|
110
|
+
covers.push({ middle, half, round: half[axes[0]], exact: true });
|
|
111
|
+
else {
|
|
112
|
+
/* A rectangle while one of its own axes lies across the disc; a mesh's is its box. */
|
|
113
|
+
const across = [0, 1, 2].some(c => axes.some(a => Math.abs(Math.abs(R[AXES.indexOf(a)][c]) - 1) < 1e-9));
|
|
114
|
+
covers.push({ middle, half, exact: across && !body.shape.mesh });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
103
117
|
if (!known)
|
|
104
118
|
continue;
|
|
105
119
|
if (facing === 'centre') {
|
|
@@ -127,6 +141,15 @@ export function figureFaceMeasureOf(source, part, values = {}, place = {}) {
|
|
|
127
141
|
...(outline ? { outline } : {}),
|
|
128
142
|
extent,
|
|
129
143
|
...(known ? { contact } : {}),
|
|
144
|
+
...(discRadius
|
|
145
|
+
? {
|
|
146
|
+
disc: {
|
|
147
|
+
centre: Object.fromEntries(axes.map(a => [a, edges[a] ? (edges[a].lo + edges[a].hi) / 2 : 0])),
|
|
148
|
+
radius: Object.fromEntries(axes.map(a => [a, figureReachValue(discRadius[a], graph)])),
|
|
149
|
+
covers
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
: {}),
|
|
130
153
|
exact
|
|
131
154
|
};
|
|
132
155
|
}
|
|
@@ -171,6 +194,8 @@ export function figureFaceOverhangAt(measure, align) {
|
|
|
171
194
|
}
|
|
172
195
|
else if (measure.on === 'plane' && edges[a])
|
|
173
196
|
judged[a] = edges[a];
|
|
197
|
+
if (measure.disc)
|
|
198
|
+
return onDisc(measure, measure.disc, shift, at, judged);
|
|
174
199
|
const sides = [];
|
|
175
200
|
const wider = [];
|
|
176
201
|
const lopsided = [];
|
|
@@ -220,6 +245,85 @@ export function figureFaceOverhangAt(measure, align) {
|
|
|
220
245
|
contact: contactOf(measure, judged, shift)
|
|
221
246
|
};
|
|
222
247
|
}
|
|
248
|
+
/**
|
|
249
|
+
* How a part lies on an end disc (ADR-0140 3.9, chief architect 10-20), by the rule min and max line it up with: along an
|
|
250
|
+
* axis u, with e its middle off the axis across, a round part of radius r on a disc of radius R is within while its
|
|
251
|
+
* middle is within √((R − r)² − e²); a rectangle while its edge is within a·√(1 − (E/b)²), E = e + its half depth -- a
|
|
252
|
+
* and b the disc's radii along u and across. Past that is how far it would move along u alone; where no move along u
|
|
253
|
+
* would do, it is measured where it lies nearest the axis across.
|
|
254
|
+
*/
|
|
255
|
+
function onDisc(measure, disc, shift, at, judged) {
|
|
256
|
+
const [u0, w0] = measure.axes;
|
|
257
|
+
const past = {};
|
|
258
|
+
const widerOn = new Set();
|
|
259
|
+
let exact = measure.exact;
|
|
260
|
+
let over = false;
|
|
261
|
+
const one = Math.abs(disc.radius[u0] - disc.radius[w0]) < 1e-9;
|
|
262
|
+
for (const cover of disc.covers) {
|
|
263
|
+
const c = (x) => cover.middle[x] + shift[x] - disc.centre[x];
|
|
264
|
+
const round = cover.round !== undefined && one ? cover.round : undefined;
|
|
265
|
+
if (cover.round !== undefined && !one)
|
|
266
|
+
exact = false;
|
|
267
|
+
if (!cover.exact)
|
|
268
|
+
exact = false;
|
|
269
|
+
for (const [u, w] of [[u0, w0], [w0, u0]]) {
|
|
270
|
+
const a = disc.radius[u], b = disc.radius[w];
|
|
271
|
+
let reach;
|
|
272
|
+
if (round !== undefined) {
|
|
273
|
+
if (round > a + TOUCH)
|
|
274
|
+
widerOn.add(u);
|
|
275
|
+
const D = Math.max(0, a - round);
|
|
276
|
+
const e = Math.abs(c(w));
|
|
277
|
+
/* Within along u alone: its middle within the chord at e; else its side within the rim where it lies nearest. */
|
|
278
|
+
reach = e <= D ? Math.sqrt(D * D - e * e) + round : Math.sqrt(Math.max(0, a * a - Math.max(0, e - round) ** 2));
|
|
279
|
+
reach -= round;
|
|
280
|
+
past[`${u}.high`] = Math.max(past[`${u}.high`] ?? -Infinity, c(u) - reach);
|
|
281
|
+
past[`${u}.low`] = Math.max(past[`${u}.low`] ?? -Infinity, -c(u) - reach);
|
|
282
|
+
over ||= Math.hypot(c(u), c(w)) < a + round;
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
const h = cover.half[u], d = cover.half[w];
|
|
286
|
+
if (2 * h > 2 * a + TOUCH)
|
|
287
|
+
widerOn.add(u);
|
|
288
|
+
const E = Math.abs(c(w)) + d;
|
|
289
|
+
const near = Math.max(0, Math.abs(c(w)) - d);
|
|
290
|
+
const rim = a * Math.sqrt(Math.max(0, 1 - ((E <= b ? E : near) / b) ** 2));
|
|
291
|
+
past[`${u}.high`] = Math.max(past[`${u}.high`] ?? -Infinity, c(u) + h - rim);
|
|
292
|
+
past[`${u}.low`] = Math.max(past[`${u}.low`] ?? -Infinity, -(c(u) - h) - rim);
|
|
293
|
+
const q = (x, half) => Math.max(0, Math.abs(c(x)) - half);
|
|
294
|
+
over ||= (q(u, h) / a) ** 2 + (q(w, d) / b) ** 2 < 1;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
const sides = [];
|
|
299
|
+
const wider = measure.axes.filter(x => widerOn.has(x));
|
|
300
|
+
const lopsided = [];
|
|
301
|
+
let pastWhereItFits = false;
|
|
302
|
+
for (const u of measure.axes) {
|
|
303
|
+
const [low, high] = [past[`${u}.low`], past[`${u}.high`]];
|
|
304
|
+
if (low > TOUCH)
|
|
305
|
+
sides.push({ axis: u, side: 'low', mm: round1(low) });
|
|
306
|
+
if (high > TOUCH)
|
|
307
|
+
sides.push({ axis: u, side: 'high', mm: round1(high) });
|
|
308
|
+
if (wider.includes(u)) {
|
|
309
|
+
if (Math.abs(low - high) > 0.5)
|
|
310
|
+
lopsided.push(u);
|
|
311
|
+
}
|
|
312
|
+
else if (low > TOUCH || high > TOUCH)
|
|
313
|
+
pastWhereItFits = true;
|
|
314
|
+
}
|
|
315
|
+
return {
|
|
316
|
+
part: measure.part,
|
|
317
|
+
on: measure.on,
|
|
318
|
+
state: pastWhereItFits ? (exact ? 'out' : 'possible') : sides.length ? 'larger' : 'inside',
|
|
319
|
+
sides,
|
|
320
|
+
wider,
|
|
321
|
+
lopsided,
|
|
322
|
+
at,
|
|
323
|
+
over,
|
|
324
|
+
contact: contactOf(measure, judged, shift)
|
|
325
|
+
};
|
|
326
|
+
}
|
|
223
327
|
/** (나): every copy's touching hull over the face's outline; the plane's declared size, or none, on the plane. */
|
|
224
328
|
function contactOf(measure, judged, shift) {
|
|
225
329
|
const [a, b] = measure.axes;
|
|
@@ -352,6 +456,40 @@ export function figureFaceInsideAlignOf(measure, align, lineUp = {}) {
|
|
|
352
456
|
next.align[a] =
|
|
353
457
|
level && (lineUp[a] ?? true) ? (low ? 'min' : 'max') : { mm: Math.round(middle - (e.lo + e.hi) / 2) };
|
|
354
458
|
}
|
|
459
|
+
/*
|
|
460
|
+
On a disc one point touches the rim (ADR-0140 3.9): it is brought in along the one axis it is furthest past along,
|
|
461
|
+
the middle on the other -- lined up with the rim, or, where an edge is not offered, the distance that puts it there,
|
|
462
|
+
by the rule the rim is measured by (a whole millimetre in).
|
|
463
|
+
*/
|
|
464
|
+
const disc = measure.disc;
|
|
465
|
+
const past = next.moved.filter(a => !now.wider.includes(a));
|
|
466
|
+
if (disc && past.length) {
|
|
467
|
+
const most = (a) => Math.max(...now.sides.filter(s => s.axis === a).map(s => s.mm));
|
|
468
|
+
const u = past.reduce((x, y) => (most(y) > most(x) ? y : x));
|
|
469
|
+
const w = measure.axes.find(a => a !== u);
|
|
470
|
+
const high = now.sides.some(s => s.axis === u && s.side === 'high' && s.mm === most(u));
|
|
471
|
+
if (next.moved.includes(w))
|
|
472
|
+
next.align[w] = 'centre';
|
|
473
|
+
if (lineUp[u] ?? true)
|
|
474
|
+
next.align[u] = high ? 'max' : 'min';
|
|
475
|
+
else {
|
|
476
|
+
const mid = (x) => (measure.extent[x].lo + measure.extent[x].hi) / 2;
|
|
477
|
+
/* Where its middle stands across: on the disc's middle when centred, else where it is. */
|
|
478
|
+
const across = next.align[w] === 'centre' ? 0 : mid(w) - disc.centre[w];
|
|
479
|
+
const [ra, rb] = [disc.radius[u], disc.radius[w]];
|
|
480
|
+
let room = Infinity;
|
|
481
|
+
for (const c of disc.covers) {
|
|
482
|
+
const off = c.middle[u] - mid(u);
|
|
483
|
+
const cw = c.middle[w] - mid(w) + across;
|
|
484
|
+
const reach = c.round !== undefined && Math.abs(ra - rb) < 1e-9
|
|
485
|
+
? Math.sqrt(Math.max(0, (ra - c.round) ** 2 - cw ** 2))
|
|
486
|
+
: ra * Math.sqrt(Math.max(0, 1 - ((Math.abs(cw) + c.half[w]) / rb) ** 2)) - c.half[u];
|
|
487
|
+
room = Math.min(room, reach - (high ? off : -off));
|
|
488
|
+
}
|
|
489
|
+
const e = measure.edges[u];
|
|
490
|
+
next.align[u] = { mm: (high ? 1 : -1) * Math.floor(room) + disc.centre[u] - (e ? (e.lo + e.hi) / 2 : 0) };
|
|
491
|
+
}
|
|
492
|
+
}
|
|
355
493
|
return next.moved.length ? next : { cannot: 'inside' };
|
|
356
494
|
}
|
|
357
495
|
//# sourceMappingURL=face-overhang.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"face-overhang.js","sourceRoot":"","sources":["../src/face-overhang.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"face-overhang.js","sourceRoot":"","sources":["../src/face-overhang.ts"],"names":[],"mappings":"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"}
|
package/dist/fasten-place.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FigureAsset } from './asset-types.ts';
|
|
2
|
+
import type { FigureFacing, FigureSurfacePlace } from './authoring-types.ts';
|
|
2
3
|
import { type Axis } from './words.ts';
|
|
3
4
|
/** What a part is fastened to: a face of another part, or the plane the figure is mounted on. */
|
|
4
5
|
export type FigureFastenTarget = {
|
|
@@ -32,4 +33,80 @@ export declare function figureFastenPlaceOf(a: {
|
|
|
32
33
|
face: Partial<Record<Axis, number | undefined>>;
|
|
33
34
|
part: Partial<Record<Axis, number>>;
|
|
34
35
|
}): Partial<Record<Axis, number>>;
|
|
36
|
+
/**
|
|
37
|
+
* The curved surface a part can be fastened to at a point (ADR-0140 3.9): `around` -- a cylinder's side, `axis` its
|
|
38
|
+
* push -- or `toward` -- a sphere's or an ellipsoid's, `axis` the one it is turned about. Nothing for a part with flat
|
|
39
|
+
* faces only, a frustum, or rounded corners.
|
|
40
|
+
*/
|
|
41
|
+
export declare function figureSurfaceOf(source: FigureAsset, part: string): {
|
|
42
|
+
form: 'around' | 'toward';
|
|
43
|
+
axis: Axis;
|
|
44
|
+
} | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* The point on `target`'s curved surface on the side `part` stands on now (ADR-0140 3.9, its default): the direction
|
|
47
|
+
* from the target's middle to the middle of the part's real extent, in the target's own frame. On a sphere that
|
|
48
|
+
* direction is `toward`; on a cylinder's side its angle round the push is `around`, and how far along the push the
|
|
49
|
+
* part's middle is from the side's middle is `along` -- to a tenth of a millimetre, the centre when nearer than half one.
|
|
50
|
+
* Nothing when the target has no such surface, or the part stands on its axis, or beyond a cylinder's end -- an end
|
|
51
|
+
* disc faces it there, not the side.
|
|
52
|
+
*/
|
|
53
|
+
export declare function figureSurfaceKeptPlaceOf(source: FigureAsset, part: string, target: string, values?: Record<string, number>): FigureSurfacePlace | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* An angle chosen round a curved surface (ADR-0140 3.9, stage 4): caught at every 45° within 5°, else to a whole degree
|
|
56
|
+
* -- one rule for an angle dragged in the fastening window and one pressed on the canvas (chief architect 2026-10-20).
|
|
57
|
+
*/
|
|
58
|
+
export declare function figureCaughtAngleOf(degrees: number): number;
|
|
59
|
+
/** The angles a point of a curved surface is chosen by: `around` a cylinder's side; a sphere's azimuth (the same rule round its axis) and elevation. */
|
|
60
|
+
export type FigureSurfaceAngles = {
|
|
61
|
+
around: number;
|
|
62
|
+
} | {
|
|
63
|
+
azimuth: number;
|
|
64
|
+
elevation: number;
|
|
65
|
+
};
|
|
66
|
+
/** A point of a curved surface as the angles it is chosen by (`figureSurfacePlaceOf` is the way back). */
|
|
67
|
+
export declare function figureSurfaceAnglesOf(surface: {
|
|
68
|
+
form: 'around' | 'toward';
|
|
69
|
+
axis: Axis;
|
|
70
|
+
}, place: FigureSurfacePlace): FigureSurfaceAngles;
|
|
71
|
+
/**
|
|
72
|
+
* The point the angles choose, `along` a cylinder's side kept from `place`: a sphere's direction is its azimuth's
|
|
73
|
+
* direction across its axis, raised by its elevation, written as the record keeps it (to a millionth).
|
|
74
|
+
*/
|
|
75
|
+
export declare function figureSurfacePlaceOf(surface: {
|
|
76
|
+
form: 'around' | 'toward';
|
|
77
|
+
axis: Axis;
|
|
78
|
+
}, place: FigureSurfacePlace, angles: FigureSurfaceAngles): FigureSurfacePlace;
|
|
79
|
+
/**
|
|
80
|
+
* What a press on a part lands on, for a fastening (ADR-0140 stage 4, chief architect 2026-10-20): `point` and `normal`
|
|
81
|
+
* in the part's own frame, as the scene tells them -- the normal of the drawn triangle.
|
|
82
|
+
* - A flat face: the triangle's normal within 1° of the face's outward one, the point on its plane within the larger
|
|
83
|
+
* 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
|
|
84
|
+
* it -- the place a part pressed there is put, as a point of a curved surface is -- to a tenth of a millimetre,
|
|
85
|
+
* an axis nearer the middle than half a millimetre left out (as `figureFastenKeptPlaceOf` says a place).
|
|
86
|
+
* - Else a point of its curved surface, from the point alone -- the drawn triangles of a side or a sphere lean off the
|
|
87
|
+
* true normal by up to half their angle: round a cylinder's push the point's angle, and how far along it from the
|
|
88
|
+
* middle; on a sphere or an ellipsoid the normal there, n_i ∝ p_i / r_i². The angles caught as the window catches
|
|
89
|
+
* them (`figureCaughtAngleOf`).
|
|
90
|
+
* - Else -- rounded corners, a frustum's side, a mesh -- nothing to fasten to there: `not`.
|
|
91
|
+
*/
|
|
92
|
+
export declare function figureFastenTargetAt(source: FigureAsset, part: string, point: readonly number[], normal: readonly number[], values?: Record<string, number>): {
|
|
93
|
+
face: string;
|
|
94
|
+
at: Partial<Record<Axis, number>>;
|
|
95
|
+
} | {
|
|
96
|
+
surface: FigureSurfacePlace;
|
|
97
|
+
} | {
|
|
98
|
+
not: 'curved';
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* The gap that keeps a part where it stands when it is fastened to `to` (ADR-0140 3.6, user 2026-10-20: 「현재 상태로
|
|
102
|
+
* 붙이기」): how far it is now from where the fastening would put it with no gap, along the face's outward normal -- the
|
|
103
|
+
* 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
|
|
104
|
+
* for flush). With its pose kept (3.6) and its place across the face kept (`figureFastenKeptPlaceOf`,
|
|
105
|
+
* `figureSurfaceKeptPlaceOf`), the part does not move. The fastening itself works it out, so the rule is the one rule;
|
|
106
|
+
* to a tenth of a millimetre, none nearer than half one, and none where the fastening is refused.
|
|
107
|
+
*/
|
|
108
|
+
export declare function figureFastenKeptGapOf(source: FigureAsset, part: string, to: FigureFastenTarget | {
|
|
109
|
+
part: string;
|
|
110
|
+
surface: FigureSurfacePlace;
|
|
111
|
+
}, facing?: FigureFacing, values?: Record<string, number>): number;
|
|
35
112
|
//# sourceMappingURL=fasten-place.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fasten-place.d.ts","sourceRoot":"","sources":["../src/fasten-place.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fasten-place.d.ts","sourceRoot":"","sources":["../src/fasten-place.ts"],"names":[],"mappings":"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"}
|