@code3d/core 0.0.1-alpha.4 → 0.0.1-alpha.7

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 (43) hide show
  1. package/README.md +42 -5
  2. package/bld/chunks/{chunk-J77FMYFY.js → chunk-4WLVDYUJ.js} +992 -545
  3. package/bld/chunks/chunk-4WLVDYUJ.js.map +7 -0
  4. package/bld/chunks/{chunk-PAIFBNU4.js → chunk-C3AJ6WNB.js} +2 -2
  5. package/bld/chunks/{chunk-OQLJDJIF.js → chunk-TCMEEKWL.js} +2 -2
  6. package/bld/chunks/{chunk-ZMT6EFHL.js → chunk-VHSPHJ5F.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/cached.d.ts +5 -3
  10. package/bld/library/cached.d.ts.map +1 -1
  11. package/bld/library/index.d.ts +4 -4
  12. package/bld/library/index.d.ts.map +1 -1
  13. package/bld/library/index.js +17 -3
  14. package/bld/library/kernel-cache.d.ts +6 -3
  15. package/bld/library/kernel-cache.d.ts.map +1 -1
  16. package/bld/library/relation-solver.d.ts +12 -7
  17. package/bld/library/relation-solver.d.ts.map +1 -1
  18. package/bld/library/replicad.js +2 -2
  19. package/bld/library/runtime.d.ts +218 -82
  20. package/bld/library/runtime.d.ts.map +1 -1
  21. package/bld/library/sketch.d.ts +2 -2
  22. package/bld/library/sketch.d.ts.map +1 -1
  23. package/bld/library/topology.d.ts +2 -0
  24. package/bld/library/topology.d.ts.map +1 -1
  25. package/bld/node/index.js +19 -5
  26. package/bld/node/replicad.js +4 -4
  27. package/bld/tooling/index.d.ts +3 -3
  28. package/bld/tooling/index.d.ts.map +1 -1
  29. package/bld/tooling/index.js +18 -10
  30. package/package.json +1 -1
  31. package/src/library/bound-solver.ts +103 -73
  32. package/src/library/cached.ts +29 -8
  33. package/src/library/index.ts +15 -4
  34. package/src/library/kernel-cache.ts +37 -5
  35. package/src/library/relation-solver.ts +194 -110
  36. package/src/library/runtime.ts +1046 -442
  37. package/src/library/sketch.ts +3 -3
  38. package/src/library/topology.ts +13 -2
  39. package/src/tooling/index.ts +15 -7
  40. package/bld/chunks/chunk-J77FMYFY.js.map +0 -7
  41. /package/bld/chunks/{chunk-PAIFBNU4.js.map → chunk-C3AJ6WNB.js.map} +0 -0
  42. /package/bld/chunks/{chunk-OQLJDJIF.js.map → chunk-TCMEEKWL.js.map} +0 -0
  43. /package/bld/chunks/{chunk-ZMT6EFHL.js.map → chunk-VHSPHJ5F.js.map} +0 -0
@@ -2,7 +2,7 @@ import {
2
2
  __name,
3
3
  castOwnedShape,
4
4
  primitiveConstructor
5
- } from "./chunk-J77FMYFY.js";
5
+ } from "./chunk-4WLVDYUJ.js";
6
6
 
7
7
  // packages/core/src/library/replicad.ts
8
8
  import * as replicadModule from "replicad";
@@ -27,4 +27,4 @@ export {
27
27
  replicad,
28
28
  definePrimitive
29
29
  };
30
- //# sourceMappingURL=chunk-PAIFBNU4.js.map
30
+ //# sourceMappingURL=chunk-C3AJ6WNB.js.map
@@ -2,7 +2,7 @@ import {
2
2
  __name,
3
3
  clearKernelOperationCache,
4
4
  setKernelNativeMemoryCounter
5
- } from "./chunk-J77FMYFY.js";
5
+ } from "./chunk-4WLVDYUJ.js";
6
6
 
7
7
  // packages/core/src/library/open-cascade.ts
8
8
  import { setOC } from "replicad";
@@ -16,4 +16,4 @@ __name(installOpenCascade, "installOpenCascade");
16
16
  export {
17
17
  installOpenCascade
18
18
  };
19
- //# sourceMappingURL=chunk-OQLJDJIF.js.map
19
+ //# sourceMappingURL=chunk-TCMEEKWL.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  installOpenCascade
3
- } from "./chunk-OQLJDJIF.js";
3
+ } from "./chunk-TCMEEKWL.js";
4
4
  import {
5
5
  __name,
6
6
  installFontEngine,
7
7
  installModelResourceReader,
8
8
  installSketchSolver
9
- } from "./chunk-J77FMYFY.js";
9
+ } from "./chunk-4WLVDYUJ.js";
10
10
 
11
11
  // packages/core/src/node/index.ts
12
12
  import initOpenCascade from "@code3d/opencascade";
@@ -28,4 +28,4 @@ installSketchSolver(
28
28
  ), "locateFile")
29
29
  })
30
30
  );
31
- //# sourceMappingURL=chunk-ZMT6EFHL.js.map
31
+ //# sourceMappingURL=chunk-VHSPHJ5F.js.map
@@ -1,11 +1,25 @@
1
1
  import { type Quaternion, type RigidTransform, type Vec3 } from './spatial.js';
2
2
  export type Bounds = readonly [minimum: Vec3, maximum: Vec3];
3
- export type BodyRotation = Readonly<{
4
- local: RigidTransform;
5
- }> | Readonly<{
3
+ export type ExternalRotation = Readonly<{
6
4
  axis: RigidTransform;
7
5
  body: number;
8
6
  angle: number;
7
+ }> | Readonly<{
8
+ point: Vec3;
9
+ body: number;
10
+ rotation: Quaternion;
11
+ displacement: Vec3;
12
+ }>;
13
+ export type BodyRotation = Readonly<{
14
+ local: RigidTransform;
15
+ }> | ExternalRotation;
16
+ /** External center relative to its owning body; point references retain self's axes. */
17
+ export declare function externalRotationFrame(action: ExternalRotation, self: Quaternion, reference: Quaternion, inverse?: boolean): {
18
+ center: Vec3;
19
+ quaternion: Quaternion;
20
+ };
21
+ export type BodyAction = BodyRotation | Readonly<{
22
+ offset: Vec3;
9
23
  }>;
10
24
  export type BodyRelation = Readonly<{
11
25
  id: string;
@@ -19,15 +33,25 @@ export type BodyRelation = Readonly<{
19
33
  transform: RigidTransform;
20
34
  facing: 1 | -1;
21
35
  }>;
22
- offset: Vec3 | undefined;
23
- rotations: readonly BodyRotation[];
24
36
  }>;
25
37
  export type Body = Readonly<{
26
38
  name: string;
27
39
  relations: readonly BodyRelation[];
40
+ /** Pose inherited from the preceding placement segment. */
41
+ initial?: RigidTransform;
42
+ /** Independent actions apply after the joint constraint solution. */
43
+ transformations?: readonly BodyAction[];
28
44
  }>;
45
+ type Equation = {
46
+ id: string;
47
+ coefficients: number[];
48
+ value: number;
49
+ };
29
50
  /** A rotation about a positioned, directed line. Angles are in degrees. */
30
51
  export declare function axisRotation(axis: RigidTransform, angle: number): RigidTransform;
31
52
  /** Explicit rotations determine orientation; contacts solve translations only. */
32
53
  export declare function solveBodies(bodies: readonly Body[]): readonly RigidTransform[];
54
+ /** Solve Ax=b, then minimize contact-stage displacement in its nullspace. */
55
+ export declare function solveTranslations(equations: readonly Equation[], preferences: readonly Equation[], dimension: number): number[];
56
+ export {};
33
57
  //# sourceMappingURL=bound-solver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bound-solver.d.ts","sourceRoot":"","sources":["../../src/library/bound-solver.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7D,MAAM,MAAM,YAAY,GACpB,QAAQ,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAC,CAAC,GACjC,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAElE,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,MAAM,CAAC;KAC7C,CAAC,CAAC;IACH,MAAM,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;KAAC,CAAC,CAAC;IAC5E,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAA;CAAC,CAAC,CAAC;AAahF,2EAA2E;AAC3E,wBAAgB,YAAY,CAC1B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,GACZ,cAAc,CAWhB;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,IAAI,EAAE,GACtB,SAAS,cAAc,EAAE,CA6L3B"}
1
+ {"version":3,"file":"bound-solver.d.ts","sourceRoot":"","sources":["../../src/library/bound-solver.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7D,MAAM,MAAM,gBAAgB,GACxB,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC,GAC7D,QAAQ,CAAC;IACP,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,IAAI,CAAC;CACpB,CAAC,CAAC;AACP,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAC,CAAC,GAAG,gBAAgB,CAAC;AAEhF,wFAAwF;AACxF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,OAAO,UAAQ,GACd;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAC,CAyBxC;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAC,CAAC,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,MAAM,CAAC;KAC7C,CAAC,CAAC;IACH,MAAM,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;KAAC,CAAC,CAAC;CAC7E,CAAC,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IACnC,2DAA2D;IAC3D,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,qEAAqE;IACrE,eAAe,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC,CAAC,CAAC;AAGH,KAAK,QAAQ,GAAG;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC;AAUpE,2EAA2E;AAC3E,wBAAgB,YAAY,CAC1B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,GACZ,cAAc,CAWhB;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,IAAI,EAAE,GACtB,SAAS,cAAc,EAAE,CAyK3B;AAqED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,QAAQ,EAAE,EAC9B,WAAW,EAAE,SAAS,QAAQ,EAAE,EAChC,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CAuFV"}
@@ -1,16 +1,18 @@
1
1
  import { type CacheCodec, type KernelArtifact, type KernelOperationKey, type KernelValueLifecycle } from './kernel-cache.js';
2
- export type CachedOptions<Value> = CacheCodec<Value>;
2
+ export type CacheOptions<Value> = CacheCodec<Value>;
3
3
  /** The compiler supplies the definition and its static dependency fingerprint. */
4
4
  export declare function identifyCachedFunction<Fn extends Function>(fn: Fn, identity: string): Fn;
5
5
  /**
6
6
  * Memoizes a synchronous, deterministic computation in the shared cache.
7
+ * Omit args to create a function, or pass an argument tuple to return its value.
7
8
  * Pass changing captured state as arguments and treat returned data as immutable.
8
9
  * The engine fingerprints definitions and dependencies for persistent reuse.
9
10
  * Outside the engine, function identity provides process-local memory reuse.
10
11
  * Custom encoder/decoder pairs run only when writing/restoring persistent data;
11
12
  * memory hits return the retained value without decoding or copying it.
12
13
  */
13
- export declare function cached<Args extends unknown[], Value>(compute: (...args: Args) => Value & (Value extends PromiseLike<unknown> ? never : unknown), options?: CachedOptions<NoInfer<Value>>): (...args: Args) => Value;
14
+ export declare function cache<Args extends unknown[], Value>(compute: (...args: Args) => Value & (Value extends PromiseLike<unknown> ? never : unknown), args: Readonly<NoInfer<Args>>, options?: CacheOptions<NoInfer<Value>>): Value;
15
+ export declare function cache<Args extends unknown[], Value>(compute: (...args: Args) => Value & (Value extends PromiseLike<unknown> ? never : unknown), args?: undefined, options?: CacheOptions<NoInfer<Value>>): (...args: Args) => Value;
14
16
  /** Internal artifact form also supports native ownership and remote admission. */
15
17
  export declare function cachedArtifact<Args extends unknown[], Value>(compute: (...args: Args) => Value, { key, lifecycle, codec, identity, namespace, }?: {
16
18
  key?: (...args: Args) => KernelOperationKey;
@@ -28,6 +30,6 @@ export declare function cachedArtifact<Args extends unknown[], Value>(compute: (
28
30
  id: string;
29
31
  value: Value;
30
32
  }> | undefined)[];
31
- accept: (key: KernelOperationKey, value: Value) => void;
33
+ accept: (key: KernelOperationKey, value: Value, milliseconds: number) => void;
32
34
  };
33
35
  //# sourceMappingURL=cached.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cached.d.ts","sourceRoot":"","sources":["../../src/library/cached.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAG3B,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAOrD,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,QAAQ,EACxD,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,GACf,EAAE,CAQJ;AAsBD;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,KAAK,EAClD,OAAO,EAAE,CACP,GAAG,IAAI,EAAE,IAAI,KACV,KAAK,GAAG,CAAC,KAAK,SAAS,WAAW,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,EACnE,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GACtC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,KAAK,CAgB1B;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,KAAK,EAC1D,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,KAAK,EACjC,EACE,GAAG,EACH,SAAwD,EACxD,KAAK,EACL,QAAkB,EAClB,SAAoB,GACrB,GAAE;IACD,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,kBAAkB,CAAC;IAC5C,SAAS,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,cAmBM,IAAI,KAAG,cAAc,CAAC,KAAK,CAAC;mBAxBtB,IAAI,KAAK,kBAAkB;gBAiB1B,kBAAkB;;;;qBAEb,SAAS,kBAAkB,EAAE;;;;kBAEhC,kBAAkB,SAAS,KAAK;EAatD"}
1
+ {"version":3,"file":"cached.d.ts","sourceRoot":"","sources":["../../src/library/cached.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAG3B,MAAM,MAAM,YAAY,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAOpD,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,QAAQ,EACxD,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,GACf,EAAE,CAQJ;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,KAAK,EACjD,OAAO,EAAE,CACP,GAAG,IAAI,EAAE,IAAI,KACV,KAAK,GAAG,CAAC,KAAK,SAAS,WAAW,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,EACnE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAC7B,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GACrC,KAAK,CAAC;AACT,wBAAgB,KAAK,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,KAAK,EACjD,OAAO,EAAE,CACP,GAAG,IAAI,EAAE,IAAI,KACV,KAAK,GAAG,CAAC,KAAK,SAAS,WAAW,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,EACnE,IAAI,CAAC,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GACrC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC;AA2B5B,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,KAAK,EAC1D,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,KAAK,EACjC,EACE,GAAG,EACH,SAAwD,EACxD,KAAK,EACL,QAAkB,EAClB,SAAoB,GACrB,GAAE;IACD,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,kBAAkB,CAAC;IAC5C,SAAS,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,cAsBM,IAAI,KAAG,cAAc,CAAC,KAAK,CAAC;mBA3BtB,IAAI,KAAK,kBAAkB;gBAiB1B,kBAAkB;;;;qBAEb,SAAS,kBAAkB,EAAE;;;;kBAG9C,kBAAkB,SAChB,KAAK,gBACE,MAAM;EAavB"}
@@ -1,13 +1,13 @@
1
- export { cached } from './cached.js';
2
- export type { CachedOptions } from './cached.js';
1
+ export { cache } from './cached.js';
2
+ export type { CacheOptions } from './cached.js';
3
3
  export { font, googleFont } from './font.js';
4
4
  export type { Font } from './font.js';
5
5
  export type { GoogleFontOptions } from './google-font.js';
6
6
  export type { TextOptions } from './text.js';
7
7
  export { sketch } from './sketch.js';
8
8
  export type { Sketch, SketchEntry, SketchConstraint, SketchOptions, SketchPoint, SketchPosition, SketchArcDirection, } from './sketch.js';
9
- export { arc, bezier, box, circle, coil, cut, cylinder, ellipse, extrude, text, frustum, group, intersect, line, loft, point, rectangle, regularPolygon, regularPrism, spline, sphere, tube, union, } from './runtime.js';
10
- export type { Anchor, Bound, DirectionalBounds, ConstraintPivotChain, ConstraintAroundChain, CanonicalElements, Constraint, CurveElements, Edge, EdgeModel, EdgeTopologyCapabilities, ElementKind, ElementSources, ExposedElements, ExposedValue, FaceAnchor, FaceModel, GeometryCapabilities, GeometryQueryCapabilities, GroupModel, LineAnchor, LoftOptions, MergedElements, Model, ModelCapabilities, ModelElementKind, ModelForKind, ModelGeometryKind, ModelKind, NamedElements, PlanarElements, PointAnchor, Solid, SolidModel, SolidModificationCapabilities, Surface, SurfaceTopologyCapabilities, Vertex, VertexModel, VertexTopologyCapabilities, } from './runtime.js';
9
+ export { offset, rotate, pivot, pivotVertex, pivotPoint, axisEdge, axisLine, arc, bezier, box, circle, coil, cut, cylinder, ellipse, extrude, text, frustum, group, intersect, line, loft, point, rectangle, regularPolygon, regularPrism, spline, sphere, tube, union, } from './runtime.js';
10
+ export type { Anchor, Bound, DirectionalBounds, PivotChain, PivotRotation, AxisRotation, AxisChain, Transformation, Relation, CanonicalElements, Constraint, CurveElements, Edge, EdgeModel, EdgeTopologyCapabilities, ElementKind, ElementSources, ExposedElements, ExposedValue, FaceAnchor, FaceModel, GeometryCapabilities, GeometryQueryCapabilities, GroupModel, LineAnchor, LoftOptions, MergedElements, Model, ModelCapabilities, ModelElementKind, ModelForKind, ModelGeometryKind, ModelKind, NamedElements, PlanarElements, PointAnchor, Solid, SolidModel, SolidModificationCapabilities, Surface, SurfaceTopologyCapabilities, Vertex, VertexModel, VertexTopologyCapabilities, } from './runtime.js';
11
11
  export type { Vec3 } from './spatial.js';
12
12
  export type { EdgeId, SurfaceId, TopologyId, TopologyKind, VertexId, } from './topology.js';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/library/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,YAAY,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AACpC,YAAY,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACxD,YAAY,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,YAAY,EACV,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,GAAG,EACH,MAAM,EACN,GAAG,EACH,MAAM,EACN,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,OAAO,EACP,OAAO,EACP,IAAI,EACJ,OAAO,EACP,KAAK,EACL,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,SAAS,EACT,cAAc,EACd,YAAY,EACZ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,MAAM,EACN,KAAK,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,IAAI,EACJ,SAAS,EACT,wBAAwB,EACxB,WAAW,EACX,cAAc,EACd,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,KAAK,EACL,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAW,EACX,KAAK,EACL,UAAU,EACV,6BAA6B,EAC7B,OAAO,EACP,2BAA2B,EAC3B,MAAM,EACN,WAAW,EACX,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/library/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,YAAY,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AACpC,YAAY,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACxD,YAAY,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,YAAY,EACV,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,WAAW,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,MAAM,EACN,GAAG,EACH,MAAM,EACN,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,OAAO,EACP,OAAO,EACP,IAAI,EACJ,OAAO,EACP,KAAK,EACL,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,SAAS,EACT,cAAc,EACd,YAAY,EACZ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,MAAM,EACN,KAAK,EACL,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,IAAI,EACJ,SAAS,EACT,wBAAwB,EACxB,WAAW,EACX,cAAc,EACd,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,KAAK,EACL,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAW,EACX,KAAK,EACL,UAAU,EACV,6BAA6B,EAC7B,OAAO,EACP,2BAA2B,EAC3B,MAAM,EACN,WAAW,EACX,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,MAAM,eAAe,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import "../chunks/chunk-TJIN6S4R.js";
2
2
  import {
3
3
  arc,
4
+ axisEdge,
5
+ axisLine,
4
6
  bezier,
5
7
  box,
6
- cached,
8
+ cache,
7
9
  circle,
8
10
  coil,
9
11
  cut,
@@ -17,22 +19,29 @@ import {
17
19
  intersect,
18
20
  line,
19
21
  loft,
22
+ offset,
23
+ pivot,
24
+ pivotPoint,
25
+ pivotVertex,
20
26
  point,
21
27
  rectangle,
22
28
  regularPolygon,
23
29
  regularPrism,
30
+ rotate,
24
31
  sketch,
25
32
  sphere,
26
33
  spline,
27
34
  text,
28
35
  tube,
29
36
  union
30
- } from "../chunks/chunk-J77FMYFY.js";
37
+ } from "../chunks/chunk-4WLVDYUJ.js";
31
38
  export {
32
39
  arc,
40
+ axisEdge,
41
+ axisLine,
33
42
  bezier,
34
43
  box,
35
- cached,
44
+ cache,
36
45
  circle,
37
46
  coil,
38
47
  cut,
@@ -46,10 +55,15 @@ export {
46
55
  intersect,
47
56
  line,
48
57
  loft,
58
+ offset,
59
+ pivot,
60
+ pivotPoint,
61
+ pivotVertex,
49
62
  point,
50
63
  rectangle,
51
64
  regularPolygon,
52
65
  regularPrism,
66
+ rotate,
53
67
  sketch,
54
68
  sphere,
55
69
  spline,
@@ -27,8 +27,9 @@ export type KernelValueLifecycle<Value> = Readonly<{
27
27
  instantiate(retained: Value): Value;
28
28
  release(value: Value): void;
29
29
  }>;
30
- export declare function createComputationCache({ maximumBytes, nativeAllocatedBytes, }: {
30
+ export declare function createComputationCache({ maximumBytes, minimumPersistenceMilliseconds, nativeAllocatedBytes, }: {
31
31
  maximumBytes?: number;
32
+ minimumPersistenceMilliseconds?: number;
32
33
  nativeAllocatedBytes: () => number;
33
34
  }): {
34
35
  evaluateCachedArtifact: <Value>(key: KernelOperationKey, lifecycle: KernelValueLifecycle<Value>, compute: () => Value, codec?: CacheCodec<Value> | false) => KernelArtifact<Value>;
@@ -49,10 +50,12 @@ export declare function createComputationCache({ maximumBytes, nativeAllocatedBy
49
50
  persistenceEncodeMilliseconds: number;
50
51
  persistenceErrors: number;
51
52
  };
53
+ setKernelCacheBudget: (bytes: number) => void;
54
+ setKernelCachePersistenceThreshold: (milliseconds: number) => void;
52
55
  setKernelArtifactStore: (next: KernelArtifactStore | undefined) => void;
53
56
  findKernelOperation: <Value>(key: KernelOperationKey, lifecycle: KernelValueLifecycle<Value>, codec?: CacheCodec<Value> | false) => KernelArtifact<Value> | undefined;
54
57
  findKernelOperations: <Value>(keys: readonly KernelOperationKey[], lifecycle: KernelValueLifecycle<Value>, codec?: CacheCodec<Value> | false) => readonly (KernelArtifact<Value> | undefined)[];
55
- acceptKernelOperation: <Value>(key: KernelOperationKey, lifecycle: KernelValueLifecycle<Value>, value: Value, codec?: CacheCodec<Value> | false) => void;
58
+ acceptKernelOperation: <Value>(key: KernelOperationKey, lifecycle: KernelValueLifecycle<Value>, value: Value, milliseconds: number, codec?: CacheCodec<Value> | false) => void;
56
59
  setKernelExternalBytes: (bytes: number) => void;
57
60
  };
58
61
  /** The installed backend supplies native accounting; pure caches need no kernel. */
@@ -71,7 +74,7 @@ export declare const evaluateCachedArtifact: <Value>(key: KernelOperationKey, li
71
74
  persistentWrites: number;
72
75
  persistenceEncodeMilliseconds: number;
73
76
  persistenceErrors: number;
74
- }, setKernelArtifactStore: (next: KernelArtifactStore | undefined) => void, findKernelOperation: <Value>(key: KernelOperationKey, lifecycle: KernelValueLifecycle<Value>, codec?: CacheCodec<Value> | false) => KernelArtifact<Value> | undefined, findKernelOperations: <Value>(keys: readonly KernelOperationKey[], lifecycle: KernelValueLifecycle<Value>, codec?: CacheCodec<Value> | false) => readonly (KernelArtifact<Value> | undefined)[], acceptKernelOperation: <Value>(key: KernelOperationKey, lifecycle: KernelValueLifecycle<Value>, value: Value, codec?: CacheCodec<Value> | false) => void, setKernelExternalBytes: (bytes: number) => void;
77
+ }, setKernelCacheBudget: (bytes: number) => void, setKernelCachePersistenceThreshold: (milliseconds: number) => void, setKernelArtifactStore: (next: KernelArtifactStore | undefined) => void, findKernelOperation: <Value>(key: KernelOperationKey, lifecycle: KernelValueLifecycle<Value>, codec?: CacheCodec<Value> | false) => KernelArtifact<Value> | undefined, findKernelOperations: <Value>(keys: readonly KernelOperationKey[], lifecycle: KernelValueLifecycle<Value>, codec?: CacheCodec<Value> | false) => readonly (KernelArtifact<Value> | undefined)[], acceptKernelOperation: <Value>(key: KernelOperationKey, lifecycle: KernelValueLifecycle<Value>, value: Value, milliseconds: number, codec?: CacheCodec<Value> | false) => void, setKernelExternalBytes: (bytes: number) => void;
75
78
  export type KernelOperationKey = Readonly<{
76
79
  id: string;
77
80
  signature: string;
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-cache.d.ts","sourceRoot":"","sources":["../../src/library/kernel-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel-cache.d.ts","sourceRoot":"","sources":["../../src/library/kernel-cache.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { axisRotation, type BodyRelation as BoundRelation, type BodyRotation } from './bound-solver.js';
1
+ import { axisRotation, type BodyRelation as BoundRelation, type BodyAction } from './bound-solver.js';
2
2
  import { type AlignmentGeometry } from './alignment-geometry.js';
3
- import { type RigidTransform, type Vec3 } from './spatial.js';
4
- export { axisRotation, type BodyRotation };
3
+ import { type RigidTransform } from './spatial.js';
4
+ export { axisRotation, type BodyAction };
5
5
  type AlignEndpoint = Readonly<{
6
6
  body: number;
7
7
  geometry: AlignmentGeometry;
@@ -12,8 +12,6 @@ type AlignRelation = Readonly<{
12
12
  id: string;
13
13
  source: AlignEndpoint;
14
14
  target: AlignEndpoint;
15
- offset: Vec3 | undefined;
16
- rotations: readonly BodyRotation[];
17
15
  }>;
18
16
  type Relation = (BoundRelation & {
19
17
  kind: 'on';
@@ -21,9 +19,16 @@ type Relation = (BoundRelation & {
21
19
  export type Body = Readonly<{
22
20
  name: string;
23
21
  relations: readonly Relation[];
22
+ initial?: RigidTransform;
23
+ transformations?: readonly BodyAction[];
24
24
  }>;
25
- /** Authored actions apply after satisfying the relation, about self or an external axis. */
26
- export declare function beforeRelation(pose: RigidTransform, relation: Pick<Relation, 'kind' | 'rotations' | 'offset' | 'target'>, poses: readonly RigidTransform[], owner: number): RigidTransform;
25
+ /** Undo exactly the authored prefix, in reverse call order. */
26
+ export declare function beforeTransformations(pose: RigidTransform, relation: {
27
+ actions: readonly BodyAction[];
28
+ }, poses: readonly RigidTransform[]): RigidTransform;
29
+ export declare function afterTransformations(pose: RigidTransform, relation: {
30
+ actions: readonly BodyAction[];
31
+ }, poses: readonly RigidTransform[]): RigidTransform;
27
32
  /** Exact linear specialization for bound-only assemblies; geometric relations solve joint rigid poses. */
28
33
  export declare function solveBodies(bodies: readonly Body[]): readonly RigidTransform[];
29
34
  //# sourceMappingURL=relation-solver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relation-solver.d.ts","sourceRoot":"","sources":["../../src/library/relation-solver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,KAAK,YAAY,IAAI,aAAa,EAClC,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAaL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAUL,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAC,YAAY,EAAE,KAAK,YAAY,EAAC,CAAC;AACzC,KAAK,aAAa,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,cAAc,CAAC;CAC3B,CAAC,CAAC;AACH,KAAK,aAAa,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;CACpC,CAAC,CAAC;AACH,KAAK,QAAQ,GAAG,CAAC,aAAa,GAAG;IAAC,IAAI,EAAE,IAAI,CAAA;CAAC,CAAC,GAAG,aAAa,CAAC;AAC/D,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAA;CAAC,CAAC,CAAC;AAE5E,4FAA4F;AAC5F,wBAAgB,cAAc,CAC5B,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC,EACpE,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,KAAK,EAAE,MAAM,GACZ,cAAc,CAyBhB;AA8KD,0GAA0G;AAC1G,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,IAAI,EAAE,GACtB,SAAS,cAAc,EAAE,CAoM3B"}
1
+ {"version":3,"file":"relation-solver.d.ts","sourceRoot":"","sources":["../../src/library/relation-solver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,KAAK,YAAY,IAAI,aAAa,EAClC,KAAK,UAAU,EAEhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAaL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAQL,KAAK,cAAc,EAEpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAC,YAAY,EAAE,KAAK,UAAU,EAAC,CAAC;AACvC,KAAK,aAAa,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,cAAc,CAAC;CAC3B,CAAC,CAAC;AACH,KAAK,aAAa,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;CACvB,CAAC,CAAC;AACH,KAAK,QAAQ,GAAG,CAAC,aAAa,GAAG;IAAC,IAAI,EAAE,IAAI,CAAA;CAAC,CAAC,GAAG,aAAa,CAAC;AAC/D,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,eAAe,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC,CAAC,CAAC;AAqBH,+DAA+D;AAC/D,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE;IACR,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;CAChC,EACD,KAAK,EAAE,SAAS,cAAc,EAAE,GAC/B,cAAc,CAWhB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE;IACR,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;CAChC,EACD,KAAK,EAAE,SAAS,cAAc,EAAE,GAC/B,cAAc,CAWhB;AA4ID,0GAA0G;AAC1G,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,IAAI,EAAE,GACtB,SAAS,cAAc,EAAE,CA8R3B"}
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  definePrimitive,
3
3
  replicad
4
- } from "../chunks/chunk-PAIFBNU4.js";
5
- import "../chunks/chunk-J77FMYFY.js";
4
+ } from "../chunks/chunk-C3AJ6WNB.js";
5
+ import "../chunks/chunk-4WLVDYUJ.js";
6
6
  export {
7
7
  definePrimitive,
8
8
  replicad