@hatiolab/figure-model 0.9.4 → 0.9.6

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 (95) hide show
  1. package/README.md +1 -1
  2. package/dist/authoring-actions.d.ts.map +1 -1
  3. package/dist/authoring-actions.js +16 -23
  4. package/dist/authoring-actions.js.map +1 -1
  5. package/dist/authoring-fastening.d.ts.map +1 -1
  6. package/dist/authoring-fastening.js +182 -13
  7. package/dist/authoring-fastening.js.map +1 -1
  8. package/dist/authoring-geometry.d.ts +17 -1
  9. package/dist/authoring-geometry.d.ts.map +1 -1
  10. package/dist/authoring-geometry.js +66 -5
  11. package/dist/authoring-geometry.js.map +1 -1
  12. package/dist/authoring-nodes.d.ts +20 -0
  13. package/dist/authoring-nodes.d.ts.map +1 -1
  14. package/dist/authoring-nodes.js +34 -0
  15. package/dist/authoring-nodes.js.map +1 -1
  16. package/dist/authoring-occupancy.d.ts.map +1 -1
  17. package/dist/authoring-occupancy.js +419 -109
  18. package/dist/authoring-occupancy.js.map +1 -1
  19. package/dist/authoring-size.d.ts +5 -10
  20. package/dist/authoring-size.d.ts.map +1 -1
  21. package/dist/authoring-size.js +28 -98
  22. package/dist/authoring-size.js.map +1 -1
  23. package/dist/authoring-types.d.ts +43 -23
  24. package/dist/authoring-types.d.ts.map +1 -1
  25. package/dist/contract.d.ts +4 -16
  26. package/dist/contract.d.ts.map +1 -1
  27. package/dist/contract.js.map +1 -1
  28. package/dist/create.d.ts +5 -3
  29. package/dist/create.d.ts.map +1 -1
  30. package/dist/create.js +3 -7
  31. package/dist/create.js.map +1 -1
  32. package/dist/face-overhang.d.ts +22 -2
  33. package/dist/face-overhang.d.ts.map +1 -1
  34. package/dist/face-overhang.js +139 -1
  35. package/dist/face-overhang.js.map +1 -1
  36. package/dist/fasten-place.d.ts +77 -0
  37. package/dist/fasten-place.d.ts.map +1 -1
  38. package/dist/fasten-place.js +214 -2
  39. package/dist/fasten-place.js.map +1 -1
  40. package/dist/gate.d.ts.map +1 -1
  41. package/dist/gate.js +28 -8
  42. package/dist/gate.js.map +1 -1
  43. package/dist/graph-types.d.ts +15 -2
  44. package/dist/graph-types.d.ts.map +1 -1
  45. package/dist/graph.js +15 -6
  46. package/dist/graph.js.map +1 -1
  47. package/dist/index.d.ts +6 -5
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +4 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/instance-size.d.ts +58 -32
  52. package/dist/instance-size.d.ts.map +1 -1
  53. package/dist/instance-size.js +155 -41
  54. package/dist/instance-size.js.map +1 -1
  55. package/dist/joint-list.d.ts.map +1 -1
  56. package/dist/joint-list.js +3 -3
  57. package/dist/joint-list.js.map +1 -1
  58. package/dist/joint-writing.d.ts.map +1 -1
  59. package/dist/joint-writing.js +69 -8
  60. package/dist/joint-writing.js.map +1 -1
  61. package/dist/kernel-version.d.ts +1 -1
  62. package/dist/kernel-version.js +1 -1
  63. package/dist/part-edit.d.ts.map +1 -1
  64. package/dist/part-edit.js +2 -2
  65. package/dist/part-edit.js.map +1 -1
  66. package/dist/proposal.js +9 -9
  67. package/dist/proposal.js.map +1 -1
  68. package/dist/recipe-from-parts.js +5 -5
  69. package/dist/recipe-from-parts.js.map +1 -1
  70. package/dist/release-contract.d.ts.map +1 -1
  71. package/dist/release-contract.js +7 -2
  72. package/dist/release-contract.js.map +1 -1
  73. package/dist/release-metrics.d.ts.map +1 -1
  74. package/dist/release-metrics.js +6 -2
  75. package/dist/release-metrics.js.map +1 -1
  76. package/dist/resize-plan.d.ts.map +1 -1
  77. package/dist/resize-plan.js +4 -9
  78. package/dist/resize-plan.js.map +1 -1
  79. package/dist/room.d.ts.map +1 -1
  80. package/dist/room.js +13 -4
  81. package/dist/room.js.map +1 -1
  82. package/dist/shape-edit.d.ts +1 -1
  83. package/dist/shape-edit.js +1 -1
  84. package/dist/shape-extreme.d.ts +55 -4
  85. package/dist/shape-extreme.d.ts.map +1 -1
  86. package/dist/shape-extreme.js +118 -4
  87. package/dist/shape-extreme.js.map +1 -1
  88. package/dist/shape-provider.d.ts.map +1 -1
  89. package/dist/shape-provider.js +4 -3
  90. package/dist/shape-provider.js.map +1 -1
  91. package/dist/size-edit.d.ts +32 -8
  92. package/dist/size-edit.d.ts.map +1 -1
  93. package/dist/size-edit.js +68 -125
  94. package/dist/size-edit.js.map +1 -1
  95. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"release-metrics.d.ts","sourceRoot":"","sources":["../src/release-metrics.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAOnD,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtE,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAG3B;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;EAAwF,CAAA;AAExH,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACtF,wEAAwE;IACxE,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,mBAAmB,CAAA;KAAE,CAAA;IAClF,qGAAqG;IACrG,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,IAAI,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;IACrE,4CAA4C;IAC5C,MAAM,CAAC,EAAE,eAAe,CAAA;CACzB;AAcD,kGAAkG;AAClG,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;IACvC,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,uIAAuI;IACvI,EAAE,EAAE,MAAM,CAAA;IACV,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,iHAAiH;IACjH,MAAM,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,CAa/E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAiBxF;AAUD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAgD/E"}
1
+ {"version":3,"file":"release-metrics.d.ts","sourceRoot":"","sources":["../src/release-metrics.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAOnD,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGtE,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAG3B;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;EAAwF,CAAA;AAExH,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACtF,wEAAwE;IACxE,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,mBAAmB,CAAA;KAAE,CAAA;IAClF,qGAAqG;IACrG,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,IAAI,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;IACrE,4CAA4C;IAC5C,MAAM,CAAC,EAAE,eAAe,CAAA;CACzB;AAcD,kGAAkG;AAClG,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;IACvC,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,uIAAuI;IACvI,EAAE,EAAE,MAAM,CAAA;IACV,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,iHAAiH;IACjH,MAAM,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,CAa/E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAiBxF;AAUD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAmD/E"}
@@ -5,6 +5,7 @@ import { SKIN } from "./words.js";
5
5
  import { figurePlacementOf } from "./asset.js";
6
6
  import { compileFigureGraph } from "./graph.js";
7
7
  import { figureJointsOf } from "./joint-list.js";
8
+ import { recordFigureInstanceSize } from "./instance-size.js";
8
9
  const AXES = ['x', 'y', 'z'];
9
10
  /**
10
11
  * How "stretching is the same" is measured, recorded with every answer so a reader knows what was asked: the gate's
@@ -77,6 +78,8 @@ const sizeInputsOf = (asset) => Object.fromEntries(AXES.flatMap(axis => {
77
78
  return input ? [[axis, input]] : [];
78
79
  }));
79
80
  export function figureReleaseMetricsOf(asset) {
81
+ /* Measured over the range the release carries (ADR-0087 decision 6). */
82
+ asset = recordFigureInstanceSize(asset);
80
83
  const origin = figureOriginCentredOf(asset);
81
84
  const joints = movingJointsOf(asset);
82
85
  const sizing = sizeInputsOf(asset);
@@ -84,8 +87,9 @@ export function figureReleaseMetricsOf(asset) {
84
87
  if (!axes.length)
85
88
  return { ...(origin ? { origin } : {}), ...(joints ? { joints } : {}) };
86
89
  const largest = { ...asset.designInputs };
90
+ /* With no largest size its parts set, the figure draws no more at any size than at the one it is authored at. */
87
91
  for (const axis of axes)
88
- largest[sizing[axis].id] = sizing[axis].max;
92
+ largest[sizing[axis].id] = sizing[axis].max ?? asset.designInputs[sizing[axis].id];
89
93
  const cost = figureCostOf({ ...asset, designInputs: largest });
90
94
  const writers = figureWritersOf(asset);
91
95
  const bodiesAt = (designInputs) => new Map(compileFigureAsset({ ...asset, designInputs })
@@ -102,7 +106,7 @@ export function figureReleaseMetricsOf(asset) {
102
106
  for (const axis of way) {
103
107
  const input = sizing[axis];
104
108
  const at = asset.designInputs[input.id];
105
- grown[input.id] = Math.min(input.max, at * RESIZE_FACTOR);
109
+ grown[input.id] = Math.min(input.max ?? Infinity, at * RESIZE_FACTOR);
106
110
  factor[axis] = grown[input.id] / at;
107
111
  }
108
112
  const now = bodiesAt(grown);
@@ -1 +1 @@
1
- {"version":3,"file":"release-metrics.js","sourceRoot":"","sources":["../src/release-metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release-metrics.js","sourceRoot":"","sources":["../src/release-metrics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resize-plan.d.ts","sourceRoot":"","sources":["../src/resize-plan.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAuB,UAAU,EAAE,MAAM,sBAAsB,CAAA;AASlG,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,qFAAqF;IACrF,IAAI,CAAC,EAAE,IAAI,EAAE,CAAA;IACb;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,4HAA4H;IAC5H,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,MAAM,uBAAuB,GAC/B,eAAe,GACf,MAAM,GACN,QAAQ,GACR,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,SAAS,GACT,iBAAiB,CAAA;AAErB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,eAAe,CAAA;IACrB,2GAA2G;IAC3G,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,4EAA4E;IAC5E,KAAK,EAAE,qBAAqB,EAAE,CAAA;IAC9B,+FAA+F;IAC/F,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,2HAA2H;IAC3H,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,iHAAiH;IACjH,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtD;;;OAGG;IACH,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,uBAAuB,CAAA;QAC7B,MAAM,EAAE,MAAM,CAAA;QACd,6EAA6E;QAC7E,MAAM,CAAC,EAAE,KAAK,GAAG,iBAAiB,CAAA;QAClC;;;WAGG;QACH,IAAI,CAAC,EAAE,IAAI,CAAA;QACX,EAAE,CAAC,EAAE,MAAM,CAAA;KACZ,CAAA;CACF;AAID,4HAA4H;AAC5H,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;CAAE,GAAG,SAAS,CAK9G,CAAA;AAID,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,CA0KnG"}
1
+ {"version":3,"file":"resize-plan.d.ts","sourceRoot":"","sources":["../src/resize-plan.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAuB,UAAU,EAAE,MAAM,sBAAsB,CAAA;AASlG,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,qFAAqF;IACrF,IAAI,CAAC,EAAE,IAAI,EAAE,CAAA;IACb;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,4HAA4H;IAC5H,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,MAAM,uBAAuB,GAC/B,eAAe,GACf,MAAM,GACN,QAAQ,GACR,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,SAAS,GACT,iBAAiB,CAAA;AAErB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,eAAe,CAAA;IACrB,2GAA2G;IAC3G,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,4EAA4E;IAC5E,KAAK,EAAE,qBAAqB,EAAE,CAAA;IAC9B,+FAA+F;IAC/F,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,2HAA2H;IAC3H,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,iHAAiH;IACjH,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtD;;;OAGG;IACH,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,uBAAuB,CAAA;QAC7B,MAAM,EAAE,MAAM,CAAA;QACd,6EAA6E;QAC7E,MAAM,CAAC,EAAE,KAAK,GAAG,iBAAiB,CAAA;QAClC;;;WAGG;QACH,IAAI,CAAC,EAAE,IAAI,CAAA;QACX,EAAE,CAAC,EAAE,MAAM,CAAA;KACZ,CAAA;CACF;AAID,4HAA4H;AAC5H,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;CAAE,GAAG,SAAS,CAK9G,CAAA;AAID,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,CAoKnG"}
@@ -2,7 +2,7 @@ import { applyFigureAuthoring } from "./authoring-actions.js";
2
2
  import { figurePlacementOf, upgradeFigurePlacement } from "./asset.js";
3
3
  import { compileFigureGraph } from "./graph.js";
4
4
  import { figurePartsExtentOf } from "./gate.js";
5
- import { defaultInstanceSizeRange, foldInstanceSizeRange, figureInstanceSizeLimitsOf, FIGURE_INSTANCE_SIZE_INPUTS } from "./instance-size.js";
5
+ import { FIGURE_INSTANCE_SIZE_INPUTS } from "./instance-size.js";
6
6
  import { figureFollowOf } from "./follow.js";
7
7
  import { figureShapeProviderOf, figureFollowableAxesOf } from "./shape-provider.js";
8
8
  import { figureShapeDescriptionOf } from "./shape-ops.js";
@@ -153,12 +153,8 @@ export function planFigureResize(asset, request) {
153
153
  };
154
154
  try {
155
155
  const declared = AXES.filter(axis => asset.document.model.inputs.some((i) => i.id === FIGURE_INSTANCE_SIZE_INPUTS[axis]));
156
- if (link.length && declared.length < 3) {
157
- const at = figurePartsExtentOf(asset);
158
- const start = defaultInstanceSizeRange(at);
159
- const range = foldInstanceSizeRange(start, figureInstanceSizeLimitsOf(asset, start)).range;
160
- step({ kind: 'declare-instance-size', at, range, replace: declared.length > 0 });
161
- }
156
+ if (link.length && declared.length < 3)
157
+ step({ kind: 'declare-instance-size', at: figurePartsExtentOf(asset), replace: declared.length > 0 });
162
158
  for (const axis of link) {
163
159
  const measure = values[shape.args[provider.edit[axis].arg]];
164
160
  const size = candidate.designInputs[FIGURE_INSTANCE_SIZE_INPUTS[axis]];
@@ -167,8 +163,7 @@ export function planFigureResize(asset, request) {
167
163
  part,
168
164
  axis,
169
165
  source: { of: 'instance', axis },
170
- times: measure / size,
171
- narrowRange: true
166
+ times: measure / size
172
167
  });
173
168
  }
174
169
  if (fasten)
@@ -1 +1 @@
1
- {"version":3,"file":"resize-plan.js","sourceRoot":"","sources":["../src/resize-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resize-plan.js","sourceRoot":"","sources":["../src/resize-plan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAMjE,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAG5C,KAAK,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAoBxD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBlF;AAED,MAAM,WAAW,eAAe;IAC9B,wHAAwH;IACxH,IAAI,EAAE,OAAO,CAAC,qBAAqB,EAAE;QAAE,IAAI,EAAE,mBAAmB,CAAA;KAAE,CAAC,CAAA;IACnE,yHAAyH;IACzH,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAChD,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAChD,6GAA6G;IAC7G,wHAAwH;IACxH,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,QAAQ,EAAE,iBAAiB,CAAA;KAAE,CAAA;CACtE;AACD,wEAAwE;AACxE,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AACxE,mHAAmH;AACnH,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAEvI,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS,CAgCjF"}
1
+ {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAMjE,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAG5C,KAAK,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAoBxD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBlF;AAED,MAAM,WAAW,eAAe;IAC9B,wHAAwH;IACxH,IAAI,EAAE,OAAO,CAAC,qBAAqB,EAAE;QAAE,IAAI,EAAE,mBAAmB,CAAA;KAAE,CAAC,CAAA;IACnE,yHAAyH;IACzH,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAChD,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAChD,6GAA6G;IAC7G,wHAAwH;IACxH,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,QAAQ,EAAE,iBAAiB,CAAA;KAAE,CAAA;CACtE;AACD,wEAAwE;AACxE,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AACxE,mHAAmH;AACnH,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAEvI,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS,CA2CjF"}
package/dist/room.js CHANGED
@@ -7,8 +7,8 @@ import { upgradeFigurePlacement } from "./asset.js";
7
7
  import { applyFigureAuthoring } from "./authoring-actions.js";
8
8
  import { proposeFigureOccupancy } from "./authoring-occupancy.js";
9
9
  import { compileFigureGraph } from "./graph.js";
10
- import { inspectFigureAsset } from "./gate.js";
11
- import { FIGURE_INSTANCE_SIZE_INPUTS } from "./instance-size.js";
10
+ import { inspectFigureAsset, RESIZE_FACTOR } from "./gate.js";
11
+ import { FIGURE_INSTANCE_SIZE_INPUTS, figureInstanceSizeRangeOf } from "./instance-size.js";
12
12
  import { AXES } from "./words.js";
13
13
  const stringsIn = (value) => typeof value === 'string' ? [value] : Array.isArray(value) ? value.flatMap(stringsIn) : value && typeof value === 'object' ? Object.values(value).flatMap(stringsIn) : [];
14
14
  /** Every value a set of references is worked out from, inputs included. */
@@ -62,8 +62,17 @@ export function figureRoomRefitOf(asset) {
62
62
  const step = { kind: 'declare-occupancy', proposal: proposeFigureOccupancy(asset, { over: 'range' }) };
63
63
  const refit = applyFigureAuthoring(asset, step);
64
64
  const m = asset.document.model;
65
- const sizes = AXES.map(axis => m.inputs.find((i) => i.id === FIGURE_INSTANCE_SIZE_INPUTS[axis]));
66
- const largest = sizes.every(Boolean) ? Object.fromEntries(sizes.map(i => [i.id, i.max])) : undefined;
65
+ /*
66
+ At the largest size the release check reaches: the one the parts or the author set, and on an axis nothing limits,
67
+ RESIZE_FACTOR times the drawn size, as the gate samples it (ADR-0087 decision 6).
68
+ */
69
+ const range = figureInstanceSizeRangeOf(asset);
70
+ const largest = AXES.every(axis => range[axis])
71
+ ? Object.fromEntries(AXES.map(axis => {
72
+ const at = asset.designInputs[FIGURE_INSTANCE_SIZE_INPUTS[axis]];
73
+ return [FIGURE_INSTANCE_SIZE_INPUTS[axis], Number.isFinite(range[axis].max) ? range[axis].max : at * RESIZE_FACTOR];
74
+ }))
75
+ : undefined;
67
76
  const boundsOf = (a, at = {}) => {
68
77
  const values = compileFigureGraph(a.document.model).evaluate({ ...a.designInputs, ...a.stateDefaults, ...at }).values;
69
78
  const b = a.occupancy.bounds;
package/dist/room.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAGnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC7D,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC3F,OAAO,EAAE,IAAI,EAAa,MAAM,YAAY,CAAA;AAK5C,MAAM,SAAS,GAAG,CAAC,KAAc,EAAY,EAAE,CAC7C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAE3K,2EAA2E;AAC3E,SAAS,QAAQ,CAAC,CAAU,EAAE,IAAc;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC1C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;QAAE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAa;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAC1G,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,GAAI,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAG,CAAA;QAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAQ;QAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkB,EAAE,IAAa;IACtE,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,CAAC,GAAG,KAAgB,CAAA;IAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAA;IAC1B,IAAI,CAAC,CAAC,CAAC,SAAS;QAAE,OAAO,EAAE,CAAA;IAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE;QACxB,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAgB,CAAC;QAC/I,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1B,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACrC,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACvB,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;QAC5B,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;QAC7B,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;KACvB,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAChD,OAAO,CAAC,CAAC,MAAM;SACZ,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;SAC3H,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAY,CAAC,CAAA;AACxC,CAAC;AAkBD,mGAAmG;AACnG,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IACtC,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,sBAAsB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;IAC/H,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC/C,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAgB,CAAA;IACzC;;;MAGE;IACF,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACd,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAE,CAAA;YACjE,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,CAAA;QACvH,CAAC,CAAC,CACH;QACH,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,QAAQ,GAAG,CAAC,CAAc,EAAE,KAA6B,EAAE,EAAU,EAAE;QAC3E,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAgC,CAAA;QACxJ,MAAM,CAAC,GAAG,CAAC,CAAC,SAAU,CAAC,MAA+D,CAAA;QACtF,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAE,EAAE,CAAC,CAAC,CAAW,CAAA;IACzH,CAAC,CAAA;IACD;;;;MAIE;IACF,MAAM,OAAO,GAAG,CAAC,CAAc,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;QACpC,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAG,EAAE,CAAC,CAAC;YACjI,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;SAC7E,CAAA;IACH,CAAC,CAAA;IACD,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChF,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClG,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClG,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;KAChE,CAAA;AACH,CAAC"}
@@ -87,7 +87,7 @@ export interface FigureSectionRequest {
87
87
  * (`figureShapeDescriptionOf`: the argument and its factor), never from the arguments' order. Refused for an axis the
88
88
  * shape does not size (a drawn section's widths are its points), for a circle given two different widths, and for a
89
89
  * measure that follows another value, until it is unlinked. Nothing is moved here: the caller keeps the face the part's
90
- * relations keep (ADR-0097's rule, figureSizeEditChanges).
90
+ * relations keep (ADR-0140 4.2, figureSizeEditOf).
91
91
  */
92
92
  export declare function figureSectionSizeChanges(asset: Dynamic, part: string, request: FigureSectionRequest): FigureInputChange[];
93
93
  /** Whether a pushed part's measure can be set here, and why not. */
@@ -364,7 +364,7 @@ export function setFigureSectionApex(asset, part, apex, drop) {
364
364
  * (`figureShapeDescriptionOf`: the argument and its factor), never from the arguments' order. Refused for an axis the
365
365
  * shape does not size (a drawn section's widths are its points), for a circle given two different widths, and for a
366
366
  * measure that follows another value, until it is unlinked. Nothing is moved here: the caller keeps the face the part's
367
- * relations keep (ADR-0097's rule, figureSizeEditChanges).
367
+ * relations keep (ADR-0140 4.2, figureSizeEditOf).
368
368
  */
369
369
  export function figureSectionSizeChanges(asset, part, request) {
370
370
  const path = `${part}.section`;
@@ -1,10 +1,13 @@
1
1
  import { type FigureEvaluatedShape } from './shape-ops.ts';
2
2
  import { type Terms } from './authoring-geometry.ts';
3
+ import { type Axis } from './words.ts';
3
4
  type Dynamic = any;
4
5
  type Vec = [number, number, number];
5
6
  /**
6
- * A reach: a sum of graph values times numbers, plus millimetres; the sum of reaches; the largest of them; or the
7
- * root of the sum of their squares.
7
+ * A reach: a sum of graph values times numbers, plus millimetres; the sum of reaches; the largest of them; the root of
8
+ * the sum of their squares; one reach times or over another -- where a point on an elliptic surface lies along its
9
+ * recorded normal (ADR-0140 3.9); or the root of one times another, √(a·b) -- where a disc's rim lies across from a
10
+ * point on its axis, √((R − e)(R + e)) (3.9).
8
11
  */
9
12
  export type FigureReach = {
10
13
  terms: Terms;
@@ -15,6 +18,12 @@ export type FigureReach = {
15
18
  max: FigureReach[];
16
19
  } | {
17
20
  hypot: FigureReach[];
21
+ } | {
22
+ product: [FigureReach, FigureReach];
23
+ } | {
24
+ quotient: [FigureReach, FigureReach];
25
+ } | {
26
+ geomean: [FigureReach, FigureReach];
18
27
  } | {
19
28
  scaled: FigureReach;
20
29
  k: number;
@@ -25,8 +34,49 @@ export declare const lin: (terms: Terms, constant?: number) => {
25
34
  };
26
35
  /** A reach times a number: a sum's factors times it; anything else as it is, times it. */
27
36
  export declare function times(r: FigureReach, k: number): FigureReach;
28
- /** Sums fold into one; anything else stays a sum of parts. */
37
+ /**
38
+ * Sums fold into one; anything else stays a sum of parts. A rim's root (ADR-0140 3.9) put in and taken back out of a
39
+ * pose is one root: its multiples are added, and it and its negative cancel -- left apart, the room bounded each on its
40
+ * own and came out twice as wide (chief architect 2026-10-20). Other parts stay as written, so what earlier kernels
41
+ * wrote is written again the same.
42
+ */
29
43
  export declare function plus(...parts: FigureReach[]): FigureReach;
44
+ /**
45
+ * The surface a part offers to be fastened to at a point (ADR-0140 3.9): a cylinder's side, by `around` and `along`; a
46
+ * sphere's or an ellipsoid's, by `toward`. Nothing for a part with flat faces only, a frustum, or rounded corners.
47
+ */
48
+ export declare function figureSurfaceFormOf(m: Dynamic, part: string, path: string): 'around' | 'toward' | undefined;
49
+ /**
50
+ * Where a part's curved surface faces `n` -- its outward normal there, a unit vector in the part's own frame (ADR-0140
51
+ * 3.9) -- as graph terms on each own axis: on a sphere or an ellipsoid, or on a cylinder's side (`n` across its push,
52
+ * where the ends along the push come with it). With radii r on its own axes the point is
53
+ * p_i = r_i² · n_i / hypot(r_1·n_1, r_2·n_2, r_3·n_3)
54
+ * -- the normal of x²/a² + … = 1 is (x/a², …) -- and r·n when the radii come from one source. A shape with no such surface is
55
+ * told by what it is: a taper (a frustum's side turns with its slope), rounded corners, or flat faces only.
56
+ */
57
+ export declare function figureSurfacePointOf(m: Dynamic, part: string, n: Vec, path: string): {
58
+ point: Record<Axis, FigureReach>;
59
+ push?: {
60
+ axis: Axis;
61
+ lo: FigureReach;
62
+ hi: FigureReach;
63
+ };
64
+ } | {
65
+ not: 'taper' | 'rounded' | 'flat';
66
+ };
67
+ /**
68
+ * A part's end disc, when the named face is one (ADR-0140 3.9): a cylinder's end -- its section's two radii across the
69
+ * push -- or a frustum's -- the radius of that end, on both axes across. Nothing for any other face. The disc is centred
70
+ * on the push axis, so its middle is the middle of the part's span across.
71
+ */
72
+ export declare function figureDiscOf(m: Dynamic, part: string, face: string, path: string): Partial<Record<Axis, FigureReach>> | undefined;
73
+ /**
74
+ * Whether a part is round about its own axis -- a cylinder of one radius, a sphere or a spheroid, a frustum -- and that
75
+ * axis lies along `d`, a unit vector in its own frame: then what it covers across `d` is a disc.
76
+ */
77
+ export declare function figureRoundAbout(m: Dynamic, part: string, d: Vec, path: string): boolean;
78
+ /** The graph values a reach is made of. */
79
+ export declare function figureReachRefs(r: FigureReach): string[];
30
80
  /** The reach of a part's shape along `d` -- a unit vector in the part's own frame -- from its origin, as graph terms. */
31
81
  export declare function figureShapeExtremeAlong(m: Dynamic, part: string, d: Vec, path: string): FigureReach;
32
82
  /**
@@ -41,7 +91,8 @@ export declare function figureShapeReachOf(shape: FigureEvaluatedShape, d: Vec):
41
91
  export declare function figureReachValue(reach: FigureReach, values: Record<string, number>): number;
42
92
  /**
43
93
  * Write a reach into the graph under `hint` with the joint's `name`, and give the value it is: a sum as `add@1` ·
44
- * `mul@1` of its terms and a constant, the largest as `max@1`, a root as `hypot@1`, a multiple as `mul@1`. The numbers
94
+ * `mul@1` of its terms and a constant, the largest as `max@1`, a root as `hypot@1`, a multiple as `mul@1`, √(a·b) as
95
+ * `geomean@1`. The numbers
45
96
  * are the kernel's shared constants, so the same record writes the same nodes.
46
97
  */
47
98
  export declare function writeFigureReach(m: Dynamic, name: (hint: string) => string, reach: FigureReach, hint: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"shape-extreme.d.ts","sourceRoot":"","sources":["../src/shape-extreme.ts"],"names":[],"mappings":"AAeA,OAAO,EAA4F,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAGpJ,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAIzE,KAAK,OAAO,GAAG,GAAG,CAAA;AAClB,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAEnC;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,GAAG,EAAE,WAAW,EAAE,CAAA;CAAE,GACtB;IAAE,GAAG,EAAE,WAAW,EAAE,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,WAAW,EAAE,CAAA;CAAE,GACxB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAUtC,eAAO,MAAM,GAAG,GAAI,OAAO,KAAK,EAAE,iBAAY,KAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAA2D,CAAA;AAE5I,0FAA0F;AAC1F,wBAAgB,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAM5D;AACD,8DAA8D;AAC9D,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,CAOzD;AA0ED,yHAAyH;AACzH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAEnG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,EAAE,CAAC,EAAE,GAAG,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAIpG;AAqGD,6CAA6C;AAC7C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAK3F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBrH"}
1
+ {"version":3,"file":"shape-extreme.d.ts","sourceRoot":"","sources":["../src/shape-extreme.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  */
15
15
  import { figureExtrudeLayoutOf, figureLoftLayoutOf, figureShapeBoundsOf, figureShapeDescriptionOf } from "./shape-ops.js";
16
16
  import { FIGURE_SECTION_PLANE } from "./section.js";
17
- import { partOf, constantOf } from "./authoring-nodes.js";
17
+ import { partOf, constantOf, throughSums } from "./authoring-nodes.js";
18
18
  import { ownSpansOf, planeOf } from "./authoring-geometry.js";
19
19
  import { figureShapeFaces } from "./graph.js";
20
20
  import { AXES } from "./words.js";
@@ -41,12 +41,30 @@ export function times(r, k) {
41
41
  return times(r.scaled, r.k * k);
42
42
  return { scaled: r, k: clean(k) };
43
43
  }
44
- /** Sums fold into one; anything else stays a sum of parts. */
44
+ /**
45
+ * Sums fold into one; anything else stays a sum of parts. A rim's root (ADR-0140 3.9) put in and taken back out of a
46
+ * pose is one root: its multiples are added, and it and its negative cancel -- left apart, the room bounded each on its
47
+ * own and came out twice as wide (chief architect 2026-10-20). Other parts stay as written, so what earlier kernels
48
+ * wrote is written again the same.
49
+ */
45
50
  export function plus(...parts) {
46
51
  const flat = parts.flatMap(p => ('add' in p ? p.add : [p]));
47
52
  const sums = flat.filter(isLin);
48
- const rest = flat.filter(p => !isLin(p));
49
53
  const folded = lin(sums.flatMap(s => s.terms), sums.reduce((c, s) => c + s.constant, 0));
54
+ const rest = [];
55
+ const roots = new Map();
56
+ for (const p of flat.filter(p => !isLin(p))) {
57
+ const [part, k] = 'scaled' in p ? [p.scaled, p.k] : [p, 1];
58
+ if (!('geomean' in part)) {
59
+ rest.push(p);
60
+ continue;
61
+ }
62
+ const key = JSON.stringify(part);
63
+ roots.set(key, { part, k: (roots.get(key)?.k ?? 0) + k });
64
+ }
65
+ for (const r of roots.values())
66
+ if (clean(r.k) !== 0)
67
+ rest.push(clean(r.k) === 1 ? r.part : { scaled: r.part, k: clean(r.k) });
50
68
  if (!rest.length)
51
69
  return folded;
52
70
  return { add: [...(folded.terms.length || folded.constant ? [folded] : []), ...rest] };
@@ -107,6 +125,89 @@ function reachOf(input, d) {
107
125
  /* A drawn section's corners at the start, and along the push its far end the way the direction goes. */
108
126
  return plus(push, largest(input.points.map(corner)));
109
127
  }
128
+ /**
129
+ * The surface a part offers to be fastened to at a point (ADR-0140 3.9): a cylinder's side, by `around` and `along`; a
130
+ * sphere's or an ellipsoid's, by `toward`. Nothing for a part with flat faces only, a frustum, or rounded corners.
131
+ */
132
+ export function figureSurfaceFormOf(m, part, path) {
133
+ const { shape } = partOf(m, part, path);
134
+ if (shape.op === 'extrude@1' && shape.params?.section === 'ellipse')
135
+ return 'around';
136
+ if (shape.op === 'revolve@1' && shape.params?.profile === 'half-ellipse')
137
+ return 'toward';
138
+ return undefined;
139
+ }
140
+ /**
141
+ * Where a part's curved surface faces `n` -- its outward normal there, a unit vector in the part's own frame (ADR-0140
142
+ * 3.9) -- as graph terms on each own axis: on a sphere or an ellipsoid, or on a cylinder's side (`n` across its push,
143
+ * where the ends along the push come with it). With radii r on its own axes the point is
144
+ * p_i = r_i² · n_i / hypot(r_1·n_1, r_2·n_2, r_3·n_3)
145
+ * -- the normal of x²/a² + … = 1 is (x/a², …) -- and r·n when the radii come from one source. A shape with no such surface is
146
+ * told by what it is: a taper (a frustum's side turns with its slope), rounded corners, or flat faces only.
147
+ */
148
+ export function figureSurfacePointOf(m, part, n, path) {
149
+ const input = modelReachInput(m, part, path);
150
+ if (input.kind === 'taper')
151
+ return { not: 'taper' };
152
+ if (input.kind === 'rounded')
153
+ return { not: 'rounded' };
154
+ if (input.kind !== 'sphere' && input.kind !== 'ellipse')
155
+ return { not: 'flat' };
156
+ const radius = input.kind === 'sphere'
157
+ ? Object.fromEntries(AXES.map(x => [x, x === input.axis ? input.axial : input.radial]))
158
+ : { [input.plane[0]]: input.radius[0], [input.plane[1]]: input.radius[1] };
159
+ const on = AXES.filter(x => radius[x] && Math.abs(n[AXES.indexOf(x)]) > 1e-12);
160
+ /*
161
+ One radius when they come from one source -- one input, or one following the other -- read through the sums that
162
+ make them (chief architect 2026-10-20); values that only happen to be equal are two radii.
163
+ */
164
+ const source = (r) => {
165
+ const s = throughSums(m, isLin(r) ? { terms: r.terms, c: r.constant } : { terms: [], c: NaN });
166
+ return JSON.stringify([[...s.terms].sort((a, b) => (a.ref < b.ref ? -1 : a.ref > b.ref ? 1 : 0)), s.c]);
167
+ };
168
+ const one = new Set(on.map(x => source(radius[x]))).size <= 1;
169
+ const across = { hypot: on.map(x => times(radius[x], n[AXES.indexOf(x)])) };
170
+ const point = Object.fromEntries(AXES.map((x, i) => {
171
+ if (!on.includes(x))
172
+ return [x, lin([])];
173
+ return [x, one ? times(radius[x], n[i]) : { quotient: [times({ product: [radius[x], radius[x]] }, n[i]), across] }];
174
+ }));
175
+ return { point, ...(input.kind === 'ellipse' ? { push: { axis: input.axis, ...input.ends } } : {}) };
176
+ }
177
+ /**
178
+ * A part's end disc, when the named face is one (ADR-0140 3.9): a cylinder's end -- its section's two radii across the
179
+ * push -- or a frustum's -- the radius of that end, on both axes across. Nothing for any other face. The disc is centred
180
+ * on the push axis, so its middle is the middle of the part's span across.
181
+ */
182
+ export function figureDiscOf(m, part, face, path) {
183
+ const { shape } = partOf(m, part, path);
184
+ const f = figureShapeFaces(shape, m)?.[face];
185
+ const input = modelReachInput(m, part, path);
186
+ if (!f || (input.kind !== 'ellipse' && input.kind !== 'taper') || f.axis !== input.axis)
187
+ return undefined;
188
+ if (input.kind === 'ellipse')
189
+ return { [input.plane[0]]: input.radius[0], [input.plane[1]]: input.radius[1] };
190
+ const r = input.radii[f.normal < 0 ? 0 : 1];
191
+ return Object.fromEntries(AXES.filter(x => x !== input.axis).map(x => [x, r]));
192
+ }
193
+ /**
194
+ * Whether a part is round about its own axis -- a cylinder of one radius, a sphere or a spheroid, a frustum -- and that
195
+ * axis lies along `d`, a unit vector in its own frame: then what it covers across `d` is a disc.
196
+ */
197
+ export function figureRoundAbout(m, part, d, path) {
198
+ const input = modelReachInput(m, part, path);
199
+ const round = input.kind === 'sphere' || input.kind === 'taper' || (input.kind === 'ellipse' && JSON.stringify(input.radius[0]) === JSON.stringify(input.radius[1]));
200
+ return round && Math.abs(Math.abs(d[AXES.indexOf(input.axis)]) - 1) < 1e-9;
201
+ }
202
+ /** The graph values a reach is made of. */
203
+ export function figureReachRefs(r) {
204
+ if (isLin(r))
205
+ return r.terms.map(t => t.ref);
206
+ if ('scaled' in r)
207
+ return figureReachRefs(r.scaled);
208
+ const parts = 'add' in r ? r.add : 'max' in r ? r.max : 'hypot' in r ? r.hypot : 'product' in r ? r.product : 'quotient' in r ? r.quotient : r.geomean;
209
+ return parts.flatMap(figureReachRefs);
210
+ }
110
211
  /** The reach of a part's shape along `d` -- a unit vector in the part's own frame -- from its origin, as graph terms. */
111
212
  export function figureShapeExtremeAlong(m, part, d, path) {
112
213
  return reachOf(modelReachInput(m, part, path), d);
@@ -230,12 +331,19 @@ export function figureReachValue(reach, values) {
230
331
  return reach.constant + reach.terms.reduce((s, t) => s + t.k * values[t.ref], 0);
231
332
  if ('scaled' in reach)
232
333
  return reach.k * figureReachValue(reach.scaled, values);
334
+ if ('product' in reach)
335
+ return figureReachValue(reach.product[0], values) * figureReachValue(reach.product[1], values);
336
+ if ('quotient' in reach)
337
+ return figureReachValue(reach.quotient[0], values) / figureReachValue(reach.quotient[1], values);
338
+ if ('geomean' in reach)
339
+ return Math.sqrt(figureReachValue(reach.geomean[0], values) * figureReachValue(reach.geomean[1], values));
233
340
  const parts = ('add' in reach ? reach.add : 'max' in reach ? reach.max : reach.hypot).map(r => figureReachValue(r, values));
234
341
  return 'add' in reach ? parts.reduce((s, v) => s + v, 0) : 'max' in reach ? Math.max(...parts) : Math.hypot(...parts);
235
342
  }
236
343
  /**
237
344
  * Write a reach into the graph under `hint` with the joint's `name`, and give the value it is: a sum as `add@1` ·
238
- * `mul@1` of its terms and a constant, the largest as `max@1`, a root as `hypot@1`, a multiple as `mul@1`. The numbers
345
+ * `mul@1` of its terms and a constant, the largest as `max@1`, a root as `hypot@1`, a multiple as `mul@1`, √(a·b) as
346
+ * `geomean@1`. The numbers
239
347
  * are the kernel's shared constants, so the same record writes the same nodes.
240
348
  */
241
349
  export function writeFigureReach(m, name, reach, hint) {
@@ -253,6 +361,12 @@ export function writeFigureReach(m, name, reach, hint) {
253
361
  }
254
362
  if ('scaled' in r)
255
363
  return node('mul@1', [write(r.scaled, `${h}.x`), constantOf(m, 'ratio', r.k, 'k')], h);
364
+ if ('product' in r)
365
+ return node('mul@1', [write(r.product[0], `${h}.p0`), write(r.product[1], `${h}.p1`)], h);
366
+ if ('quotient' in r)
367
+ return node('div@1', [write(r.quotient[0], `${h}.q0`), write(r.quotient[1], `${h}.q1`)], h);
368
+ if ('geomean' in r)
369
+ return node('geomean@1', [write(r.geomean[0], `${h}.g0`), write(r.geomean[1], `${h}.g1`)], h);
256
370
  const op = 'add' in r ? 'add@1' : 'max' in r ? 'max@1' : 'hypot@1';
257
371
  const args = ('add' in r ? r.add : 'max' in r ? r.max : r.hypot).map((p, i) => write(p, `${h}.${i}`));
258
372
  return op === 'add@1' ? args.slice(1).reduce((acc, p, i) => node('add@1', [acc, p], `${h}.a${i}`), args[0]) : node(op, args, h);