@itwin/core-geometry 5.0.0-dev.1 → 5.0.0-dev.100

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 (1078) hide show
  1. package/CHANGELOG.md +74 -1
  2. package/lib/cjs/Constant.js +17 -17
  3. package/lib/cjs/Constant.js.map +1 -1
  4. package/lib/cjs/Geometry.d.ts +2 -4
  5. package/lib/cjs/Geometry.d.ts.map +1 -1
  6. package/lib/cjs/Geometry.js +37 -39
  7. package/lib/cjs/Geometry.js.map +1 -1
  8. package/lib/cjs/bspline/AkimaCurve3d.js +3 -1
  9. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  10. package/lib/cjs/bspline/BSpline1dNd.d.ts +90 -54
  11. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  12. package/lib/cjs/bspline/BSpline1dNd.js +137 -84
  13. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  14. package/lib/cjs/bspline/BSplineCurve.d.ts +193 -155
  15. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  16. package/lib/cjs/bspline/BSplineCurve.js +249 -181
  17. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  18. package/lib/cjs/bspline/BSplineCurve3dH.js +1 -0
  19. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  20. package/lib/cjs/bspline/BSplineCurveOps.d.ts.map +1 -1
  21. package/lib/cjs/bspline/BSplineCurveOps.js +18 -21
  22. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  23. package/lib/cjs/bspline/BSplineSurface.js +22 -2
  24. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  25. package/lib/cjs/bspline/Bezier1dNd.js +6 -0
  26. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  27. package/lib/cjs/bspline/BezierCurve3d.d.ts +3 -1
  28. package/lib/cjs/bspline/BezierCurve3d.d.ts.map +1 -1
  29. package/lib/cjs/bspline/BezierCurve3d.js +5 -5
  30. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  31. package/lib/cjs/bspline/BezierCurve3dH.js +2 -0
  32. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  33. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
  34. package/lib/cjs/bspline/BezierCurveBase.js +21 -2
  35. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  36. package/lib/cjs/bspline/InterpolationCurve3d.js +12 -1
  37. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  38. package/lib/cjs/bspline/KnotVector.d.ts +82 -60
  39. package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
  40. package/lib/cjs/bspline/KnotVector.js +144 -84
  41. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  42. package/lib/cjs/bspline/SurfaceLocationDetail.js +12 -0
  43. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  44. package/lib/cjs/clipping/AlternatingConvexClipTree.js +14 -13
  45. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  46. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  47. package/lib/cjs/clipping/BooleanClipNode.js +4 -0
  48. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  49. package/lib/cjs/clipping/ClipPlane.js +10 -1
  50. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  51. package/lib/cjs/clipping/ClipPrimitive.js +19 -0
  52. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  53. package/lib/cjs/clipping/ClipUtils.js +5 -1
  54. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  55. package/lib/cjs/clipping/ClipVector.js +11 -8
  56. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  57. package/lib/cjs/clipping/ConvexClipPlaneSet.js +5 -3
  58. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  59. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +2 -1
  60. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  61. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js +3 -0
  62. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  63. package/lib/cjs/core-geometry.d.ts +1 -0
  64. package/lib/cjs/core-geometry.d.ts.map +1 -1
  65. package/lib/cjs/core-geometry.js +1 -0
  66. package/lib/cjs/core-geometry.js.map +1 -1
  67. package/lib/cjs/curve/Arc3d.d.ts +42 -8
  68. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  69. package/lib/cjs/curve/Arc3d.js +94 -26
  70. package/lib/cjs/curve/Arc3d.js.map +1 -1
  71. package/lib/cjs/curve/ConstructCurveBetweenCurves.js +3 -0
  72. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  73. package/lib/cjs/curve/CoordinateXYZ.js +3 -2
  74. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  75. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +0 -2
  76. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  77. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +25 -10
  78. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  79. package/lib/cjs/curve/CurveCollection.d.ts +16 -2
  80. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  81. package/lib/cjs/curve/CurveCollection.js +46 -11
  82. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  83. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  84. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  85. package/lib/cjs/curve/CurveFactory.d.ts +87 -53
  86. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  87. package/lib/cjs/curve/CurveFactory.js +213 -135
  88. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  89. package/lib/cjs/curve/CurveLocationDetail.js +44 -0
  90. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  91. package/lib/cjs/curve/CurveOps.js.map +1 -1
  92. package/lib/cjs/curve/CurvePrimitive.d.ts +7 -10
  93. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  94. package/lib/cjs/curve/CurvePrimitive.js +27 -12
  95. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  96. package/lib/cjs/curve/CurveProcessor.js +2 -0
  97. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  98. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  99. package/lib/cjs/curve/CurveWireMomentsXYZ.js +2 -0
  100. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  101. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  102. package/lib/cjs/curve/LineSegment3d.js +6 -2
  103. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  104. package/lib/cjs/curve/LineString3d.d.ts +12 -8
  105. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  106. package/lib/cjs/curve/LineString3d.js +56 -15
  107. package/lib/cjs/curve/LineString3d.js.map +1 -1
  108. package/lib/cjs/curve/Loop.d.ts +12 -6
  109. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  110. package/lib/cjs/curve/Loop.js +24 -10
  111. package/lib/cjs/curve/Loop.js.map +1 -1
  112. package/lib/cjs/curve/OffsetOptions.js +25 -21
  113. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  114. package/lib/cjs/curve/ParityRegion.js +4 -2
  115. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  116. package/lib/cjs/curve/Path.js +2 -2
  117. package/lib/cjs/curve/Path.js.map +1 -1
  118. package/lib/cjs/curve/PointString3d.js +3 -2
  119. package/lib/cjs/curve/PointString3d.js.map +1 -1
  120. package/lib/cjs/curve/ProxyCurve.js +1 -0
  121. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  122. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -0
  123. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  124. package/lib/cjs/curve/Query/CurveSplitContext.js +3 -0
  125. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  126. package/lib/cjs/curve/Query/CylindricalRange.d.ts +8 -6
  127. package/lib/cjs/curve/Query/CylindricalRange.d.ts.map +1 -1
  128. package/lib/cjs/curve/Query/CylindricalRange.js +19 -11
  129. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  130. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  131. package/lib/cjs/curve/Query/PlanarSubdivision.js +4 -6
  132. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  133. package/lib/cjs/curve/Query/StrokeCountChain.js +12 -0
  134. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  135. package/lib/cjs/curve/Query/StrokeCountMap.js +14 -0
  136. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  137. package/lib/cjs/curve/RegionMomentsXY.js +4 -5
  138. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  139. package/lib/cjs/curve/RegionOps.js +9 -10
  140. package/lib/cjs/curve/RegionOps.js.map +1 -1
  141. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +24 -1
  142. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  143. package/lib/cjs/curve/StrokeOptions.d.ts +10 -5
  144. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  145. package/lib/cjs/curve/StrokeOptions.js +30 -8
  146. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  147. package/lib/cjs/curve/UnionRegion.js +4 -2
  148. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  149. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +13 -7
  150. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  151. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js +6 -0
  152. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  153. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js +2 -0
  154. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  155. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  156. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js +13 -5
  157. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  158. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js +3 -0
  159. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  160. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +18 -5
  161. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  162. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +26 -13
  163. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  164. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +11 -5
  165. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  166. package/lib/cjs/curve/internalContexts/CurveLengthContext.js +6 -0
  167. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  168. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js +8 -6
  169. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  170. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  171. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +62 -23
  172. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  173. package/lib/cjs/curve/internalContexts/GapSearchContext.js +1 -0
  174. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  175. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +12 -0
  176. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  177. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js +1 -0
  178. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  179. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +7 -0
  180. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  181. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +22 -4
  182. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  183. package/lib/cjs/curve/internalContexts/SumLengthsContext.js +1 -0
  184. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  185. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js +3 -0
  186. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  187. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js +2 -0
  188. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  189. package/lib/cjs/curve/spiral/ClothoidSeries.js +4 -0
  190. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  191. package/lib/cjs/curve/spiral/CubicEvaluator.js +2 -0
  192. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  193. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +4 -0
  194. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  195. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js +5 -0
  196. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  197. package/lib/cjs/curve/spiral/DirectSpiral3d.js +12 -2
  198. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  199. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +24 -4
  200. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  201. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +2 -0
  202. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  203. package/lib/cjs/curve/spiral/NormalizedTransition.js +5 -0
  204. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  205. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +2 -0
  206. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  207. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +10 -0
  208. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  209. package/lib/cjs/curve/spiral/TransitionSpiral3d.js +10 -0
  210. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  211. package/lib/cjs/curve/spiral/XYCurveEvaluator.js +6 -0
  212. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  213. package/lib/cjs/geometry3d/Angle.js +18 -16
  214. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  215. package/lib/cjs/geometry3d/AngleSweep.d.ts +7 -2
  216. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  217. package/lib/cjs/geometry3d/AngleSweep.js +14 -2
  218. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  219. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts +14 -8
  220. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  221. package/lib/cjs/geometry3d/BarycentricTriangle.js +42 -8
  222. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  223. package/lib/cjs/geometry3d/BilinearPatch.js +8 -0
  224. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  225. package/lib/cjs/geometry3d/CoincidentGeometryOps.js +5 -0
  226. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  227. package/lib/cjs/geometry3d/Ellipsoid.d.ts +8 -7
  228. package/lib/cjs/geometry3d/Ellipsoid.d.ts.map +1 -1
  229. package/lib/cjs/geometry3d/Ellipsoid.js +63 -14
  230. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  231. package/lib/cjs/geometry3d/FrameBuilder.js +12 -4
  232. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  233. package/lib/cjs/geometry3d/FrustumAnimation.js +7 -0
  234. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  235. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  236. package/lib/cjs/geometry3d/GrowableBlockedArray.js +12 -0
  237. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  238. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts +2 -0
  239. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  240. package/lib/cjs/geometry3d/GrowableFloat64Array.js +7 -0
  241. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  242. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +0 -5
  243. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  244. package/lib/cjs/geometry3d/GrowableXYArray.js +16 -7
  245. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  246. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +32 -10
  247. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  248. package/lib/cjs/geometry3d/GrowableXYZArray.js +70 -16
  249. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  250. package/lib/cjs/geometry3d/IndexedCollectionInterval.js +6 -0
  251. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  252. package/lib/cjs/geometry3d/IndexedXYCollection.js +1 -0
  253. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  254. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +13 -2
  255. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  256. package/lib/cjs/geometry3d/IndexedXYZCollection.js +26 -11
  257. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  258. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js +3 -0
  259. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  260. package/lib/cjs/geometry3d/Matrix3d.d.ts +11 -8
  261. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  262. package/lib/cjs/geometry3d/Matrix3d.js +61 -36
  263. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  264. package/lib/cjs/geometry3d/OrderedRotationAngles.js +10 -2
  265. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  266. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  267. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +2 -0
  268. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  269. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +7 -0
  270. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  271. package/lib/cjs/geometry3d/Point2dArrayCarrier.js +2 -0
  272. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  273. package/lib/cjs/geometry3d/Point2dVector2d.js +4 -0
  274. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  275. package/lib/cjs/geometry3d/Point3dArrayCarrier.js +3 -1
  276. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  277. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +7 -10
  278. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  279. package/lib/cjs/geometry3d/Point3dVector3d.js +16 -10
  280. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  281. package/lib/cjs/geometry3d/PointHelpers.d.ts +15 -4
  282. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  283. package/lib/cjs/geometry3d/PointHelpers.js +29 -8
  284. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  285. package/lib/cjs/geometry3d/PointStreaming.js +12 -4
  286. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  287. package/lib/cjs/geometry3d/PolygonOps.d.ts +12 -6
  288. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  289. package/lib/cjs/geometry3d/PolygonOps.js +154 -70
  290. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  291. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +7 -3
  292. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  293. package/lib/cjs/geometry3d/PolylineOps.d.ts +9 -5
  294. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  295. package/lib/cjs/geometry3d/PolylineOps.js +12 -5
  296. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  297. package/lib/cjs/geometry3d/Range.js +21 -4
  298. package/lib/cjs/geometry3d/Range.js.map +1 -1
  299. package/lib/cjs/geometry3d/Ray2d.js +2 -0
  300. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  301. package/lib/cjs/geometry3d/Ray3d.d.ts +2 -2
  302. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  303. package/lib/cjs/geometry3d/Ray3d.js +20 -11
  304. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  305. package/lib/cjs/geometry3d/ReusableObjectCache.js +4 -0
  306. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  307. package/lib/cjs/geometry3d/Segment1d.js +4 -0
  308. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  309. package/lib/cjs/geometry3d/SortablePolygon.js +11 -0
  310. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  311. package/lib/cjs/geometry3d/Transform.d.ts +1 -1
  312. package/lib/cjs/geometry3d/Transform.js +4 -1
  313. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  314. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  315. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  316. package/lib/cjs/geometry3d/YawPitchRollAngles.js +6 -0
  317. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  318. package/lib/cjs/geometry4d/Map4d.js +2 -0
  319. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  320. package/lib/cjs/geometry4d/Matrix4d.js +1 -0
  321. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  322. package/lib/cjs/geometry4d/MomentData.d.ts +72 -73
  323. package/lib/cjs/geometry4d/MomentData.d.ts.map +1 -1
  324. package/lib/cjs/geometry4d/MomentData.js +90 -66
  325. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  326. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js +6 -0
  327. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  328. package/lib/cjs/geometry4d/Point4d.js +2 -0
  329. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  330. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  331. package/lib/cjs/numerics/BezierPolynomials.js +8 -0
  332. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  333. package/lib/cjs/numerics/ClusterableArray.js +29 -13
  334. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  335. package/lib/cjs/numerics/Complex.js +2 -0
  336. package/lib/cjs/numerics/Complex.js.map +1 -1
  337. package/lib/cjs/numerics/ConvexPolygon2d.js +3 -0
  338. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  339. package/lib/cjs/numerics/Newton.js +59 -4
  340. package/lib/cjs/numerics/Newton.js.map +1 -1
  341. package/lib/cjs/numerics/PascalCoefficients.js +1 -1
  342. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  343. package/lib/cjs/numerics/PolarData.js +13 -1
  344. package/lib/cjs/numerics/PolarData.js.map +1 -1
  345. package/lib/cjs/numerics/Polynomials.d.ts +5 -5
  346. package/lib/cjs/numerics/Polynomials.js +70 -32
  347. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  348. package/lib/cjs/numerics/Quadrature.js +26 -20
  349. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  350. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  351. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  352. package/lib/cjs/numerics/TriDiagonalSystem.js +11 -0
  353. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  354. package/lib/cjs/numerics/UnionFind.js +1 -0
  355. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  356. package/lib/cjs/numerics/UsageSums.js +10 -0
  357. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  358. package/lib/cjs/polyface/AuxData.d.ts +2 -2
  359. package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
  360. package/lib/cjs/polyface/AuxData.js +27 -3
  361. package/lib/cjs/polyface/AuxData.js.map +1 -1
  362. package/lib/cjs/polyface/BoxTopology.js +67 -67
  363. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  364. package/lib/cjs/polyface/FacetFaceData.d.ts +1 -1
  365. package/lib/cjs/polyface/FacetFaceData.js +3 -1
  366. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  367. package/lib/cjs/polyface/FacetLocationDetail.js +30 -0
  368. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  369. package/lib/cjs/polyface/FacetOrientation.js +12 -1
  370. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  371. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js +18 -2
  372. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  373. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts +33 -23
  374. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  375. package/lib/cjs/polyface/IndexedEdgeMatcher.js +63 -33
  376. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  377. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +4 -3
  378. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  379. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +16 -5
  380. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  381. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts +233 -0
  382. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts.map +1 -0
  383. package/lib/cjs/polyface/IndexedPolyfaceWalker.js +353 -0
  384. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -0
  385. package/lib/cjs/polyface/Polyface.d.ts +46 -19
  386. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  387. package/lib/cjs/polyface/Polyface.js +96 -32
  388. package/lib/cjs/polyface/Polyface.js.map +1 -1
  389. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +14 -27
  390. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  391. package/lib/cjs/polyface/PolyfaceBuilder.js +70 -92
  392. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  393. package/lib/cjs/polyface/PolyfaceClip.js +8 -0
  394. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  395. package/lib/cjs/polyface/PolyfaceData.d.ts +49 -6
  396. package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
  397. package/lib/cjs/polyface/PolyfaceData.js +133 -12
  398. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  399. package/lib/cjs/polyface/PolyfaceQuery.d.ts +2 -2
  400. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  401. package/lib/cjs/polyface/PolyfaceQuery.js +51 -10
  402. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  403. package/lib/cjs/polyface/RangeLengthData.js +7 -0
  404. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  405. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js +12 -0
  406. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  407. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js +5 -2
  408. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  409. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js +12 -0
  410. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  411. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js +14 -0
  412. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  413. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js +5 -0
  414. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  415. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js +43 -0
  416. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  417. package/lib/cjs/polyface/TaggedNumericData.js +8 -0
  418. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  419. package/lib/cjs/polyface/TriangleCandidate.js +3 -0
  420. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  421. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js +7 -0
  422. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  423. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js +6 -0
  424. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  425. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +3 -0
  426. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  427. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js +3 -0
  428. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  429. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js +32 -0
  430. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  431. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  432. package/lib/cjs/polyface/multiclip/RangeSearch.js +5 -5
  433. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  434. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +21 -8
  435. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  436. package/lib/cjs/polyface/multiclip/XYPointBuckets.js +6 -0
  437. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  438. package/lib/cjs/serialization/BGFBAccessors.d.ts +35 -9
  439. package/lib/cjs/serialization/BGFBAccessors.d.ts.map +1 -1
  440. package/lib/cjs/serialization/BGFBAccessors.js +141 -179
  441. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  442. package/lib/cjs/serialization/BGFBReader.d.ts +2 -2
  443. package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
  444. package/lib/cjs/serialization/BGFBReader.js +75 -62
  445. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  446. package/lib/cjs/serialization/BGFBWriter.d.ts +5 -1
  447. package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
  448. package/lib/cjs/serialization/BGFBWriter.js +18 -3
  449. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  450. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js +1 -0
  451. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  452. package/lib/cjs/serialization/DeepCompare.js +17 -17
  453. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  454. package/lib/cjs/serialization/GeometrySamples.d.ts +5 -5
  455. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  456. package/lib/cjs/serialization/GeometrySamples.js +113 -112
  457. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  458. package/lib/cjs/serialization/IModelJsonSchema.d.ts +78 -64
  459. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  460. package/lib/cjs/serialization/IModelJsonSchema.js +107 -83
  461. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  462. package/lib/cjs/serialization/SerializationHelpers.d.ts +36 -0
  463. package/lib/cjs/serialization/SerializationHelpers.d.ts.map +1 -1
  464. package/lib/cjs/serialization/SerializationHelpers.js +117 -0
  465. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  466. package/lib/cjs/solid/Box.d.ts +9 -3
  467. package/lib/cjs/solid/Box.d.ts.map +1 -1
  468. package/lib/cjs/solid/Box.js +17 -7
  469. package/lib/cjs/solid/Box.js.map +1 -1
  470. package/lib/cjs/solid/Cone.d.ts +42 -16
  471. package/lib/cjs/solid/Cone.d.ts.map +1 -1
  472. package/lib/cjs/solid/Cone.js +55 -19
  473. package/lib/cjs/solid/Cone.js.map +1 -1
  474. package/lib/cjs/solid/LinearSweep.d.ts +9 -3
  475. package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
  476. package/lib/cjs/solid/LinearSweep.js +13 -6
  477. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  478. package/lib/cjs/solid/RotationalSweep.d.ts +27 -16
  479. package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
  480. package/lib/cjs/solid/RotationalSweep.js +53 -27
  481. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  482. package/lib/cjs/solid/RuledSweep.d.ts +35 -26
  483. package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
  484. package/lib/cjs/solid/RuledSweep.js +43 -29
  485. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  486. package/lib/cjs/solid/SolidPrimitive.d.ts +12 -11
  487. package/lib/cjs/solid/SolidPrimitive.d.ts.map +1 -1
  488. package/lib/cjs/solid/SolidPrimitive.js +11 -6
  489. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  490. package/lib/cjs/solid/Sphere.d.ts +53 -24
  491. package/lib/cjs/solid/Sphere.d.ts.map +1 -1
  492. package/lib/cjs/solid/Sphere.js +75 -40
  493. package/lib/cjs/solid/Sphere.js.map +1 -1
  494. package/lib/cjs/solid/SweepContour.d.ts +25 -16
  495. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  496. package/lib/cjs/solid/SweepContour.js +34 -16
  497. package/lib/cjs/solid/SweepContour.js.map +1 -1
  498. package/lib/cjs/solid/TorusPipe.d.ts +8 -2
  499. package/lib/cjs/solid/TorusPipe.d.ts.map +1 -1
  500. package/lib/cjs/solid/TorusPipe.js +16 -7
  501. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  502. package/lib/cjs/topology/ChainMerge.js +16 -4
  503. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  504. package/lib/cjs/topology/Graph.js +41 -6
  505. package/lib/cjs/topology/Graph.js.map +1 -1
  506. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +1 -1
  507. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -1
  508. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  509. package/lib/cjs/topology/HalfEdgeGraphSearch.js +2 -0
  510. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  511. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js +9 -2
  512. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  513. package/lib/cjs/topology/HalfEdgeGraphValidation.js +7 -9
  514. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  515. package/lib/cjs/topology/HalfEdgeMarkSet.js +5 -0
  516. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  517. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js +6 -0
  518. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  519. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js +1 -0
  520. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  521. package/lib/cjs/topology/HalfEdgePositionDetail.js +16 -0
  522. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  523. package/lib/cjs/topology/HalfEdgePriorityQueue.js +2 -0
  524. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  525. package/lib/cjs/topology/InsertAndRetriangulateContext.js +4 -0
  526. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  527. package/lib/cjs/topology/MaskManager.js +3 -0
  528. package/lib/cjs/topology/MaskManager.js.map +1 -1
  529. package/lib/cjs/topology/Merging.js +11 -6
  530. package/lib/cjs/topology/Merging.js.map +1 -1
  531. package/lib/cjs/topology/RegularizeFace.js +22 -0
  532. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  533. package/lib/cjs/topology/SignedDataSummary.js +22 -0
  534. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  535. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  536. package/lib/cjs/topology/Triangulation.js +21 -11
  537. package/lib/cjs/topology/Triangulation.js.map +1 -1
  538. package/lib/cjs/topology/XYParitySearchContext.js +13 -0
  539. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  540. package/lib/esm/Constant.js +17 -17
  541. package/lib/esm/Constant.js.map +1 -1
  542. package/lib/esm/Geometry.d.ts +2 -4
  543. package/lib/esm/Geometry.d.ts.map +1 -1
  544. package/lib/esm/Geometry.js +37 -39
  545. package/lib/esm/Geometry.js.map +1 -1
  546. package/lib/esm/bspline/AkimaCurve3d.js +3 -1
  547. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  548. package/lib/esm/bspline/BSpline1dNd.d.ts +90 -54
  549. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  550. package/lib/esm/bspline/BSpline1dNd.js +137 -84
  551. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  552. package/lib/esm/bspline/BSplineCurve.d.ts +193 -155
  553. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  554. package/lib/esm/bspline/BSplineCurve.js +249 -181
  555. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  556. package/lib/esm/bspline/BSplineCurve3dH.js +1 -0
  557. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  558. package/lib/esm/bspline/BSplineCurveOps.d.ts.map +1 -1
  559. package/lib/esm/bspline/BSplineCurveOps.js +18 -21
  560. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  561. package/lib/esm/bspline/BSplineSurface.js +22 -2
  562. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  563. package/lib/esm/bspline/Bezier1dNd.js +6 -0
  564. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  565. package/lib/esm/bspline/BezierCurve3d.d.ts +3 -1
  566. package/lib/esm/bspline/BezierCurve3d.d.ts.map +1 -1
  567. package/lib/esm/bspline/BezierCurve3d.js +5 -5
  568. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  569. package/lib/esm/bspline/BezierCurve3dH.js +2 -0
  570. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  571. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
  572. package/lib/esm/bspline/BezierCurveBase.js +21 -2
  573. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  574. package/lib/esm/bspline/InterpolationCurve3d.js +12 -1
  575. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  576. package/lib/esm/bspline/KnotVector.d.ts +82 -60
  577. package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
  578. package/lib/esm/bspline/KnotVector.js +144 -84
  579. package/lib/esm/bspline/KnotVector.js.map +1 -1
  580. package/lib/esm/bspline/SurfaceLocationDetail.js +12 -0
  581. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  582. package/lib/esm/clipping/AlternatingConvexClipTree.js +14 -13
  583. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  584. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  585. package/lib/esm/clipping/BooleanClipNode.js +4 -0
  586. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  587. package/lib/esm/clipping/ClipPlane.js +10 -1
  588. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  589. package/lib/esm/clipping/ClipPrimitive.js +19 -0
  590. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  591. package/lib/esm/clipping/ClipUtils.js +5 -1
  592. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  593. package/lib/esm/clipping/ClipVector.js +11 -8
  594. package/lib/esm/clipping/ClipVector.js.map +1 -1
  595. package/lib/esm/clipping/ConvexClipPlaneSet.js +5 -3
  596. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  597. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +2 -1
  598. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  599. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js +3 -0
  600. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  601. package/lib/esm/core-geometry.d.ts +1 -0
  602. package/lib/esm/core-geometry.d.ts.map +1 -1
  603. package/lib/esm/core-geometry.js +1 -0
  604. package/lib/esm/core-geometry.js.map +1 -1
  605. package/lib/esm/curve/Arc3d.d.ts +42 -8
  606. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  607. package/lib/esm/curve/Arc3d.js +94 -26
  608. package/lib/esm/curve/Arc3d.js.map +1 -1
  609. package/lib/esm/curve/ConstructCurveBetweenCurves.js +3 -0
  610. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  611. package/lib/esm/curve/CoordinateXYZ.js +3 -2
  612. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  613. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +0 -2
  614. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  615. package/lib/esm/curve/CurveChainWithDistanceIndex.js +25 -10
  616. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  617. package/lib/esm/curve/CurveCollection.d.ts +16 -2
  618. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  619. package/lib/esm/curve/CurveCollection.js +46 -11
  620. package/lib/esm/curve/CurveCollection.js.map +1 -1
  621. package/lib/esm/curve/CurveCurve.js.map +1 -1
  622. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  623. package/lib/esm/curve/CurveFactory.d.ts +87 -53
  624. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  625. package/lib/esm/curve/CurveFactory.js +213 -135
  626. package/lib/esm/curve/CurveFactory.js.map +1 -1
  627. package/lib/esm/curve/CurveLocationDetail.js +44 -0
  628. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  629. package/lib/esm/curve/CurveOps.js.map +1 -1
  630. package/lib/esm/curve/CurvePrimitive.d.ts +7 -10
  631. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  632. package/lib/esm/curve/CurvePrimitive.js +27 -12
  633. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  634. package/lib/esm/curve/CurveProcessor.js +2 -0
  635. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  636. package/lib/esm/curve/CurveTypes.js.map +1 -1
  637. package/lib/esm/curve/CurveWireMomentsXYZ.js +2 -0
  638. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  639. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  640. package/lib/esm/curve/LineSegment3d.js +6 -2
  641. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  642. package/lib/esm/curve/LineString3d.d.ts +12 -8
  643. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  644. package/lib/esm/curve/LineString3d.js +56 -15
  645. package/lib/esm/curve/LineString3d.js.map +1 -1
  646. package/lib/esm/curve/Loop.d.ts +12 -6
  647. package/lib/esm/curve/Loop.d.ts.map +1 -1
  648. package/lib/esm/curve/Loop.js +24 -10
  649. package/lib/esm/curve/Loop.js.map +1 -1
  650. package/lib/esm/curve/OffsetOptions.js +25 -21
  651. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  652. package/lib/esm/curve/ParityRegion.js +4 -2
  653. package/lib/esm/curve/ParityRegion.js.map +1 -1
  654. package/lib/esm/curve/Path.js +2 -2
  655. package/lib/esm/curve/Path.js.map +1 -1
  656. package/lib/esm/curve/PointString3d.js +3 -2
  657. package/lib/esm/curve/PointString3d.js.map +1 -1
  658. package/lib/esm/curve/ProxyCurve.js +1 -0
  659. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  660. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -0
  661. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  662. package/lib/esm/curve/Query/CurveSplitContext.js +3 -0
  663. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  664. package/lib/esm/curve/Query/CylindricalRange.d.ts +8 -6
  665. package/lib/esm/curve/Query/CylindricalRange.d.ts.map +1 -1
  666. package/lib/esm/curve/Query/CylindricalRange.js +19 -11
  667. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  668. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  669. package/lib/esm/curve/Query/PlanarSubdivision.js +4 -6
  670. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  671. package/lib/esm/curve/Query/StrokeCountChain.js +12 -0
  672. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  673. package/lib/esm/curve/Query/StrokeCountMap.js +14 -0
  674. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  675. package/lib/esm/curve/RegionMomentsXY.js +4 -5
  676. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  677. package/lib/esm/curve/RegionOps.js +9 -10
  678. package/lib/esm/curve/RegionOps.js.map +1 -1
  679. package/lib/esm/curve/RegionOpsClassificationSweeps.js +24 -1
  680. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  681. package/lib/esm/curve/StrokeOptions.d.ts +10 -5
  682. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  683. package/lib/esm/curve/StrokeOptions.js +30 -8
  684. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  685. package/lib/esm/curve/UnionRegion.js +4 -2
  686. package/lib/esm/curve/UnionRegion.js.map +1 -1
  687. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +13 -7
  688. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  689. package/lib/esm/curve/internalContexts/ChainCollectorContext.js +6 -0
  690. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  691. package/lib/esm/curve/internalContexts/CloneCurvesContext.js +2 -0
  692. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  693. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  694. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js +13 -5
  695. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  696. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js +3 -0
  697. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  698. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +18 -5
  699. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  700. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +26 -13
  701. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  702. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +11 -5
  703. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  704. package/lib/esm/curve/internalContexts/CurveLengthContext.js +6 -0
  705. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  706. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js +8 -6
  707. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  708. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  709. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +62 -23
  710. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  711. package/lib/esm/curve/internalContexts/GapSearchContext.js +1 -0
  712. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  713. package/lib/esm/curve/internalContexts/MultiChainCollector.js +12 -0
  714. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  715. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js +1 -0
  716. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  717. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +7 -0
  718. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  719. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +22 -4
  720. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  721. package/lib/esm/curve/internalContexts/SumLengthsContext.js +1 -0
  722. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  723. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js +3 -0
  724. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  725. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +2 -0
  726. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  727. package/lib/esm/curve/spiral/ClothoidSeries.js +4 -0
  728. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  729. package/lib/esm/curve/spiral/CubicEvaluator.js +2 -0
  730. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  731. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +4 -0
  732. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  733. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +5 -0
  734. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  735. package/lib/esm/curve/spiral/DirectSpiral3d.js +12 -2
  736. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  737. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +24 -4
  738. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  739. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +2 -0
  740. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  741. package/lib/esm/curve/spiral/NormalizedTransition.js +5 -0
  742. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  743. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +2 -0
  744. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  745. package/lib/esm/curve/spiral/TransitionConditionalProperties.js +10 -0
  746. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  747. package/lib/esm/curve/spiral/TransitionSpiral3d.js +10 -0
  748. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  749. package/lib/esm/curve/spiral/XYCurveEvaluator.js +6 -0
  750. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  751. package/lib/esm/geometry3d/Angle.js +18 -16
  752. package/lib/esm/geometry3d/Angle.js.map +1 -1
  753. package/lib/esm/geometry3d/AngleSweep.d.ts +7 -2
  754. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  755. package/lib/esm/geometry3d/AngleSweep.js +14 -2
  756. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  757. package/lib/esm/geometry3d/BarycentricTriangle.d.ts +14 -8
  758. package/lib/esm/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  759. package/lib/esm/geometry3d/BarycentricTriangle.js +42 -8
  760. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  761. package/lib/esm/geometry3d/BilinearPatch.js +8 -0
  762. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  763. package/lib/esm/geometry3d/CoincidentGeometryOps.js +5 -0
  764. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  765. package/lib/esm/geometry3d/Ellipsoid.d.ts +8 -7
  766. package/lib/esm/geometry3d/Ellipsoid.d.ts.map +1 -1
  767. package/lib/esm/geometry3d/Ellipsoid.js +63 -14
  768. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  769. package/lib/esm/geometry3d/FrameBuilder.js +12 -4
  770. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  771. package/lib/esm/geometry3d/FrustumAnimation.js +7 -0
  772. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  773. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  774. package/lib/esm/geometry3d/GrowableBlockedArray.js +12 -0
  775. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  776. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts +2 -0
  777. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  778. package/lib/esm/geometry3d/GrowableFloat64Array.js +7 -0
  779. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  780. package/lib/esm/geometry3d/GrowableXYArray.d.ts +0 -5
  781. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  782. package/lib/esm/geometry3d/GrowableXYArray.js +16 -7
  783. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  784. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +32 -10
  785. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  786. package/lib/esm/geometry3d/GrowableXYZArray.js +70 -16
  787. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  788. package/lib/esm/geometry3d/IndexedCollectionInterval.js +6 -0
  789. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  790. package/lib/esm/geometry3d/IndexedXYCollection.js +1 -0
  791. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  792. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +13 -2
  793. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  794. package/lib/esm/geometry3d/IndexedXYZCollection.js +26 -11
  795. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  796. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js +3 -0
  797. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  798. package/lib/esm/geometry3d/Matrix3d.d.ts +11 -8
  799. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  800. package/lib/esm/geometry3d/Matrix3d.js +61 -36
  801. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  802. package/lib/esm/geometry3d/OrderedRotationAngles.js +10 -2
  803. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  804. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  805. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +2 -0
  806. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  807. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +7 -0
  808. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  809. package/lib/esm/geometry3d/Point2dArrayCarrier.js +2 -0
  810. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  811. package/lib/esm/geometry3d/Point2dVector2d.js +4 -0
  812. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  813. package/lib/esm/geometry3d/Point3dArrayCarrier.js +3 -1
  814. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  815. package/lib/esm/geometry3d/Point3dVector3d.d.ts +7 -10
  816. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  817. package/lib/esm/geometry3d/Point3dVector3d.js +16 -10
  818. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  819. package/lib/esm/geometry3d/PointHelpers.d.ts +15 -4
  820. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  821. package/lib/esm/geometry3d/PointHelpers.js +29 -8
  822. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  823. package/lib/esm/geometry3d/PointStreaming.js +12 -4
  824. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  825. package/lib/esm/geometry3d/PolygonOps.d.ts +12 -6
  826. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  827. package/lib/esm/geometry3d/PolygonOps.js +154 -70
  828. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  829. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +7 -3
  830. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  831. package/lib/esm/geometry3d/PolylineOps.d.ts +9 -5
  832. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  833. package/lib/esm/geometry3d/PolylineOps.js +12 -5
  834. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  835. package/lib/esm/geometry3d/Range.js +21 -4
  836. package/lib/esm/geometry3d/Range.js.map +1 -1
  837. package/lib/esm/geometry3d/Ray2d.js +2 -0
  838. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  839. package/lib/esm/geometry3d/Ray3d.d.ts +2 -2
  840. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  841. package/lib/esm/geometry3d/Ray3d.js +20 -11
  842. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  843. package/lib/esm/geometry3d/ReusableObjectCache.js +4 -0
  844. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  845. package/lib/esm/geometry3d/Segment1d.js +4 -0
  846. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  847. package/lib/esm/geometry3d/SortablePolygon.js +11 -0
  848. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  849. package/lib/esm/geometry3d/Transform.d.ts +1 -1
  850. package/lib/esm/geometry3d/Transform.js +4 -1
  851. package/lib/esm/geometry3d/Transform.js.map +1 -1
  852. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  853. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  854. package/lib/esm/geometry3d/YawPitchRollAngles.js +6 -0
  855. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  856. package/lib/esm/geometry4d/Map4d.js +2 -0
  857. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  858. package/lib/esm/geometry4d/Matrix4d.js +1 -0
  859. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  860. package/lib/esm/geometry4d/MomentData.d.ts +72 -73
  861. package/lib/esm/geometry4d/MomentData.d.ts.map +1 -1
  862. package/lib/esm/geometry4d/MomentData.js +90 -66
  863. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  864. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js +6 -0
  865. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  866. package/lib/esm/geometry4d/Point4d.js +2 -0
  867. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  868. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  869. package/lib/esm/numerics/BezierPolynomials.js +8 -0
  870. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  871. package/lib/esm/numerics/ClusterableArray.js +29 -13
  872. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  873. package/lib/esm/numerics/Complex.js +2 -0
  874. package/lib/esm/numerics/Complex.js.map +1 -1
  875. package/lib/esm/numerics/ConvexPolygon2d.js +3 -0
  876. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  877. package/lib/esm/numerics/Newton.js +59 -4
  878. package/lib/esm/numerics/Newton.js.map +1 -1
  879. package/lib/esm/numerics/PascalCoefficients.js +1 -1
  880. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  881. package/lib/esm/numerics/PolarData.js +13 -1
  882. package/lib/esm/numerics/PolarData.js.map +1 -1
  883. package/lib/esm/numerics/Polynomials.d.ts +5 -5
  884. package/lib/esm/numerics/Polynomials.js +70 -32
  885. package/lib/esm/numerics/Polynomials.js.map +1 -1
  886. package/lib/esm/numerics/Quadrature.js +26 -20
  887. package/lib/esm/numerics/Quadrature.js.map +1 -1
  888. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  889. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  890. package/lib/esm/numerics/TriDiagonalSystem.js +11 -0
  891. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  892. package/lib/esm/numerics/UnionFind.js +1 -0
  893. package/lib/esm/numerics/UnionFind.js.map +1 -1
  894. package/lib/esm/numerics/UsageSums.js +10 -0
  895. package/lib/esm/numerics/UsageSums.js.map +1 -1
  896. package/lib/esm/polyface/AuxData.d.ts +2 -2
  897. package/lib/esm/polyface/AuxData.d.ts.map +1 -1
  898. package/lib/esm/polyface/AuxData.js +27 -3
  899. package/lib/esm/polyface/AuxData.js.map +1 -1
  900. package/lib/esm/polyface/BoxTopology.js +67 -67
  901. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  902. package/lib/esm/polyface/FacetFaceData.d.ts +1 -1
  903. package/lib/esm/polyface/FacetFaceData.js +3 -1
  904. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  905. package/lib/esm/polyface/FacetLocationDetail.js +30 -0
  906. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  907. package/lib/esm/polyface/FacetOrientation.js +12 -1
  908. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  909. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js +18 -2
  910. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  911. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +33 -23
  912. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  913. package/lib/esm/polyface/IndexedEdgeMatcher.js +63 -33
  914. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  915. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +4 -3
  916. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  917. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +16 -5
  918. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  919. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts +233 -0
  920. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts.map +1 -0
  921. package/lib/esm/polyface/IndexedPolyfaceWalker.js +349 -0
  922. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -0
  923. package/lib/esm/polyface/Polyface.d.ts +46 -19
  924. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  925. package/lib/esm/polyface/Polyface.js +96 -32
  926. package/lib/esm/polyface/Polyface.js.map +1 -1
  927. package/lib/esm/polyface/PolyfaceBuilder.d.ts +14 -27
  928. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  929. package/lib/esm/polyface/PolyfaceBuilder.js +71 -93
  930. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  931. package/lib/esm/polyface/PolyfaceClip.js +8 -0
  932. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  933. package/lib/esm/polyface/PolyfaceData.d.ts +49 -6
  934. package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
  935. package/lib/esm/polyface/PolyfaceData.js +133 -12
  936. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  937. package/lib/esm/polyface/PolyfaceQuery.d.ts +2 -2
  938. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  939. package/lib/esm/polyface/PolyfaceQuery.js +51 -10
  940. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  941. package/lib/esm/polyface/RangeLengthData.js +7 -0
  942. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  943. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js +12 -0
  944. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  945. package/lib/esm/polyface/RangeTree/MinimumValueTester.js +5 -2
  946. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  947. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js +12 -0
  948. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  949. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js +14 -0
  950. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  951. package/lib/esm/polyface/RangeTree/RangeTreeNode.js +5 -0
  952. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  953. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js +43 -0
  954. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  955. package/lib/esm/polyface/TaggedNumericData.js +8 -0
  956. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  957. package/lib/esm/polyface/TriangleCandidate.js +3 -0
  958. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  959. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +7 -0
  960. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  961. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js +6 -0
  962. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  963. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +3 -0
  964. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  965. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js +3 -0
  966. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  967. package/lib/esm/polyface/multiclip/OffsetMeshContext.js +32 -0
  968. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  969. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  970. package/lib/esm/polyface/multiclip/RangeSearch.js +5 -5
  971. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  972. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +21 -8
  973. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  974. package/lib/esm/polyface/multiclip/XYPointBuckets.js +6 -0
  975. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  976. package/lib/esm/serialization/BGFBAccessors.d.ts +35 -9
  977. package/lib/esm/serialization/BGFBAccessors.d.ts.map +1 -1
  978. package/lib/esm/serialization/BGFBAccessors.js +141 -179
  979. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  980. package/lib/esm/serialization/BGFBReader.d.ts +2 -2
  981. package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
  982. package/lib/esm/serialization/BGFBReader.js +75 -62
  983. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  984. package/lib/esm/serialization/BGFBWriter.d.ts +5 -1
  985. package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
  986. package/lib/esm/serialization/BGFBWriter.js +18 -3
  987. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  988. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js +1 -0
  989. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  990. package/lib/esm/serialization/DeepCompare.js +17 -17
  991. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  992. package/lib/esm/serialization/GeometrySamples.d.ts +5 -5
  993. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  994. package/lib/esm/serialization/GeometrySamples.js +113 -112
  995. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  996. package/lib/esm/serialization/IModelJsonSchema.d.ts +78 -64
  997. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  998. package/lib/esm/serialization/IModelJsonSchema.js +107 -83
  999. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  1000. package/lib/esm/serialization/SerializationHelpers.d.ts +36 -0
  1001. package/lib/esm/serialization/SerializationHelpers.d.ts.map +1 -1
  1002. package/lib/esm/serialization/SerializationHelpers.js +117 -0
  1003. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  1004. package/lib/esm/solid/Box.d.ts +9 -3
  1005. package/lib/esm/solid/Box.d.ts.map +1 -1
  1006. package/lib/esm/solid/Box.js +17 -7
  1007. package/lib/esm/solid/Box.js.map +1 -1
  1008. package/lib/esm/solid/Cone.d.ts +42 -16
  1009. package/lib/esm/solid/Cone.d.ts.map +1 -1
  1010. package/lib/esm/solid/Cone.js +56 -20
  1011. package/lib/esm/solid/Cone.js.map +1 -1
  1012. package/lib/esm/solid/LinearSweep.d.ts +9 -3
  1013. package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
  1014. package/lib/esm/solid/LinearSweep.js +13 -6
  1015. package/lib/esm/solid/LinearSweep.js.map +1 -1
  1016. package/lib/esm/solid/RotationalSweep.d.ts +27 -16
  1017. package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
  1018. package/lib/esm/solid/RotationalSweep.js +53 -27
  1019. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  1020. package/lib/esm/solid/RuledSweep.d.ts +35 -26
  1021. package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
  1022. package/lib/esm/solid/RuledSweep.js +43 -29
  1023. package/lib/esm/solid/RuledSweep.js.map +1 -1
  1024. package/lib/esm/solid/SolidPrimitive.d.ts +12 -11
  1025. package/lib/esm/solid/SolidPrimitive.d.ts.map +1 -1
  1026. package/lib/esm/solid/SolidPrimitive.js +11 -6
  1027. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  1028. package/lib/esm/solid/Sphere.d.ts +53 -24
  1029. package/lib/esm/solid/Sphere.d.ts.map +1 -1
  1030. package/lib/esm/solid/Sphere.js +76 -41
  1031. package/lib/esm/solid/Sphere.js.map +1 -1
  1032. package/lib/esm/solid/SweepContour.d.ts +25 -16
  1033. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  1034. package/lib/esm/solid/SweepContour.js +34 -16
  1035. package/lib/esm/solid/SweepContour.js.map +1 -1
  1036. package/lib/esm/solid/TorusPipe.d.ts +8 -2
  1037. package/lib/esm/solid/TorusPipe.d.ts.map +1 -1
  1038. package/lib/esm/solid/TorusPipe.js +16 -7
  1039. package/lib/esm/solid/TorusPipe.js.map +1 -1
  1040. package/lib/esm/topology/ChainMerge.js +16 -4
  1041. package/lib/esm/topology/ChainMerge.js.map +1 -1
  1042. package/lib/esm/topology/Graph.js +41 -6
  1043. package/lib/esm/topology/Graph.js.map +1 -1
  1044. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +1 -1
  1045. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -1
  1046. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  1047. package/lib/esm/topology/HalfEdgeGraphSearch.js +2 -0
  1048. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  1049. package/lib/esm/topology/HalfEdgeGraphSpineContext.js +9 -2
  1050. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  1051. package/lib/esm/topology/HalfEdgeGraphValidation.js +7 -9
  1052. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  1053. package/lib/esm/topology/HalfEdgeMarkSet.js +5 -0
  1054. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  1055. package/lib/esm/topology/HalfEdgeNodeXYZUV.js +6 -0
  1056. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  1057. package/lib/esm/topology/HalfEdgePointInGraphSearch.js +1 -0
  1058. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  1059. package/lib/esm/topology/HalfEdgePositionDetail.js +16 -0
  1060. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  1061. package/lib/esm/topology/HalfEdgePriorityQueue.js +2 -0
  1062. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  1063. package/lib/esm/topology/InsertAndRetriangulateContext.js +4 -0
  1064. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  1065. package/lib/esm/topology/MaskManager.js +3 -0
  1066. package/lib/esm/topology/MaskManager.js.map +1 -1
  1067. package/lib/esm/topology/Merging.js +11 -6
  1068. package/lib/esm/topology/Merging.js.map +1 -1
  1069. package/lib/esm/topology/RegularizeFace.js +22 -0
  1070. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  1071. package/lib/esm/topology/SignedDataSummary.js +22 -0
  1072. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  1073. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  1074. package/lib/esm/topology/Triangulation.js +21 -11
  1075. package/lib/esm/topology/Triangulation.js.map +1 -1
  1076. package/lib/esm/topology/XYParitySearchContext.js +13 -0
  1077. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  1078. package/package.json +9 -9
@@ -12,10 +12,10 @@ import { Transform } from "../geometry3d/Transform";
12
12
  import { SolidPrimitive } from "./SolidPrimitive";
13
13
  import { SweepContour } from "./SweepContour";
14
14
  /**
15
- * A LinearSweep is
16
- * * A planar contour (any Loop, Path, or parityRegion)
15
+ * A RotationalSweep is
16
+ * * A planar contour (any Loop, Path, or parityRegion).
17
17
  * * An axis vector.
18
- * * The planar contour is expected to be in the plane of the axis vector
18
+ * * The planar contour is expected to be in the plane of the axis vector.
19
19
  * * The contour may have points and/or lines that are on the axis, but otherwise is entirely on one side of the axis.
20
20
  * * A sweep angle.
21
21
  * @public
@@ -27,15 +27,22 @@ export declare class RotationalSweep extends SolidPrimitive {
27
27
  private _normalizedAxis;
28
28
  private _sweepAngle;
29
29
  private constructor();
30
- /** Create a rotational sweep. */
30
+ /**
31
+ * Create a rotational sweep.
32
+ * @param contour profile to sweep, coplanar with axis (CAPTURED).
33
+ * @param axis rotation axis.
34
+ * @param sweepAngle signed angular sweep.
35
+ * @param capped whether to cap the surface to make a solid.
36
+ */
31
37
  static create(contour: AnyCurve, axis: Ray3d, sweepAngle: Angle, capped: boolean): RotationalSweep | undefined;
32
- /** Return a coordinate frame (right handed unit vectors)
33
- * * origin at origin of rotation ray
38
+ /**
39
+ * Return a coordinate frame (right handed unit vectors).
40
+ * * origin at origin of rotation ray.
34
41
  * * z direction along the rotation ray.
35
- * * y direction perpendicular to the base contour plane
42
+ * * y direction perpendicular to the base contour plane.
36
43
  */
37
44
  getConstructiveFrame(): Transform | undefined;
38
- /** return clone of (not reference to) the axis vector. */
45
+ /** Return clone of (not reference to) the axis vector. */
39
46
  cloneAxisRay(): Ray3d;
40
47
  /** Return (REFERENCE TO) the swept curves. */
41
48
  getCurves(): CurveCollection;
@@ -47,13 +54,19 @@ export declare class RotationalSweep extends SolidPrimitive {
47
54
  isSameGeometryClass(other: any): boolean;
48
55
  /** Test for same axis, capping, and swept geometry. */
49
56
  isAlmostEqual(other: GeometryQuery): boolean;
50
- /** return a deep clone */
57
+ /** Return a deep clone */
51
58
  clone(): RotationalSweep;
52
- /** Transform the contour and axis */
59
+ /**
60
+ * Transform the contour and axis.
61
+ * * This fails if the transformation is singular.
62
+ */
53
63
  tryTransformInPlace(transform: Transform): boolean;
54
- /** return a cloned transform. */
55
- cloneTransformed(transform: Transform): RotationalSweep;
56
- /** Dispatch to strongly typed handler `handler.handleRotationalSweep(this)` */
64
+ /**
65
+ * Return a transformed clone.
66
+ * * This fails if the transformation is singular.
67
+ */
68
+ cloneTransformed(transform: Transform): RotationalSweep | undefined;
69
+ /** Dispatch to strongly typed handler `handler.handleRotationalSweep(this)`. */
57
70
  dispatchToGeometryHandler(handler: GeometryHandler): any;
58
71
  /** Return a transform that rotates around the rotational axis by a fraction of the total sweep. */
59
72
  getFractionalRotationTransform(vFraction: number, result?: Transform): Transform;
@@ -64,9 +77,7 @@ export declare class RotationalSweep extends SolidPrimitive {
64
77
  constantVSection(vFraction: number): CurveCollection | undefined;
65
78
  /** Extend range using sampled points on the surface. */
66
79
  extendRange(range: Range3d, transform?: Transform): void;
67
- /**
68
- * @return true if this is a closed volume.
69
- */
80
+ /** Specify if the sweep forms a closed volume. */
70
81
  get isClosedVolume(): boolean;
71
82
  }
72
83
  //# sourceMappingURL=RotationalSweep.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RotationalSweep.d.ts","sourceRoot":"","sources":["../../../src/solid/RotationalSweep.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,cAAc;IACjD,wCAAwC;IACxC,SAAgB,kBAAkB,qBAAqB;IAEvD,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO;IAOP,iCAAiC;WACnB,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS;IASrH;;;;OAIG;IACI,oBAAoB,IAAI,SAAS,GAAG,SAAS;IAQpD,0DAA0D;IACnD,YAAY,IAAI,KAAK;IAC5B,8CAA8C;IACvC,SAAS,IAAI,eAAe;IACnC,2EAA2E;IACpE,kBAAkB,IAAI,YAAY;IACzC,8BAA8B;IACvB,QAAQ,IAAI,KAAK;IACxB,6CAA6C;IACtC,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAC/C,uDAAuD;IACvC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAQ5D,0BAA0B;IACnB,KAAK,IAAI,eAAe;IAG/B,qCAAqC;IAC9B,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAQzD,iCAAiC;IAC1B,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe;IAK9D,gFAAgF;IACzE,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG;IAG/D,mGAAmG;IAC5F,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAOvF;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAOvE,wDAAwD;IACjD,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS;IAmBxD;;OAEG;IACH,IAAW,cAAc,IAAI,OAAO,CAEnC;CACF"}
1
+ {"version":3,"file":"RotationalSweep.d.ts","sourceRoot":"","sources":["../../../src/solid/RotationalSweep.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,cAAc;IACjD,wCAAwC;IACxC,SAAgB,kBAAkB,qBAAqB;IAEvD,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO;IAMP;;;;;;OAMG;WACW,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS;IAQrH;;;;;OAKG;IACI,oBAAoB,IAAI,SAAS,GAAG,SAAS;IAQpD,0DAA0D;IACnD,YAAY,IAAI,KAAK;IAG5B,8CAA8C;IACvC,SAAS,IAAI,eAAe;IAGnC,2EAA2E;IACpE,kBAAkB,IAAI,YAAY;IAGzC,8BAA8B;IACvB,QAAQ,IAAI,KAAK;IAGxB,6CAA6C;IACtC,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAG/C,uDAAuD;IACvC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAS5D,0BAA0B;IACnB,KAAK,IAAI,eAAe;IAG/B;;;OAGG;IACI,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAWzD;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS;IAI1E,gFAAgF;IACzE,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG;IAG/D,mGAAmG;IAC5F,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAOvF;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAOvE,wDAAwD;IACjD,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS;IAoBxD,kDAAkD;IAClD,IAAW,cAAc,IAAI,OAAO,CAEnC;CACF"}
@@ -13,25 +13,33 @@ const Transform_1 = require("../geometry3d/Transform");
13
13
  const SolidPrimitive_1 = require("./SolidPrimitive");
14
14
  const SweepContour_1 = require("./SweepContour");
15
15
  /**
16
- * A LinearSweep is
17
- * * A planar contour (any Loop, Path, or parityRegion)
16
+ * A RotationalSweep is
17
+ * * A planar contour (any Loop, Path, or parityRegion).
18
18
  * * An axis vector.
19
- * * The planar contour is expected to be in the plane of the axis vector
19
+ * * The planar contour is expected to be in the plane of the axis vector.
20
20
  * * The contour may have points and/or lines that are on the axis, but otherwise is entirely on one side of the axis.
21
21
  * * A sweep angle.
22
22
  * @public
23
23
  */
24
24
  class RotationalSweep extends SolidPrimitive_1.SolidPrimitive {
25
+ /** String name for schema properties */
26
+ solidPrimitiveType = "rotationalSweep";
27
+ _contour;
28
+ _normalizedAxis;
29
+ _sweepAngle;
25
30
  constructor(contour, normalizedAxis, sweepAngle, capped) {
26
31
  super(capped);
27
- /** String name for schema properties */
28
- this.solidPrimitiveType = "rotationalSweep";
29
32
  this._contour = contour;
30
33
  this._normalizedAxis = normalizedAxis;
31
- this.capped = capped;
32
34
  this._sweepAngle = sweepAngle;
33
35
  }
34
- /** Create a rotational sweep. */
36
+ /**
37
+ * Create a rotational sweep.
38
+ * @param contour profile to sweep, coplanar with axis (CAPTURED).
39
+ * @param axis rotation axis.
40
+ * @param sweepAngle signed angular sweep.
41
+ * @param capped whether to cap the surface to make a solid.
42
+ */
35
43
  static create(contour, axis, sweepAngle, capped) {
36
44
  if (!axis.direction.normalizeInPlace())
37
45
  return undefined;
@@ -40,10 +48,11 @@ class RotationalSweep extends SolidPrimitive_1.SolidPrimitive {
40
48
  return undefined;
41
49
  return new RotationalSweep(sweepable, axis, sweepAngle.clone(), capped);
42
50
  }
43
- /** Return a coordinate frame (right handed unit vectors)
44
- * * origin at origin of rotation ray
51
+ /**
52
+ * Return a coordinate frame (right handed unit vectors).
53
+ * * origin at origin of rotation ray.
45
54
  * * z direction along the rotation ray.
46
- * * y direction perpendicular to the base contour plane
55
+ * * y direction perpendicular to the base contour plane.
47
56
  */
48
57
  getConstructiveFrame() {
49
58
  const contourPerpendicular = this._contour.localToWorld.matrix.columnZ();
@@ -53,45 +62,64 @@ class RotationalSweep extends SolidPrimitive_1.SolidPrimitive {
53
62
  }
54
63
  return undefined;
55
64
  }
56
- /** return clone of (not reference to) the axis vector. */
57
- cloneAxisRay() { return this._normalizedAxis.clone(); }
65
+ /** Return clone of (not reference to) the axis vector. */
66
+ cloneAxisRay() {
67
+ return this._normalizedAxis.clone();
68
+ }
58
69
  /** Return (REFERENCE TO) the swept curves. */
59
- getCurves() { return this._contour.curves; }
70
+ getCurves() {
71
+ return this._contour.curves;
72
+ }
60
73
  /** Return (REFERENCE TO) the swept curves with containing plane markup. */
61
- getSweepContourRef() { return this._contour; }
74
+ getSweepContourRef() {
75
+ return this._contour;
76
+ }
62
77
  /** Return the sweep angle. */
63
- getSweep() { return this._sweepAngle.clone(); }
78
+ getSweep() {
79
+ return this._sweepAngle.clone();
80
+ }
64
81
  /** Test if `other` is a `RotationalSweep` */
65
- isSameGeometryClass(other) { return other instanceof RotationalSweep; }
82
+ isSameGeometryClass(other) {
83
+ return other instanceof RotationalSweep;
84
+ }
66
85
  /** Test for same axis, capping, and swept geometry. */
67
86
  isAlmostEqual(other) {
68
87
  if (other instanceof RotationalSweep) {
69
88
  return this._contour.isAlmostEqual(other._contour)
70
89
  && this._normalizedAxis.isAlmostEqual(other._normalizedAxis)
90
+ && this._sweepAngle.isAlmostEqual(other._sweepAngle)
71
91
  && this.capped === other.capped;
72
92
  }
73
93
  return false;
74
94
  }
75
- /** return a deep clone */
95
+ /** Return a deep clone */
76
96
  clone() {
77
97
  return new RotationalSweep(this._contour.clone(), this._normalizedAxis.clone(), this._sweepAngle.clone(), this.capped);
78
98
  }
79
- /** Transform the contour and axis */
99
+ /**
100
+ * Transform the contour and axis.
101
+ * * This fails if the transformation is singular.
102
+ */
80
103
  tryTransformInPlace(transform) {
81
- if (!transform.matrix.isSingular()
82
- && this._contour.tryTransformInPlace(transform)) {
104
+ if (transform.matrix.isSingular())
105
+ return false;
106
+ if (this._contour.tryTransformInPlace(transform)) {
83
107
  this._normalizedAxis.transformInPlace(transform);
108
+ if (transform.matrix.determinant() < 0.0)
109
+ this._sweepAngle.setRadians(-this._sweepAngle.radians);
84
110
  return this._normalizedAxis.direction.normalizeInPlace();
85
111
  }
86
112
  return false;
87
113
  }
88
- /** return a cloned transform. */
114
+ /**
115
+ * Return a transformed clone.
116
+ * * This fails if the transformation is singular.
117
+ */
89
118
  cloneTransformed(transform) {
90
119
  const result = this.clone();
91
- result.tryTransformInPlace(transform);
92
- return result;
120
+ return result.tryTransformInPlace(transform) ? result : undefined;
93
121
  }
94
- /** Dispatch to strongly typed handler `handler.handleRotationalSweep(this)` */
122
+ /** Dispatch to strongly typed handler `handler.handleRotationalSweep(this)`. */
95
123
  dispatchToGeometryHandler(handler) {
96
124
  return handler.handleRotationalSweep(this);
97
125
  }
@@ -132,9 +160,7 @@ class RotationalSweep extends SolidPrimitive_1.SolidPrimitive {
132
160
  strokes.extendRange(range, this.getFractionalRotationTransform(i / numStep, stepTransform));
133
161
  }
134
162
  }
135
- /**
136
- * @return true if this is a closed volume.
137
- */
163
+ /** Specify if the sweep forms a closed volume. */
138
164
  get isClosedVolume() {
139
165
  return this.capped || this._sweepAngle.isFullCircle;
140
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RotationalSweep.js","sourceRoot":"","sources":["../../../src/solid/RotationalSweep.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Solid\r\n */\r\n\r\nimport { AnyCurve } from \"../curve/CurveTypes\";\r\nimport { CurveCollection } from \"../curve/CurveCollection\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { StrokeOptions } from \"../curve/StrokeOptions\";\r\nimport { AxisOrder, Geometry } from \"../Geometry\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { Ray3d } from \"../geometry3d/Ray3d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { SolidPrimitive } from \"./SolidPrimitive\";\r\nimport { SweepContour } from \"./SweepContour\";\r\n\r\n/**\r\n * A LinearSweep is\r\n * * A planar contour (any Loop, Path, or parityRegion)\r\n * * An axis vector.\r\n * * The planar contour is expected to be in the plane of the axis vector\r\n * * The contour may have points and/or lines that are on the axis, but otherwise is entirely on one side of the axis.\r\n * * A sweep angle.\r\n * @public\r\n */\r\nexport class RotationalSweep extends SolidPrimitive {\r\n /** String name for schema properties */\r\n public readonly solidPrimitiveType = \"rotationalSweep\";\r\n\r\n private _contour: SweepContour;\r\n private _normalizedAxis: Ray3d;\r\n private _sweepAngle: Angle;\r\n private constructor(contour: SweepContour, normalizedAxis: Ray3d, sweepAngle: Angle, capped: boolean) {\r\n super(capped);\r\n this._contour = contour;\r\n this._normalizedAxis = normalizedAxis;\r\n this.capped = capped;\r\n this._sweepAngle = sweepAngle;\r\n }\r\n /** Create a rotational sweep. */\r\n public static create(contour: AnyCurve, axis: Ray3d, sweepAngle: Angle, capped: boolean): RotationalSweep | undefined {\r\n if (!axis.direction.normalizeInPlace())\r\n return undefined;\r\n const sweepable = SweepContour.createForRotation(contour, axis);\r\n if (!sweepable)\r\n return undefined;\r\n return new RotationalSweep(sweepable, axis, sweepAngle.clone(), capped);\r\n }\r\n\r\n /** Return a coordinate frame (right handed unit vectors)\r\n * * origin at origin of rotation ray\r\n * * z direction along the rotation ray.\r\n * * y direction perpendicular to the base contour plane\r\n */\r\n public getConstructiveFrame(): Transform | undefined {\r\n const contourPerpendicular = this._contour.localToWorld.matrix.columnZ();\r\n const axes = Matrix3d.createRigidFromColumns(contourPerpendicular, this._normalizedAxis.direction, AxisOrder.YZX);\r\n if (axes) {\r\n return Transform.createOriginAndMatrix(this._normalizedAxis.origin, axes);\r\n }\r\n return undefined;\r\n }\r\n /** return clone of (not reference to) the axis vector. */\r\n public cloneAxisRay(): Ray3d { return this._normalizedAxis.clone(); }\r\n /** Return (REFERENCE TO) the swept curves. */\r\n public getCurves(): CurveCollection { return this._contour.curves; }\r\n /** Return (REFERENCE TO) the swept curves with containing plane markup. */\r\n public getSweepContourRef(): SweepContour { return this._contour; }\r\n /** Return the sweep angle. */\r\n public getSweep(): Angle { return this._sweepAngle.clone(); }\r\n /** Test if `other` is a `RotationalSweep` */\r\n public isSameGeometryClass(other: any): boolean { return other instanceof RotationalSweep; }\r\n /** Test for same axis, capping, and swept geometry. */\r\n public override isAlmostEqual(other: GeometryQuery): boolean {\r\n if (other instanceof RotationalSweep) {\r\n return this._contour.isAlmostEqual(other._contour)\r\n && this._normalizedAxis.isAlmostEqual(other._normalizedAxis)\r\n && this.capped === other.capped;\r\n }\r\n return false;\r\n }\r\n /** return a deep clone */\r\n public clone(): RotationalSweep {\r\n return new RotationalSweep(this._contour.clone(), this._normalizedAxis.clone(), this._sweepAngle.clone(), this.capped);\r\n }\r\n /** Transform the contour and axis */\r\n public tryTransformInPlace(transform: Transform): boolean {\r\n if (!transform.matrix.isSingular()\r\n && this._contour.tryTransformInPlace(transform)) {\r\n this._normalizedAxis.transformInPlace(transform);\r\n return this._normalizedAxis.direction.normalizeInPlace();\r\n }\r\n return false;\r\n }\r\n /** return a cloned transform. */\r\n public cloneTransformed(transform: Transform): RotationalSweep {\r\n const result = this.clone();\r\n result.tryTransformInPlace(transform);\r\n return result;\r\n }\r\n /** Dispatch to strongly typed handler `handler.handleRotationalSweep(this)` */\r\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\r\n return handler.handleRotationalSweep(this);\r\n }\r\n /** Return a transform that rotates around the rotational axis by a fraction of the total sweep. */\r\n public getFractionalRotationTransform(vFraction: number, result?: Transform): Transform {\r\n const radians = this._sweepAngle.radians * vFraction;\r\n const rotation = Transform.createFixedPointAndMatrix(this._normalizedAxis.origin,\r\n Matrix3d.createRotationAroundVector(this._normalizedAxis.direction, Angle.createRadians(radians),\r\n result ? result.matrix : undefined) as Matrix3d);\r\n return rotation;\r\n }\r\n /**\r\n * Return the curves of a constant-v section of the solid.\r\n * @param vFraction fractional position along the sweep direction\r\n */\r\n public constantVSection(vFraction: number): CurveCollection | undefined {\r\n const section = this._contour.curves.clone();\r\n if (section) {\r\n section.tryTransformInPlace(this.getFractionalRotationTransform(vFraction));\r\n }\r\n return section;\r\n }\r\n /** Extend range using sampled points on the surface. */\r\n public extendRange(range: Range3d, transform?: Transform) {\r\n const degreeStep = 360 / 32;\r\n const options = StrokeOptions.createForCurves();\r\n options.angleTol = Angle.createDegrees(degreeStep);\r\n const strokes = this._contour.curves.cloneStroked(options);\r\n const numStep = Geometry.stepCount(degreeStep, this._sweepAngle.degrees, 4, 32);\r\n const stepTransform = Transform.createIdentity();\r\n if (transform) {\r\n const compositeTransform = Transform.createIdentity();\r\n for (let i = 0; i <= numStep; i++) {\r\n transform.multiplyTransformTransform(this.getFractionalRotationTransform(i / numStep, stepTransform), compositeTransform);\r\n strokes.extendRange(range, compositeTransform);\r\n }\r\n\r\n } else {\r\n for (let i = 0; i <= numStep; i++)\r\n strokes.extendRange(range, this.getFractionalRotationTransform(i / numStep, stepTransform));\r\n }\r\n }\r\n /**\r\n * @return true if this is a closed volume.\r\n */\r\n public get isClosedVolume(): boolean {\r\n return this.capped || this._sweepAngle.isFullCircle;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RotationalSweep.js","sourceRoot":"","sources":["../../../src/solid/RotationalSweep.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Solid\n */\n\nimport { AnyCurve } from \"../curve/CurveTypes\";\nimport { CurveCollection } from \"../curve/CurveCollection\";\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\nimport { StrokeOptions } from \"../curve/StrokeOptions\";\nimport { AxisOrder, Geometry } from \"../Geometry\";\nimport { Angle } from \"../geometry3d/Angle\";\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\nimport { Range3d } from \"../geometry3d/Range\";\nimport { Ray3d } from \"../geometry3d/Ray3d\";\nimport { Transform } from \"../geometry3d/Transform\";\nimport { SolidPrimitive } from \"./SolidPrimitive\";\nimport { SweepContour } from \"./SweepContour\";\n\n/**\n * A RotationalSweep is\n * * A planar contour (any Loop, Path, or parityRegion).\n * * An axis vector.\n * * The planar contour is expected to be in the plane of the axis vector.\n * * The contour may have points and/or lines that are on the axis, but otherwise is entirely on one side of the axis.\n * * A sweep angle.\n * @public\n */\nexport class RotationalSweep extends SolidPrimitive {\n /** String name for schema properties */\n public readonly solidPrimitiveType = \"rotationalSweep\";\n\n private _contour: SweepContour;\n private _normalizedAxis: Ray3d;\n private _sweepAngle: Angle;\n private constructor(contour: SweepContour, normalizedAxis: Ray3d, sweepAngle: Angle, capped: boolean) {\n super(capped);\n this._contour = contour;\n this._normalizedAxis = normalizedAxis;\n this._sweepAngle = sweepAngle;\n }\n /**\n * Create a rotational sweep.\n * @param contour profile to sweep, coplanar with axis (CAPTURED).\n * @param axis rotation axis.\n * @param sweepAngle signed angular sweep.\n * @param capped whether to cap the surface to make a solid.\n */\n public static create(contour: AnyCurve, axis: Ray3d, sweepAngle: Angle, capped: boolean): RotationalSweep | undefined {\n if (!axis.direction.normalizeInPlace())\n return undefined;\n const sweepable = SweepContour.createForRotation(contour, axis);\n if (!sweepable)\n return undefined;\n return new RotationalSweep(sweepable, axis, sweepAngle.clone(), capped);\n }\n /**\n * Return a coordinate frame (right handed unit vectors).\n * * origin at origin of rotation ray.\n * * z direction along the rotation ray.\n * * y direction perpendicular to the base contour plane.\n */\n public getConstructiveFrame(): Transform | undefined {\n const contourPerpendicular = this._contour.localToWorld.matrix.columnZ();\n const axes = Matrix3d.createRigidFromColumns(contourPerpendicular, this._normalizedAxis.direction, AxisOrder.YZX);\n if (axes) {\n return Transform.createOriginAndMatrix(this._normalizedAxis.origin, axes);\n }\n return undefined;\n }\n /** Return clone of (not reference to) the axis vector. */\n public cloneAxisRay(): Ray3d {\n return this._normalizedAxis.clone();\n }\n /** Return (REFERENCE TO) the swept curves. */\n public getCurves(): CurveCollection {\n return this._contour.curves;\n }\n /** Return (REFERENCE TO) the swept curves with containing plane markup. */\n public getSweepContourRef(): SweepContour {\n return this._contour;\n }\n /** Return the sweep angle. */\n public getSweep(): Angle {\n return this._sweepAngle.clone();\n }\n /** Test if `other` is a `RotationalSweep` */\n public isSameGeometryClass(other: any): boolean {\n return other instanceof RotationalSweep;\n }\n /** Test for same axis, capping, and swept geometry. */\n public override isAlmostEqual(other: GeometryQuery): boolean {\n if (other instanceof RotationalSweep) {\n return this._contour.isAlmostEqual(other._contour)\n && this._normalizedAxis.isAlmostEqual(other._normalizedAxis)\n && this._sweepAngle.isAlmostEqual(other._sweepAngle)\n && this.capped === other.capped;\n }\n return false;\n }\n /** Return a deep clone */\n public clone(): RotationalSweep {\n return new RotationalSweep(this._contour.clone(), this._normalizedAxis.clone(), this._sweepAngle.clone(), this.capped);\n }\n /**\n * Transform the contour and axis.\n * * This fails if the transformation is singular.\n */\n public tryTransformInPlace(transform: Transform): boolean {\n if (transform.matrix.isSingular())\n return false;\n if (this._contour.tryTransformInPlace(transform)) {\n this._normalizedAxis.transformInPlace(transform);\n if (transform.matrix.determinant() < 0.0)\n this._sweepAngle.setRadians(-this._sweepAngle.radians);\n return this._normalizedAxis.direction.normalizeInPlace();\n }\n return false;\n }\n /**\n * Return a transformed clone.\n * * This fails if the transformation is singular.\n */\n public cloneTransformed(transform: Transform): RotationalSweep | undefined {\n const result = this.clone();\n return result.tryTransformInPlace(transform) ? result : undefined;\n }\n /** Dispatch to strongly typed handler `handler.handleRotationalSweep(this)`. */\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\n return handler.handleRotationalSweep(this);\n }\n /** Return a transform that rotates around the rotational axis by a fraction of the total sweep. */\n public getFractionalRotationTransform(vFraction: number, result?: Transform): Transform {\n const radians = this._sweepAngle.radians * vFraction;\n const rotation = Transform.createFixedPointAndMatrix(this._normalizedAxis.origin,\n Matrix3d.createRotationAroundVector(this._normalizedAxis.direction, Angle.createRadians(radians),\n result ? result.matrix : undefined) as Matrix3d);\n return rotation;\n }\n /**\n * Return the curves of a constant-v section of the solid.\n * @param vFraction fractional position along the sweep direction\n */\n public constantVSection(vFraction: number): CurveCollection | undefined {\n const section = this._contour.curves.clone();\n if (section) {\n section.tryTransformInPlace(this.getFractionalRotationTransform(vFraction));\n }\n return section;\n }\n /** Extend range using sampled points on the surface. */\n public extendRange(range: Range3d, transform?: Transform) {\n const degreeStep = 360 / 32;\n const options = StrokeOptions.createForCurves();\n options.angleTol = Angle.createDegrees(degreeStep);\n const strokes = this._contour.curves.cloneStroked(options);\n const numStep = Geometry.stepCount(degreeStep, this._sweepAngle.degrees, 4, 32);\n const stepTransform = Transform.createIdentity();\n if (transform) {\n const compositeTransform = Transform.createIdentity();\n for (let i = 0; i <= numStep; i++) {\n transform.multiplyTransformTransform(\n this.getFractionalRotationTransform(i / numStep, stepTransform), compositeTransform,\n );\n strokes.extendRange(range, compositeTransform);\n }\n } else {\n for (let i = 0; i <= numStep; i++)\n strokes.extendRange(range, this.getFractionalRotationTransform(i / numStep, stepTransform));\n }\n }\n /** Specify if the sweep forms a closed volume. */\n public get isClosedVolume(): boolean {\n return this.capped || this._sweepAngle.isFullCircle;\n }\n}\n"]}
@@ -8,69 +8,78 @@ import { Transform } from "../geometry3d/Transform";
8
8
  import { SolidPrimitive } from "./SolidPrimitive";
9
9
  import { SweepContour } from "./SweepContour";
10
10
  /**
11
- * * type for a function argument taking 2 curves and returning another curve or failing with undefined.
12
- * * This is used (for instance) by `RuleSweep.mutatePartners`
11
+ * Type for a function argument taking 2 curves and returning another curve or failing with undefined.
12
+ * * This is used (for instance) by `RuleSweep.mutatePartners`.
13
13
  * @public
14
14
  */
15
15
  export type CurvePrimitiveMutator = (primitiveA: CurvePrimitive, primitiveB: CurvePrimitive) => CurvePrimitive | undefined;
16
16
  /**
17
17
  * A ruled sweep (surface) is a collection of 2 or more contours.
18
- * * All contours must have identical number and type of geometry. (paths, loops, parity regions, lines, arcs, other curves)
18
+ * * All contours must have identical number and type of geometry. (paths, loops, parity regions, lines, arcs, other curves).
19
19
  * @public
20
20
  */
21
21
  export declare class RuledSweep extends SolidPrimitive {
22
- /** String name for schema properties */
22
+ /** String name for schema properties. */
23
23
  readonly solidPrimitiveType = "ruledSweep";
24
24
  private _contours;
25
25
  private constructor();
26
26
  /**
27
27
  * Create a ruled sweep from an array of contours.
28
- * * the contours are CAPTURED (not cloned)
28
+ * * The contours are CAPTURED (not cloned).
29
29
  */
30
30
  static create(contours: AnyCurve[], capped: boolean): RuledSweep | undefined;
31
31
  /** Return a reference to the array of SweepContour. */
32
32
  sweepContoursRef(): SweepContour[];
33
- /** Return clones of all the sweep contours
34
- * * See also cloneContours, which returns the spatial contours without their local coordinate system definitions)
33
+ /**
34
+ * Return clones of the sweep contours.
35
+ * * See also [[cloneContours]], which returns the contours without their local coordinate system definitions.
35
36
  */
36
37
  cloneSweepContours(): SweepContour[];
37
- /** Return clones of all the contours
38
- * * See also cloneContours, which returns the contours in their local coordinate systems
38
+ /**
39
+ * Return clones of the sweep contours, each as a [[CurveCollection]].
40
+ * * See also [[cloneSweepContours]], which returns the contours with their local coordinate system definitions.
39
41
  */
40
42
  cloneContours(): CurveCollection[];
41
- /** Return a deep clone */
43
+ /** Return a deep clone. */
42
44
  clone(): RuledSweep;
43
- /** Transform all contours in place. */
45
+ /**
46
+ * Transform all contours in place.
47
+ * * This fails if the transformation is singular.
48
+ */
44
49
  tryTransformInPlace(transform: Transform): boolean;
45
- /** Return a cloned transform. */
46
- cloneTransformed(transform: Transform): RuledSweep;
47
- /** Return a coordinate frame (right handed unit vectors)
48
- * * origin on base contour
50
+ /**
51
+ * Return a transformed clone.
52
+ * * This fails if the transformation is singular.
53
+ */
54
+ cloneTransformed(transform: Transform): RuledSweep | undefined;
55
+ /**
56
+ * Return a coordinate frame (right handed unit vectors)
57
+ * * origin on base contour.
49
58
  * * x, y directions from base contour.
50
- * * z direction perpendicular
59
+ * * z direction perpendicular.
51
60
  */
52
61
  getConstructiveFrame(): Transform | undefined;
53
- /** Test if `other` is an instance of a `RuledSweep` */
62
+ /** Test if `other` is an instance of a `RuledSweep`. */
54
63
  isSameGeometryClass(other: any): boolean;
55
- /** test same contour geometry and capping. */
64
+ /** Test for near equality of two RuledSweeps. */
56
65
  isAlmostEqual(other: GeometryQuery): boolean;
57
- /** dispatch to strongly typed `handler.handleRuledSweep(this)` */
66
+ /** Dispatch to strongly typed `handler.handleRuledSweep(this)`. */
58
67
  dispatchToGeometryHandler(handler: GeometryHandler): any;
59
68
  /**
60
- * Return the section curves at a fraction of the sweep
61
- * @param vFraction fractional position along the sweep direction
69
+ * Return the section curves at a fraction of the sweep.
70
+ * @param vFraction fractional position along the sweep direction.
62
71
  */
63
72
  constantVSection(vFraction: number): CurveCollection | undefined;
64
- /** Pass each contour to `extendRange` */
73
+ /** Pass each contour to `extendRange`. */
65
74
  extendRange(rangeToExtend: Range3d, transform?: Transform): void;
66
- /** Construct a CurveCollection with the same structure as collectionA and collectionB, with primitives constructed by the caller-supplied primitiveMutator function.
75
+ /**
76
+ * Construct a CurveCollection with the same structure as collectionA and collectionB, with primitives constructed
77
+ * by the caller-supplied primitiveMutator function.
67
78
  * @returns Returns undefined if there is any type mismatch between the two collections.
68
79
  */
69
80
  static mutatePartners(collectionA: CurveCollection, collectionB: CurveCollection, primitiveMutator: CurvePrimitiveMutator): CurveCollection | undefined;
70
81
  /**
71
- * Return true if this is a closed volume, as observed by
72
- * * cap flag
73
- * identical first and last contours.
82
+ * @return true if this is a closed volume.
74
83
  */
75
84
  get isClosedVolume(): boolean;
76
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RuledSweep.d.ts","sourceRoot":"","sources":["../../../src/solid/RuledSweep.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,KAAK,cAAc,GAAG,SAAS,CAAC;AAC3H;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,cAAc;IAC5C,wCAAwC;IACxC,SAAgB,kBAAkB,gBAAgB;IAElD,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO;IAIP;;;OAGG;WACW,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;IASnF,uDAAuD;IAChD,gBAAgB,IAAI,YAAY,EAAE;IACzC;;OAEG;IACI,kBAAkB,IAAI,YAAY,EAAE;IAO3C;;OAEG;IACI,aAAa,IAAI,eAAe,EAAE;IAOzC,0BAA0B;IACnB,KAAK,IAAI,UAAU;IAG1B,uCAAuC;IAChC,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAQzD,iCAAiC;IAC1B,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU;IAKzD;;;;OAIG;IACI,oBAAoB,IAAI,SAAS,GAAG,SAAS;IAIpD,uDAAuD;IAChD,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAC/C,8CAA8C;IAC9B,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAY5D,kEAAkE;IAC3D,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG;IAG/D;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAqBvE,yCAAyC;IAClC,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IAKvE;;OAEG;WACW,cAAc,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,GAAG,eAAe,GAAG,SAAS;IA6C9J;;;;OAIG;IACH,IAAW,cAAc,IAAI,OAAO,CAGnC;CAEF"}
1
+ {"version":3,"file":"RuledSweep.d.ts","sourceRoot":"","sources":["../../../src/solid/RuledSweep.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,KAAK,cAAc,GAAG,SAAS,CAAC;AAC3H;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,cAAc;IAC5C,yCAAyC;IACzC,SAAgB,kBAAkB,gBAAgB;IAElD,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO;IAIP;;;OAGG;WACW,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;IAUnF,uDAAuD;IAChD,gBAAgB,IAAI,YAAY,EAAE;IAGzC;;;OAGG;IACI,kBAAkB,IAAI,YAAY,EAAE;IAO3C;;;OAGG;IACI,aAAa,IAAI,eAAe,EAAE;IAOzC,2BAA2B;IACpB,KAAK,IAAI,UAAU;IAG1B;;;OAGG;IACI,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IASzD;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS;IAIrE;;;;;OAKG;IACI,oBAAoB,IAAI,SAAS,GAAG,SAAS;IAKpD,wDAAwD;IACjD,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAG/C,iDAAiD;IACjC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAc5D,mEAAmE;IAC5D,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG;IAG/D;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAwBvE,0CAA0C;IACnC,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IAKvE;;;;OAIG;WACW,cAAc,CAC1B,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,GAClG,eAAe,GAAG,SAAS;IA6C9B;;OAEG;IACH,IAAW,cAAc,IAAI,OAAO,CAGnC;CACF"}
@@ -16,19 +16,20 @@ const SolidPrimitive_1 = require("./SolidPrimitive");
16
16
  const SweepContour_1 = require("./SweepContour");
17
17
  /**
18
18
  * A ruled sweep (surface) is a collection of 2 or more contours.
19
- * * All contours must have identical number and type of geometry. (paths, loops, parity regions, lines, arcs, other curves)
19
+ * * All contours must have identical number and type of geometry. (paths, loops, parity regions, lines, arcs, other curves).
20
20
  * @public
21
21
  */
22
22
  class RuledSweep extends SolidPrimitive_1.SolidPrimitive {
23
+ /** String name for schema properties. */
24
+ solidPrimitiveType = "ruledSweep";
25
+ _contours;
23
26
  constructor(contours, capped) {
24
27
  super(capped);
25
- /** String name for schema properties */
26
- this.solidPrimitiveType = "ruledSweep";
27
28
  this._contours = contours;
28
29
  }
29
30
  /**
30
31
  * Create a ruled sweep from an array of contours.
31
- * * the contours are CAPTURED (not cloned)
32
+ * * The contours are CAPTURED (not cloned).
32
33
  */
33
34
  static create(contours, capped) {
34
35
  const sweepContours = [];
@@ -41,9 +42,12 @@ class RuledSweep extends SolidPrimitive_1.SolidPrimitive {
41
42
  return new RuledSweep(sweepContours, capped);
42
43
  }
43
44
  /** Return a reference to the array of SweepContour. */
44
- sweepContoursRef() { return this._contours; }
45
- /** Return clones of all the sweep contours
46
- * * See also cloneContours, which returns the spatial contours without their local coordinate system definitions)
45
+ sweepContoursRef() {
46
+ return this._contours;
47
+ }
48
+ /**
49
+ * Return clones of the sweep contours.
50
+ * * See also [[cloneContours]], which returns the contours without their local coordinate system definitions.
47
51
  */
48
52
  cloneSweepContours() {
49
53
  const result = [];
@@ -52,8 +56,9 @@ class RuledSweep extends SolidPrimitive_1.SolidPrimitive {
52
56
  }
53
57
  return result;
54
58
  }
55
- /** Return clones of all the contours
56
- * * See also cloneContours, which returns the contours in their local coordinate systems
59
+ /**
60
+ * Return clones of the sweep contours, each as a [[CurveCollection]].
61
+ * * See also [[cloneSweepContours]], which returns the contours with their local coordinate system definitions.
57
62
  */
58
63
  cloneContours() {
59
64
  const result = [];
@@ -62,38 +67,47 @@ class RuledSweep extends SolidPrimitive_1.SolidPrimitive {
62
67
  }
63
68
  return result;
64
69
  }
65
- /** Return a deep clone */
70
+ /** Return a deep clone. */
66
71
  clone() {
67
72
  return new RuledSweep(this.cloneSweepContours(), this.capped);
68
73
  }
69
- /** Transform all contours in place. */
74
+ /**
75
+ * Transform all contours in place.
76
+ * * This fails if the transformation is singular.
77
+ */
70
78
  tryTransformInPlace(transform) {
71
79
  if (transform.matrix.isSingular())
72
80
  return false;
73
81
  for (const contour of this._contours) {
74
- contour.tryTransformInPlace(transform);
82
+ if (!contour.tryTransformInPlace(transform))
83
+ return false;
75
84
  }
76
85
  return true;
77
86
  }
78
- /** Return a cloned transform. */
87
+ /**
88
+ * Return a transformed clone.
89
+ * * This fails if the transformation is singular.
90
+ */
79
91
  cloneTransformed(transform) {
80
92
  const result = this.clone();
81
- result.tryTransformInPlace(transform);
82
- return result;
93
+ return result.tryTransformInPlace(transform) ? result : undefined;
83
94
  }
84
- /** Return a coordinate frame (right handed unit vectors)
85
- * * origin on base contour
95
+ /**
96
+ * Return a coordinate frame (right handed unit vectors)
97
+ * * origin on base contour.
86
98
  * * x, y directions from base contour.
87
- * * z direction perpendicular
99
+ * * z direction perpendicular.
88
100
  */
89
101
  getConstructiveFrame() {
90
102
  if (this._contours.length === 0)
91
103
  return undefined;
92
104
  return this._contours[0].localToWorld.cloneRigid();
93
105
  }
94
- /** Test if `other` is an instance of a `RuledSweep` */
95
- isSameGeometryClass(other) { return other instanceof RuledSweep; }
96
- /** test same contour geometry and capping. */
106
+ /** Test if `other` is an instance of a `RuledSweep`. */
107
+ isSameGeometryClass(other) {
108
+ return other instanceof RuledSweep;
109
+ }
110
+ /** Test for near equality of two RuledSweeps. */
97
111
  isAlmostEqual(other) {
98
112
  if (other instanceof RuledSweep) {
99
113
  if (this.capped !== other.capped)
@@ -108,13 +122,13 @@ class RuledSweep extends SolidPrimitive_1.SolidPrimitive {
108
122
  }
109
123
  return false;
110
124
  }
111
- /** dispatch to strongly typed `handler.handleRuledSweep(this)` */
125
+ /** Dispatch to strongly typed `handler.handleRuledSweep(this)`. */
112
126
  dispatchToGeometryHandler(handler) {
113
127
  return handler.handleRuledSweep(this);
114
128
  }
115
129
  /**
116
- * Return the section curves at a fraction of the sweep
117
- * @param vFraction fractional position along the sweep direction
130
+ * Return the section curves at a fraction of the sweep.
131
+ * @param vFraction fractional position along the sweep direction.
118
132
  */
119
133
  constantVSection(vFraction) {
120
134
  const numSection = this._contours.length;
@@ -137,12 +151,14 @@ class RuledSweep extends SolidPrimitive_1.SolidPrimitive {
137
151
  return undefined;
138
152
  });
139
153
  }
140
- /** Pass each contour to `extendRange` */
154
+ /** Pass each contour to `extendRange`. */
141
155
  extendRange(rangeToExtend, transform) {
142
156
  for (const contour of this._contours)
143
157
  contour.curves.extendRange(rangeToExtend, transform);
144
158
  }
145
- /** Construct a CurveCollection with the same structure as collectionA and collectionB, with primitives constructed by the caller-supplied primitiveMutator function.
159
+ /**
160
+ * Construct a CurveCollection with the same structure as collectionA and collectionB, with primitives constructed
161
+ * by the caller-supplied primitiveMutator function.
146
162
  * @returns Returns undefined if there is any type mismatch between the two collections.
147
163
  */
148
164
  static mutatePartners(collectionA, collectionB, primitiveMutator) {
@@ -193,9 +209,7 @@ class RuledSweep extends SolidPrimitive_1.SolidPrimitive {
193
209
  return undefined;
194
210
  }
195
211
  /**
196
- * Return true if this is a closed volume, as observed by
197
- * * cap flag
198
- * identical first and last contours.
212
+ * @return true if this is a closed volume.
199
213
  */
200
214
  get isClosedVolume() {
201
215
  const n = this._contours.length;