@itwin/core-geometry 5.0.0-dev.4 → 5.0.0-dev.40

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 (434) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/lib/cjs/Constant.js +17 -17
  3. package/lib/cjs/Constant.js.map +1 -1
  4. package/lib/cjs/Geometry.js +35 -35
  5. package/lib/cjs/Geometry.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurveOps.d.ts.map +1 -1
  7. package/lib/cjs/bspline/BSplineCurveOps.js +18 -21
  8. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  9. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
  10. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  11. package/lib/cjs/bspline/KnotVector.js +2 -2
  12. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  13. package/lib/cjs/clipping/AlternatingConvexClipTree.js +2 -2
  14. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  15. package/lib/cjs/clipping/ClipPlane.js +1 -1
  16. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  17. package/lib/cjs/clipping/ClipUtils.js +1 -1
  18. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  19. package/lib/cjs/clipping/ClipVector.js +1 -1
  20. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  21. package/lib/cjs/clipping/ConvexClipPlaneSet.js +3 -3
  22. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  23. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +1 -1
  24. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  25. package/lib/cjs/curve/Arc3d.d.ts +40 -8
  26. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  27. package/lib/cjs/curve/Arc3d.js +80 -22
  28. package/lib/cjs/curve/Arc3d.js.map +1 -1
  29. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +4 -4
  30. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  31. package/lib/cjs/curve/CurveCollection.d.ts +16 -2
  32. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  33. package/lib/cjs/curve/CurveCollection.js +33 -2
  34. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  35. package/lib/cjs/curve/CurveFactory.d.ts +87 -53
  36. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  37. package/lib/cjs/curve/CurveFactory.js +213 -135
  38. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  39. package/lib/cjs/curve/LineString3d.d.ts +12 -8
  40. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  41. package/lib/cjs/curve/LineString3d.js +34 -13
  42. package/lib/cjs/curve/LineString3d.js.map +1 -1
  43. package/lib/cjs/curve/Loop.d.ts +12 -6
  44. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  45. package/lib/cjs/curve/Loop.js +12 -6
  46. package/lib/cjs/curve/Loop.js.map +1 -1
  47. package/lib/cjs/curve/Query/CylindricalRange.d.ts +8 -6
  48. package/lib/cjs/curve/Query/CylindricalRange.d.ts.map +1 -1
  49. package/lib/cjs/curve/Query/CylindricalRange.js +13 -9
  50. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  51. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +1 -1
  52. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  53. package/lib/cjs/curve/StrokeOptions.d.ts +4 -4
  54. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  55. package/lib/cjs/curve/StrokeOptions.js +1 -1
  56. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  57. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +5 -5
  58. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  59. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +13 -13
  60. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  61. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +5 -5
  62. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  63. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  64. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +29 -23
  65. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  66. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +4 -4
  67. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  68. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +2 -2
  69. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  70. package/lib/cjs/geometry3d/Angle.js +16 -16
  71. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  72. package/lib/cjs/geometry3d/AngleSweep.d.ts +1 -1
  73. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  74. package/lib/cjs/geometry3d/AngleSweep.js +1 -1
  75. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  76. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts +14 -8
  77. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  78. package/lib/cjs/geometry3d/BarycentricTriangle.js +17 -8
  79. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  80. package/lib/cjs/geometry3d/FrameBuilder.js +4 -4
  81. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  82. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts +2 -0
  83. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  84. package/lib/cjs/geometry3d/GrowableFloat64Array.js +4 -0
  85. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  86. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +32 -10
  87. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  88. package/lib/cjs/geometry3d/GrowableXYZArray.js +54 -16
  89. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  90. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +13 -2
  91. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  92. package/lib/cjs/geometry3d/IndexedXYZCollection.js +24 -10
  93. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  94. package/lib/cjs/geometry3d/Matrix3d.d.ts +11 -8
  95. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  96. package/lib/cjs/geometry3d/Matrix3d.js +36 -34
  97. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  98. package/lib/cjs/geometry3d/OrderedRotationAngles.js +2 -2
  99. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  100. package/lib/cjs/geometry3d/Point3dArrayCarrier.js +1 -1
  101. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  102. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +6 -6
  103. package/lib/cjs/geometry3d/Point3dVector3d.js +6 -6
  104. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  105. package/lib/cjs/geometry3d/PointHelpers.js +5 -5
  106. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  107. package/lib/cjs/geometry3d/PolygonOps.d.ts +12 -6
  108. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  109. package/lib/cjs/geometry3d/PolygonOps.js +117 -70
  110. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  111. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +3 -3
  112. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  113. package/lib/cjs/geometry3d/PolylineOps.d.ts +9 -5
  114. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  115. package/lib/cjs/geometry3d/PolylineOps.js +9 -5
  116. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  117. package/lib/cjs/geometry3d/Range.js +4 -4
  118. package/lib/cjs/geometry3d/Range.js.map +1 -1
  119. package/lib/cjs/geometry4d/MomentData.d.ts +72 -73
  120. package/lib/cjs/geometry4d/MomentData.d.ts.map +1 -1
  121. package/lib/cjs/geometry4d/MomentData.js +62 -64
  122. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  123. package/lib/cjs/numerics/ClusterableArray.js +13 -13
  124. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  125. package/lib/cjs/numerics/PascalCoefficients.js +1 -1
  126. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  127. package/lib/cjs/numerics/PolarData.js +1 -1
  128. package/lib/cjs/numerics/PolarData.js.map +1 -1
  129. package/lib/cjs/numerics/Polynomials.d.ts +5 -5
  130. package/lib/cjs/numerics/Polynomials.js +32 -32
  131. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  132. package/lib/cjs/numerics/Quadrature.js +20 -20
  133. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  134. package/lib/cjs/polyface/AuxData.d.ts +2 -2
  135. package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
  136. package/lib/cjs/polyface/AuxData.js +11 -3
  137. package/lib/cjs/polyface/AuxData.js.map +1 -1
  138. package/lib/cjs/polyface/BoxTopology.js +67 -67
  139. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  140. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js +2 -2
  141. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  142. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts +27 -20
  143. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  144. package/lib/cjs/polyface/IndexedEdgeMatcher.js +56 -30
  145. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  146. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +2 -1
  147. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  148. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +2 -1
  149. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  150. package/lib/cjs/polyface/Polyface.d.ts +3 -5
  151. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  152. package/lib/cjs/polyface/Polyface.js +6 -13
  153. package/lib/cjs/polyface/Polyface.js.map +1 -1
  154. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +14 -7
  155. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  156. package/lib/cjs/polyface/PolyfaceBuilder.js +59 -64
  157. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  158. package/lib/cjs/polyface/PolyfaceData.d.ts +13 -3
  159. package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
  160. package/lib/cjs/polyface/PolyfaceData.js +26 -9
  161. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  162. package/lib/cjs/polyface/PolyfaceQuery.d.ts +2 -2
  163. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  164. package/lib/cjs/polyface/PolyfaceQuery.js +11 -10
  165. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  166. package/lib/cjs/polyface/multiclip/RangeSearch.js +5 -5
  167. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  168. package/lib/cjs/serialization/BGFBReader.js +22 -22
  169. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  170. package/lib/cjs/serialization/GeometrySamples.d.ts +5 -5
  171. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  172. package/lib/cjs/serialization/GeometrySamples.js +112 -112
  173. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  174. package/lib/cjs/solid/Box.d.ts +9 -3
  175. package/lib/cjs/solid/Box.d.ts.map +1 -1
  176. package/lib/cjs/solid/Box.js +10 -5
  177. package/lib/cjs/solid/Box.js.map +1 -1
  178. package/lib/cjs/solid/Cone.d.ts +3 -2
  179. package/lib/cjs/solid/Cone.d.ts.map +1 -1
  180. package/lib/cjs/solid/Cone.js +3 -3
  181. package/lib/cjs/solid/Cone.js.map +1 -1
  182. package/lib/cjs/solid/LinearSweep.d.ts +9 -3
  183. package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
  184. package/lib/cjs/solid/LinearSweep.js +9 -4
  185. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  186. package/lib/cjs/solid/RotationalSweep.d.ts +15 -4
  187. package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
  188. package/lib/cjs/solid/RotationalSweep.js +20 -7
  189. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  190. package/lib/cjs/solid/RuledSweep.d.ts +35 -26
  191. package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
  192. package/lib/cjs/solid/RuledSweep.js +41 -28
  193. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  194. package/lib/cjs/solid/SolidPrimitive.d.ts +12 -11
  195. package/lib/cjs/solid/SolidPrimitive.d.ts.map +1 -1
  196. package/lib/cjs/solid/SolidPrimitive.js +8 -5
  197. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  198. package/lib/cjs/solid/Sphere.d.ts +17 -7
  199. package/lib/cjs/solid/Sphere.d.ts.map +1 -1
  200. package/lib/cjs/solid/Sphere.js +22 -16
  201. package/lib/cjs/solid/Sphere.js.map +1 -1
  202. package/lib/cjs/solid/SweepContour.d.ts +25 -16
  203. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  204. package/lib/cjs/solid/SweepContour.js +25 -16
  205. package/lib/cjs/solid/SweepContour.js.map +1 -1
  206. package/lib/cjs/solid/TorusPipe.d.ts +8 -2
  207. package/lib/cjs/solid/TorusPipe.d.ts.map +1 -1
  208. package/lib/cjs/solid/TorusPipe.js +9 -5
  209. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  210. package/lib/cjs/topology/ChainMerge.js +4 -4
  211. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  212. package/lib/cjs/topology/Graph.js +5 -5
  213. package/lib/cjs/topology/Graph.js.map +1 -1
  214. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js +2 -2
  215. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  216. package/lib/cjs/topology/Triangulation.js +11 -11
  217. package/lib/cjs/topology/Triangulation.js.map +1 -1
  218. package/lib/esm/Constant.js +17 -17
  219. package/lib/esm/Constant.js.map +1 -1
  220. package/lib/esm/Geometry.js +35 -35
  221. package/lib/esm/Geometry.js.map +1 -1
  222. package/lib/esm/bspline/BSplineCurveOps.d.ts.map +1 -1
  223. package/lib/esm/bspline/BSplineCurveOps.js +18 -21
  224. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  225. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
  226. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  227. package/lib/esm/bspline/KnotVector.js +2 -2
  228. package/lib/esm/bspline/KnotVector.js.map +1 -1
  229. package/lib/esm/clipping/AlternatingConvexClipTree.js +2 -2
  230. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  231. package/lib/esm/clipping/ClipPlane.js +1 -1
  232. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  233. package/lib/esm/clipping/ClipUtils.js +1 -1
  234. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  235. package/lib/esm/clipping/ClipVector.js +1 -1
  236. package/lib/esm/clipping/ClipVector.js.map +1 -1
  237. package/lib/esm/clipping/ConvexClipPlaneSet.js +3 -3
  238. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  239. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +1 -1
  240. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  241. package/lib/esm/curve/Arc3d.d.ts +40 -8
  242. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  243. package/lib/esm/curve/Arc3d.js +80 -22
  244. package/lib/esm/curve/Arc3d.js.map +1 -1
  245. package/lib/esm/curve/CurveChainWithDistanceIndex.js +4 -4
  246. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  247. package/lib/esm/curve/CurveCollection.d.ts +16 -2
  248. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  249. package/lib/esm/curve/CurveCollection.js +33 -2
  250. package/lib/esm/curve/CurveCollection.js.map +1 -1
  251. package/lib/esm/curve/CurveFactory.d.ts +87 -53
  252. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  253. package/lib/esm/curve/CurveFactory.js +213 -135
  254. package/lib/esm/curve/CurveFactory.js.map +1 -1
  255. package/lib/esm/curve/LineString3d.d.ts +12 -8
  256. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  257. package/lib/esm/curve/LineString3d.js +34 -13
  258. package/lib/esm/curve/LineString3d.js.map +1 -1
  259. package/lib/esm/curve/Loop.d.ts +12 -6
  260. package/lib/esm/curve/Loop.d.ts.map +1 -1
  261. package/lib/esm/curve/Loop.js +12 -6
  262. package/lib/esm/curve/Loop.js.map +1 -1
  263. package/lib/esm/curve/Query/CylindricalRange.d.ts +8 -6
  264. package/lib/esm/curve/Query/CylindricalRange.d.ts.map +1 -1
  265. package/lib/esm/curve/Query/CylindricalRange.js +13 -9
  266. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  267. package/lib/esm/curve/RegionOpsClassificationSweeps.js +1 -1
  268. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  269. package/lib/esm/curve/StrokeOptions.d.ts +4 -4
  270. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  271. package/lib/esm/curve/StrokeOptions.js +1 -1
  272. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  273. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +5 -5
  274. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  275. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +13 -13
  276. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  277. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +5 -5
  278. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  279. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  280. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +29 -23
  281. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  282. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +4 -4
  283. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  284. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +2 -2
  285. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  286. package/lib/esm/geometry3d/Angle.js +16 -16
  287. package/lib/esm/geometry3d/Angle.js.map +1 -1
  288. package/lib/esm/geometry3d/AngleSweep.d.ts +1 -1
  289. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  290. package/lib/esm/geometry3d/AngleSweep.js +1 -1
  291. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  292. package/lib/esm/geometry3d/BarycentricTriangle.d.ts +14 -8
  293. package/lib/esm/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  294. package/lib/esm/geometry3d/BarycentricTriangle.js +17 -8
  295. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  296. package/lib/esm/geometry3d/FrameBuilder.js +4 -4
  297. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  298. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts +2 -0
  299. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  300. package/lib/esm/geometry3d/GrowableFloat64Array.js +4 -0
  301. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  302. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +32 -10
  303. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  304. package/lib/esm/geometry3d/GrowableXYZArray.js +54 -16
  305. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  306. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +13 -2
  307. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  308. package/lib/esm/geometry3d/IndexedXYZCollection.js +24 -10
  309. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  310. package/lib/esm/geometry3d/Matrix3d.d.ts +11 -8
  311. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  312. package/lib/esm/geometry3d/Matrix3d.js +36 -34
  313. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  314. package/lib/esm/geometry3d/OrderedRotationAngles.js +2 -2
  315. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  316. package/lib/esm/geometry3d/Point3dArrayCarrier.js +1 -1
  317. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  318. package/lib/esm/geometry3d/Point3dVector3d.d.ts +6 -6
  319. package/lib/esm/geometry3d/Point3dVector3d.js +6 -6
  320. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  321. package/lib/esm/geometry3d/PointHelpers.js +5 -5
  322. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  323. package/lib/esm/geometry3d/PolygonOps.d.ts +12 -6
  324. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  325. package/lib/esm/geometry3d/PolygonOps.js +117 -70
  326. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  327. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +3 -3
  328. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  329. package/lib/esm/geometry3d/PolylineOps.d.ts +9 -5
  330. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  331. package/lib/esm/geometry3d/PolylineOps.js +9 -5
  332. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  333. package/lib/esm/geometry3d/Range.js +4 -4
  334. package/lib/esm/geometry3d/Range.js.map +1 -1
  335. package/lib/esm/geometry4d/MomentData.d.ts +72 -73
  336. package/lib/esm/geometry4d/MomentData.d.ts.map +1 -1
  337. package/lib/esm/geometry4d/MomentData.js +62 -64
  338. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  339. package/lib/esm/numerics/ClusterableArray.js +13 -13
  340. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  341. package/lib/esm/numerics/PascalCoefficients.js +1 -1
  342. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  343. package/lib/esm/numerics/PolarData.js +1 -1
  344. package/lib/esm/numerics/PolarData.js.map +1 -1
  345. package/lib/esm/numerics/Polynomials.d.ts +5 -5
  346. package/lib/esm/numerics/Polynomials.js +32 -32
  347. package/lib/esm/numerics/Polynomials.js.map +1 -1
  348. package/lib/esm/numerics/Quadrature.js +20 -20
  349. package/lib/esm/numerics/Quadrature.js.map +1 -1
  350. package/lib/esm/polyface/AuxData.d.ts +2 -2
  351. package/lib/esm/polyface/AuxData.d.ts.map +1 -1
  352. package/lib/esm/polyface/AuxData.js +11 -3
  353. package/lib/esm/polyface/AuxData.js.map +1 -1
  354. package/lib/esm/polyface/BoxTopology.js +67 -67
  355. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  356. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js +2 -2
  357. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  358. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +27 -20
  359. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  360. package/lib/esm/polyface/IndexedEdgeMatcher.js +56 -30
  361. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  362. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +2 -1
  363. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  364. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +2 -1
  365. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  366. package/lib/esm/polyface/Polyface.d.ts +3 -5
  367. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  368. package/lib/esm/polyface/Polyface.js +6 -13
  369. package/lib/esm/polyface/Polyface.js.map +1 -1
  370. package/lib/esm/polyface/PolyfaceBuilder.d.ts +14 -7
  371. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  372. package/lib/esm/polyface/PolyfaceBuilder.js +60 -65
  373. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  374. package/lib/esm/polyface/PolyfaceData.d.ts +13 -3
  375. package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
  376. package/lib/esm/polyface/PolyfaceData.js +26 -9
  377. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  378. package/lib/esm/polyface/PolyfaceQuery.d.ts +2 -2
  379. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  380. package/lib/esm/polyface/PolyfaceQuery.js +11 -10
  381. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  382. package/lib/esm/polyface/multiclip/RangeSearch.js +5 -5
  383. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  384. package/lib/esm/serialization/BGFBReader.js +22 -22
  385. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  386. package/lib/esm/serialization/GeometrySamples.d.ts +5 -5
  387. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  388. package/lib/esm/serialization/GeometrySamples.js +112 -112
  389. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  390. package/lib/esm/solid/Box.d.ts +9 -3
  391. package/lib/esm/solid/Box.d.ts.map +1 -1
  392. package/lib/esm/solid/Box.js +10 -5
  393. package/lib/esm/solid/Box.js.map +1 -1
  394. package/lib/esm/solid/Cone.d.ts +3 -2
  395. package/lib/esm/solid/Cone.d.ts.map +1 -1
  396. package/lib/esm/solid/Cone.js +3 -3
  397. package/lib/esm/solid/Cone.js.map +1 -1
  398. package/lib/esm/solid/LinearSweep.d.ts +9 -3
  399. package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
  400. package/lib/esm/solid/LinearSweep.js +9 -4
  401. package/lib/esm/solid/LinearSweep.js.map +1 -1
  402. package/lib/esm/solid/RotationalSweep.d.ts +15 -4
  403. package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
  404. package/lib/esm/solid/RotationalSweep.js +20 -7
  405. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  406. package/lib/esm/solid/RuledSweep.d.ts +35 -26
  407. package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
  408. package/lib/esm/solid/RuledSweep.js +41 -28
  409. package/lib/esm/solid/RuledSweep.js.map +1 -1
  410. package/lib/esm/solid/SolidPrimitive.d.ts +12 -11
  411. package/lib/esm/solid/SolidPrimitive.d.ts.map +1 -1
  412. package/lib/esm/solid/SolidPrimitive.js +8 -5
  413. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  414. package/lib/esm/solid/Sphere.d.ts +17 -7
  415. package/lib/esm/solid/Sphere.d.ts.map +1 -1
  416. package/lib/esm/solid/Sphere.js +22 -16
  417. package/lib/esm/solid/Sphere.js.map +1 -1
  418. package/lib/esm/solid/SweepContour.d.ts +25 -16
  419. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  420. package/lib/esm/solid/SweepContour.js +25 -16
  421. package/lib/esm/solid/SweepContour.js.map +1 -1
  422. package/lib/esm/solid/TorusPipe.d.ts +8 -2
  423. package/lib/esm/solid/TorusPipe.d.ts.map +1 -1
  424. package/lib/esm/solid/TorusPipe.js +9 -5
  425. package/lib/esm/solid/TorusPipe.js.map +1 -1
  426. package/lib/esm/topology/ChainMerge.js +4 -4
  427. package/lib/esm/topology/ChainMerge.js.map +1 -1
  428. package/lib/esm/topology/Graph.js +5 -5
  429. package/lib/esm/topology/Graph.js.map +1 -1
  430. package/lib/esm/topology/HalfEdgeGraphSpineContext.js +2 -2
  431. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  432. package/lib/esm/topology/Triangulation.js +11 -11
  433. package/lib/esm/topology/Triangulation.js.map +1 -1
  434. package/package.json +5 -5
@@ -7,6 +7,7 @@ import { AxisOrder, Geometry } from "../Geometry";
7
7
  import { Angle } from "../geometry3d/Angle";
8
8
  import { AngleSweep } from "../geometry3d/AngleSweep";
9
9
  import { Matrix3d } from "../geometry3d/Matrix3d";
10
+ import { Plane3dByOriginAndUnitNormal } from "../geometry3d/Plane3dByOriginAndUnitNormal";
10
11
  import { Plane3dByOriginAndVectors } from "../geometry3d/Plane3dByOriginAndVectors";
11
12
  import { Point3d, Vector3d } from "../geometry3d/Point3dVector3d";
12
13
  import { Range1d, Range3d } from "../geometry3d/Range";
@@ -53,6 +54,8 @@ export var EllipticalArcSampleMethod;
53
54
  * @public
54
55
  */
55
56
  export class EllipticalArcApproximationOptions {
57
+ /** Default error tolerance. */
58
+ static { this.defaultMaxError = Constant.oneCentimeter; }
56
59
  constructor(method, numSamplesInQuadrant, maxError, remapFunction, forcePath) {
57
60
  this._sampleMethod = method;
58
61
  this._numSamplesInQuadrant = numSamplesInQuadrant;
@@ -129,8 +132,6 @@ export class EllipticalArcApproximationOptions {
129
132
  this._forcePath = value;
130
133
  }
131
134
  }
132
- /** Default error tolerance. */
133
- EllipticalArcApproximationOptions.defaultMaxError = Constant.oneCentimeter;
134
135
  /**
135
136
  * Circular or elliptic arc.
136
137
  * * The angle to point equation is:
@@ -151,10 +152,23 @@ export class Arc3d extends CurvePrimitive {
151
152
  isSameGeometryClass(other) {
152
153
  return other instanceof Arc3d;
153
154
  }
154
- /** Read property for (clone of) center. */
155
+ static { this._workPointA = Point3d.create(); }
156
+ static { this._workPointB = Point3d.create(); }
157
+ static { this._workPointC = Point3d.create(); }
158
+ static { this._workVectorU = Vector3d.create(); }
159
+ static { this._workVectorV = Vector3d.create(); }
160
+ static { this._workVectorW = Vector3d.create(); }
161
+ /** Read/write the center. Getter returns clone. */
155
162
  get center() {
156
163
  return this._center.clone();
157
164
  }
165
+ set center(center) {
166
+ this._center.setFrom(center);
167
+ }
168
+ /** Read property for (reference to) center. */
169
+ get centerRef() {
170
+ return this._center;
171
+ }
158
172
  /** Read property for (clone of) vector0. */
159
173
  get vector0() {
160
174
  return this._matrix.columnX();
@@ -163,7 +177,19 @@ export class Arc3d extends CurvePrimitive {
163
177
  get vector90() {
164
178
  return this._matrix.columnY();
165
179
  }
166
- /** Read property for (clone of) plane normal, with arbitrary length. */
180
+ /**
181
+ * Compute an arc binormal vector with arbitrary length.
182
+ * * The arc parameterization is counter-clockwise with respect to this vector.
183
+ * * This vector is parallel to [[perpendicularVector]] and possibly opposite.
184
+ */
185
+ binormalVector(result) {
186
+ const plane = this.fractionToPointAnd2Derivatives(0.0);
187
+ return plane.vectorU.crossProduct(plane.vectorV, result);
188
+ }
189
+ /**
190
+ * Read property for (clone of) plane normal, with arbitrary length.
191
+ * * Does not take arc sweep direction into account. See also [[binormalVector]].
192
+ */
167
193
  get perpendicularVector() {
168
194
  return this._matrix.columnZ();
169
195
  }
@@ -175,7 +201,7 @@ export class Arc3d extends CurvePrimitive {
175
201
  get matrixRef() {
176
202
  return this._matrix;
177
203
  }
178
- /** Sweep of the angle. */
204
+ /** Read/write the sweep. Getter returns reference. */
179
205
  get sweep() {
180
206
  return this._sweep;
181
207
  }
@@ -591,6 +617,12 @@ export class Arc3d extends CurvePrimitive {
591
617
  curveLength() {
592
618
  return this.curveLengthBetweenFractions(0, 1);
593
619
  }
620
+ // !! misspelled Gauss in the published static !! Declare it ok.
621
+ // cspell::word Guass
622
+ /** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep). */
623
+ static { this.quadratureGuassCount = 5; }
624
+ /** In quadrature for arc length, use this interval (divided by quickEccentricity). */
625
+ static { this.quadratureIntervalAngleDegrees = 10.0; }
594
626
  /**
595
627
  * * If this is a circular arc, return the simple length derived from radius and sweep.
596
628
  * * Otherwise (i.e. if this elliptical) fall through CurvePrimitive integrator.
@@ -760,7 +792,7 @@ export class Arc3d extends CurvePrimitive {
760
792
  const axy = this._matrix.columnXDotColumnY();
761
793
  return Angle.isPerpendicularDotSet(axx, ayy, axy) && Geometry.isSameCoordinateSquared(axx, ayy);
762
794
  }
763
- /** Return radius if the vector0 and vector90 are of equal length and perpendicular. */
795
+ /** Return radius if the vector0 and vector90 are of equal length and perpendicular. Ignores z. */
764
796
  circularRadiusXY() {
765
797
  const ux = this._matrix.at(0, 0);
766
798
  const uy = this._matrix.at(1, 0);
@@ -902,7 +934,12 @@ export class Arc3d extends CurvePrimitive {
902
934
  setVector0Vector90(vector0, vector90) {
903
935
  this._matrix.setColumns(vector0, vector90, vector0.unitCrossProductWithDefault(vector90, 0, 0, 0));
904
936
  }
905
- /** Return the arc definition with rigid matrix form with axis radii. */
937
+ /**
938
+ * Return the symmetric definition of the arc, with rigid axes and radii.
939
+ * * The caller can send the returned data into [[createScaledXYColumns]] to construct the major-minor axis
940
+ * version of the instance arc. This formulation of the arc has the same shape, but has perpendicular axes,
941
+ * from which the arc's symmetry is readily apparent.
942
+ */
906
943
  toScaledMatrix3d() {
907
944
  const angleData = Angle.dotProductsToHalfAngleTrigValues(this._matrix.columnXMagnitudeSquared(), this._matrix.columnYMagnitudeSquared(), this._matrix.columnXDotColumnY(), true);
908
945
  const vector0A = this._matrix.multiplyXY(angleData.c, angleData.s);
@@ -1042,9 +1079,9 @@ export class Arc3d extends CurvePrimitive {
1042
1079
  }
1043
1080
  /**
1044
1081
  * Return an arc whose basis vectors are rotated by given angle within the current basis space.
1045
- * * the result arc will have its zero-degree point (new `vector0`) at the current.
1046
- * `vector0 * cos(theta) + vector90 * sin(theta)`.
1047
- * * the result sweep is adjusted so all fractional coordinates (e.g. start and end) evaluate to the same xyz.
1082
+ * * The returned arc will have `vector0 = this.vector0 * cos(theta) + this.vector90 * sin(theta)`.
1083
+ * * The returned arc has the same shape as the instance.
1084
+ * * In other words, the arc's sweep is adjusted so that all fractional parameters evaluate to the same points.
1048
1085
  * * Specifically, theta is subtracted from the original start and end angles.
1049
1086
  * @param theta the angle (in the input arc space) which is to become the 0-degree point in the new arc.
1050
1087
  */
@@ -1057,6 +1094,39 @@ export class Arc3d extends CurvePrimitive {
1057
1094
  const arcB = Arc3d.create(this._center.clone(), vector0, vector90, newSweep);
1058
1095
  return arcB;
1059
1096
  }
1097
+ /**
1098
+ * Return a cloned arc with basis rotated to align with the global axes. The arc's shape is unchanged.
1099
+ * * This method is most useful when the instance is an xy-circular arc, for then the aligned arc's stored sweep
1100
+ * angles can be understood as being measured from the global positive x-axis to the arc's start/end. This is *not*
1101
+ * the case for xy-elliptical arcs: the parameter angle difference between two points on an ellipse is in general
1102
+ * not the same as the angle measured between their radials.
1103
+ * * For an xy instance, the output arc will have:
1104
+ * * vector0 is in the same direction as the positive x-axis
1105
+ * * perpendicularVector is in the same direction as the positive z-axis
1106
+ * * For a general instance, the output arc will have:
1107
+ * * vector0 is in the same direction as the projection of the positive x-axis vector onto the arc plane
1108
+ * * perpendicularVector lies in the halfspace z >= 0
1109
+ * @returns cloned arc, or undefined (if the instance normal is parallel to the x-axis, or its matrix is singular)
1110
+ */
1111
+ cloneAxisAligned() {
1112
+ const plane = Plane3dByOriginAndUnitNormal.create(this.center, this.perpendicularVector.crossProduct(Vector3d.unitX()));
1113
+ if (!plane)
1114
+ return undefined;
1115
+ const axisPts = [];
1116
+ if (2 !== this.appendPlaneIntersectionPoints(plane, axisPts))
1117
+ return undefined;
1118
+ const iAxisPt = plane.getNormalRef().dotProduct(this.perpendicularVector.crossProductStartEnd(this.center, axisPts[0].point)) > 0.0 ? 0 : 1;
1119
+ const toUnitX = this.sweep.fractionToAngle(axisPts[iAxisPt].fraction);
1120
+ const arc1 = this.cloneInRotatedBasis(toUnitX); // rotate in arc's plane
1121
+ if (this.perpendicularVector.dotProduct(Vector3d.unitZ()) < -Geometry.smallAngleRadians) {
1122
+ if (this.matrixRef.isSingular())
1123
+ return undefined;
1124
+ const flip = Matrix3d.createRowValues(1, 0, 0, 0, -1, 0, 0, 0, -1); // rotate 180 degrees around arc's local x-axis
1125
+ arc1.matrixRef.multiplyMatrixMatrix(flip, arc1.matrixRef);
1126
+ arc1.sweep.setStartEndDegrees(-arc1.sweep.startDegrees, -arc1.sweep.endDegrees); // rotation alone is insufficient to flip
1127
+ }
1128
+ return arc1;
1129
+ }
1060
1130
  /**
1061
1131
  * Find intervals of this CurvePrimitive that are interior to a clipper.
1062
1132
  * @param clipper clip structure (e.g.clip planes).
@@ -1206,16 +1276,4 @@ export class Arc3d extends CurvePrimitive {
1206
1276
  return result;
1207
1277
  }
1208
1278
  }
1209
- Arc3d._workPointA = Point3d.create();
1210
- Arc3d._workPointB = Point3d.create();
1211
- Arc3d._workPointC = Point3d.create();
1212
- Arc3d._workVectorU = Vector3d.create();
1213
- Arc3d._workVectorV = Vector3d.create();
1214
- Arc3d._workVectorW = Vector3d.create();
1215
- // !! misspelled Gauss in the published static !! Declare it ok.
1216
- // cspell::word Guass
1217
- /** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep). */
1218
- Arc3d.quadratureGuassCount = 5;
1219
- /** In quadrature for arc length, use this interval (divided by quickEccentricity). */
1220
- Arc3d.quadratureIntervalAngleDegrees = 10.0;
1221
1279
  //# sourceMappingURL=Arc3d.js.map