@code3d/core 0.0.1-alpha.4 → 0.0.1-alpha.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 (40) hide show
  1. package/README.md +31 -3
  2. package/bld/chunks/{chunk-OQLJDJIF.js → chunk-3RIMOCPP.js} +2 -2
  3. package/bld/chunks/{chunk-PAIFBNU4.js → chunk-KYW4AWKO.js} +2 -2
  4. package/bld/chunks/{chunk-J77FMYFY.js → chunk-T3RAUNSF.js} +941 -514
  5. package/bld/chunks/chunk-T3RAUNSF.js.map +7 -0
  6. package/bld/chunks/{chunk-ZMT6EFHL.js → chunk-T6COR2SG.js} +3 -3
  7. package/bld/library/bound-solver.d.ts +29 -5
  8. package/bld/library/bound-solver.d.ts.map +1 -1
  9. package/bld/library/index.d.ts +2 -2
  10. package/bld/library/index.d.ts.map +1 -1
  11. package/bld/library/index.js +15 -1
  12. package/bld/library/kernel-cache.d.ts +2 -1
  13. package/bld/library/kernel-cache.d.ts.map +1 -1
  14. package/bld/library/relation-solver.d.ts +12 -7
  15. package/bld/library/relation-solver.d.ts.map +1 -1
  16. package/bld/library/replicad.js +2 -2
  17. package/bld/library/runtime.d.ts +214 -78
  18. package/bld/library/runtime.d.ts.map +1 -1
  19. package/bld/library/sketch.d.ts +2 -2
  20. package/bld/library/sketch.d.ts.map +1 -1
  21. package/bld/library/topology.d.ts +2 -0
  22. package/bld/library/topology.d.ts.map +1 -1
  23. package/bld/node/index.js +17 -3
  24. package/bld/node/replicad.js +4 -4
  25. package/bld/tooling/index.d.ts +3 -3
  26. package/bld/tooling/index.d.ts.map +1 -1
  27. package/bld/tooling/index.js +16 -10
  28. package/package.json +1 -1
  29. package/src/library/bound-solver.ts +103 -73
  30. package/src/library/index.ts +13 -2
  31. package/src/library/kernel-cache.ts +8 -0
  32. package/src/library/relation-solver.ts +194 -110
  33. package/src/library/runtime.ts +1029 -436
  34. package/src/library/sketch.ts +3 -3
  35. package/src/library/topology.ts +13 -2
  36. package/src/tooling/index.ts +14 -7
  37. package/bld/chunks/chunk-J77FMYFY.js.map +0 -7
  38. /package/bld/chunks/{chunk-OQLJDJIF.js.map → chunk-3RIMOCPP.js.map} +0 -0
  39. /package/bld/chunks/{chunk-PAIFBNU4.js.map → chunk-KYW4AWKO.js.map} +0 -0
  40. /package/bld/chunks/{chunk-ZMT6EFHL.js.map → chunk-T6COR2SG.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sketch.d.ts","sourceRoot":"","sources":["../../src/library/sketch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sketch.d.ts","sourceRoot":"","sources":["../../src/library/sketch.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,7 @@ type StableEdgeGroup = Readonly<{
61
61
  start: number;
62
62
  count: number;
63
63
  edgeId: EdgeId;
64
+ linear: boolean;
64
65
  }>;
65
66
  type StableSurfaceGroup = Readonly<{
66
67
  start: number;
@@ -81,6 +82,7 @@ export declare function resolveTopologySelection(kind: TopologyKind, topology: S
81
82
  export declare function topologyVertexPoints(shape: AnyShape, topology: VertexTopology, vertexIds: readonly VertexId[]): readonly TopologyPointData[];
82
83
  export declare function topologyEdgeDirections(shape: AnyShape, topology: EdgeTopology, edgeIds: readonly EdgeId[]): readonly TopologyDirectionData[];
83
84
  export declare function topologySurfaceDirections(shape: AnyShape, topology: SurfaceTopology, surfaceIds: readonly SurfaceId[]): readonly TopologyDirectionData[];
85
+ export declare function assertTopologyId(kind: TopologyKind, id: TopologyId): void;
84
86
  export type TopologyInput = Readonly<{
85
87
  shape: AnyShape;
86
88
  topology: ShapeTopology;
@@ -1 +1 @@
1
- {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../src/library/topology.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../src/library/topology.ts"],"names":[],"mappings":"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"}
package/bld/node/index.js CHANGED
@@ -1,8 +1,10 @@
1
- import "../chunks/chunk-ZMT6EFHL.js";
1
+ import "../chunks/chunk-T6COR2SG.js";
2
2
  import "../chunks/chunk-TJIN6S4R.js";
3
- import "../chunks/chunk-OQLJDJIF.js";
3
+ import "../chunks/chunk-3RIMOCPP.js";
4
4
  import {
5
5
  arc,
6
+ axisEdge,
7
+ axisLine,
6
8
  bezier,
7
9
  box,
8
10
  cached,
@@ -19,19 +21,26 @@ import {
19
21
  intersect,
20
22
  line,
21
23
  loft,
24
+ offset,
25
+ pivot,
26
+ pivotPoint,
27
+ pivotVertex,
22
28
  point,
23
29
  rectangle,
24
30
  regularPolygon,
25
31
  regularPrism,
32
+ rotate,
26
33
  sketch,
27
34
  sphere,
28
35
  spline,
29
36
  text,
30
37
  tube,
31
38
  union
32
- } from "../chunks/chunk-J77FMYFY.js";
39
+ } from "../chunks/chunk-T3RAUNSF.js";
33
40
  export {
34
41
  arc,
42
+ axisEdge,
43
+ axisLine,
35
44
  bezier,
36
45
  box,
37
46
  cached,
@@ -48,10 +57,15 @@ export {
48
57
  intersect,
49
58
  line,
50
59
  loft,
60
+ offset,
61
+ pivot,
62
+ pivotPoint,
63
+ pivotVertex,
51
64
  point,
52
65
  rectangle,
53
66
  regularPolygon,
54
67
  regularPrism,
68
+ rotate,
55
69
  sketch,
56
70
  sphere,
57
71
  spline,
@@ -1,11 +1,11 @@
1
- import "../chunks/chunk-ZMT6EFHL.js";
1
+ import "../chunks/chunk-T6COR2SG.js";
2
2
  import "../chunks/chunk-TJIN6S4R.js";
3
3
  import {
4
4
  definePrimitive,
5
5
  replicad
6
- } from "../chunks/chunk-PAIFBNU4.js";
7
- import "../chunks/chunk-OQLJDJIF.js";
8
- import "../chunks/chunk-J77FMYFY.js";
6
+ } from "../chunks/chunk-KYW4AWKO.js";
7
+ import "../chunks/chunk-3RIMOCPP.js";
8
+ import "../chunks/chunk-T3RAUNSF.js";
9
9
  export {
10
10
  definePrimitive,
11
11
  replicad
@@ -2,7 +2,7 @@ export { identifyCachedFunction } from '../library/cached.js';
2
2
  export { installFontEngine, installModelResourceReader, } from '../library/font.js';
3
3
  export { googleFontSources, googleFontUrl } from '../library/google-font.js';
4
4
  export { installOpenCascade } from '../library/open-cascade.js';
5
- export { clearKernelOperationCache, kernelOperationCacheStats, setKernelArtifactStore, setKernelExternalBytes, } from '../library/kernel-cache.js';
5
+ export { clearKernelOperationCache, kernelOperationCacheStats, setKernelCacheBudget, setKernelArtifactStore, setKernelExternalBytes, } from '../library/kernel-cache.js';
6
6
  export type { KernelArtifactStore } from '../library/kernel-cache.js';
7
7
  export { SketchConstraintError, installSketchSolver, } from '../library/sketch-solver.js';
8
8
  export { assertSketchDragConnections, isSketch, sketchDefinition, sketchDragRequiresSolver, sketchEntityParameters, sketchFrame, sketchPointResolver, sketchSource, snapshotSketch, solveSketchSnapshot, withSketchEntityParameters, } from '../library/sketch.js';
@@ -14,8 +14,8 @@ export type { SketchCurve } from '../library/sketch-curves.js';
14
14
  export { sketchRegions } from '../library/sketch-regions.js';
15
15
  export type { SketchRegion } from '../library/sketch-regions.js';
16
16
  export { describeOpenCascadeException } from '../library/open-cascade-error.js';
17
- export { authoringApi, beginModelEvaluation, constraintPreview, constraintTraceReference, createModelSnapshotter, disposeModelObjects, executeSnapshotQueryBatch, instrumentConstraint, instrumentModelOperation, isConstraint, isConstraintExpression, isModelObject, modelElementReference, modelObjectRuntimeInfo, modelTopologyIds, modelTopologyReference, planModelSnapshotQueries, relatedModelObjects, retainModelGeometry, } from '../library/runtime.js';
18
- export type { Constraint, ConstraintAnchorSnapshot, ConstraintExpression, ConstraintPreview, ConstraintSnapshot, ConstraintSpatialReference, ConstraintTraceReference, ElementKind, ElementSnapshot, ModelElementReference, ModelGeometryKind, ModelGeometrySnapshot, ModelKind, ModelObject, ModelObjectRuntimeInfo, ModelOperationInputRole, ModelOperationInstrumentation, ModelOperationKind, ModelOperationRegionSnapshot, ModelOperationSelectionSnapshot, ModelOperationSnapshot, ModelParameterDimension, ModelSnapshotObject, ModelSpatialOperation, ModelTopologyReference, ParameterKind, ParameterTarget, ParameterUsage, RelationObject, RenderMesh, SnapshotQuery, SnapshotQueryBatch, SnapshotQueryResult, SourceRef, Transform, } from '../library/runtime.js';
17
+ export { authoringApi, beginModelEvaluation, relationPreview, currentRelationSelf, relationSelectionPreview, relationTraceReference, createModelSnapshotter, disposeModelObjects, executeSnapshotQueryBatch, instrumentRelation, instrumentModelOperation, isConstraint, isRelationExpression, isModelObject, modelElementReference, modelObjectRuntimeInfo, modelTopologyIds, modelTopologyReference, planModelSnapshotQueries, relatedModelObjects, retainModelGeometry, } from '../library/runtime.js';
18
+ export type { Constraint, ConstraintAnchorSnapshot, RelationExpression, RelationPreview, ConstraintSnapshot, TransformationSnapshot, RelationStageSnapshot, RelationSpatialReference, ConstraintTraceReference, RelationTraceReference, ElementKind, ElementSnapshot, ModelElementReference, ModelGeometryKind, ModelGeometrySnapshot, ModelKind, ModelObject, ModelObjectRuntimeInfo, ModelOperationInputRole, ModelOperationInstrumentation, ModelOperationKind, ModelOperationRegionSnapshot, ModelOperationSelectionSnapshot, ModelOperationSnapshot, ModelParameterDimension, ModelSnapshotObject, ModelSpatialOperation, RotationReferenceSnapshot, ModelTopologyReference, ParameterKind, ParameterTarget, ParameterUsage, RelationObject, RenderMesh, SnapshotQuery, SnapshotQueryBatch, SnapshotQueryResult, SourceRef, Transform, } from '../library/runtime.js';
19
19
  export { composeTransforms, identityRigidTransform, invertTransform, quaternionAxisAngle, relativeTransform, rotateVector, rotationAround, transformsAreEquivalent, xyzRotation, } from '../library/spatial.js';
20
20
  export type { Quaternion, RigidTransform, Vec3 } from '../library/spatial.js';
21
21
  export type { TopologyGeometry, TopologyInspection, TopologyInspectionItem, TopologyInspectionOptions, } from '../library/topology-inspection.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tooling/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tooling/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  installOpenCascade
3
- } from "../chunks/chunk-OQLJDJIF.js";
3
+ } from "../chunks/chunk-3RIMOCPP.js";
4
4
  import {
5
5
  SketchConstraintError,
6
6
  TopologyIdSet,
@@ -11,9 +11,8 @@ import {
11
11
  clearKernelOperationCache,
12
12
  compareTopologyIds,
13
13
  composeTransforms,
14
- constraintPreview,
15
- constraintTraceReference,
16
14
  createModelSnapshotter,
15
+ currentRelationSelf,
17
16
  describeOpenCascadeException,
18
17
  disposeModelObjects,
19
18
  executeSnapshotQueryBatch,
@@ -25,12 +24,12 @@ import {
25
24
  installFontEngine,
26
25
  installModelResourceReader,
27
26
  installSketchSolver,
28
- instrumentConstraint,
29
27
  instrumentModelOperation,
28
+ instrumentRelation,
30
29
  invertTransform,
31
30
  isConstraint,
32
- isConstraintExpression,
33
31
  isModelObject,
32
+ isRelationExpression,
34
33
  isSketch,
35
34
  isTopologyId,
36
35
  kernelOperationCacheStats,
@@ -43,12 +42,16 @@ import {
43
42
  planModelSnapshotQueries,
44
43
  quaternionAxisAngle,
45
44
  relatedModelObjects,
45
+ relationPreview,
46
+ relationSelectionPreview,
47
+ relationTraceReference,
46
48
  relativeTransform,
47
49
  retainModelGeometry,
48
50
  rotateVector,
49
51
  rotationAround,
50
52
  sameTopologyId,
51
53
  setKernelArtifactStore,
54
+ setKernelCacheBudget,
52
55
  setKernelExternalBytes,
53
56
  sketchArcGeometry,
54
57
  sketchCurveBounds,
@@ -71,7 +74,7 @@ import {
71
74
  transformsAreEquivalent,
72
75
  withSketchEntityParameters,
73
76
  xyzRotation
74
- } from "../chunks/chunk-J77FMYFY.js";
77
+ } from "../chunks/chunk-T3RAUNSF.js";
75
78
  export {
76
79
  SketchConstraintError,
77
80
  TopologyIdSet,
@@ -82,9 +85,8 @@ export {
82
85
  clearKernelOperationCache,
83
86
  compareTopologyIds,
84
87
  composeTransforms,
85
- constraintPreview,
86
- constraintTraceReference,
87
88
  createModelSnapshotter,
89
+ currentRelationSelf,
88
90
  describeOpenCascadeException,
89
91
  disposeModelObjects,
90
92
  executeSnapshotQueryBatch,
@@ -97,12 +99,12 @@ export {
97
99
  installModelResourceReader,
98
100
  installOpenCascade,
99
101
  installSketchSolver,
100
- instrumentConstraint,
101
102
  instrumentModelOperation,
103
+ instrumentRelation,
102
104
  invertTransform,
103
105
  isConstraint,
104
- isConstraintExpression,
105
106
  isModelObject,
107
+ isRelationExpression,
106
108
  isSketch,
107
109
  isTopologyId,
108
110
  kernelOperationCacheStats,
@@ -115,12 +117,16 @@ export {
115
117
  planModelSnapshotQueries,
116
118
  quaternionAxisAngle,
117
119
  relatedModelObjects,
120
+ relationPreview,
121
+ relationSelectionPreview,
122
+ relationTraceReference,
118
123
  relativeTransform,
119
124
  retainModelGeometry,
120
125
  rotateVector,
121
126
  rotationAround,
122
127
  sameTopologyId,
123
128
  setKernelArtifactStore,
129
+ setKernelCacheBudget,
124
130
  setKernelExternalBytes,
125
131
  sketchArcGeometry,
126
132
  sketchCurveBounds,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code3d/core",
3
- "version": "0.0.1-alpha.4",
3
+ "version": "0.0.1-alpha.6",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -7,17 +7,56 @@ import {
7
7
  origin,
8
8
  rotateVector,
9
9
  rotation,
10
- transformsAreEquivalent,
11
10
  type Quaternion,
12
11
  type RigidTransform,
13
12
  type Vec3,
14
13
  } from './spatial.js';
15
14
 
16
15
  export type Bounds = readonly [minimum: Vec3, maximum: Vec3];
17
- export type BodyRotation =
18
- | Readonly<{local: RigidTransform}>
19
- | Readonly<{axis: RigidTransform; body: number; angle: number}>;
16
+ export type ExternalRotation =
17
+ | Readonly<{axis: RigidTransform; body: number; angle: number}>
18
+ | Readonly<{
19
+ point: Vec3;
20
+ body: number;
21
+ rotation: Quaternion;
22
+ displacement: Vec3;
23
+ }>;
24
+ export type BodyRotation = Readonly<{local: RigidTransform}> | ExternalRotation;
20
25
 
26
+ /** External center relative to its owning body; point references retain self's axes. */
27
+ export function externalRotationFrame(
28
+ action: ExternalRotation,
29
+ self: Quaternion,
30
+ reference: Quaternion,
31
+ inverse = false,
32
+ ): {center: Vec3; quaternion: Quaternion} {
33
+ if ('axis' in action) {
34
+ const axis = composeTransforms(rotation(reference), action.axis);
35
+ return {
36
+ center: axis.position,
37
+ quaternion: axisRotation(axis, inverse ? -action.angle : action.angle)
38
+ .quaternion,
39
+ };
40
+ }
41
+ const local = inverse
42
+ ? invertTransform(rotation(action.rotation))
43
+ : rotation(action.rotation);
44
+ const before = inverse
45
+ ? composeTransforms(rotation(self), local)
46
+ : rotation(self);
47
+ return {
48
+ center: addVectors(
49
+ rotateVector(action.point, reference),
50
+ rotateVector(action.displacement, before.quaternion),
51
+ ),
52
+ quaternion: composeTransforms(
53
+ composeTransforms(before, local),
54
+ invertTransform(before),
55
+ ).quaternion,
56
+ };
57
+ }
58
+
59
+ export type BodyAction = BodyRotation | Readonly<{offset: Vec3}>;
21
60
  export type BodyRelation = Readonly<{
22
61
  id: string;
23
62
  source: Readonly<{
@@ -26,11 +65,16 @@ export type BodyRelation = Readonly<{
26
65
  bounds: (orientation: Quaternion) => Bounds;
27
66
  }>;
28
67
  target: Readonly<{body: number; transform: RigidTransform; facing: 1 | -1}>;
29
- offset: Vec3 | undefined;
30
- rotations: readonly BodyRotation[];
31
68
  }>;
32
69
 
33
- export type Body = Readonly<{name: string; relations: readonly BodyRelation[]}>;
70
+ export type Body = Readonly<{
71
+ name: string;
72
+ relations: readonly BodyRelation[];
73
+ /** Pose inherited from the preceding placement segment. */
74
+ initial?: RigidTransform;
75
+ /** Independent actions apply after the joint constraint solution. */
76
+ transformations?: readonly BodyAction[];
77
+ }>;
34
78
  type AffinePoint = {constant: Vec3; columns: Vec3[]};
35
79
  type AffinePose = {position: AffinePoint; quaternion: Quaternion};
36
80
  type Equation = {id: string; coefficients: number[]; value: number};
@@ -74,37 +118,21 @@ export function solveBodies(
74
118
  'Cyclic external rotation axes cannot determine an authored orientation.',
75
119
  );
76
120
  visiting.add(index);
77
- const candidates = bodies[index].relations
78
- .filter(r => r.rotations.length)
79
- .map(relation => {
80
- let pose = identityRigidTransform;
81
- for (const action of relation.rotations) {
82
- pose =
83
- 'local' in action
84
- ? composeTransforms(pose, action.local)
85
- : composeTransforms(
86
- axisRotation(
87
- composeTransforms(seed(action.body), action.axis),
88
- action.angle,
89
- ),
90
- pose,
91
- );
92
- }
93
- return pose;
94
- });
95
- const pose = candidates[0] ?? identityRigidTransform;
96
- if (
97
- candidates.some(
98
- candidate =>
99
- !transformsAreEquivalent(
100
- rotation(candidate.quaternion),
101
- rotation(pose.quaternion),
102
- ),
103
- )
104
- ) {
105
- throw new Error(
106
- `Conflicting explicit rotations for ${bodies[index].name}.`,
107
- );
121
+ let pose = bodies[index].initial ?? identityRigidTransform;
122
+ for (const action of bodies[index].transformations ?? []) {
123
+ if ('offset' in action) continue;
124
+ pose =
125
+ 'local' in action
126
+ ? composeTransforms(pose, action.local)
127
+ : 'point' in action
128
+ ? composeTransforms(pose, rotation(action.rotation))
129
+ : composeTransforms(
130
+ axisRotation(
131
+ composeTransforms(seed(action.body), action.axis),
132
+ action.angle,
133
+ ),
134
+ pose,
135
+ );
108
136
  }
109
137
  visiting.delete(index);
110
138
  seeds.set(index, pose);
@@ -120,19 +148,18 @@ export function solveBodies(
120
148
  const known = positioned.get(index);
121
149
  if (known) return known;
122
150
  let pose: AffinePose = {
123
- quaternion: identityRigidTransform.quaternion,
151
+ quaternion: (bodies[index].initial ?? identityRigidTransform).quaternion,
124
152
  position: {
125
- constant: origin,
153
+ constant: (bodies[index].initial ?? identityRigidTransform).position,
126
154
  columns: variables.flatMap(body =>
127
155
  axes.map(axis => (body === index ? axis : origin)),
128
156
  ),
129
157
  },
130
158
  };
131
- const actions =
132
- bodies[index].relations.find(relation => relation.rotations.length)
133
- ?.rotations ?? [];
134
- for (const action of actions) {
135
- if ('local' in action) {
159
+ for (const action of bodies[index].transformations ?? []) {
160
+ if ('offset' in action) {
161
+ pose = {...pose, position: shiftPoint(pose.position, action.offset)};
162
+ } else if ('local' in action) {
136
163
  pose = {
137
164
  position: shiftPoint(
138
165
  pose.position,
@@ -145,12 +172,12 @@ export function solveBodies(
145
172
  };
146
173
  } else {
147
174
  const axisPose = positionBody(action.body);
148
- const axis = composeTransforms(
149
- rotation(axisPose.quaternion),
150
- action.axis,
175
+ const {center, quaternion: q} = externalRotationFrame(
176
+ action,
177
+ pose.quaternion,
178
+ axisPose.quaternion,
151
179
  );
152
- const q = axisRotation(axis, action.angle).quaternion;
153
- const axisPoint = shiftPoint(axisPose.position, axis.position);
180
+ const axisPoint = shiftPoint(axisPose.position, center);
154
181
  const rotatedAxis = rotatePoint(axisPoint, q);
155
182
  pose = {
156
183
  position: addPoints(
@@ -173,16 +200,19 @@ export function solveBodies(
173
200
  const preferences = new Map<string, Equation>();
174
201
  bodies.forEach((body, owner) =>
175
202
  body.relations.forEach(relation => {
176
- // A chain describes contact followed by its explicit rotations. Invert only
177
- // this chain; every other relation still sees and constrains the final pose.
178
- const baseline = undoRotations(poses[owner], relation.rotations, poses);
179
- // All authored contact stages contribute equally to the free-position
180
- // choice. Deduplicate identical stages so repeated conditions add no bias.
203
+ // Every contact constrains the joint result before independent transforms.
204
+ const baseline = undoActions(
205
+ poses[owner],
206
+ body.transformations ?? [],
207
+ poses,
208
+ );
181
209
  for (let axis = 0; axis < 3; axis++) {
182
210
  const preference = {
183
211
  id: relation.id,
184
212
  coefficients: baseline.position.columns.map(column => column[axis]),
185
- value: -baseline.position.constant[axis],
213
+ value:
214
+ (body.initial?.position[axis] ?? 0) -
215
+ baseline.position.constant[axis],
186
216
  };
187
217
  preferences.set(
188
218
  JSON.stringify([preference.coefficients, preference.value]),
@@ -212,14 +242,8 @@ export function solveBodies(
212
242
  source.position,
213
243
  rotateVector(center, targetFrame.quaternion),
214
244
  );
215
- const targetPoint = shiftPoint(
216
- target.position,
217
- addVectors(
218
- targetFrame.position,
219
- rotateVector(relation.offset ?? origin, targetFrame.quaternion),
220
- ),
221
- );
222
- for (const localAxis of relation.offset ? axes : [axes[1]]) {
245
+ const targetPoint = shiftPoint(target.position, targetFrame.position);
246
+ for (const localAxis of [axes[1]]) {
223
247
  const normal = rotateVector(localAxis, targetFrame.quaternion);
224
248
  equations.push({
225
249
  id: relation.id,
@@ -272,13 +296,18 @@ function addPoints(left: AffinePoint, right: AffinePoint): AffinePoint {
272
296
  };
273
297
  }
274
298
 
275
- function undoRotations(
299
+ function undoActions(
276
300
  pose: AffinePose,
277
- actions: readonly BodyRotation[],
301
+ actions: readonly BodyAction[],
278
302
  poses: readonly AffinePose[],
279
303
  ): AffinePose {
280
304
  for (const action of [...actions].reverse()) {
281
- if ('local' in action) {
305
+ if ('offset' in action) {
306
+ pose = {
307
+ ...pose,
308
+ position: shiftPoint(pose.position, negateVector(action.offset)),
309
+ };
310
+ } else if ('local' in action) {
282
311
  const inverse = invertTransform(action.local);
283
312
  pose = {
284
313
  position: shiftPoint(
@@ -292,12 +321,13 @@ function undoRotations(
292
321
  };
293
322
  } else {
294
323
  const axisPose = poses[action.body];
295
- const axis = composeTransforms(
296
- rotation(axisPose.quaternion),
297
- action.axis,
324
+ const {center, quaternion: q} = externalRotationFrame(
325
+ action,
326
+ pose.quaternion,
327
+ axisPose.quaternion,
328
+ true,
298
329
  );
299
- const q = axisRotation(axis, -action.angle).quaternion;
300
- const axisPoint = shiftPoint(axisPose.position, axis.position);
330
+ const axisPoint = shiftPoint(axisPose.position, center);
301
331
  const rotatedAxis = rotatePoint(axisPoint, q);
302
332
  pose = {
303
333
  position: addPoints(
@@ -316,7 +346,7 @@ function undoRotations(
316
346
  }
317
347
 
318
348
  /** Solve Ax=b, then minimize contact-stage displacement in its nullspace. */
319
- function solveTranslations(
349
+ export function solveTranslations(
320
350
  equations: readonly Equation[],
321
351
  preferences: readonly Equation[],
322
352
  dimension: number,
@@ -16,6 +16,13 @@ export type {
16
16
  } from './sketch.js';
17
17
 
18
18
  export {
19
+ offset,
20
+ rotate,
21
+ pivot,
22
+ pivotVertex,
23
+ pivotPoint,
24
+ axisEdge,
25
+ axisLine,
19
26
  arc,
20
27
  bezier,
21
28
  box,
@@ -45,8 +52,12 @@ export type {
45
52
  Anchor,
46
53
  Bound,
47
54
  DirectionalBounds,
48
- ConstraintPivotChain,
49
- ConstraintAroundChain,
55
+ PivotChain,
56
+ PivotRotation,
57
+ AxisRotation,
58
+ AxisChain,
59
+ Transformation,
60
+ Relation,
50
61
  CanonicalElements,
51
62
  Constraint,
52
63
  CurveElements,
@@ -71,6 +71,12 @@ export function createComputationCache({
71
71
  const pendingPersistence = new Map<string, () => Uint8Array>();
72
72
  let externalBytes = 0;
73
73
 
74
+ /** Adjust historical retention without invalidating the current model. */
75
+ function setKernelCacheBudget(bytes: number): void {
76
+ maximumBytes = bytes;
77
+ evictHistoricalEntries();
78
+ }
79
+
74
80
  /** The host accounts for in-flight inputs and all auxiliary native heaps. */
75
81
  function setKernelExternalBytes(bytes: number): void {
76
82
  externalBytes = bytes;
@@ -368,6 +374,7 @@ export function createComputationCache({
368
374
  beginKernelOperationEvaluation,
369
375
  clearKernelOperationCache,
370
376
  kernelOperationCacheStats,
377
+ setKernelCacheBudget,
371
378
  setKernelArtifactStore,
372
379
  findKernelOperation,
373
380
  findKernelOperations,
@@ -388,6 +395,7 @@ export const {
388
395
  beginKernelOperationEvaluation,
389
396
  clearKernelOperationCache,
390
397
  kernelOperationCacheStats,
398
+ setKernelCacheBudget,
391
399
  setKernelArtifactStore,
392
400
  findKernelOperation,
393
401
  findKernelOperations,