@code3d/core 0.0.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +824 -0
  3. package/THIRD_PARTY.md +28 -0
  4. package/bld/library/alignment-geometry.d.ts +50 -0
  5. package/bld/library/alignment-geometry.d.ts.map +1 -0
  6. package/bld/library/alignment-geometry.js +322 -0
  7. package/bld/library/alignment-geometry.js.map +1 -0
  8. package/bld/library/bound-solver.d.ts +33 -0
  9. package/bld/library/bound-solver.d.ts.map +1 -0
  10. package/bld/library/bound-solver.js +252 -0
  11. package/bld/library/bound-solver.js.map +1 -0
  12. package/bld/library/extrude.d.ts +8 -0
  13. package/bld/library/extrude.d.ts.map +1 -0
  14. package/bld/library/extrude.js +28 -0
  15. package/bld/library/extrude.js.map +1 -0
  16. package/bld/library/index.d.ts +7 -0
  17. package/bld/library/index.d.ts.map +1 -0
  18. package/bld/library/index.js +3 -0
  19. package/bld/library/index.js.map +1 -0
  20. package/bld/library/kernel-artifact-codec.d.ts +3 -0
  21. package/bld/library/kernel-artifact-codec.d.ts.map +1 -0
  22. package/bld/library/kernel-artifact-codec.js +148 -0
  23. package/bld/library/kernel-artifact-codec.js.map +1 -0
  24. package/bld/library/kernel-cache.d.ts +63 -0
  25. package/bld/library/kernel-cache.d.ts.map +1 -0
  26. package/bld/library/kernel-cache.js +245 -0
  27. package/bld/library/kernel-cache.js.map +1 -0
  28. package/bld/library/kernel-shapes.d.ts +20 -0
  29. package/bld/library/kernel-shapes.d.ts.map +1 -0
  30. package/bld/library/kernel-shapes.js +108 -0
  31. package/bld/library/kernel-shapes.js.map +1 -0
  32. package/bld/library/loft.d.ts +7 -0
  33. package/bld/library/loft.d.ts.map +1 -0
  34. package/bld/library/loft.js +161 -0
  35. package/bld/library/loft.js.map +1 -0
  36. package/bld/library/material.d.ts +12 -0
  37. package/bld/library/material.d.ts.map +1 -0
  38. package/bld/library/material.js +176 -0
  39. package/bld/library/material.js.map +1 -0
  40. package/bld/library/model-color.d.ts +8 -0
  41. package/bld/library/model-color.d.ts.map +1 -0
  42. package/bld/library/model-color.js +36 -0
  43. package/bld/library/model-color.js.map +1 -0
  44. package/bld/library/open-cascade-error.d.ts +2 -0
  45. package/bld/library/open-cascade-error.d.ts.map +1 -0
  46. package/bld/library/open-cascade-error.js +22 -0
  47. package/bld/library/open-cascade-error.js.map +1 -0
  48. package/bld/library/relation-solver.d.ts +29 -0
  49. package/bld/library/relation-solver.d.ts.map +1 -0
  50. package/bld/library/relation-solver.js +258 -0
  51. package/bld/library/relation-solver.js.map +1 -0
  52. package/bld/library/replicad.d.ts +17 -0
  53. package/bld/library/replicad.d.ts.map +1 -0
  54. package/bld/library/replicad.js +24 -0
  55. package/bld/library/replicad.js.map +1 -0
  56. package/bld/library/retained-memory.d.ts +7 -0
  57. package/bld/library/retained-memory.d.ts.map +1 -0
  58. package/bld/library/retained-memory.js +27 -0
  59. package/bld/library/retained-memory.js.map +1 -0
  60. package/bld/library/runtime.d.ts +775 -0
  61. package/bld/library/runtime.d.ts.map +1 -0
  62. package/bld/library/runtime.js +2954 -0
  63. package/bld/library/runtime.js.map +1 -0
  64. package/bld/library/shell.d.ts +7 -0
  65. package/bld/library/shell.d.ts.map +1 -0
  66. package/bld/library/shell.js +221 -0
  67. package/bld/library/shell.js.map +1 -0
  68. package/bld/library/sketch-curve-intersections.d.ts +13 -0
  69. package/bld/library/sketch-curve-intersections.d.ts.map +1 -0
  70. package/bld/library/sketch-curve-intersections.js +117 -0
  71. package/bld/library/sketch-curve-intersections.js.map +1 -0
  72. package/bld/library/sketch-curves.d.ts +31 -0
  73. package/bld/library/sketch-curves.d.ts.map +1 -0
  74. package/bld/library/sketch-curves.js +89 -0
  75. package/bld/library/sketch-curves.js.map +1 -0
  76. package/bld/library/sketch-drag-rules.d.ts +35 -0
  77. package/bld/library/sketch-drag-rules.d.ts.map +1 -0
  78. package/bld/library/sketch-drag-rules.js +522 -0
  79. package/bld/library/sketch-drag-rules.js.map +1 -0
  80. package/bld/library/sketch-face.d.ts +4 -0
  81. package/bld/library/sketch-face.d.ts.map +1 -0
  82. package/bld/library/sketch-face.js +72 -0
  83. package/bld/library/sketch-face.js.map +1 -0
  84. package/bld/library/sketch-incidence.d.ts +26 -0
  85. package/bld/library/sketch-incidence.d.ts.map +1 -0
  86. package/bld/library/sketch-incidence.js +114 -0
  87. package/bld/library/sketch-incidence.js.map +1 -0
  88. package/bld/library/sketch-precision.d.ts +19 -0
  89. package/bld/library/sketch-precision.d.ts.map +1 -0
  90. package/bld/library/sketch-precision.js +55 -0
  91. package/bld/library/sketch-precision.js.map +1 -0
  92. package/bld/library/sketch-regions.d.ts +12 -0
  93. package/bld/library/sketch-regions.d.ts.map +1 -0
  94. package/bld/library/sketch-regions.js +193 -0
  95. package/bld/library/sketch-regions.js.map +1 -0
  96. package/bld/library/sketch-solver.d.ts +97 -0
  97. package/bld/library/sketch-solver.d.ts.map +1 -0
  98. package/bld/library/sketch-solver.js +578 -0
  99. package/bld/library/sketch-solver.js.map +1 -0
  100. package/bld/library/sketch.d.ts +142 -0
  101. package/bld/library/sketch.d.ts.map +1 -0
  102. package/bld/library/sketch.js +650 -0
  103. package/bld/library/sketch.js.map +1 -0
  104. package/bld/library/spatial.d.ts +28 -0
  105. package/bld/library/spatial.d.ts.map +1 -0
  106. package/bld/library/spatial.js +195 -0
  107. package/bld/library/spatial.js.map +1 -0
  108. package/bld/library/three.d.ts +3 -0
  109. package/bld/library/three.d.ts.map +1 -0
  110. package/bld/library/three.js +3 -0
  111. package/bld/library/three.js.map +1 -0
  112. package/bld/library/topology-id.d.ts +24 -0
  113. package/bld/library/topology-id.d.ts.map +1 -0
  114. package/bld/library/topology-id.js +67 -0
  115. package/bld/library/topology-id.js.map +1 -0
  116. package/bld/library/topology-inspection.d.ts +64 -0
  117. package/bld/library/topology-inspection.d.ts.map +1 -0
  118. package/bld/library/topology-inspection.js +267 -0
  119. package/bld/library/topology-inspection.js.map +1 -0
  120. package/bld/library/topology.d.ts +94 -0
  121. package/bld/library/topology.d.ts.map +1 -0
  122. package/bld/library/topology.js +455 -0
  123. package/bld/library/topology.js.map +1 -0
  124. package/bld/node/index.d.ts +2 -0
  125. package/bld/node/index.d.ts.map +1 -0
  126. package/bld/node/index.js +14 -0
  127. package/bld/node/index.js.map +1 -0
  128. package/bld/node/replicad.d.ts +3 -0
  129. package/bld/node/replicad.d.ts.map +1 -0
  130. package/bld/node/replicad.js +3 -0
  131. package/bld/node/replicad.js.map +1 -0
  132. package/bld/tooling/index.d.ts +26 -0
  133. package/bld/tooling/index.d.ts.map +1 -0
  134. package/bld/tooling/index.js +19 -0
  135. package/bld/tooling/index.js.map +1 -0
  136. package/package.json +53 -0
  137. package/src/library/alignment-geometry.ts +431 -0
  138. package/src/library/bound-solver.ts +410 -0
  139. package/src/library/extrude.ts +38 -0
  140. package/src/library/index.ts +88 -0
  141. package/src/library/kernel-artifact-codec.ts +166 -0
  142. package/src/library/kernel-cache.ts +337 -0
  143. package/src/library/kernel-shapes.ts +135 -0
  144. package/src/library/loft.ts +196 -0
  145. package/src/library/material.ts +228 -0
  146. package/src/library/model-color.ts +47 -0
  147. package/src/library/open-cascade-error.ts +26 -0
  148. package/src/library/relation-solver.ts +479 -0
  149. package/src/library/replicad.ts +40 -0
  150. package/src/library/retained-memory.ts +23 -0
  151. package/src/library/runtime.ts +5146 -0
  152. package/src/library/shell.ts +281 -0
  153. package/src/library/sketch-curve-intersections.ts +154 -0
  154. package/src/library/sketch-curves.ts +161 -0
  155. package/src/library/sketch-drag-rules.ts +767 -0
  156. package/src/library/sketch-face.ts +89 -0
  157. package/src/library/sketch-incidence.ts +204 -0
  158. package/src/library/sketch-precision.ts +81 -0
  159. package/src/library/sketch-regions.ts +271 -0
  160. package/src/library/sketch-solver.ts +973 -0
  161. package/src/library/sketch.ts +977 -0
  162. package/src/library/spatial.ts +254 -0
  163. package/src/library/three.ts +2 -0
  164. package/src/library/topology-id.ts +81 -0
  165. package/src/library/topology-inspection.ts +368 -0
  166. package/src/library/topology.ts +776 -0
  167. package/src/library/tsconfig.json +11 -0
  168. package/src/node/index.ts +20 -0
  169. package/src/node/replicad.ts +3 -0
  170. package/src/node/tsconfig.json +16 -0
  171. package/src/tooling/index.ts +160 -0
  172. package/src/tooling/tsconfig.json +15 -0
@@ -0,0 +1,142 @@
1
+ import { type FaceModel } from './runtime.js';
2
+ /** Current coordinates in a sketch's local two-dimensional plane. */
3
+ export type SketchPosition = readonly [x: number, y: number];
4
+ export type SketchArcDirection = 'cw' | 'ccw';
5
+ export type SketchEntry = readonly [
6
+ kind: 'point',
7
+ id: number,
8
+ data: SketchPosition | number | SketchPoint
9
+ ] | readonly [
10
+ kind: 'line',
11
+ id: number,
12
+ points: readonly [start: number | SketchPoint, end: number | SketchPoint]
13
+ ] | readonly [
14
+ kind: 'circle',
15
+ id: number,
16
+ data: readonly [center: number | SketchPoint, radius: number]
17
+ ] | readonly [
18
+ kind: 'arc',
19
+ id: number,
20
+ data: readonly [
21
+ center: number | SketchPoint,
22
+ radius: number,
23
+ start: number | SketchPoint,
24
+ end: number | SketchPoint,
25
+ direction: SketchArcDirection
26
+ ]
27
+ ];
28
+ /** A point reference carries its defining layer, not just a numeric ID. */
29
+ export interface SketchPoint {
30
+ readonly sketch: Sketch;
31
+ readonly id: number;
32
+ }
33
+ /** Constraints are separate from geometry and do not have persistent IDs. */
34
+ export type SketchConstraint<P = number | SketchPoint> = readonly [kind: 'fixed', point: P] | readonly [kind: 'horizontal' | 'vertical', line: number] | readonly [
35
+ kind: 'parallel' | 'perpendicular',
36
+ lines: readonly [number, number]
37
+ ]
38
+ /** Signed rotation from the first line's authored direction to the second, in degrees. */
39
+ | readonly [kind: 'angle', lines: readonly [number, number], value: number] | readonly [kind: 'coincident', points: readonly [P, P]] | readonly [
40
+ kind: 'midpoint',
41
+ points: readonly [midpoint: P, start: P, end: P]
42
+ ] | readonly [
43
+ kind: 'length' | 'angle' | 'radius' | 'sweep',
44
+ curve: number,
45
+ value: number
46
+ ] | readonly [kind: 'x' | 'y', point: P, value: number];
47
+ export type SketchOptions = Readonly<{
48
+ constraints?: readonly SketchConstraint[];
49
+ }>;
50
+ /** An immutable sketch definition, independent of B-Rep construction. */
51
+ export interface Sketch {
52
+ /** References a point defined in this layer. */
53
+ point(id: number): SketchPoint;
54
+ /** Adds a local layer while retaining the upstream sketch as read-only input. */
55
+ derive(entries?: readonly SketchEntry[], options?: SketchOptions): Sketch;
56
+ /** Creates the only closed region, including holes. Requires exactly one face. */
57
+ face(): FaceModel;
58
+ /** Creates all closed regions, including upstream boundaries. Returns an ordinary array. */
59
+ faces(): readonly FaceModel[];
60
+ }
61
+ type Definition = Readonly<{
62
+ base?: Sketch;
63
+ /** Used only to identify the authored argument during source tracing. */
64
+ input?: readonly SketchEntry[];
65
+ inputOptions?: SketchOptions;
66
+ entries: readonly SketchEntry[];
67
+ constraints: readonly SketchConstraint[];
68
+ points: ReadonlyMap<number, SketchPosition>;
69
+ radii: ReadonlyMap<number, number>;
70
+ degreesOfFreedom: number;
71
+ redundant: readonly number[];
72
+ }>;
73
+ /** Defines a sketch using [kind, ID, data] tuples. IDs belong to this layer. */
74
+ export declare function sketch(entries?: readonly SketchEntry[], options?: SketchOptions): Sketch;
75
+ export declare function isSketch(value: unknown): value is Sketch;
76
+ export declare function sketchDefinition(value: Sketch): Definition;
77
+ export type SketchPointSnapshot = Readonly<{
78
+ kind: 'point';
79
+ id: number;
80
+ position: SketchPosition;
81
+ /** Same geometric point, retaining this authored ID for references. */
82
+ alias?: SketchPointAddress;
83
+ }>;
84
+ export type SketchPointAddress = Readonly<{
85
+ layer: string;
86
+ id: number;
87
+ }>;
88
+ export type SketchLineSnapshot = Readonly<{
89
+ kind: 'line';
90
+ id: number;
91
+ points: readonly [SketchPointAddress, SketchPointAddress];
92
+ }>;
93
+ export type SketchCircleSnapshot = Readonly<{
94
+ kind: 'circle';
95
+ id: number;
96
+ center: SketchPointAddress;
97
+ radius: number;
98
+ }>;
99
+ export type SketchArcSnapshot = Readonly<{
100
+ kind: 'arc';
101
+ id: number;
102
+ center: SketchPointAddress;
103
+ radius: number;
104
+ points: readonly [SketchPointAddress, SketchPointAddress];
105
+ direction: SketchArcDirection;
106
+ }>;
107
+ export type SketchEntitySnapshot = SketchPointSnapshot | SketchLineSnapshot | SketchCircleSnapshot | SketchArcSnapshot;
108
+ /** Numeric geometry parameters, excluding identity and point references. */
109
+ export declare function sketchEntityParameters(entity: SketchEntitySnapshot): readonly number[];
110
+ export declare function withSketchEntityParameters(entity: SketchEntitySnapshot, parameters: readonly number[]): SketchEntitySnapshot;
111
+ /** Each snapshot contains only its own definitions; base retains the lineage. */
112
+ export type SketchSnapshot = Readonly<{
113
+ id: string;
114
+ base?: string;
115
+ entities: readonly SketchEntitySnapshot[];
116
+ constraints: readonly SketchConstraint<SketchPointAddress>[];
117
+ degreesOfFreedom: number;
118
+ /** Evaluation-local indices into constraints, not persistent identity. */
119
+ redundant: readonly number[];
120
+ }>;
121
+ export declare function snapshotSketch(value: Sketch, identity: (sketch: Sketch) => string): SketchSnapshot;
122
+ /** Resolve identity once for solving, dragging, snapping and topology edits. */
123
+ export declare function sketchPointResolver(layers: readonly SketchSnapshot[]): (ref: SketchPointAddress) => SketchPointAddress;
124
+ /** Includes gesture-only equations, not merely authored constraints. */
125
+ export declare function sketchDragRequiresSolver(layers: readonly SketchSnapshot[]): boolean;
126
+ /** Source replay must retain every gesture-start incidence, including aliases. */
127
+ export declare function assertSketchDragConnections(layers: readonly SketchSnapshot[], reference: SketchSnapshot): void;
128
+ /** The same solver and snapshot contract serve evaluation and interactive dragging. */
129
+ export declare function solveSketchSnapshot(layers: readonly SketchSnapshot[], drag?: Readonly<{
130
+ id: number;
131
+ position: SketchPosition;
132
+ /** Gesture-start geometry; previous-frame geometry remains the numeric seed. */
133
+ reference?: SketchSnapshot;
134
+ /** Numeric, gesture-only parameter locks; never author constraints. */
135
+ locks?: readonly Readonly<{
136
+ id: number;
137
+ parameter: number;
138
+ value: number;
139
+ }>[];
140
+ }>): SketchSnapshot;
141
+ export {};
142
+ //# sourceMappingURL=sketch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sketch.d.ts","sourceRoot":"","sources":["../../src/library/sketch.ts"],"names":[],"mappings":"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"}