abstract-3d 2.7.29 → 2.7.32

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 (208) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/abstract-3d.d.ts +1 -1
  3. package/lib/abstract-3d.d.ts.map +1 -1
  4. package/lib/abstract-3d.js +20 -12
  5. package/lib/abstract-3d.js.map +1 -1
  6. package/lib/renderers/dxf/dxf-encoding/dxf-3dface.d.ts.map +1 -1
  7. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts +1 -1
  8. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts.map +1 -1
  9. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js +3 -3
  10. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js.map +1 -1
  11. package/lib/renderers/dxf/dxf-encoding/dxf-footer.d.ts.map +1 -1
  12. package/lib/renderers/dxf/dxf-encoding/dxf-header.d.ts.map +1 -1
  13. package/lib/renderers/dxf/dxf-encoding/dxf-header.js.map +1 -1
  14. package/lib/renderers/dxf/dxf-encoding/dxf-lwpolyline.d.ts.map +1 -1
  15. package/lib/renderers/dxf/dxf-encoding/dxf-lwpolyline.js.map +1 -1
  16. package/lib/renderers/dxf/dxf-encoding/dxf-mtext.js.map +1 -1
  17. package/lib/renderers/dxf/dxf-encoding/dxf-solid.d.ts.map +1 -1
  18. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.d.ts.map +1 -1
  19. package/lib/renderers/dxf/dxf-geometries/dxf-image.d.ts +1 -1
  20. package/lib/renderers/dxf/dxf-geometries/dxf-image.d.ts.map +1 -1
  21. package/lib/renderers/dxf/dxf-geometries/dxf-image.js +1 -1
  22. package/lib/renderers/dxf/dxf-geometries/dxf-image.js.map +1 -1
  23. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js.map +1 -1
  24. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js.map +1 -1
  25. package/lib/renderers/dxf/dxf.d.ts.map +1 -1
  26. package/lib/renderers/dxf/dxf.js +9 -5
  27. package/lib/renderers/dxf/dxf.js.map +1 -1
  28. package/lib/renderers/react/react-camera.d.ts +2 -2
  29. package/lib/renderers/react/react-camera.d.ts.map +1 -1
  30. package/lib/renderers/react/react-camera.js +3 -5
  31. package/lib/renderers/react/react-camera.js.map +1 -1
  32. package/lib/renderers/react/react-dimension.d.ts +2 -2
  33. package/lib/renderers/react/react-dimension.d.ts.map +1 -1
  34. package/lib/renderers/react/react-dimension.js +3 -3
  35. package/lib/renderers/react/react-dimension.js.map +1 -1
  36. package/lib/renderers/react/react-group.d.ts +4 -4
  37. package/lib/renderers/react/react-group.d.ts.map +1 -1
  38. package/lib/renderers/react/react-group.js.map +1 -1
  39. package/lib/renderers/react/react-hotspot.d.ts +2 -2
  40. package/lib/renderers/react/react-hotspot.d.ts.map +1 -1
  41. package/lib/renderers/react/react-hotspot.js +1 -1
  42. package/lib/renderers/react/react-hotspot.js.map +1 -1
  43. package/lib/renderers/react/react-image-material.d.ts +2 -2
  44. package/lib/renderers/react/react-image-material.d.ts.map +1 -1
  45. package/lib/renderers/react/react-image-material.js +1 -0
  46. package/lib/renderers/react/react-image-material.js.map +1 -1
  47. package/lib/renderers/react/react-material.d.ts +1 -1
  48. package/lib/renderers/react/react-material.d.ts.map +1 -1
  49. package/lib/renderers/react/react-material.js +1 -0
  50. package/lib/renderers/react/react-material.js.map +1 -1
  51. package/lib/renderers/react/react-mesh.d.ts +1 -1
  52. package/lib/renderers/react/react-mesh.d.ts.map +1 -1
  53. package/lib/renderers/react/react-mesh.js +4 -12
  54. package/lib/renderers/react/react-mesh.js.map +1 -1
  55. package/lib/renderers/react/react-scene.d.ts +5 -5
  56. package/lib/renderers/react/react-scene.d.ts.map +1 -1
  57. package/lib/renderers/react/react-scene.js +1 -0
  58. package/lib/renderers/react/react-scene.js.map +1 -1
  59. package/lib/renderers/react/react-types.d.ts +1 -1
  60. package/lib/renderers/react/react-types.d.ts.map +1 -1
  61. package/lib/renderers/react/react.d.ts +5 -5
  62. package/lib/renderers/react/react.d.ts.map +1 -1
  63. package/lib/renderers/react/react.js +1 -1
  64. package/lib/renderers/react/react.js.map +1 -1
  65. package/lib/renderers/step/step-encoding.d.ts +1 -1
  66. package/lib/renderers/step/step-encoding.d.ts.map +1 -1
  67. package/lib/renderers/step/step-encoding.js.map +1 -1
  68. package/lib/renderers/step/step-geometries/step-box.d.ts +2 -2
  69. package/lib/renderers/step/step-geometries/step-box.d.ts.map +1 -1
  70. package/lib/renderers/step/step-geometries/step-box.js.map +1 -1
  71. package/lib/renderers/step/step-geometries/step-cone.d.ts +2 -2
  72. package/lib/renderers/step/step-geometries/step-cone.d.ts.map +1 -1
  73. package/lib/renderers/step/step-geometries/step-cone.js +0 -1
  74. package/lib/renderers/step/step-geometries/step-cone.js.map +1 -1
  75. package/lib/renderers/step/step-geometries/step-cylinder.d.ts +2 -2
  76. package/lib/renderers/step/step-geometries/step-cylinder.d.ts.map +1 -1
  77. package/lib/renderers/step/step-geometries/step-cylinder.js +8 -23
  78. package/lib/renderers/step/step-geometries/step-cylinder.js.map +1 -1
  79. package/lib/renderers/step/step-geometries/step-plane.d.ts +2 -2
  80. package/lib/renderers/step/step-geometries/step-plane.d.ts.map +1 -1
  81. package/lib/renderers/step/step-geometries/step-plane.js +1 -1
  82. package/lib/renderers/step/step-geometries/step-plane.js.map +1 -1
  83. package/lib/renderers/step/step.d.ts +1 -1
  84. package/lib/renderers/step/step.d.ts.map +1 -1
  85. package/lib/renderers/step/step.js +1 -1
  86. package/lib/renderers/step/step.js.map +1 -1
  87. package/lib/renderers/stl/stl-encoding.d.ts +1 -1
  88. package/lib/renderers/stl/stl-encoding.d.ts.map +1 -1
  89. package/lib/renderers/stl/stl-encoding.js.map +1 -1
  90. package/lib/renderers/stl/stl-geometries/stl-box.d.ts +1 -1
  91. package/lib/renderers/stl/stl-geometries/stl-box.d.ts.map +1 -1
  92. package/lib/renderers/stl/stl-geometries/stl-box.js.map +1 -1
  93. package/lib/renderers/stl/stl-geometries/stl-cone.d.ts +1 -1
  94. package/lib/renderers/stl/stl-geometries/stl-cone.d.ts.map +1 -1
  95. package/lib/renderers/stl/stl-geometries/stl-cone.js.map +1 -1
  96. package/lib/renderers/stl/stl-geometries/stl-cylinder.d.ts +1 -1
  97. package/lib/renderers/stl/stl-geometries/stl-cylinder.d.ts.map +1 -1
  98. package/lib/renderers/stl/stl-geometries/stl-cylinder.js +1 -1
  99. package/lib/renderers/stl/stl-geometries/stl-cylinder.js.map +1 -1
  100. package/lib/renderers/stl/stl-geometries/stl-plane.d.ts +1 -1
  101. package/lib/renderers/stl/stl-geometries/stl-plane.d.ts.map +1 -1
  102. package/lib/renderers/stl/stl-geometries/stl-plane.js +1 -1
  103. package/lib/renderers/stl/stl-geometries/stl-plane.js.map +1 -1
  104. package/lib/renderers/stl/stl-geometries/stl-polygon.d.ts +1 -1
  105. package/lib/renderers/stl/stl-geometries/stl-polygon.d.ts.map +1 -1
  106. package/lib/renderers/stl/stl-geometries/stl-polygon.js.map +1 -1
  107. package/lib/renderers/stl/stl-geometries/stl-shape.d.ts +1 -1
  108. package/lib/renderers/stl/stl-geometries/stl-shape.d.ts.map +1 -1
  109. package/lib/renderers/stl/stl-geometries/stl-shape.js.map +1 -1
  110. package/lib/renderers/stl/stl.d.ts +1 -1
  111. package/lib/renderers/stl/stl.d.ts.map +1 -1
  112. package/lib/renderers/stl/stl.js.map +1 -1
  113. package/lib/renderers/svg/index.js +1 -0
  114. package/lib/renderers/svg/index.js.map +1 -1
  115. package/lib/renderers/svg/svg-encoding.d.ts +3 -3
  116. package/lib/renderers/svg/svg-encoding.d.ts.map +1 -1
  117. package/lib/renderers/svg/svg-encoding.js +6 -15
  118. package/lib/renderers/svg/svg-encoding.js.map +1 -1
  119. package/lib/renderers/svg/svg-geometries/shared.d.ts +1 -1
  120. package/lib/renderers/svg/svg-geometries/shared.d.ts.map +1 -1
  121. package/lib/renderers/svg/svg-geometries/shared.js.map +1 -1
  122. package/lib/renderers/svg/svg-geometries/svg-box.d.ts +2 -2
  123. package/lib/renderers/svg/svg-geometries/svg-box.d.ts.map +1 -1
  124. package/lib/renderers/svg/svg-geometries/svg-box.js +1 -1
  125. package/lib/renderers/svg/svg-geometries/svg-box.js.map +1 -1
  126. package/lib/renderers/svg/svg-geometries/svg-cone.d.ts +2 -2
  127. package/lib/renderers/svg/svg-geometries/svg-cone.d.ts.map +1 -1
  128. package/lib/renderers/svg/svg-geometries/svg-cone.js +1 -1
  129. package/lib/renderers/svg/svg-geometries/svg-cone.js.map +1 -1
  130. package/lib/renderers/svg/svg-geometries/svg-cylinder.d.ts +2 -2
  131. package/lib/renderers/svg/svg-geometries/svg-cylinder.d.ts.map +1 -1
  132. package/lib/renderers/svg/svg-geometries/svg-cylinder.js +1 -1
  133. package/lib/renderers/svg/svg-geometries/svg-cylinder.js.map +1 -1
  134. package/lib/renderers/svg/svg-geometries/svg-image.d.ts +2 -2
  135. package/lib/renderers/svg/svg-geometries/svg-image.d.ts.map +1 -1
  136. package/lib/renderers/svg/svg-geometries/svg-image.js +1 -1
  137. package/lib/renderers/svg/svg-geometries/svg-image.js.map +1 -1
  138. package/lib/renderers/svg/svg-geometries/svg-line.d.ts +2 -2
  139. package/lib/renderers/svg/svg-geometries/svg-line.d.ts.map +1 -1
  140. package/lib/renderers/svg/svg-geometries/svg-line.js.map +1 -1
  141. package/lib/renderers/svg/svg-geometries/svg-plane.d.ts +2 -2
  142. package/lib/renderers/svg/svg-geometries/svg-plane.d.ts.map +1 -1
  143. package/lib/renderers/svg/svg-geometries/svg-plane.js +1 -1
  144. package/lib/renderers/svg/svg-geometries/svg-plane.js.map +1 -1
  145. package/lib/renderers/svg/svg-geometries/svg-polygon.d.ts +2 -2
  146. package/lib/renderers/svg/svg-geometries/svg-polygon.d.ts.map +1 -1
  147. package/lib/renderers/svg/svg-geometries/svg-polygon.js +1 -1
  148. package/lib/renderers/svg/svg-geometries/svg-polygon.js.map +1 -1
  149. package/lib/renderers/svg/svg-geometries/svg-shape.d.ts +2 -2
  150. package/lib/renderers/svg/svg-geometries/svg-shape.d.ts.map +1 -1
  151. package/lib/renderers/svg/svg-geometries/svg-shape.js +1 -1
  152. package/lib/renderers/svg/svg-geometries/svg-shape.js.map +1 -1
  153. package/lib/renderers/svg/svg-geometries/svg-text.d.ts +2 -2
  154. package/lib/renderers/svg/svg-geometries/svg-text.d.ts.map +1 -1
  155. package/lib/renderers/svg/svg-geometries/svg-text.js.map +1 -1
  156. package/lib/renderers/svg/svg.d.ts +3 -3
  157. package/lib/renderers/svg/svg.d.ts.map +1 -1
  158. package/lib/renderers/svg/svg.js.map +1 -1
  159. package/lib/utils.d.ts +1 -1
  160. package/lib/utils.d.ts.map +1 -1
  161. package/lib/utils.js +0 -1
  162. package/lib/utils.js.map +1 -1
  163. package/package.json +3 -3
  164. package/src/abstract-3d.ts +91 -91
  165. package/src/custom_typings/react-three-fiber.d.ts +1 -1
  166. package/src/renderers/dxf/dxf-encoding/dxf-dimension.ts +57 -13
  167. package/src/renderers/dxf/dxf-encoding/dxf-lwpolyline.ts +1 -1
  168. package/src/renderers/dxf/dxf-geometries/dxf-image.ts +9 -9
  169. package/src/renderers/dxf/dxf.ts +67 -16
  170. package/src/renderers/react/react-camera.tsx +3 -4
  171. package/src/renderers/react/react-dimension.tsx +5 -5
  172. package/src/renderers/react/react-group.tsx +6 -4
  173. package/src/renderers/react/react-hotspot.tsx +3 -2
  174. package/src/renderers/react/react-image-material.tsx +3 -2
  175. package/src/renderers/react/react-material.tsx +1 -1
  176. package/src/renderers/react/react-mesh.tsx +28 -39
  177. package/src/renderers/react/react-scene.tsx +6 -5
  178. package/src/renderers/react/react-types.ts +1 -1
  179. package/src/renderers/react/react.tsx +7 -6
  180. package/src/renderers/step/step-encoding.ts +43 -44
  181. package/src/renderers/step/step-geometries/step-box.ts +3 -8
  182. package/src/renderers/step/step-geometries/step-cone.ts +3 -14
  183. package/src/renderers/step/step-geometries/step-cylinder.ts +49 -251
  184. package/src/renderers/step/step-geometries/step-plane.ts +4 -11
  185. package/src/renderers/step/step.ts +3 -19
  186. package/src/renderers/stl/stl-encoding.ts +2 -1
  187. package/src/renderers/stl/stl-geometries/stl-box.ts +2 -1
  188. package/src/renderers/stl/stl-geometries/stl-cone.ts +2 -1
  189. package/src/renderers/stl/stl-geometries/stl-cylinder.ts +3 -2
  190. package/src/renderers/stl/stl-geometries/stl-plane.ts +2 -10
  191. package/src/renderers/stl/stl-geometries/stl-polygon.ts +2 -1
  192. package/src/renderers/stl/stl-geometries/stl-shape.ts +2 -1
  193. package/src/renderers/stl/stl.ts +2 -1
  194. package/src/renderers/svg/svg-encoding.ts +7 -31
  195. package/src/renderers/svg/svg-geometries/shared.ts +2 -1
  196. package/src/renderers/svg/svg-geometries/svg-box.ts +4 -13
  197. package/src/renderers/svg/svg-geometries/svg-cone.ts +4 -13
  198. package/src/renderers/svg/svg-geometries/svg-cylinder.ts +4 -13
  199. package/src/renderers/svg/svg-geometries/svg-image.ts +6 -12
  200. package/src/renderers/svg/svg-geometries/svg-line.ts +4 -2
  201. package/src/renderers/svg/svg-geometries/svg-plane.ts +4 -14
  202. package/src/renderers/svg/svg-geometries/svg-polygon.ts +4 -11
  203. package/src/renderers/svg/svg-geometries/svg-shape.ts +4 -12
  204. package/src/renderers/svg/svg-geometries/svg-text.ts +6 -8
  205. package/src/renderers/svg/svg.ts +13 -17
  206. package/src/utils.ts +22 -27
  207. package/src/.DS_Store +0 -0
  208. package/src/renderers/.DS_Store +0 -0
@@ -1,6 +1,6 @@
1
- import { Vec2, Vec3 } from "../../abstract-3d.js";
1
+ import type { Vec2, Vec3 } from "../../abstract-3d.js";
2
2
 
3
- export type MutableStep = { refs: Map<string, number>; step: string; geoContext3d: number; };
3
+ export type MutableStep = { refs: Map<string, number>; step: string; geoContext3d: number };
4
4
 
5
5
  export const STEP_NUMBER_EPSILON: number = 1e-5;
6
6
 
@@ -19,17 +19,17 @@ const mutate = (step: string, m: MutableStep): number => {
19
19
 
20
20
  const stepNumber = (num: number): number => {
21
21
  const absNum = Math.abs(num);
22
- if(absNum < STEP_NUMBER_EPSILON) {
22
+ if (absNum < STEP_NUMBER_EPSILON) {
23
23
  return 0.0;
24
24
  }
25
25
 
26
26
  const roundNum = Math.round(num);
27
- if(Math.abs(absNum - Math.abs(roundNum)) < STEP_NUMBER_EPSILON) {
27
+ if (Math.abs(absNum - Math.abs(roundNum)) < STEP_NUMBER_EPSILON) {
28
28
  return roundNum;
29
29
  }
30
30
 
31
31
  return num;
32
- }
32
+ };
33
33
 
34
34
  export const HEADER = (date: string): string =>
35
35
  `ISO-10303-21;
@@ -114,8 +114,12 @@ export const PCURVE = (
114
114
  export const CYLINDRICAL_SURFACE = (AXIS2_PLACEMENT_3D: number, radius: number, m: MutableStep): number =>
115
115
  mutate(`CYLINDRICAL_SURFACE('',#${AXIS2_PLACEMENT_3D},${stepNumber(radius)})`, m);
116
116
 
117
- export const CONICAL_SURFACE = (AXIS2_PLACEMENT_3D: number, radius: number, semiAngle: number, m: MutableStep): number =>
118
- mutate(`CONICAL_SURFACE('',#${AXIS2_PLACEMENT_3D},${stepNumber(radius)},${stepNumber(semiAngle)})`, m);
117
+ export const CONICAL_SURFACE = (
118
+ AXIS2_PLACEMENT_3D: number,
119
+ radius: number,
120
+ semiAngle: number,
121
+ m: MutableStep
122
+ ): number => mutate(`CONICAL_SURFACE('',#${AXIS2_PLACEMENT_3D},${stepNumber(radius)},${stepNumber(semiAngle)})`, m);
119
123
 
120
124
  export const DEFINITIONAL_REPRESENTATION = (LINEorCircle: number, m: MutableStep): number =>
121
125
  mutate(`DEFINITIONAL_REPRESENTATION('',(#${LINEorCircle}),#7)`, m);
@@ -126,16 +130,21 @@ export const SHELL_BASED_SURFACE_MODEL = (OPEN_SHELL: number, m: MutableStep): n
126
130
  export const MANIFOLD_SURFACE_SHAPE_REPRESENTATION = (
127
131
  AXIS2_PLACEMENT_3D: number,
128
132
  CLOSED_SHELL: number,
129
- GEOMETRY_CONTEXT: number,
133
+ GEOMETRY_CONTEXT: number,
130
134
  m: MutableStep
131
- ): number => mutate(`MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#${AXIS2_PLACEMENT_3D},#${CLOSED_SHELL}),#${GEOMETRY_CONTEXT})`, m);
135
+ ): number =>
136
+ mutate(`MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#${AXIS2_PLACEMENT_3D},#${CLOSED_SHELL}),#${GEOMETRY_CONTEXT})`, m);
132
137
 
133
138
  export const ADVANCED_BREP_SHAPE_REPRESENTATION = (
134
139
  AXIS2_PLACEMENT_3D: number,
135
140
  MANIFOLD_SOLID_BREP: number,
136
141
  GEOMETRY_CONTEXT: number,
137
142
  m: MutableStep
138
- ): number => mutate(`ADVANCED_BREP_SHAPE_REPRESENTATION('',(#${AXIS2_PLACEMENT_3D},#${MANIFOLD_SOLID_BREP}),#${GEOMETRY_CONTEXT})`, m);
143
+ ): number =>
144
+ mutate(
145
+ `ADVANCED_BREP_SHAPE_REPRESENTATION('',(#${AXIS2_PLACEMENT_3D},#${MANIFOLD_SOLID_BREP}),#${GEOMETRY_CONTEXT})`,
146
+ m
147
+ );
139
148
 
140
149
  export const CLOSED_SHELL = (ADVANCED_FACE: ReadonlyArray<number>, m: MutableStep): number =>
141
150
  mutate(`CLOSED_SHELL('',(${ADVANCED_FACE.map((af) => `#${af}`).join(",")}))`, m);
@@ -153,7 +162,11 @@ export const AXIS2_PLACEMENT_3D = (
153
162
  m: MutableStep
154
163
  ): number => mutate(`AXIS2_PLACEMENT_3D('',#${CARTESIAN_POINT},#${DIRECTION_NORMAL},#${DIRECTION_PLANE_DIRECITON})`, m);
155
164
 
156
- export const MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION = (STYLED_ITEM: number, GEOMETRY_CONTEXT: number, m: MutableStep): number =>
165
+ export const MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION = (
166
+ STYLED_ITEM: number,
167
+ GEOMETRY_CONTEXT: number,
168
+ m: MutableStep
169
+ ): number =>
157
170
  mutate(`MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#${STYLED_ITEM}),#${GEOMETRY_CONTEXT})`, m);
158
171
 
159
172
  export const STYLED_ITEM = (
@@ -231,51 +244,37 @@ export const UNCERTAINTY_MEASURE_WITH_UNIT = (LENGTH_UNIT: number, m: MutableSte
231
244
  );
232
245
 
233
246
  export const APPLICATION_PROTOCOL_DEFINITION = (APPLICATION_CONTEXT: number, m: MutableStep): number =>
234
- mutate(`APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2000,#${APPLICATION_CONTEXT})`, m);
247
+ mutate(
248
+ `APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2000,#${APPLICATION_CONTEXT})`,
249
+ m
250
+ );
235
251
 
236
252
  export const APPLICATION_CONTEXT = (m: MutableStep): number =>
237
253
  mutate(`APPLICATION_CONTEXT('core data for automotive mechanical design processes')`, m);
238
254
 
239
-
240
- export const SHAPE_DEFINITION_REPRESENTATION = (productDefinitionShape: number, manifoldSurfaceShapeRepr: number, m: MutableStep): number =>
241
- mutate(
242
- `SHAPE_DEFINITION_REPRESENTATION(#${productDefinitionShape},#${manifoldSurfaceShapeRepr})`,
243
- m
244
- );
255
+ export const SHAPE_DEFINITION_REPRESENTATION = (
256
+ productDefinitionShape: number,
257
+ manifoldSurfaceShapeRepr: number,
258
+ m: MutableStep
259
+ ): number => mutate(`SHAPE_DEFINITION_REPRESENTATION(#${productDefinitionShape},#${manifoldSurfaceShapeRepr})`, m);
245
260
 
246
261
  export const PRODUCT_DEFINITION_SHAPE = (productDefinition: number, m: MutableStep): number =>
247
- mutate(
248
- `PRODUCT_DEFINITION_SHAPE('','',#${productDefinition})`,
249
- m
250
- )
262
+ mutate(`PRODUCT_DEFINITION_SHAPE('','',#${productDefinition})`, m);
251
263
 
252
- export const PRODUCT_DEFINITION = (productDefinitionFormation: number, productDefinitionContext: number, m: MutableStep): number =>
253
- mutate(
254
- `PRODUCT_DEFINITION('design',#${productDefinitionFormation},#${productDefinitionContext})`,
255
- m
256
- )
264
+ export const PRODUCT_DEFINITION = (
265
+ productDefinitionFormation: number,
266
+ productDefinitionContext: number,
267
+ m: MutableStep
268
+ ): number => mutate(`PRODUCT_DEFINITION('design',#${productDefinitionFormation},#${productDefinitionContext})`, m);
257
269
 
258
270
  export const PRODUCT_DEFINITION_FORMATION = (product: number, m: MutableStep): number =>
259
- mutate(
260
- `PRODUCT_DEFINITION_FORMATION('','',#${product})`,
261
- m
262
- )
271
+ mutate(`PRODUCT_DEFINITION_FORMATION('','',#${product})`, m);
263
272
 
264
273
  export const PRODUCT = (productContext: number, name: string, m: MutableStep): number =>
265
- mutate(
266
- `PRODUCT('${name}','${name}','',(#${productContext}))`,
267
- m
268
- )
274
+ mutate(`PRODUCT('${name}','${name}','',(#${productContext}))`, m);
269
275
 
270
276
  export const PRODUCT_CONTEXT = (applicationContext: number, m: MutableStep): number =>
271
- mutate(
272
- `PRODUCT_CONTEXT('',#${applicationContext},'mechanical')`,
273
- m
274
- )
277
+ mutate(`PRODUCT_CONTEXT('',#${applicationContext},'mechanical')`, m);
275
278
 
276
279
  export const PRODUCT_DEFINITION_CONTEXT = (applicationContext: number, m: MutableStep): number =>
277
- mutate(
278
- `PRODUCT_DEFINITION_CONTEXT('part definition',#${applicationContext},'design')`,
279
- m
280
- )
281
-
280
+ mutate(`PRODUCT_DEFINITION_CONTEXT('part definition',#${applicationContext},'design')`, m);
@@ -1,7 +1,5 @@
1
+ import type { Box, Material, Vec3 } from "../../../abstract-3d.js";
1
2
  import {
2
- Box,
3
- Material,
4
- Vec3,
5
3
  vec3Scale,
6
4
  vec3TransRot,
7
5
  vec3RotCombine,
@@ -11,14 +9,13 @@ import {
11
9
  vec3Sub,
12
10
  vec3Add,
13
11
  vec3Rot,
14
- vec3Length,
15
12
  } from "../../../abstract-3d.js";
16
13
  import { parseRgb } from "../../../utils.js";
14
+ import type { MutableStep } from "../step-encoding.js";
17
15
  import {
18
16
  ADVANCED_BREP_SHAPE_REPRESENTATION,
19
17
  ADVANCED_FACE,
20
18
  APPLICATION_CONTEXT,
21
- APPLICATION_PROTOCOL_DEFINITION,
22
19
  AXIS2_PLACEMENT_3D,
23
20
  CARTESIAN_POINT,
24
21
  CLOSED_SHELL,
@@ -34,7 +31,6 @@ import {
34
31
  LINE,
35
32
  MANIFOLD_SOLID_BREP,
36
33
  MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION,
37
- MutableStep,
38
34
  ORIENTED_EDGE,
39
35
  PLANE,
40
36
  PRESENTATION_STYLE_ASSIGNMENT,
@@ -45,7 +41,6 @@ import {
45
41
  PRODUCT_DEFINITION_FORMATION,
46
42
  PRODUCT_DEFINITION_SHAPE,
47
43
  SHAPE_DEFINITION_REPRESENTATION,
48
- STEP_NUMBER_EPSILON,
49
44
  STYLED_ITEM,
50
45
  SURFACE_SIDE_STYLE,
51
46
  SURFACE_STYLE_FILL_AREA,
@@ -62,7 +57,7 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
62
57
  const color = parseRgb(mat.normal);
63
58
  const rotate = (v: Vec3): Vec3 => vec3Rot(v, vec3Zero, rotation);
64
59
 
65
- if(size.x === 0.0 || size.y === 0.0 || size.z === 0.0) {
60
+ if (size.x === 0.0 || size.y === 0.0 || size.z === 0.0) {
66
61
  return;
67
62
  }
68
63
 
@@ -1,18 +1,7 @@
1
- import {
2
- Material,
3
- Vec3,
4
- vec3,
5
- Cone,
6
- Cylinder,
7
- } from "../../../abstract-3d.js";
8
- import {
9
- MutableStep,
10
- } from "../step-encoding.js";
11
- import { stepBox } from "./step-box.js";
1
+ import type { Material, Vec3, Cone, Cylinder } from "../../../abstract-3d.js";
2
+ import type { MutableStep } from "../step-encoding.js";
12
3
  import { stepCylinder } from "./step-cylinder.js";
13
4
 
14
- const PLANE_THICKNESS = 1e-4;
15
-
16
5
  export function stepCone(c: Cone, mat: Material, parentPos: Vec3, parentRot: Vec3, m: MutableStep): void {
17
6
  //convert it into a box
18
7
  const cylinder: Cylinder = {
@@ -23,4 +12,4 @@ export function stepCone(c: Cone, mat: Material, parentPos: Vec3, parentRot: Vec
23
12
  radius: c.radius,
24
13
  };
25
14
  stepCylinder(cylinder, mat, parentPos, parentRot, m, 0.0);
26
- }
15
+ }
@@ -1,15 +1,7 @@
1
- import {
2
- Material,
3
- Vec3,
4
- vec3TransRot,
5
- vec3RotCombine,
6
- vec3Zero,
7
- vec3,
8
- Cylinder,
9
- vec3Add,
10
- vec3Rot,
11
- } from "../../../abstract-3d.js";
1
+ import type { Material, Vec3, Cylinder } from "../../../abstract-3d.js";
2
+ import { vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3Add, vec3Rot } from "../../../abstract-3d.js";
12
3
  import { parseRgb } from "../../../utils.js";
4
+ import type { MutableStep } from "../step-encoding.js";
13
5
  import {
14
6
  ADVANCED_BREP_SHAPE_REPRESENTATION,
15
7
  ADVANCED_FACE,
@@ -32,7 +24,6 @@ import {
32
24
  LINE,
33
25
  MANIFOLD_SOLID_BREP,
34
26
  MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION,
35
- MutableStep,
36
27
  ORIENTED_EDGE,
37
28
  PLANE,
38
29
  PRESENTATION_STYLE_ASSIGNMENT,
@@ -69,53 +60,29 @@ export function stepCylinder(
69
60
  }
70
61
 
71
62
  const bottomRadius = Math.max(c.radius, SMALLEST_RADIUS);
72
- const requestedTopRadius = Math.max(
73
- rSmall ?? c.radius,
74
- SMALLEST_RADIUS
75
- );
63
+ const requestedTopRadius = Math.max(rSmall ?? c.radius, SMALLEST_RADIUS);
76
64
 
77
- const radiusTolerance =
78
- GEOMETRY_EPSILON *
79
- Math.max(1, bottomRadius, requestedTopRadius);
65
+ const radiusTolerance = GEOMETRY_EPSILON * Math.max(1, bottomRadius, requestedTopRadius);
80
66
 
81
- const isCylinder =
82
- Math.abs(requestedTopRadius - bottomRadius) <= radiusTolerance;
67
+ const isCylinder = Math.abs(requestedTopRadius - bottomRadius) <= radiusTolerance;
83
68
 
84
- const topRadius = isCylinder
85
- ? bottomRadius
86
- : requestedTopRadius;
69
+ const topRadius = isCylinder ? bottomRadius : requestedTopRadius;
87
70
 
88
71
  const pos = vec3TransRot(c.pos, parentPos, parentRot);
89
- const rotation = vec3RotCombine(
90
- parentRot,
91
- c.rot ?? vec3Zero
92
- );
72
+ const rotation = vec3RotCombine(parentRot, c.rot ?? vec3Zero);
93
73
 
94
- const rot = (v: Vec3): Vec3 =>
95
- vec3Rot(v, vec3Zero, rotation);
74
+ const rot = (v: Vec3): Vec3 => vec3Rot(v, vec3Zero, rotation);
96
75
 
97
76
  const axis = rot(vec3(0, 1, 0));
98
77
  const radial = rot(vec3(1, 0, 0));
99
78
 
100
- const bottomCenter = vec3Add(
101
- pos,
102
- rot(vec3(0, -h / 2, 0))
103
- );
79
+ const bottomCenter = vec3Add(pos, rot(vec3(0, -h / 2, 0)));
104
80
 
105
- const topCenter = vec3Add(
106
- pos,
107
- rot(vec3(0, h / 2, 0))
108
- );
81
+ const topCenter = vec3Add(pos, rot(vec3(0, h / 2, 0)));
109
82
 
110
- const bottomSeamPoint = vec3Add(
111
- pos,
112
- rot(vec3(bottomRadius, -h / 2, 0))
113
- );
83
+ const bottomSeamPoint = vec3Add(pos, rot(vec3(bottomRadius, -h / 2, 0)));
114
84
 
115
- const topSeamPoint = vec3Add(
116
- pos,
117
- rot(vec3(topRadius, h / 2, 0))
118
- );
85
+ const topSeamPoint = vec3Add(pos, rot(vec3(topRadius, h / 2, 0)));
119
86
 
120
87
  const seamDelta = vec3(
121
88
  topSeamPoint.x - bottomSeamPoint.x,
@@ -123,154 +90,63 @@ export function stepCylinder(
123
90
  topSeamPoint.z - bottomSeamPoint.z
124
91
  );
125
92
 
126
- const seamLength = Math.hypot(
127
- seamDelta.x,
128
- seamDelta.y,
129
- seamDelta.z
130
- );
93
+ const seamLength = Math.hypot(seamDelta.x, seamDelta.y, seamDelta.z);
131
94
 
132
95
  if (seamLength <= GEOMETRY_EPSILON) {
133
96
  return;
134
97
  }
135
98
 
136
- const seamDirection = vec3(
137
- seamDelta.x / seamLength,
138
- seamDelta.y / seamLength,
139
- seamDelta.z / seamLength
140
- );
99
+ const seamDirection = vec3(seamDelta.x / seamLength, seamDelta.y / seamLength, seamDelta.z / seamLength);
141
100
 
142
101
  const applicationContext = APPLICATION_CONTEXT(m);
143
- APPLICATION_PROTOCOL_DEFINITION(
144
- applicationContext,
145
- m
146
- );
102
+ APPLICATION_PROTOCOL_DEFINITION(applicationContext, m);
147
103
 
148
104
  const axisDirection = DIRECTION(axis, m);
149
105
  const radialDirection = DIRECTION(radial, m);
150
106
 
151
- const bottomCenterPoint = CARTESIAN_POINT(
152
- bottomCenter,
153
- m
154
- );
107
+ const bottomCenterPoint = CARTESIAN_POINT(bottomCenter, m);
155
108
 
156
- const topCenterPoint = CARTESIAN_POINT(
157
- topCenter,
158
- m
159
- );
109
+ const topCenterPoint = CARTESIAN_POINT(topCenter, m);
160
110
 
161
- const bottomSeamCartesianPoint = CARTESIAN_POINT(
162
- bottomSeamPoint,
163
- m
164
- );
111
+ const bottomSeamCartesianPoint = CARTESIAN_POINT(bottomSeamPoint, m);
165
112
 
166
- const topSeamCartesianPoint = CARTESIAN_POINT(
167
- topSeamPoint,
168
- m
169
- );
113
+ const topSeamCartesianPoint = CARTESIAN_POINT(topSeamPoint, m);
170
114
 
171
- const bottomVertex = VERTEX_POINT(
172
- bottomSeamCartesianPoint,
173
- m
174
- );
115
+ const bottomVertex = VERTEX_POINT(bottomSeamCartesianPoint, m);
175
116
 
176
- const topVertex = VERTEX_POINT(
177
- topSeamCartesianPoint,
178
- m
179
- );
117
+ const topVertex = VERTEX_POINT(topSeamCartesianPoint, m);
180
118
 
181
- const bottomPlacement = AXIS2_PLACEMENT_3D(
182
- bottomCenterPoint,
183
- axisDirection,
184
- radialDirection,
185
- m
186
- );
119
+ const bottomPlacement = AXIS2_PLACEMENT_3D(bottomCenterPoint, axisDirection, radialDirection, m);
187
120
 
188
- const topPlacement = AXIS2_PLACEMENT_3D(
189
- topCenterPoint,
190
- axisDirection,
191
- radialDirection,
192
- m
193
- );
121
+ const topPlacement = AXIS2_PLACEMENT_3D(topCenterPoint, axisDirection, radialDirection, m);
194
122
 
195
123
  const seamEdge = EDGE_CURVE(
196
124
  bottomVertex,
197
125
  topVertex,
198
- LINE(
199
- bottomSeamCartesianPoint,
200
- VECTOR(
201
- DIRECTION(seamDirection, m),
202
- m
203
- ),
204
- m
205
- ),
126
+ LINE(bottomSeamCartesianPoint, VECTOR(DIRECTION(seamDirection, m), m), m),
206
127
  m,
207
128
  "T"
208
129
  );
209
130
 
210
- const bottomCircleEdge = EDGE_CURVE(
211
- bottomVertex,
212
- bottomVertex,
213
- CIRCLE(
214
- bottomPlacement,
215
- bottomRadius,
216
- m
217
- ),
218
- m,
219
- "T"
220
- );
131
+ const bottomCircleEdge = EDGE_CURVE(bottomVertex, bottomVertex, CIRCLE(bottomPlacement, bottomRadius, m), m, "T");
221
132
 
222
- const topCircleEdge = EDGE_CURVE(
223
- topVertex,
224
- topVertex,
225
- CIRCLE(
226
- topPlacement,
227
- topRadius,
228
- m
229
- ),
230
- m,
231
- "T"
232
- );
133
+ const topCircleEdge = EDGE_CURVE(topVertex, topVertex, CIRCLE(topPlacement, topRadius, m), m, "T");
233
134
 
234
- const growsTowardTop =
235
- topRadius >= bottomRadius;
135
+ const growsTowardTop = topRadius >= bottomRadius;
236
136
 
237
- const coneAxis = growsTowardTop
238
- ? axis
239
- : vec3(-axis.x, -axis.y, -axis.z);
137
+ const coneAxis = growsTowardTop ? axis : vec3(-axis.x, -axis.y, -axis.z);
240
138
 
241
- const coneLocation = growsTowardTop
242
- ? bottomCenterPoint
243
- : topCenterPoint;
139
+ const coneLocation = growsTowardTop ? bottomCenterPoint : topCenterPoint;
244
140
 
245
- const coneStartRadius = Math.min(
246
- bottomRadius,
247
- topRadius
248
- );
141
+ const coneStartRadius = Math.min(bottomRadius, topRadius);
249
142
 
250
- const semiAngle = Math.atan2(
251
- Math.abs(topRadius - bottomRadius),
252
- h
253
- );
143
+ const semiAngle = Math.atan2(Math.abs(topRadius - bottomRadius), h);
254
144
 
255
- const conePlacement = AXIS2_PLACEMENT_3D(
256
- coneLocation,
257
- DIRECTION(coneAxis, m),
258
- radialDirection,
259
- m
260
- );
145
+ const conePlacement = AXIS2_PLACEMENT_3D(coneLocation, DIRECTION(coneAxis, m), radialDirection, m);
261
146
 
262
147
  const sideSurface = isCylinder
263
- ? CYLINDRICAL_SURFACE(
264
- bottomPlacement,
265
- bottomRadius,
266
- m
267
- )
268
- : CONICAL_SURFACE(
269
- conePlacement,
270
- coneStartRadius,
271
- semiAngle,
272
- m
273
- );
148
+ ? CYLINDRICAL_SURFACE(bottomPlacement, bottomRadius, m)
149
+ : CONICAL_SURFACE(conePlacement, coneStartRadius, semiAngle, m);
274
150
 
275
151
  const sideFace = ADVANCED_FACE(
276
152
  FACE_BOUND(
@@ -292,124 +168,46 @@ export function stepCylinder(
292
168
  );
293
169
 
294
170
  const bottomFace = ADVANCED_FACE(
295
- FACE_BOUND(
296
- EDGE_LOOP(
297
- [
298
- ORIENTED_EDGE(
299
- bottomCircleEdge,
300
- m,
301
- "F"
302
- ),
303
- ],
304
- m
305
- ),
306
- "T",
307
- m
308
- ),
171
+ FACE_BOUND(EDGE_LOOP([ORIENTED_EDGE(bottomCircleEdge, m, "F")], m), "T", m),
309
172
  PLANE(bottomPlacement, m),
310
173
  m,
311
174
  "F"
312
175
  );
313
176
 
314
177
  const topFace = ADVANCED_FACE(
315
- FACE_BOUND(
316
- EDGE_LOOP(
317
- [
318
- ORIENTED_EDGE(
319
- topCircleEdge,
320
- m,
321
- "F"
322
- ),
323
- ],
324
- m
325
- ),
326
- "F",
327
- m
328
- ),
178
+ FACE_BOUND(EDGE_LOOP([ORIENTED_EDGE(topCircleEdge, m, "F")], m), "F", m),
329
179
  PLANE(topPlacement, m),
330
180
  m,
331
181
  "T"
332
182
  );
333
183
 
334
- const msb = MANIFOLD_SOLID_BREP(
335
- CLOSED_SHELL(
336
- [
337
- sideFace,
338
- bottomFace,
339
- topFace,
340
- ],
341
- m
342
- ),
343
- m
344
- );
345
-
346
- const absp =
347
- ADVANCED_BREP_SHAPE_REPRESENTATION(
348
- AXIS2_PLACEMENT_3D(
349
- CARTESIAN_POINT(vec3Zero, m),
350
- DIRECTION(vec3(0, 0, 1), m),
351
- DIRECTION(vec3(1, 0, 0), m),
352
- m
353
- ),
354
- msb,
355
- m.geoContext3d,
356
- m
357
- );
184
+ const msb = MANIFOLD_SOLID_BREP(CLOSED_SHELL([sideFace, bottomFace, topFace], m), m);
358
185
 
359
- const prod = PRODUCT(
360
- PRODUCT_CONTEXT(applicationContext, m),
361
- isCylinder ? "Cylinder" : "Cone",
186
+ const absp = ADVANCED_BREP_SHAPE_REPRESENTATION(
187
+ AXIS2_PLACEMENT_3D(CARTESIAN_POINT(vec3Zero, m), DIRECTION(vec3(0, 0, 1), m), DIRECTION(vec3(1, 0, 0), m), m),
188
+ msb,
189
+ m.geoContext3d,
362
190
  m
363
191
  );
364
192
 
193
+ const prod = PRODUCT(PRODUCT_CONTEXT(applicationContext, m), isCylinder ? "Cylinder" : "Cone", m);
194
+
365
195
  SHAPE_DEFINITION_REPRESENTATION(
366
196
  PRODUCT_DEFINITION_SHAPE(
367
- PRODUCT_DEFINITION(
368
- PRODUCT_DEFINITION_FORMATION(
369
- prod,
370
- m
371
- ),
372
- PRODUCT_DEFINITION_CONTEXT(
373
- applicationContext,
374
- m
375
- ),
376
- m
377
- ),
197
+ PRODUCT_DEFINITION(PRODUCT_DEFINITION_FORMATION(prod, m), PRODUCT_DEFINITION_CONTEXT(applicationContext, m), m),
378
198
  m
379
199
  ),
380
200
  absp,
381
201
  m
382
202
  );
383
203
 
384
- const color = COLOUR_RGB(
385
- parseRgb(mat.normal),
386
- m
387
- );
204
+ const color = COLOUR_RGB(parseRgb(mat.normal), m);
388
205
 
389
206
  MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(
390
207
  STYLED_ITEM(
391
208
  PRESENTATION_STYLE_ASSIGNMENT(
392
- SURFACE_STYLE_USAGE(
393
- SURFACE_SIDE_STYLE(
394
- SURFACE_STYLE_FILL_AREA(
395
- FILL_AREA_STYLE_COLOUR(
396
- color,
397
- m
398
- ),
399
- m
400
- ),
401
- m
402
- ),
403
- m
404
- ),
405
- CURVE_STYLE(
406
- DRAUGHTING_PRE_DEFINED_CURVE_FONT(
407
- "continuous",
408
- m
409
- ),
410
- color,
411
- m
412
- ),
209
+ SURFACE_STYLE_USAGE(SURFACE_SIDE_STYLE(SURFACE_STYLE_FILL_AREA(FILL_AREA_STYLE_COLOUR(color, m), m), m), m),
210
+ CURVE_STYLE(DRAUGHTING_PRE_DEFINED_CURVE_FONT("continuous", m), color, m),
413
211
  m
414
212
  ),
415
213
  msb,
@@ -418,4 +216,4 @@ export function stepCylinder(
418
216
  m.geoContext3d,
419
217
  m
420
218
  );
421
- }
219
+ }
@@ -1,13 +1,6 @@
1
- import {
2
- Plane,
3
- Material,
4
- Vec3,
5
- vec3,
6
- Box,
7
- } from "../../../abstract-3d.js";
8
- import {
9
- MutableStep,
10
- } from "../step-encoding.js";
1
+ import type { Plane, Material, Vec3, Box } from "../../../abstract-3d.js";
2
+ import { vec3 } from "../../../abstract-3d.js";
3
+ import type { MutableStep } from "../step-encoding.js";
11
4
  import { stepBox } from "./step-box.js";
12
5
 
13
6
  const PLANE_THICKNESS = 1e-4;
@@ -22,4 +15,4 @@ export function stepPlane(p: Plane, mat: Material, parentPos: Vec3, parentRot: V
22
15
  size: vec3(p.size.x, p.size.y, PLANE_THICKNESS),
23
16
  };
24
17
  stepBox(box, mat, parentPos, parentRot, m);
25
- }
18
+ }
@@ -1,23 +1,7 @@
1
+ import type { Scene, Group, Vec3 } from "../../abstract-3d.js";
2
+ import { vec3Zero, vec3TransRot, vec3RotCombine } from "../../abstract-3d.js";
3
+ import type { MutableStep } from "./step-encoding.js";
1
4
  import {
2
- Scene,
3
- vec3Zero,
4
- Group,
5
- Vec3,
6
- vec3TransRot,
7
- vec3RotCombine,
8
- Cylinder,
9
- Material,
10
- Plane,
11
- Box,
12
- Vec2,
13
- vec3,
14
- vec3Scale,
15
- vec3Add,
16
- vec3Sub,
17
- vec3Rot,
18
- } from "../../abstract-3d.js";
19
- import {
20
- MutableStep,
21
5
  GEOMETRIC_REPRESENTATION_CONTEXT_3D,
22
6
  LENGTH_UNIT,
23
7
  NAMED_UNIT,
@@ -1,4 +1,5 @@
1
- import { Vec3, vec3Sub } from "../../abstract-3d.js";
1
+ import type { Vec3 } from "../../abstract-3d.js";
2
+ import { vec3Sub } from "../../abstract-3d.js";
2
3
 
3
4
  export const stlTriangle = (vec1: Vec3, vec2: Vec3, vec3: Vec3): string => {
4
5
  const v = vec3Sub(vec2, vec1);