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