opengeometry 2.0.17 → 3.0.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 (156) hide show
  1. package/LICENSE.md +373 -0
  2. package/README.md +187 -128
  3. package/body-registry-MbAD6Hyq.js +3159 -0
  4. package/body-registry-MbAD6Hyq.js.map +1 -0
  5. package/index.d.ts +18 -115
  6. package/index.js +1170 -11687
  7. package/index.js.map +1 -1
  8. package/opengeometry/pkg/opengeometry.d.ts +144 -1304
  9. package/opengeometry/pkg/opengeometry.js +1316 -5803
  10. package/opengeometry/pkg/opengeometry_bg.wasm +0 -0
  11. package/opengeometry/pkg/opengeometry_bg.wasm.d.ts +62 -458
  12. package/opengeometry_bg.wasm +0 -0
  13. package/opengeometry_bg.wasm.d.ts +62 -458
  14. package/package.json +54 -34
  15. package/src/bodies/body-factory.d.ts +3 -0
  16. package/src/bodies/body-options.d.ts +19 -0
  17. package/src/bodies/body-placement.d.ts +10 -0
  18. package/src/bodies/body-registry.d.ts +3 -0
  19. package/src/bodies/body.d.ts +71 -0
  20. package/src/bodies/display-clone.d.ts +10 -0
  21. package/src/bodies/node-methods.d.ts +30 -0
  22. package/src/bodies/sheet.d.ts +14 -0
  23. package/src/bodies/solid.d.ts +23 -0
  24. package/src/bodies/system-assembly.d.ts +26 -0
  25. package/src/bodies/wire.d.ts +14 -0
  26. package/src/constants/index.d.ts +4 -0
  27. package/src/constants/operations.d.ts +58 -0
  28. package/src/constants/primitives.d.ts +69 -0
  29. package/src/constants/regions.d.ts +1 -0
  30. package/src/constants/transforms.d.ts +4 -0
  31. package/src/dto/boolean-report.d.ts +24 -0
  32. package/src/dto/bounds.d.ts +1 -0
  33. package/src/dto/brep.d.ts +99 -0
  34. package/src/dto/change-set.d.ts +13 -0
  35. package/src/dto/creation.d.ts +3 -0
  36. package/src/dto/display-buffers.d.ts +14 -0
  37. package/src/dto/events.d.ts +2 -0
  38. package/src/{export/analytic-ifc.d.ts → dto/ifc-body.d.ts} +16 -18
  39. package/src/dto/mark-stats.d.ts +4 -0
  40. package/src/dto/measure.d.ts +16 -0
  41. package/src/dto/mirror.d.ts +4 -0
  42. package/src/dto/node-info.d.ts +11 -0
  43. package/src/dto/pick-result.d.ts +6 -0
  44. package/src/dto/placement.d.ts +6 -0
  45. package/src/dto/primitives.d.ts +77 -0
  46. package/src/dto/regions.d.ts +42 -0
  47. package/src/dto/step-export.d.ts +42 -0
  48. package/src/errors.d.ts +20 -0
  49. package/src/export/export-step.d.ts +10 -0
  50. package/src/export/ifc-body.d.ts +4 -0
  51. package/src/kernel/kernel-errors.d.ts +5 -0
  52. package/src/kernel/kernel-loader.d.ts +5 -0
  53. package/src/kernel/kernel-session.d.ts +2 -0
  54. package/src/limits.d.ts +12 -0
  55. package/src/marks/limbo.d.ts +6 -0
  56. package/src/marks/og-mark.d.ts +10 -0
  57. package/src/marks/transaction.d.ts +3 -0
  58. package/src/opengeometry.d.ts +69 -0
  59. package/src/operations/offsets.d.ts +5 -0
  60. package/src/operations/regions.d.ts +4 -0
  61. package/src/picking/pick-targets.d.ts +6 -0
  62. package/src/picking/resolve-hit.d.ts +3 -0
  63. package/src/rendering/deferred.d.ts +7 -0
  64. package/src/rendering/geometry/geometry-scheduler.d.ts +12 -0
  65. package/src/rendering/geometry/host-group.d.ts +10 -0
  66. package/src/rendering/geometry/render-pass.d.ts +8 -0
  67. package/src/rendering/geometry/settle.d.ts +10 -0
  68. package/src/rendering/inline-backend.d.ts +14 -0
  69. package/src/rendering/lod/body-size.d.ts +11 -0
  70. package/src/rendering/lod/camera-observer.d.ts +2 -0
  71. package/src/rendering/lod/deflection.d.ts +2 -0
  72. package/src/rendering/lod/display-bounds.d.ts +4 -0
  73. package/src/rendering/lod/displayed.d.ts +7 -0
  74. package/src/rendering/lod/host-drawn.d.ts +5 -0
  75. package/src/rendering/lod/host-groups.d.ts +28 -0
  76. package/src/rendering/lod/lod-controller.d.ts +75 -0
  77. package/src/rendering/lod/screen-metrics.d.ts +2 -0
  78. package/src/rendering/materials/material-pool.d.ts +12 -0
  79. package/src/rendering/materials/ref-counted-pool.d.ts +12 -0
  80. package/src/rendering/provider.d.ts +19 -0
  81. package/src/rendering/records/geometry-record.d.ts +21 -0
  82. package/src/rendering/records/record-pool.d.ts +29 -0
  83. package/src/rendering/records/validate-display-buffers.d.ts +2 -0
  84. package/src/rendering/tessellation-worker.d.ts +1 -0
  85. package/src/rendering/worker/job-queue.d.ts +8 -0
  86. package/src/rendering/worker/message-guards.d.ts +9 -0
  87. package/src/rendering/worker/snapshot-cache.d.ts +10 -0
  88. package/src/rendering/worker-backend.d.ts +44 -0
  89. package/src/rendering/worker-protocol.d.ts +52 -0
  90. package/src/runtime/create-runtime.d.ts +7 -0
  91. package/src/runtime/event-bus.d.ts +3 -0
  92. package/src/runtime/reset.d.ts +1 -0
  93. package/src/runtime/runtime-state.d.ts +68 -0
  94. package/src/testing/internals.d.ts +18 -0
  95. package/src/world-graph/codec.d.ts +45 -0
  96. package/src/world-graph/world-graph-client.d.ts +13 -0
  97. package/tessellation-worker.js +634 -0
  98. package/tessellation-worker.js.map +1 -0
  99. package/testing.d.ts +1 -0
  100. package/testing.js +87 -0
  101. package/testing.js.map +1 -0
  102. package/analytic-worker.js +0 -90
  103. package/src/base-types.d.ts +0 -13
  104. package/src/editor/freeform.d.ts +0 -91
  105. package/src/editor/index.d.ts +0 -6
  106. package/src/editor/parametric.d.ts +0 -15
  107. package/src/editor/types.d.ts +0 -223
  108. package/src/examples/booleans.d.ts +0 -24
  109. package/src/examples/editor-modes.d.ts +0 -20
  110. package/src/examples/index.d.ts +0 -11
  111. package/src/examples/offset-ring-variable.d.ts +0 -13
  112. package/src/examples/offset.d.ts +0 -18
  113. package/src/examples/primitives.d.ts +0 -16
  114. package/src/examples/ribbon-from-offsets.d.ts +0 -33
  115. package/src/examples/shapes.d.ts +0 -20
  116. package/src/examples/sweep.d.ts +0 -9
  117. package/src/freeform/geometry.d.ts +0 -82
  118. package/src/freeform/index.d.ts +0 -5
  119. package/src/freeform/types.d.ts +0 -36
  120. package/src/markup/spotMarker.d.ts +0 -4
  121. package/src/operations/analytic-errors.d.ts +0 -8
  122. package/src/operations/boolean-regions.d.ts +0 -20
  123. package/src/operations/boolean.d.ts +0 -16
  124. package/src/operations/editor/freeform.d.ts +0 -1
  125. package/src/operations/editor/index.d.ts +0 -1
  126. package/src/operations/editor/parametric.d.ts +0 -1
  127. package/src/operations/editor/types.d.ts +0 -1
  128. package/src/operations/extrude.d.ts +0 -9
  129. package/src/operations/index.d.ts +0 -9
  130. package/src/operations/loft.d.ts +0 -13
  131. package/src/operations/offset-regions.d.ts +0 -76
  132. package/src/primitives/analytic-curve.d.ts +0 -42
  133. package/src/primitives/arc.d.ts +0 -36
  134. package/src/primitives/curve.d.ts +0 -64
  135. package/src/primitives/elliptical_arc.d.ts +0 -38
  136. package/src/primitives/index.d.ts +0 -9
  137. package/src/primitives/line.d.ts +0 -77
  138. package/src/primitives/polyline.d.ts +0 -78
  139. package/src/primitives/rectangle.d.ts +0 -72
  140. package/src/rendering/analytic-lod.d.ts +0 -32
  141. package/src/rendering/analytic-tessellation.d.ts +0 -32
  142. package/src/shapes/analytic-pattern.d.ts +0 -36
  143. package/src/shapes/analytic-solid.d.ts +0 -304
  144. package/src/shapes/cuboid.d.ts +0 -62
  145. package/src/shapes/cylinder.d.ts +0 -36
  146. package/src/shapes/index.d.ts +0 -11
  147. package/src/shapes/opening.d.ts +0 -31
  148. package/src/shapes/outline-utils.d.ts +0 -35
  149. package/src/shapes/polygon.d.ts +0 -102
  150. package/src/shapes/solid.d.ts +0 -108
  151. package/src/shapes/sphere.d.ts +0 -27
  152. package/src/shapes/sweep.d.ts +0 -76
  153. package/src/shapes/wedge.d.ts +0 -75
  154. package/src/utils/event.d.ts +0 -29
  155. package/src/utils/randomizer.d.ts +0 -1
  156. package/src/world/world-graph.d.ts +0 -112
@@ -1,223 +0,0 @@
1
- import { Vector3 } from "../../opengeometry/pkg/opengeometry.js";
2
- import type { ObjectTransformation } from "../freeform/types.js";
3
- /**
4
- * Numeric identifier used for faces, edges, and vertices in freeform topology APIs.
5
- */
6
- export type TopologyId = number;
7
- /**
8
- * Kernel edit permissions shared by global and feature-scoped freeform capabilities.
9
- */
10
- export interface FreeformOperationCapabilities {
11
- canPushPullFace: boolean;
12
- canMoveFace: boolean;
13
- canExtrudeFace: boolean;
14
- canCutFace: boolean;
15
- canMoveEdge: boolean;
16
- canMoveVertex: boolean;
17
- canInsertVertexOnEdge: boolean;
18
- canRemoveVertex: boolean;
19
- canSplitEdge: boolean;
20
- canLoopCut: boolean;
21
- reasons?: string[];
22
- }
23
- /**
24
- * Global editing capabilities for a freeform geometry object.
25
- */
26
- export interface FreeformEditCapabilities extends FreeformOperationCapabilities {
27
- editingMode: "freeform";
28
- entityType: "freeform";
29
- editFamily: "freeform";
30
- canEditConfig: false;
31
- canEditPlacement: false;
32
- canConvertToFreeform: false;
33
- }
34
- /**
35
- * Feature-scoped editing capabilities for a single face, edge, or vertex.
36
- */
37
- export interface FreeformFeatureEditCapabilities extends FreeformOperationCapabilities {
38
- domain: "face" | "edge" | "vertex";
39
- topologyId: TopologyId;
40
- }
41
- /**
42
- * How a topology id changed after an edit.
43
- */
44
- export type TopologyRemapStatus = "unchanged" | "split" | "merged" | "deleted";
45
- /**
46
- * Maps an old topology id to the ids that replaced it.
47
- */
48
- export interface TopologyRemapEntry {
49
- old_id: TopologyId;
50
- new_ids: TopologyId[];
51
- primary_id: TopologyId | null;
52
- status: TopologyRemapStatus;
53
- }
54
- /**
55
- * Newly created topology ids emitted by a freeform edit.
56
- */
57
- export interface TopologyCreatedIds {
58
- faces: TopologyId[];
59
- edges: TopologyId[];
60
- vertices: TopologyId[];
61
- }
62
- /**
63
- * Topology remap payload returned by edits that change face/edge/vertex ids.
64
- */
65
- export interface TopologyRemap {
66
- faces: TopologyRemapEntry[];
67
- edges: TopologyRemapEntry[];
68
- vertices: TopologyRemapEntry[];
69
- created_ids: TopologyCreatedIds;
70
- }
71
- /**
72
- * Diagnostic severities returned by freeform validity checks.
73
- */
74
- export type DiagnosticSeverity = "info" | "warning" | "error";
75
- /**
76
- * Individual diagnostic emitted by a freeform edit or validation pass.
77
- */
78
- export interface FreeformDiagnostic {
79
- code: string;
80
- severity: DiagnosticSeverity;
81
- message: string;
82
- domain?: string;
83
- topology_id?: TopologyId;
84
- }
85
- /**
86
- * Validity summary returned after a freeform edit.
87
- */
88
- export interface FreeformValidity {
89
- ok: boolean;
90
- healed?: boolean;
91
- diagnostics: FreeformDiagnostic[];
92
- }
93
- /**
94
- * Face metadata returned by the freeform editor.
95
- */
96
- export interface FaceInfo {
97
- face_id: TopologyId;
98
- centroid: Vector3;
99
- normal: Vector3;
100
- surface_type: string;
101
- loop_ids: TopologyId[];
102
- edge_ids: TopologyId[];
103
- vertex_ids: TopologyId[];
104
- adjacent_face_ids: TopologyId[];
105
- }
106
- /**
107
- * Edge metadata returned by the freeform editor.
108
- */
109
- export interface EdgeInfo {
110
- edge_id: TopologyId;
111
- curve_type: string;
112
- start_vertex_id: TopologyId;
113
- end_vertex_id: TopologyId;
114
- start: Vector3;
115
- end: Vector3;
116
- incident_face_ids: TopologyId[];
117
- }
118
- /**
119
- * Vertex metadata returned by the freeform editor.
120
- */
121
- export interface VertexInfo {
122
- vertex_id: TopologyId;
123
- position: Vector3;
124
- edge_ids: TopologyId[];
125
- face_ids: TopologyId[];
126
- }
127
- /**
128
- * Triangulated face render data for topology overlays.
129
- */
130
- export interface TopologyFaceRenderData {
131
- face_id: TopologyId;
132
- positions: number[];
133
- indices: number[];
134
- }
135
- /**
136
- * Edge polyline render data for topology overlays.
137
- */
138
- export interface TopologyEdgeRenderData {
139
- edge_id: TopologyId;
140
- positions: number[];
141
- }
142
- /**
143
- * Vertex render data for topology overlays.
144
- */
145
- export interface TopologyVertexRenderData {
146
- vertex_id: TopologyId;
147
- position: Vector3;
148
- }
149
- /**
150
- * Full renderable topology payload emitted by the freeform editor.
151
- */
152
- export interface TopologyRenderData {
153
- faces: TopologyFaceRenderData[];
154
- edges: TopologyEdgeRenderData[];
155
- vertices: TopologyVertexRenderData[];
156
- }
157
- /**
158
- * Structured result payload returned by freeform edit operations.
159
- */
160
- export interface FreeformEditResult {
161
- entity_id: string;
162
- brep_serialized?: string;
163
- local_brep_serialized?: string;
164
- geometry_serialized?: string;
165
- outline_geometry_serialized?: string;
166
- topology_changed: boolean;
167
- topology_remap?: TopologyRemap;
168
- changed_faces?: TopologyId[];
169
- changed_edges?: TopologyId[];
170
- changed_vertices?: TopologyId[];
171
- validity: FreeformValidity;
172
- placement: ObjectTransformation;
173
- }
174
- /**
175
- * Optional flags that control how much auxiliary data an edit returns.
176
- */
177
- export interface EditOperationOptions {
178
- includeBrepSerialized?: boolean;
179
- includeLocalBrepSerialized?: boolean;
180
- includeGeometrySerialized?: boolean;
181
- includeOutlineGeometrySerialized?: boolean;
182
- includeTopologyRemap?: boolean;
183
- includeDeltas?: boolean;
184
- constraintAxis?: Vector3;
185
- constraintPlaneNormal?: Vector3;
186
- preserveCoplanarity?: boolean;
187
- constraintFrame?: "local" | "world";
188
- openSurfaceMode?: boolean;
189
- }
190
- /**
191
- * High-level editing mode families exposed by public wrappers.
192
- */
193
- export type EditingMode = "parametric" | "freeform";
194
- export type ParametricEntityType = "line" | "polyline" | "arc" | "curve" | "elliptical_arc" | "rectangle" | "polygon" | "cuboid" | "cylinder" | "sphere" | "wedge" | "opening" | "sweep";
195
- export type EntityType = ParametricEntityType | "freeform";
196
- export type EditFamily = "profile" | "curve" | "box" | "radial" | "wedge" | "sweep" | "freeform";
197
- export type ParametricEditFamily = Exclude<EditFamily, "freeform">;
198
- /**
199
- * Shared placement structure for parametric wrappers.
200
- */
201
- export interface ParametricPlacement {
202
- translation: Vector3;
203
- rotation: Vector3;
204
- scale: Vector3;
205
- }
206
- /**
207
- * Base capability payload shared by parametric and freeform wrappers.
208
- */
209
- export interface BaseEditCapabilities {
210
- editingMode: EditingMode;
211
- entityType: EntityType;
212
- editFamily: EditFamily;
213
- canEditConfig: boolean;
214
- canEditPlacement: boolean;
215
- canConvertToFreeform: boolean;
216
- }
217
- /**
218
- * Capability payload returned by parametric wrappers such as `Polygon` or `Cuboid`.
219
- */
220
- export interface ParametricEditCapabilities extends BaseEditCapabilities {
221
- editingMode: "parametric";
222
- entityType: ParametricEntityType;
223
- }
@@ -1,24 +0,0 @@
1
- import * as THREE from "three";
2
- import { Vector3 } from "../../opengeometry/pkg/opengeometry.js";
3
- import { BooleanExecutionOptions } from "../operations/boolean.js";
4
- import { AnalyticSolid } from "../shapes/analytic-solid.js";
5
- export type BooleanExampleOperation = "union" | "intersection" | "subtraction";
6
- export type BooleanExampleMode = "solid" | "polygon" | "extruded";
7
- export interface BooleanExampleBuildOptions extends BooleanExecutionOptions {
8
- mode: BooleanExampleMode;
9
- sphereCenter?: Vector3;
10
- polygonOffset?: Vector3;
11
- extrudedOffset?: Vector3;
12
- }
13
- export interface BooleanExampleBuildResult {
14
- group: THREE.Group;
15
- lhs: THREE.Object3D;
16
- rhs: THREE.Object3D;
17
- result: AnalyticSolid;
18
- title: string;
19
- description: string;
20
- }
21
- /**
22
- * Builds a complete operand/result scene group for a boolean example page.
23
- */
24
- export declare function createBooleanExample(operation: BooleanExampleOperation, options: BooleanExampleBuildOptions): BooleanExampleBuildResult;
@@ -1,20 +0,0 @@
1
- import * as THREE from "three";
2
- import { FreeformEditResult } from "../editor.js";
3
- import { Line } from "../primitives/line.js";
4
- import { Polygon } from "../shapes/polygon.js";
5
- import { Cuboid } from "../shapes/cuboid.js";
6
- /**
7
- * Demonstrates strict v2 parametric solid edits and the separate sampled-wire
8
- * freeform editor. Analytic solid freeform conversion is intentionally unsupported.
9
- */
10
- export declare function createEditorModesExample(scene: THREE.Scene): {
11
- polygon: Polygon;
12
- cuboid: Cuboid;
13
- guideLine: Line;
14
- polygonCapabilities: import("../editor.js").ParametricEditCapabilities;
15
- cuboidCapabilities: import("../editor.js").ParametricEditCapabilities;
16
- guideLineCapabilities: import("../editor.js").ParametricEditCapabilities;
17
- guideLineFreeform: import("../freeform.js").FreeformGeometry;
18
- guideLineEditor: import("../editor.js").FreeformEditor;
19
- guideLineSplitResult: FreeformEditResult | null;
20
- };
@@ -1,11 +0,0 @@
1
- /**
2
- * Reusable scene example builders for primitives, shapes, and operations.
3
- */
4
- export * from './primitives.js';
5
- export * from './shapes.js';
6
- export * from './sweep.js';
7
- export * from './offset.js';
8
- export * from './offset-ring-variable.js';
9
- export * from './ribbon-from-offsets.js';
10
- export * from './booleans.js';
11
- export * from './editor-modes.js';
@@ -1,13 +0,0 @@
1
- import * as THREE from "three";
2
- import { Polyline } from "../primitives/polyline.js";
3
- /**
4
- * Variable (per-edge) ring inset: a rectangular "parcel" inset by front 6 /
5
- * side 1.5 / rear 3 setbacks, and a waisted (dumbbell) parcel whose uniform
6
- * 3 m inset SPLITS into two disjoint buildable envelopes — the case a uniform
7
- * offset cannot express.
8
- */
9
- export declare function createOffsetRingVariableExample(scene: THREE.Scene): {
10
- parcelOutline: Polyline;
11
- dumbbellOutline: Polyline;
12
- envelopes: Polyline[];
13
- };
@@ -1,18 +0,0 @@
1
- import * as THREE from "three";
2
- import { Line } from "../primitives/line.js";
3
- import { Polyline } from "../primitives/polyline.js";
4
- import { Rectangle } from "../primitives/rectangle.js";
5
- import { Curve } from "../primitives/curve.js";
6
- export declare function createOffsetExample(scene: THREE.Scene): {
7
- baseLine: Line;
8
- lineOffsetPrimitive: Line;
9
- basePolyline: Polyline;
10
- polylineOffsetPrimitive: Polyline;
11
- baseRectangle: Rectangle;
12
- rectangleOffsetPrimitive: Polyline;
13
- baseCurve: Curve;
14
- curveOffsetPrimitive: Polyline;
15
- polylineOffset: import("../primitives/polyline.js").IOffsetResult;
16
- rectangleOffset: import("../primitives/rectangle.js").IRectangleOffsetResult;
17
- curveOffset: import("../primitives/curve.js").ICurveOffsetResult;
18
- };
@@ -1,16 +0,0 @@
1
- import * as THREE from "three";
2
- import { Arc } from "../primitives/arc.js";
3
- import { Curve } from "../primitives/curve.js";
4
- import { Line } from "../primitives/line.js";
5
- import { Polyline } from "../primitives/polyline.js";
6
- import { Rectangle } from "../primitives/rectangle.js";
7
- /**
8
- * Adds a basic primitives showcase to the provided scene.
9
- */
10
- export declare function createPrimitivesExample(scene: THREE.Scene): {
11
- line: Line;
12
- polyline: Polyline;
13
- arc: Arc;
14
- rectangle: Rectangle;
15
- curve: Curve;
16
- };
@@ -1,33 +0,0 @@
1
- import * as THREE from "three";
2
- import { Polyline } from "../primitives/polyline.js";
3
- import { AnalyticSolid } from "../shapes/analytic-solid.js";
4
- import { Polygon } from "../shapes/polygon.js";
5
- export interface RibbonFromOffsetsOptions {
6
- /** Subtract one exact coextensive through slot. Default `false`. */
7
- cutThroughSlot?: boolean;
8
- /** Width of the through slot along its centerline segment. Default `0.6`. */
9
- slotWidth?: number;
10
- /**
11
- * Ribbon extrusion height in meters. Default `2.6` to match the example HTML.
12
- */
13
- height?: number;
14
- }
15
- /**
16
- * Renders a human-readable description for an analytic geometry error (or any
17
- * other thrown value). Used by the example HTML to surface kernel failures
18
- * in a status panel without losing the structured payload.
19
- */
20
- export declare function describeRibbonSubtractError(error: unknown): string;
21
- export declare function createRibbonFromOffsetsExample(scene: THREE.Scene, options?: RibbonFromOffsetsOptions): {
22
- centerline: Polyline;
23
- leftOffsetPolyline: Polyline;
24
- rightOffsetPolyline: Polyline;
25
- ribbonPolygon: Polygon;
26
- leftOffset: import("../primitives/polyline.js").IOffsetResult;
27
- rightOffset: import("../primitives/polyline.js").IOffsetResult;
28
- cutResult: {
29
- ribbon: THREE.Object3D;
30
- cutters: AnalyticSolid[];
31
- } | null;
32
- cutError: unknown;
33
- };
@@ -1,20 +0,0 @@
1
- import * as THREE from "three";
2
- import { Cuboid } from "../shapes/cuboid.js";
3
- import { Cylinder } from "../shapes/cylinder.js";
4
- import { Opening } from "../shapes/opening.js";
5
- import { Polygon } from "../shapes/polygon.js";
6
- import { Sweep } from "../shapes/sweep.js";
7
- import { Sphere } from "../shapes/sphere.js";
8
- import { Wedge } from "../shapes/wedge.js";
9
- /**
10
- * Adds a basic shapes showcase to the provided scene.
11
- */
12
- export declare function createShapesExample(scene: THREE.Scene): {
13
- polygon: Polygon;
14
- cuboid: Cuboid;
15
- cylinder: Cylinder;
16
- wedge: Wedge;
17
- sphere: Sphere;
18
- opening: Opening;
19
- sweep: Sweep;
20
- };
@@ -1,9 +0,0 @@
1
- import * as THREE from "three";
2
- import { Polyline } from "../primitives/polyline.js";
3
- import { Rectangle } from "../primitives/rectangle.js";
4
- import { Sweep } from "../shapes/sweep.js";
5
- export declare function createSweepExample(scene: THREE.Scene): {
6
- pathPrimitive: Polyline;
7
- profilePrimitive: Rectangle;
8
- sweep: Sweep;
9
- };
@@ -1,82 +0,0 @@
1
- import { OGFreeformGeometry, Vector3 } from "../../opengeometry/pkg/opengeometry.js";
2
- import type { CreateFreeformGeometryOptions, FreeformSource, ObjectTransformation } from "./types.js";
3
- /**
4
- * Thin client-side wrapper around the kernel `OGFreeformGeometry` object.
5
- */
6
- export declare class FreeformGeometry {
7
- private readonly geometry;
8
- constructor(geometry: OGFreeformGeometry);
9
- /**
10
- * Returns the stable kernel-side id for this freeform geometry object.
11
- */
12
- getId(): string;
13
- /**
14
- * Returns the world-space serialized BRep payload.
15
- */
16
- getBrepSerialized(): string;
17
- /**
18
- * Returns the local-space serialized BRep payload.
19
- */
20
- getLocalBrepSerialized(): string;
21
- /**
22
- * Returns the serialized triangle position buffer emitted by the kernel.
23
- */
24
- getGeometrySerialized(): string;
25
- /**
26
- * Returns world-space triangle positions as a plain number array.
27
- */
28
- getGeometryBuffer(): number[];
29
- /**
30
- * Returns local-space triangle positions as a plain number array.
31
- */
32
- getLocalGeometryBuffer(): number[];
33
- /**
34
- * Returns the serialized outline buffer emitted by the kernel.
35
- */
36
- getOutlineGeometrySerialized(): string;
37
- /**
38
- * Returns world-space outline segment positions as a plain number array.
39
- */
40
- getOutlineGeometryBuffer(): number[];
41
- /**
42
- * Returns local-space outline segment positions as a plain number array.
43
- */
44
- getLocalOutlineGeometryBuffer(): number[];
45
- /**
46
- * Returns the current normalized placement for this freeform geometry.
47
- */
48
- getPlacement(): ObjectTransformation;
49
- /**
50
- * Replaces the full placement transform in one call.
51
- */
52
- setPlacement(transform: ObjectTransformation): void;
53
- /**
54
- * Sets translation, rotation, and scale without changing the current anchor.
55
- */
56
- setTransform(translation: Vector3, rotation: Vector3, scale: Vector3): void;
57
- /**
58
- * Updates only the translation component of the placement.
59
- */
60
- setTranslation(translation: Vector3): void;
61
- /**
62
- * Updates only the rotation component of the placement.
63
- */
64
- setRotation(rotation: Vector3): void;
65
- /**
66
- * Updates only the scale component of the placement.
67
- */
68
- setScale(scale: Vector3): void;
69
- /**
70
- * Updates the explicit modeling anchor used by downstream transforms.
71
- */
72
- setAnchor(anchor: Vector3): void;
73
- /** @internal */
74
- getKernelGeometry(): OGFreeformGeometry;
75
- }
76
- /**
77
- * Creates a `FreeformGeometry` wrapper from serialized BRep JSON, a parsed
78
- * BRep object, or another wrapper exposing BRep accessors.
79
- */
80
- export declare function createFreeformGeometry(source: FreeformSource, options?: CreateFreeformGeometryOptions): FreeformGeometry;
81
- /** Triangulates an explicitly faceted BRep, including its planar face holes. */
82
- export declare function tessellateFacetedBrep(serialized: string): Float64Array;
@@ -1,5 +0,0 @@
1
- /**
2
- * Freeform geometry types and helpers for working with raw BRep-backed models.
3
- */
4
- export * from "./types.js";
5
- export { FreeformGeometry, createFreeformGeometry, tessellateFacetedBrep } from "./geometry.js";
@@ -1,36 +0,0 @@
1
- import { Vector3 } from "../../opengeometry/pkg/opengeometry.js";
2
- /**
3
- * Placement values accepted when constructing freeform geometry wrappers.
4
- */
5
- export interface FreeformPlacementInput {
6
- anchor?: Vector3;
7
- translation: Vector3;
8
- rotation: Vector3;
9
- scale: Vector3;
10
- }
11
- /**
12
- * Fully normalized placement state used by freeform editing APIs.
13
- */
14
- export interface ObjectTransformation {
15
- anchor: Vector3;
16
- translation: Vector3;
17
- rotation: Vector3;
18
- scale: Vector3;
19
- }
20
- /**
21
- * Options for building a `FreeformGeometry` wrapper from a BRep-like source.
22
- */
23
- export interface CreateFreeformGeometryOptions {
24
- id?: string;
25
- placement?: FreeformPlacementInput | ObjectTransformation;
26
- }
27
- /**
28
- * Accepted sources for creating a freeform wrapper.
29
- */
30
- export type FreeformSource = string | Record<string, unknown> | {
31
- getLocalBrepSerialized?: () => string;
32
- getLocalBrepData?: () => unknown;
33
- getBrepSerialized?: () => string;
34
- getBrepData?: () => unknown;
35
- getBrep?: () => unknown;
36
- };
@@ -1,4 +0,0 @@
1
- import { CSS2DObject } from "three/examples/jsm/renderers/CSS2DRenderer.js";
2
- export declare class SpotLabel extends CSS2DObject {
3
- constructor();
4
- }
@@ -1,8 +0,0 @@
1
- export type AnalyticGeometryErrorCode = "math" | "invalid_geometry" | "invalid_topology" | "unsupported_geometry" | "ambiguous_profile_alignment" | "coverage_gap" | "singular_parameterization" | "missing_reference" | "unsupported_schema" | "unresolved_intersection" | "unresolved_tessellation" | "limit_exceeded" | "unknown";
2
- export declare class AnalyticGeometryError extends Error {
3
- readonly code: AnalyticGeometryErrorCode;
4
- readonly detail: unknown;
5
- readonly families?: readonly [string, string];
6
- constructor(code: AnalyticGeometryErrorCode, message: string, detail?: unknown);
7
- }
8
- export declare function parseAnalyticGeometryError(raw: unknown): AnalyticGeometryError;
@@ -1,20 +0,0 @@
1
- import type { OffsetRegion } from "./offset-regions.js";
2
- export type PlanarBooleanOperation = "union" | "intersection" | "subtraction";
3
- export type CurvedRegionEdge = {
4
- kind: "line";
5
- from: [number, number];
6
- to: [number, number];
7
- } | {
8
- kind: "arc";
9
- center: [number, number];
10
- radius: number;
11
- start_angle: number;
12
- sweep_angle: number;
13
- };
14
- export interface CurvedRegion2D {
15
- outer: CurvedRegionEdge[];
16
- holes: CurvedRegionEdge[][];
17
- }
18
- export declare function booleanRegions2D(a: readonly OffsetRegion[], b: readonly OffsetRegion[], operation: PlanarBooleanOperation): OffsetRegion[];
19
- /** Analytic line/arc region Boolean; output arcs retain their exact circles. */
20
- export declare function booleanCurvedRegions2D(a: readonly CurvedRegion2D[], b: readonly CurvedRegion2D[], operation: PlanarBooleanOperation): CurvedRegion2D[];
@@ -1,16 +0,0 @@
1
- import * as THREE from "three";
2
- import { AnalyticSolid } from "../shapes/analytic-solid.js";
3
- /** Rendering and tessellation options applied to an analytic boolean result. */
4
- export interface BooleanExecutionOptions {
5
- deflection?: number;
6
- color?: THREE.ColorRepresentation;
7
- opacity?: number;
8
- transparent?: boolean;
9
- side?: THREE.Side;
10
- outline?: boolean;
11
- }
12
- export type BooleanOperand = AnalyticSolid;
13
- export declare function booleanUnion(lhs: AnalyticSolid, rhs: AnalyticSolid, options?: BooleanExecutionOptions): AnalyticSolid;
14
- export declare function booleanIntersection(lhs: AnalyticSolid, rhs: AnalyticSolid, options?: BooleanExecutionOptions): AnalyticSolid;
15
- export declare function booleanSubtraction(lhs: AnalyticSolid, rhs: AnalyticSolid, options?: BooleanExecutionOptions): AnalyticSolid;
16
- export declare function executeBooleanSubtractionMany(lhs: BooleanOperand, cutters: BooleanOperand[], options?: BooleanExecutionOptions): AnalyticSolid;
@@ -1 +0,0 @@
1
- export { FreeformEditor, createFreeformEditor } from "../../editor/freeform.js";
@@ -1 +0,0 @@
1
- export * from "../../editor.js";
@@ -1 +0,0 @@
1
- export { clonePlacement, createParametricEditCapabilities, toObjectTransformation, } from "../../editor/parametric.js";
@@ -1 +0,0 @@
1
- export * from "../../editor/types.js";
@@ -1,9 +0,0 @@
1
- import type { FreeformSource } from "../freeform.js";
2
- /**
3
- * Sources accepted by the BRep-face extrusion helper.
4
- */
5
- export type ExtrudeBrepSource = FreeformSource;
6
- /**
7
- * Extrudes the first face or wire in a local BRep payload into a closed solid BRep.
8
- */
9
- export declare function extrudeBrepFace(source: ExtrudeBrepSource, height: number): string;
@@ -1,9 +0,0 @@
1
- /**
2
- * Kernel-backed boolean helpers and renderable result mesh.
3
- */
4
- export * from "./boolean.js";
5
- export * from "./boolean-regions.js";
6
- export * from "./analytic-errors.js";
7
- export * from "./extrude.js";
8
- export * from "./loft.js";
9
- export * from "./offset-regions.js";
@@ -1,13 +0,0 @@
1
- import * as THREE from "three";
2
- import { AnalyticSolid, type AnalyticPolygonLoftAlignment } from "../shapes/analytic-solid.js";
3
- export type PolygonLoftPoint = readonly [number, number, number];
4
- export interface PolygonLoftOptions {
5
- alignment?: AnalyticPolygonLoftAlignment;
6
- deflection?: number;
7
- color?: THREE.ColorRepresentation;
8
- }
9
- /**
10
- * Creates a capped ruled solid between two planar polygon sections.
11
- * Sections must have equal vertex counts and produce planar side faces.
12
- */
13
- export declare function loftPolygonSections(sections: readonly [readonly PolygonLoftPoint[], readonly PolygonLoftPoint[]], options?: PolygonLoftOptions): AnalyticSolid;