@hatiolab/figure-model 0.8.0 → 0.9.0

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.
Files changed (76) hide show
  1. package/dist/authoring-fastening.d.ts +19 -10
  2. package/dist/authoring-fastening.d.ts.map +1 -1
  3. package/dist/authoring-fastening.js +129 -356
  4. package/dist/authoring-fastening.js.map +1 -1
  5. package/dist/authoring-geometry.d.ts +9 -45
  6. package/dist/authoring-geometry.d.ts.map +1 -1
  7. package/dist/authoring-geometry.js +25 -184
  8. package/dist/authoring-geometry.js.map +1 -1
  9. package/dist/authoring-occupancy.d.ts +3 -3
  10. package/dist/authoring-occupancy.d.ts.map +1 -1
  11. package/dist/authoring-occupancy.js +11 -9
  12. package/dist/authoring-occupancy.js.map +1 -1
  13. package/dist/authoring-proportion.js +2 -2
  14. package/dist/authoring-proportion.js.map +1 -1
  15. package/dist/authoring-types.d.ts +37 -35
  16. package/dist/authoring-types.d.ts.map +1 -1
  17. package/dist/authoring-types.js +12 -0
  18. package/dist/authoring-types.js.map +1 -1
  19. package/dist/command-preview.d.ts +11 -33
  20. package/dist/command-preview.d.ts.map +1 -1
  21. package/dist/command-preview.js +2 -66
  22. package/dist/command-preview.js.map +1 -1
  23. package/dist/contract.d.ts +1 -1
  24. package/dist/contract.d.ts.map +1 -1
  25. package/dist/examples.js +4 -4
  26. package/dist/examples.js.map +1 -1
  27. package/dist/face-overhang.d.ts +105 -0
  28. package/dist/face-overhang.d.ts.map +1 -0
  29. package/dist/face-overhang.js +357 -0
  30. package/dist/face-overhang.js.map +1 -0
  31. package/dist/fasten-place.d.ts +35 -0
  32. package/dist/fasten-place.d.ts.map +1 -0
  33. package/dist/fasten-place.js +91 -0
  34. package/dist/fasten-place.js.map +1 -0
  35. package/dist/gate.d.ts.map +1 -1
  36. package/dist/gate.js +7 -4
  37. package/dist/gate.js.map +1 -1
  38. package/dist/graph.d.ts.map +1 -1
  39. package/dist/graph.js +16 -2
  40. package/dist/graph.js.map +1 -1
  41. package/dist/index.d.ts +7 -3
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +7 -3
  44. package/dist/index.js.map +1 -1
  45. package/dist/joint-fields.d.ts +12 -0
  46. package/dist/joint-fields.d.ts.map +1 -0
  47. package/dist/joint-fields.js +20 -0
  48. package/dist/joint-fields.js.map +1 -0
  49. package/dist/joint-writing.d.ts.map +1 -1
  50. package/dist/joint-writing.js +86 -125
  51. package/dist/joint-writing.js.map +1 -1
  52. package/dist/kernel-version.d.ts +1 -1
  53. package/dist/kernel-version.js +1 -1
  54. package/dist/proposal.js +3 -3
  55. package/dist/proposal.js.map +1 -1
  56. package/dist/recipe.js +1 -1
  57. package/dist/recipe.js.map +1 -1
  58. package/dist/resize-plan.js +1 -1
  59. package/dist/resize-plan.js.map +1 -1
  60. package/dist/robots.d.ts.map +1 -1
  61. package/dist/robots.js +18 -17
  62. package/dist/robots.js.map +1 -1
  63. package/dist/shape-edit.js +4 -5
  64. package/dist/shape-edit.js.map +1 -1
  65. package/dist/shape-extreme.d.ts +49 -0
  66. package/dist/shape-extreme.d.ts.map +1 -0
  67. package/dist/shape-extreme.js +262 -0
  68. package/dist/shape-extreme.js.map +1 -0
  69. package/dist/shape-ops.d.ts +6 -7
  70. package/dist/shape-ops.d.ts.map +1 -1
  71. package/dist/shape-ops.js +72 -37
  72. package/dist/shape-ops.js.map +1 -1
  73. package/dist/size-edit.d.ts.map +1 -1
  74. package/dist/size-edit.js +33 -12
  75. package/dist/size-edit.js.map +1 -1
  76. package/package.json +1 -1
@@ -5,20 +5,21 @@
5
5
  * The joint records (ADR-0093): checking one, writing its nodes, and writing every joint again after a command.
6
6
  */
7
7
  import { compileFigureAssetUnjointed } from "./asset.js";
8
- import { compileFigureGraph } from "./graph.js";
8
+ import { compileFigureGraph, figureShapeFaces } from "./graph.js";
9
9
  import { remappedFaces } from "./shape-edit.js";
10
10
  import { REPEAT_LIMIT, AXES } from "./words.js";
11
11
  import { FIGURE_INSTANCE_SIZE_DEFAULT } from "./instance-size.js";
12
12
  import { FIGURE_FACES, FIGURE_JOINT_TYPES, FIGURE_JOINT_PIVOTS, figureMimicLeadersOf, followsSomething, followedTermsOf } from "./authoring-types.js";
13
13
  import { fail, nodeById, partOf, namer, constantOf, measureRef, sumOf, stableDimension, ownInput, holdingDeclared, dropIfUnused, parentOf, round6 } from "./authoring-nodes.js";
14
- import { turnOf, turnMatrix, mul3, neg, half, childFaceOf, ownSpansOf, standingSpansOf, IDENTITY, isIdentity, transpose3, mv3, FACE_VECTOR, faceAlong, standingTurnOf, standingQuarterOf, eulerOf, axisTurn, axisOf, splitTwist, eulerOfAny, alignInto, frustumWidthAlong, rpyMatrix, isQuarterMatrix } from "./authoring-geometry.js";
15
- import { attach, addMotion, removeMotion, reseat, turnSeat } from "./authoring-fastening.js";
14
+ import { mul3, neg, half, ownSpansOf, IDENTITY, transpose3, mv3, eulerOfAny, rpyMatrix, isQuarterMatrix, receivingAxisOf, rpyOf } from "./authoring-geometry.js";
15
+ import { placeOnFace, addMotion, removeMotion, reseat, turnSeat } from "./authoring-fastening.js";
16
+ import { figureShapeExtremeAlong, lin, plus, times, writeFigureReach } from "./shape-extreme.js";
16
17
  const everyKey = () => (...keys) => keys;
17
18
  const JOINT_FIELDS = {
18
19
  joint: everyKey()('id', 'type', 'body0', 'body1', 'origin', 'axis', 'lowerLimit', 'upperLimit', 'travel', 'state', 'mimic', 'repeat'),
19
20
  body0: everyKey()('part', 'face', 'plane', 'at'),
20
- body1: everyKey()('part', 'face', 'at'),
21
- origin: everyKey()('facing', 'gap', 'align', 'childRotate', 'twist', 'pivot', 'offset', 'parentRotate'),
21
+ body1: everyKey()('part', 'at'),
22
+ origin: everyKey()('facing', 'gap', 'align', 'childRotate', 'pivot', 'offset', 'parentRotate'),
22
23
  axes: everyKey()('x', 'y', 'z'),
23
24
  alignment: everyKey()('mm'),
24
25
  measure: everyKey()('from', 'times', 'plus', 'sum'),
@@ -120,8 +121,9 @@ const hasParentRotate = (j) => AXES.some(a => (j.origin?.parentRotate?.[a] ?? 0)
120
121
  /**
121
122
  * The joint frame's own words (ADR-0107, contract 2026-10-03): the pivot, the offset and the parent end's rotation, and
122
123
  * the ends placed by an origin. A joint at its parent's origin is placed by offset and parentRotate alone: a face's
123
- * words are refused by name. A twist and a rotation that is not quarter turns cannot keep edges level, so neither goes
124
- * with min or max.
124
+ * words are refused by name. A joint frame turned by other than quarter turns turns the child after it is lined up, so
125
+ * its sides are not level with an edge: min or max is refused with it (ADR-0107 Q-B, kept on the frame's side by
126
+ * ADR-0140 3.10).
125
127
  */
126
128
  function checkJointFrames(j, path) {
127
129
  const o = j.origin ?? {};
@@ -133,21 +135,17 @@ function checkJointFrames(j, path) {
133
135
  fail('JOINT_SCHEMA', `${path}.body1`, `${String(body1.at)} is not a place on a part; at: 'origin' is`);
134
136
  if ('at' in body0 && ('face' in body0 || 'plane' in body0))
135
137
  fail('JOINT_SCHEMA', `${path}.body0`, "a joint hangs at a part's origin or on a face, not both");
136
- if ('at' in body1 && 'face' in body1)
137
- fail('JOINT_SCHEMA', `${path}.body1`, 'a child is placed by its origin or by a face, not both');
138
138
  if (isOriginPlaced(j)) {
139
- for (const key of ['align', 'gap', 'facing', 'childRotate', 'twist', 'pivot'])
139
+ for (const key of ['align', 'gap', 'facing', 'childRotate', 'pivot'])
140
140
  if (o[key] !== undefined)
141
141
  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
- if (!('at' in body1) && body1.face !== 'centre')
143
- fail('JOINT_SCHEMA', `${path}.body1`, `at ${body0.part}'s origin the child is placed by its origin or its centre, not by its ${String(body1.face)}`);
144
142
  }
145
143
  else if ('at' in body1)
146
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`);
147
145
  if (o.pivot !== undefined && !FIGURE_JOINT_PIVOTS.includes(o.pivot))
148
146
  fail('JOINT_SCHEMA', `${path}.origin.pivot`, `${String(o.pivot)} is not a pivot; ${FIGURE_JOINT_PIVOTS.join(', ')}`);
149
- if (o.pivot === 'child-face' && body1.face === 'centre')
150
- fail('JOINT_SCHEMA', `${path}.origin.pivot`, `${body1.part} is fastened by its centre, not by a face; it turns about its centre already (child-centre)`);
147
+ if (o.pivot === 'child-face' && o.facing === 'centre')
148
+ fail('JOINT_SCHEMA', `${path}.origin.pivot`, `${body1.part} is fastened by its middle, not by a face; child-face has no face to turn about -- it turns about its middle already (child-centre)`);
151
149
  if (o.parentRotate !== undefined) {
152
150
  if (!o.parentRotate ||
153
151
  typeof o.parentRotate !== 'object' ||
@@ -240,11 +238,9 @@ function checkJoint(asset, j) {
240
238
  if (j.mimic.offset !== undefined && !Number.isFinite(j.mimic.offset))
241
239
  fail('JOINT_SCHEMA', path, "a mimic's offset is a number in the joint's unit");
242
240
  }
243
- if (j.origin?.twist !== undefined && !Number.isFinite(j.origin.twist))
244
- fail('JOINT_SCHEMA', `${path}.origin.twist`, 'a twist is a number of degrees');
245
- if (j.origin?.childRotate &&
246
- Object.values(j.origin.childRotate).some(t => !Number.isFinite(t) || Math.abs(t / 90 - Math.round(t / 90)) > 1e-9))
247
- fail('JOINT_SCHEMA', `${path}.origin.childRotate`, "a childRotate is in quarter turns; an angle about the face's normal is its twist");
241
+ if (j.origin?.childRotate !== undefined &&
242
+ (!j.origin.childRotate || typeof j.origin.childRotate !== 'object' || Object.values(j.origin.childRotate).some(t => !Number.isFinite(t))))
243
+ fail('JOINT_SCHEMA', `${path}.origin.childRotate`, 'a pose is degrees about x, y and z');
248
244
  /*
249
245
  A row repeats its part and everything fastened to it (ADR-0093, 2026-09-26): a part fastened to a part in a row is
250
246
  on every copy. A row inside a row is a grid; it runs along another axis than the rows around it.
@@ -284,7 +280,7 @@ function checkJoint(asset, j) {
284
280
  fail('JOINT_SCHEMA', row, `a row turning about ${j.origin.pivot} is not covered yet; its copies turn where they are fastened`);
285
281
  if (!['X', 'Y', 'Z'].includes(r.axis))
286
282
  fail('JOINT_SCHEMA', row, `a row runs along X, Y or Z, not ${String(r.axis)}`);
287
- if (r.axis.toLowerCase() === FIGURE_FACES[childFaceOf(asset.document.model, j)])
283
+ if (r.axis.toLowerCase() === receivingAxisOf(asset.document.model, asset, j))
288
284
  fail('JOINT_SCHEMA', row, `a row runs across the face it is fastened to; ${r.axis} is out of that face`);
289
285
  if (typeof r.pitch === 'number' ? !(Number.isFinite(r.pitch) && r.pitch > 0) : !followsSomething(r.pitch))
290
286
  fail('GEOMETRY_DOMAIN', row, 'a row has a positive pitch, or one that follows a length');
@@ -304,80 +300,17 @@ function checkJoint(asset, j) {
304
300
  * are chosen the same way each time, so writing a record again gives the same nodes.
305
301
  */
306
302
  function writeJoint(asset, j) {
307
- const m = asset.document.model;
308
- const child = j.body1.part;
309
303
  if (isOriginPlaced(j)) {
310
304
  placeAtOrigin(asset, j);
311
305
  return moveJoint(asset, j, IDENTITY);
312
306
  }
313
- const { pose } = partOf(m, child, child);
314
- /*
315
- The record speaks as the parts stand: `top` is up, the axis is the figure's. The seat is written in the parent's
316
- own frame, so under a parent standing a quarter turn the record's words are turned into that frame, and the child
317
- is given the turn back so it keeps its own (빈틈 A, 2026-09-25: a body on a pipe laid on its side).
318
- */
319
- const parent = 'part' in j.body0 ? j.body0.part : undefined;
320
- const path = `joints.${j.id}`;
321
- const back = parent ? transpose3(standingTurnOf(asset, parent, path)) : IDENTITY;
322
- const turned = !isIdentity(back);
323
- const own = AXES.map(a => j.origin?.childRotate?.[a] ?? 0);
324
- /* The child as it stands: its quarter turn, then its twist about the normal of the face it is fastened by. */
325
- const childFace = childFaceOf(m, j);
326
- const normal = FIGURE_FACES[childFace];
327
- const standing = j.origin?.twist ? mul3(axisTurn(normal, j.origin.twist), turnMatrix(own)) : turnMatrix(own);
328
- /* In the parent's frame: its twist about the face's normal there, and the quarter turn that is left. */
329
- const inParent = mul3(back, standing);
330
- const localNormal = axisOf(mv3(back, FACE_VECTOR[childFace]), `${j.body1.part}'s ${childFace}`, parent ?? '', back, path);
331
- /* The record's twist, about the normal as it lies in the parent's frame; what is left is a quarter turn. */
332
307
  /*
333
- In the parent's frame the child stands twisted about the face's normal -- by its own twist, and back by its
334
- parent's -- after a quarter turn. The twist is the one nearest what the record asks for.
308
+ The record speaks in the parent's own frame (ADR-0140 3.11): its face's name, the axes of the alignment and of the
309
+ child's pose are the parent's, whatever way the parent stands -- the seat is written in that frame, so it follows
310
+ the parent as it turns or moves. The child meets the face by its real shape in the pose it is given.
335
311
  */
336
- const alongNormal = mv3(back, AXES.map(a => (a === normal ? 1 : 0)));
337
- const asked = (j.origin?.twist ?? 0) * Math.sign(alongNormal[AXES.indexOf(localNormal.axis)]);
338
- const { quarter, deg } = splitTwist(inParent, localNormal.axis, asked, path);
339
- const old = pose.args.slice(3, 6);
340
- pose.args = [
341
- ...pose.args.slice(0, 3),
342
- ...(turned || j.origin?.twist ? eulerOf(quarter) : own).map(t => constantOf(m, 'deg', t, 'a'))
343
- ];
344
- for (const ref of old)
345
- dropIfUnused(asset, ref, ownInput(m, child, ref) ? ref : undefined);
346
- const face = (name) => turned && Object.hasOwn(FACE_VECTOR, name)
347
- ? faceAlong(axisOf(mv3(back, FACE_VECTOR[name]), name, parent ?? '', back, path).vector)
348
- : name;
349
- attach(asset, {
350
- kind: 'attach',
351
- part: child,
352
- face: face(j.body1.face),
353
- to: 'plane' in j.body0
354
- ? { plane: 'mounting-plane' }
355
- : { part: j.body0.part, face: face(j.body0.face) },
356
- ...(j.origin?.facing ? { facing: j.origin.facing } : {}),
357
- ...(j.origin?.gap !== undefined ? { gap: j.origin.gap } : {}),
358
- /*
359
- A distance across the face is measured in the twisted frame (see `attach`), so under a twisted parent it is
360
- carried by the parent's quarter turn only; the twists turn it after.
361
- */
362
- ...(j.origin?.align
363
- ? {
364
- align: turned
365
- ? alignInto(parent ? transpose3(standingQuarterOf(asset, parent, path)) : back, j.origin.align, path)
366
- : j.origin.align
367
- }
368
- : {}),
369
- replace: true
370
- }, deg ? { axis: localNormal.axis, deg } : undefined, { pivot: j.origin?.pivot, offset: j.origin?.offset, parentRotate: j.origin?.parentRotate, back, path });
371
- /* The measuring was done on the quarter turn; the part stands with its twist. */
372
- if (deg) {
373
- const now = pose.args.slice(3, 6);
374
- pose.args = [...pose.args.slice(0, 3), ...eulerOfAny(inParent).map(t => constantOf(m, 'deg', t, 'a'))];
375
- for (const ref of now)
376
- dropIfUnused(asset, ref);
377
- }
378
- if (j.repeat && turned)
379
- fail('JOINT_SCHEMA', `joints.${j.id}.repeat`, `${parent} stands turned; a row across a turned part is not covered yet`);
380
- moveJoint(asset, j, back);
312
+ placeOnFace(asset, j, { pivot: j.origin?.pivot, offset: j.origin?.offset, parentRotate: j.origin?.parentRotate, path: `joints.${j.id}` });
313
+ moveJoint(asset, j, IDENTITY);
381
314
  }
382
315
  /**
383
316
  * A joint at its parent's origin (ADR-0107 decision 4, contract 2026-10-03): F_parent = T(δ)·Rpy in the parent's own
@@ -397,10 +330,12 @@ function placeAtOrigin(asset, j) {
397
330
  dropIfUnused(asset, ref, ownInput(m, child, ref) ? ref : undefined);
398
331
  const name = namer(m, `${child}.on.${parent}`);
399
332
  const zero = constantOf(m, 'mm', 0, 'd');
400
- const spans = 'face' in j.body1 ? ownSpansOf(m, child, path) : {};
333
+ /* By its middle: the middle of its real extent (ADR-0140 3.4), from its origin -- or by its origin, nothing. */
401
334
  const centre = (x) => {
402
- const span = spans[x];
403
- return span && !span.centred ? sumOf(m, name, neg([...half(span.lo), ...half(span.hi)]), `own-centre.${x}`) : zero;
335
+ if ('at' in j.body1)
336
+ return zero;
337
+ const along = (sign) => figureShapeExtremeAlong(m, child, AXES.map(a => (a === x ? sign : 0)), path);
338
+ return writeFigureReach(m, name, times(plus(along(1), times(along(-1), -1)), -0.5), `own-centre.${x}`);
404
339
  };
405
340
  const shift = j.origin?.offset ?? {};
406
341
  const seat = AXES.map(x => shift[x] === undefined ? zero : measureRef(m, asset, name, shift[x], `offset.${x}`, `${path}.origin.offset.${x}`));
@@ -496,21 +431,20 @@ function repeatPart(asset, j) {
496
431
  const theirs = ownSpansOf(m, parent, path)[axis];
497
432
  if (!theirs)
498
433
  fail('EDIT_TARGET', path, `${parent} has no two faces along ${axis}; there is no length to fill`);
499
- const mine = standingSpansOf(m, asset, part, path)[axis];
500
- /* A frustum has no faces across its axis; it is as wide there as its wider end (G6). */
501
- const widest = mine ? undefined : frustumWidthAlong(m, asset, part, axis, path);
502
- if (!mine && !widest)
503
- fail('EDIT_TARGET', path, `${part} has no two faces along ${axis}; its copies cannot be spaced`);
434
+ /* The part's reach both ways along the row, in its pose (ADR-0140 3.2): its extent, and its middle from its origin. */
435
+ const C = rpyMatrix(j.origin?.childRotate ?? {});
436
+ const along = (sign) => figureShapeExtremeAlong(m, part, mv3(transpose3(C), AXES.map(a => (a === axis ? sign : 0))), path);
437
+ const [ahead, behind] = [along(1), along(-1)];
504
438
  const { place, pose } = partOf(m, part, path);
505
439
  const seat = nodeById(m, `${part}.seat.rigid`);
506
440
  const name = namer(m, `${part}.row`);
507
441
  const zero = constantOf(m, 'mm', 0, 'd');
508
442
  /* The seat moves to the row's start; each copy's centre is where the layout puts it from there. */
509
443
  seat.args = seat.args.map((ref, i) => (i === k ? sumOf(m, name, theirs.lo, 'start') : ref));
510
- const own = widest || mine.centred ? zero : sumOf(m, name, neg([...half(mine.lo), ...half(mine.hi)]), 'own-centre');
444
+ const own = writeFigureReach(m, name, times(plus(ahead, times(behind, -1)), -0.5), 'own-centre');
511
445
  pose.args = pose.args.map((ref, i) => (i === k ? own : ref));
512
446
  const length = sumOf(m, name, [...theirs.hi, ...neg(theirs.lo)], 'length');
513
- const extent = widest ?? sumOf(m, name, [...mine.hi, ...neg(mine.lo)], 'extent');
447
+ const extent = writeFigureReach(m, name, plus(ahead, behind), 'extent');
514
448
  const centred = constantOf(m, 'ratio', 0.5, 'k');
515
449
  const limit = constantOf(m, 'count', REPEAT_LIMIT, 'limit');
516
450
  const count = j.repeat.count;
@@ -738,11 +672,23 @@ export function rewriteJoints(asset) {
738
672
  for (const n of asset.document.model.nodes)
739
673
  if (n.op === 'member@1' && !nodeById(asset.document.model, `${n.id}.repeat`))
740
674
  n.op = 'place@1';
675
+ /*
676
+ What the joints' nodes read before they go: a reach reads a shape's own values -- a pyramid's apex, a drawn
677
+ section's corners -- and an edit that took one away left it while the old nodes still read it. Once the joints are
678
+ written again, a part's own input nothing reads any more goes too.
679
+ */
680
+ const m = asset.document.model;
681
+ const read = new Set(m.nodes.filter(n => joints.some(j => n.id.startsWith(`${j.body1.part}.on.`))).flatMap(n => n.args));
741
682
  for (const j of [...order].reverse())
742
683
  stripJoint(asset, j);
743
684
  for (const j of order)
744
685
  writeJoint(asset, j);
745
686
  gatherRows(asset, joints);
687
+ for (const ref of read) {
688
+ const owner = m.nodes.find(n => n.op === 'place@1' && ref.startsWith(`${n.id}.`))?.id;
689
+ if (owner && ownInput(m, owner, ref))
690
+ dropIfUnused(asset, ref, ref);
691
+ }
746
692
  // A joint's value as the author left it (「지금 자세를 기본으로」) is theirs, not the record's.
747
693
  for (const j of order)
748
694
  if (j.type !== 'fixed' && !j.mimic && keep[stateIdOf(j)] !== undefined)
@@ -754,22 +700,13 @@ export function setJoint(asset, joint) {
754
700
  const j = JSON.parse(JSON.stringify(joint ?? null));
755
701
  checkJoint(asset, j);
756
702
  /*
757
- The child's own quarter turn becomes the record's childRotate, the first time it is fastened -- by a face: at an
758
- origin it stands unturned.
703
+ The child's pose now, in the parent's frame, becomes the record's childRotate the first time it is fastened -- by a
704
+ face, at any angle (ADR-0140 3.6): it keeps the pose it has. At an origin it stands unturned.
759
705
  */
760
706
  if (!jointAbove(asset, j.body1.part) && !j.origin?.childRotate && !isOriginPlaced(j)) {
761
- const turn = turnOf(asset.document.model, asset, j.body1.part, j.body1.part);
762
- /* A part turned by any angle about the normal of the face it is fastened by keeps that angle as its twist. */
763
- const n = AXES.indexOf(FIGURE_FACES[childFaceOf(asset.document.model, j)]);
764
- const quarter = (t) => t !== null && Number.isFinite(t) && Math.abs(t / 90 - Math.round(t / 90)) < 1e-9;
765
- const twist = !quarter(turn[n]) && turn.every((t, i) => i === n || t === 0) ? turn[n] : undefined;
766
- if (twist !== undefined && !j.origin?.twist)
767
- j.origin = { ...(j.origin ?? {}), twist };
768
- else if (turn.some(t => t !== 0))
769
- j.origin = {
770
- ...(j.origin ?? {}),
771
- childRotate: Object.fromEntries(AXES.map((a, i) => [a, turn[i]]))
772
- };
707
+ const pose = childRotateOf(asset, j.body1.part, j.body0);
708
+ if (pose)
709
+ j.origin = { ...(j.origin ?? {}), childRotate: pose };
773
710
  }
774
711
  const joints = (asset.joints ?? []).filter(o => o.id !== j.id);
775
712
  const followers = joints.filter(o => figureMimicLeadersOf(o).some(t => t.joint === j.id));
@@ -812,13 +749,14 @@ export function applyFaceRemap(asset, part, remap) {
812
749
  name, never skipped -- the caller shows it. At a parent's origin the child is placed by its origin or centre, so
813
750
  a face for the child is refused here too, not later by the joint's own check under another path.
814
751
  */
815
- const end = j.body0?.part === part ? j.body0 : j.body1;
752
+ /* The child end is on no face of its own (ADR-0140 3.2): only the end it hangs from has one to move to. */
753
+ if (j.body0?.part !== part)
754
+ fail('EDIT_TARGET', path, `${r.ref.id} fastens ${part} by no face of ${part}'s own; only the end it hangs from, on ${'part' in j.body0 ? j.body0.part : 'the plane'}, is on a face`);
755
+ const end = j.body0;
816
756
  if ('at' in end)
817
757
  fail('EDIT_TARGET', path, end === j.body0
818
758
  ? `${r.ref.id} hangs at ${part}'s origin, not on a face of it`
819
759
  : `${part} is placed by its own origin on ${r.ref.id}, not by a face of it`);
820
- if (end === j.body1 && 'at' in j.body0)
821
- fail('EDIT_TARGET', path, `${r.ref.id} hangs at ${j.body0.part}'s origin, where ${part} is placed by its origin or its centre, not by a face`);
822
760
  end.face = face;
823
761
  faces.add(face);
824
762
  }
@@ -871,6 +809,33 @@ export function removeJoint(asset, id) {
871
809
  // Parts hanging from it are written again: they hang from where it stands now.
872
810
  rewriteJoints(asset);
873
811
  }
812
+ /**
813
+ * A part's pose now, in the frame of what it would hang from -- the parent's own frame, or the plane's, after the joint
814
+ * frame's own turn (`parentRotate`) -- as degrees about x, y and z (Rz·Ry·Rx), six places: nothing when it stands
815
+ * square to it. Read from the figure as drawn at rest: every joint at 0, its reference pose.
816
+ */
817
+ function childRotateOf(asset, part, body0, parentRotate) {
818
+ const rest = Object.fromEntries((asset.joints ?? []).filter(j => j.type !== 'fixed' && !j.mimic).map(j => [stateIdOf(j), 0]));
819
+ const compiled = compileFigureAssetUnjointed(asset);
820
+ /* A control whose range does not hold 0 is read where it stands: its reference is still 0, but it cannot be drawn there. */
821
+ const geometry = (() => {
822
+ try {
823
+ return compiled.evaluate(rest).geometry;
824
+ }
825
+ catch {
826
+ return compiled.evaluate().geometry;
827
+ }
828
+ })();
829
+ const of = (id) => geometry.find(g => g.id === id && g.pose)?.pose?.r;
830
+ const mine = of(part);
831
+ if (!mine)
832
+ return undefined;
833
+ const theirs = body0 && 'part' in body0 ? of(body0.part) : IDENTITY;
834
+ if (!theirs)
835
+ return undefined;
836
+ const pose = rpyOf(mul3(transpose3(mul3(theirs, rpyMatrix(parentRotate ?? {}))), mine));
837
+ return Object.keys(pose).length ? pose : undefined;
838
+ }
874
839
  /** `attach` is the modeller's word for a fixed joint: the record says it, whatever joint was there keeps its id and motion. */
875
840
  export function fastenAsJoint(asset, a) {
876
841
  const was = jointAbove(asset, a.part);
@@ -885,23 +850,19 @@ export function fastenAsJoint(asset, a) {
885
850
  let id = a.part;
886
851
  for (let k = 2; !was && taken.has(id); k++)
887
852
  id = `${a.part}-${k}`;
853
+ const body0 = to?.plane !== undefined ? { plane: to.plane } : { part: to?.part, face: to?.face };
854
+ /* Its pose now, in the new parent's frame (ADR-0140 3.6): it is fastened as it stands. */
855
+ const pose = childRotateOf(asset, a.part, body0, was?.origin?.parentRotate);
888
856
  setJoint(asset, {
889
857
  ...(was ?? { id, type: 'fixed' }),
890
- body0: to?.plane !== undefined ? { plane: to.plane } : { part: to?.part, face: to?.face },
891
- body1: { part: a.part, face: a.face },
858
+ body0,
859
+ body1: { part: a.part },
892
860
  origin: {
893
- ...(was?.origin?.childRotate ? { childRotate: was.origin.childRotate } : {}),
861
+ ...(pose ? { childRotate: pose } : {}),
894
862
  /* The joint frame's own words stay the joint's, as its motion does. */
895
863
  ...(was?.origin?.pivot ? { pivot: was.origin.pivot } : {}),
896
864
  ...(was?.origin?.offset ? { offset: was.origin.offset } : {}),
897
865
  ...(was?.origin?.parentRotate ? { parentRotate: was.origin.parentRotate } : {}),
898
- ...(a.twist !== undefined
899
- ? a.twist
900
- ? { twist: a.twist }
901
- : {}
902
- : was?.origin?.twist
903
- ? { twist: was.origin.twist }
904
- : {}),
905
866
  ...(a.facing ? { facing: a.facing } : {}),
906
867
  ...(a.gap !== undefined ? { gap: a.gap } : {}),
907
868
  ...(a.align ? { align: a.align } : {})
@@ -1 +1 @@
1
- {"version":3,"file":"joint-writing.js","sourceRoot":"","sources":["../src/joint-writing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"joint-writing.js","sourceRoot":"","sources":["../src/joint-writing.ts"],"names":[],"mappings":"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"}