@itwin/core-geometry 5.0.0-dev.7 → 5.0.0-dev.72

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 (948) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/lib/cjs/Constant.js +17 -17
  3. package/lib/cjs/Constant.js.map +1 -1
  4. package/lib/cjs/Geometry.js +35 -35
  5. package/lib/cjs/Geometry.js.map +1 -1
  6. package/lib/cjs/bspline/AkimaCurve3d.js +3 -1
  7. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  8. package/lib/cjs/bspline/BSpline1dNd.d.ts +90 -54
  9. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  10. package/lib/cjs/bspline/BSpline1dNd.js +137 -84
  11. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  12. package/lib/cjs/bspline/BSplineCurve.d.ts +193 -155
  13. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  14. package/lib/cjs/bspline/BSplineCurve.js +249 -181
  15. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  16. package/lib/cjs/bspline/BSplineCurve3dH.js +1 -0
  17. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  18. package/lib/cjs/bspline/BSplineCurveOps.d.ts.map +1 -1
  19. package/lib/cjs/bspline/BSplineCurveOps.js +18 -21
  20. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  21. package/lib/cjs/bspline/BSplineSurface.js +22 -2
  22. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  23. package/lib/cjs/bspline/Bezier1dNd.js +6 -0
  24. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  25. package/lib/cjs/bspline/BezierCurve3d.d.ts +3 -1
  26. package/lib/cjs/bspline/BezierCurve3d.d.ts.map +1 -1
  27. package/lib/cjs/bspline/BezierCurve3d.js +5 -5
  28. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  29. package/lib/cjs/bspline/BezierCurve3dH.js +2 -0
  30. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  31. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
  32. package/lib/cjs/bspline/BezierCurveBase.js +21 -2
  33. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  34. package/lib/cjs/bspline/InterpolationCurve3d.js +12 -1
  35. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  36. package/lib/cjs/bspline/KnotVector.d.ts +82 -60
  37. package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
  38. package/lib/cjs/bspline/KnotVector.js +144 -84
  39. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  40. package/lib/cjs/bspline/SurfaceLocationDetail.js +12 -0
  41. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  42. package/lib/cjs/clipping/AlternatingConvexClipTree.js +14 -13
  43. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  44. package/lib/cjs/clipping/BooleanClipNode.js +4 -0
  45. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  46. package/lib/cjs/clipping/ClipPlane.js +10 -1
  47. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  48. package/lib/cjs/clipping/ClipPrimitive.js +19 -0
  49. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  50. package/lib/cjs/clipping/ClipUtils.js +5 -1
  51. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  52. package/lib/cjs/clipping/ClipVector.js +11 -8
  53. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  54. package/lib/cjs/clipping/ConvexClipPlaneSet.js +5 -3
  55. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  56. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +2 -1
  57. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  58. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js +3 -0
  59. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  60. package/lib/cjs/core-geometry.d.ts +1 -0
  61. package/lib/cjs/core-geometry.d.ts.map +1 -1
  62. package/lib/cjs/core-geometry.js +1 -0
  63. package/lib/cjs/core-geometry.js.map +1 -1
  64. package/lib/cjs/curve/Arc3d.d.ts +17 -3
  65. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  66. package/lib/cjs/curve/Arc3d.js +49 -20
  67. package/lib/cjs/curve/Arc3d.js.map +1 -1
  68. package/lib/cjs/curve/ConstructCurveBetweenCurves.js +3 -0
  69. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  70. package/lib/cjs/curve/CoordinateXYZ.js +3 -2
  71. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  72. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +0 -2
  73. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  74. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +25 -10
  75. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  76. package/lib/cjs/curve/CurveCollection.d.ts +10 -0
  77. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  78. package/lib/cjs/curve/CurveCollection.js +35 -9
  79. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  80. package/lib/cjs/curve/CurveFactory.d.ts +87 -53
  81. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  82. package/lib/cjs/curve/CurveFactory.js +213 -135
  83. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  84. package/lib/cjs/curve/CurveLocationDetail.js +44 -0
  85. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  86. package/lib/cjs/curve/CurvePrimitive.d.ts +7 -10
  87. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  88. package/lib/cjs/curve/CurvePrimitive.js +27 -12
  89. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  90. package/lib/cjs/curve/CurveProcessor.js +2 -0
  91. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  92. package/lib/cjs/curve/CurveWireMomentsXYZ.js +2 -0
  93. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  94. package/lib/cjs/curve/LineSegment3d.js +6 -2
  95. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  96. package/lib/cjs/curve/LineString3d.js +27 -7
  97. package/lib/cjs/curve/LineString3d.js.map +1 -1
  98. package/lib/cjs/curve/Loop.js +12 -4
  99. package/lib/cjs/curve/Loop.js.map +1 -1
  100. package/lib/cjs/curve/OffsetOptions.js +25 -21
  101. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  102. package/lib/cjs/curve/ParityRegion.js +4 -2
  103. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  104. package/lib/cjs/curve/Path.js +2 -2
  105. package/lib/cjs/curve/Path.js.map +1 -1
  106. package/lib/cjs/curve/PointString3d.js +3 -2
  107. package/lib/cjs/curve/PointString3d.js.map +1 -1
  108. package/lib/cjs/curve/ProxyCurve.js +1 -0
  109. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  110. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -0
  111. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  112. package/lib/cjs/curve/Query/CurveSplitContext.js +3 -0
  113. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  114. package/lib/cjs/curve/Query/CylindricalRange.js +6 -2
  115. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  116. package/lib/cjs/curve/Query/PlanarSubdivision.js +4 -6
  117. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  118. package/lib/cjs/curve/Query/StrokeCountChain.js +12 -0
  119. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  120. package/lib/cjs/curve/Query/StrokeCountMap.js +14 -0
  121. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  122. package/lib/cjs/curve/RegionMomentsXY.js +4 -5
  123. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  124. package/lib/cjs/curve/RegionOps.js +9 -10
  125. package/lib/cjs/curve/RegionOps.js.map +1 -1
  126. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +24 -1
  127. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  128. package/lib/cjs/curve/StrokeOptions.d.ts +4 -4
  129. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  130. package/lib/cjs/curve/StrokeOptions.js +23 -6
  131. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  132. package/lib/cjs/curve/UnionRegion.js +4 -2
  133. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  134. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +13 -7
  135. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  136. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js +6 -0
  137. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  138. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js +2 -0
  139. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  140. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js +13 -5
  141. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  142. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js +3 -0
  143. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  144. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +18 -5
  145. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  146. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +26 -13
  147. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  148. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +11 -5
  149. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  150. package/lib/cjs/curve/internalContexts/CurveLengthContext.js +6 -0
  151. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  152. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js +8 -6
  153. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  154. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +38 -5
  155. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  156. package/lib/cjs/curve/internalContexts/GapSearchContext.js +1 -0
  157. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  158. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +12 -0
  159. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  160. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js +1 -0
  161. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  162. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +7 -0
  163. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  164. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +22 -4
  165. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  166. package/lib/cjs/curve/internalContexts/SumLengthsContext.js +1 -0
  167. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  168. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js +3 -0
  169. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  170. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js +2 -0
  171. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  172. package/lib/cjs/curve/spiral/ClothoidSeries.js +4 -0
  173. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  174. package/lib/cjs/curve/spiral/CubicEvaluator.js +2 -0
  175. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  176. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +4 -0
  177. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  178. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js +5 -0
  179. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  180. package/lib/cjs/curve/spiral/DirectSpiral3d.js +12 -2
  181. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  182. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +24 -4
  183. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  184. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +2 -0
  185. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  186. package/lib/cjs/curve/spiral/NormalizedTransition.js +5 -0
  187. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  188. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +2 -0
  189. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  190. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +10 -0
  191. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  192. package/lib/cjs/curve/spiral/TransitionSpiral3d.js +10 -0
  193. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  194. package/lib/cjs/curve/spiral/XYCurveEvaluator.js +6 -0
  195. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  196. package/lib/cjs/geometry3d/Angle.js +18 -16
  197. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  198. package/lib/cjs/geometry3d/AngleSweep.d.ts +1 -1
  199. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  200. package/lib/cjs/geometry3d/AngleSweep.js +3 -1
  201. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  202. package/lib/cjs/geometry3d/BarycentricTriangle.js +25 -0
  203. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  204. package/lib/cjs/geometry3d/BilinearPatch.js +8 -0
  205. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  206. package/lib/cjs/geometry3d/CoincidentGeometryOps.js +5 -0
  207. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  208. package/lib/cjs/geometry3d/Ellipsoid.js +48 -0
  209. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  210. package/lib/cjs/geometry3d/FrameBuilder.js +12 -4
  211. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  212. package/lib/cjs/geometry3d/FrustumAnimation.js +7 -0
  213. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  214. package/lib/cjs/geometry3d/GrowableBlockedArray.js +12 -0
  215. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  216. package/lib/cjs/geometry3d/GrowableFloat64Array.js +3 -0
  217. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  218. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +0 -5
  219. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  220. package/lib/cjs/geometry3d/GrowableXYArray.js +16 -7
  221. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  222. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +32 -10
  223. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  224. package/lib/cjs/geometry3d/GrowableXYZArray.js +70 -16
  225. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  226. package/lib/cjs/geometry3d/IndexedCollectionInterval.js +6 -0
  227. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  228. package/lib/cjs/geometry3d/IndexedXYCollection.js +1 -0
  229. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  230. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +13 -2
  231. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  232. package/lib/cjs/geometry3d/IndexedXYZCollection.js +26 -11
  233. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  234. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js +3 -0
  235. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  236. package/lib/cjs/geometry3d/Matrix3d.d.ts +3 -4
  237. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  238. package/lib/cjs/geometry3d/Matrix3d.js +36 -14
  239. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  240. package/lib/cjs/geometry3d/OrderedRotationAngles.js +10 -2
  241. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  242. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +2 -0
  243. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  244. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +7 -0
  245. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  246. package/lib/cjs/geometry3d/Point2dArrayCarrier.js +2 -0
  247. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  248. package/lib/cjs/geometry3d/Point2dVector2d.js +4 -0
  249. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  250. package/lib/cjs/geometry3d/Point3dArrayCarrier.js +3 -1
  251. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  252. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +6 -6
  253. package/lib/cjs/geometry3d/Point3dVector3d.js +12 -6
  254. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  255. package/lib/cjs/geometry3d/PointHelpers.d.ts +3 -3
  256. package/lib/cjs/geometry3d/PointHelpers.js +8 -8
  257. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  258. package/lib/cjs/geometry3d/PointStreaming.js +12 -4
  259. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  260. package/lib/cjs/geometry3d/PolygonOps.d.ts +2 -2
  261. package/lib/cjs/geometry3d/PolygonOps.js +62 -25
  262. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  263. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +7 -3
  264. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  265. package/lib/cjs/geometry3d/PolylineOps.d.ts +9 -5
  266. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  267. package/lib/cjs/geometry3d/PolylineOps.js +12 -5
  268. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  269. package/lib/cjs/geometry3d/Range.js +21 -4
  270. package/lib/cjs/geometry3d/Range.js.map +1 -1
  271. package/lib/cjs/geometry3d/Ray2d.js +2 -0
  272. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  273. package/lib/cjs/geometry3d/Ray3d.d.ts +2 -2
  274. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  275. package/lib/cjs/geometry3d/Ray3d.js +20 -11
  276. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  277. package/lib/cjs/geometry3d/ReusableObjectCache.js +4 -0
  278. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  279. package/lib/cjs/geometry3d/Segment1d.js +4 -0
  280. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  281. package/lib/cjs/geometry3d/SortablePolygon.js +11 -0
  282. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  283. package/lib/cjs/geometry3d/Transform.js +3 -0
  284. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  285. package/lib/cjs/geometry3d/YawPitchRollAngles.js +6 -0
  286. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  287. package/lib/cjs/geometry4d/Map4d.js +2 -0
  288. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  289. package/lib/cjs/geometry4d/Matrix4d.js +1 -0
  290. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  291. package/lib/cjs/geometry4d/MomentData.d.ts +72 -73
  292. package/lib/cjs/geometry4d/MomentData.d.ts.map +1 -1
  293. package/lib/cjs/geometry4d/MomentData.js +90 -66
  294. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  295. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js +6 -0
  296. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  297. package/lib/cjs/geometry4d/Point4d.js +2 -0
  298. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  299. package/lib/cjs/numerics/BezierPolynomials.js +8 -0
  300. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  301. package/lib/cjs/numerics/ClusterableArray.js +29 -13
  302. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  303. package/lib/cjs/numerics/Complex.js +2 -0
  304. package/lib/cjs/numerics/Complex.js.map +1 -1
  305. package/lib/cjs/numerics/ConvexPolygon2d.js +3 -0
  306. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  307. package/lib/cjs/numerics/Newton.js +59 -4
  308. package/lib/cjs/numerics/Newton.js.map +1 -1
  309. package/lib/cjs/numerics/PascalCoefficients.js +1 -1
  310. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  311. package/lib/cjs/numerics/PolarData.js +13 -1
  312. package/lib/cjs/numerics/PolarData.js.map +1 -1
  313. package/lib/cjs/numerics/Polynomials.js +64 -26
  314. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  315. package/lib/cjs/numerics/Quadrature.js +26 -20
  316. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  317. package/lib/cjs/numerics/TriDiagonalSystem.js +11 -0
  318. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  319. package/lib/cjs/numerics/UnionFind.js +1 -0
  320. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  321. package/lib/cjs/numerics/UsageSums.js +10 -0
  322. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  323. package/lib/cjs/polyface/AuxData.js +16 -0
  324. package/lib/cjs/polyface/AuxData.js.map +1 -1
  325. package/lib/cjs/polyface/BoxTopology.js +67 -67
  326. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  327. package/lib/cjs/polyface/FacetFaceData.d.ts +1 -1
  328. package/lib/cjs/polyface/FacetFaceData.js +3 -1
  329. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  330. package/lib/cjs/polyface/FacetLocationDetail.js +30 -0
  331. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  332. package/lib/cjs/polyface/FacetOrientation.js +12 -1
  333. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  334. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js +18 -2
  335. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  336. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts +33 -23
  337. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  338. package/lib/cjs/polyface/IndexedEdgeMatcher.js +63 -33
  339. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  340. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +3 -2
  341. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  342. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +11 -2
  343. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  344. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts +233 -0
  345. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts.map +1 -0
  346. package/lib/cjs/polyface/IndexedPolyfaceWalker.js +353 -0
  347. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -0
  348. package/lib/cjs/polyface/Polyface.d.ts +35 -10
  349. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  350. package/lib/cjs/polyface/Polyface.js +73 -12
  351. package/lib/cjs/polyface/Polyface.js.map +1 -1
  352. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +14 -27
  353. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  354. package/lib/cjs/polyface/PolyfaceBuilder.js +47 -79
  355. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  356. package/lib/cjs/polyface/PolyfaceClip.js +8 -0
  357. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  358. package/lib/cjs/polyface/PolyfaceData.d.ts +28 -0
  359. package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
  360. package/lib/cjs/polyface/PolyfaceData.js +87 -5
  361. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  362. package/lib/cjs/polyface/PolyfaceQuery.js +47 -7
  363. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  364. package/lib/cjs/polyface/RangeLengthData.js +7 -0
  365. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  366. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js +12 -0
  367. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  368. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js +5 -2
  369. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  370. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js +12 -0
  371. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  372. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js +14 -0
  373. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  374. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js +5 -0
  375. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  376. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js +43 -0
  377. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  378. package/lib/cjs/polyface/TaggedNumericData.js +8 -0
  379. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  380. package/lib/cjs/polyface/TriangleCandidate.js +3 -0
  381. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  382. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js +7 -0
  383. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  384. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js +6 -0
  385. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  386. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +3 -0
  387. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  388. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js +3 -0
  389. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  390. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js +32 -0
  391. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  392. package/lib/cjs/polyface/multiclip/RangeSearch.js +5 -5
  393. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  394. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +21 -8
  395. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  396. package/lib/cjs/polyface/multiclip/XYPointBuckets.js +6 -0
  397. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  398. package/lib/cjs/serialization/BGFBAccessors.js +82 -164
  399. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  400. package/lib/cjs/serialization/BGFBReader.js +22 -22
  401. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  402. package/lib/cjs/serialization/BGFBWriter.js +1 -0
  403. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  404. package/lib/cjs/serialization/DeepCompare.js +17 -17
  405. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  406. package/lib/cjs/serialization/GeometrySamples.d.ts +5 -5
  407. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  408. package/lib/cjs/serialization/GeometrySamples.js +113 -112
  409. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  410. package/lib/cjs/serialization/IModelJsonSchema.d.ts +16 -22
  411. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  412. package/lib/cjs/serialization/IModelJsonSchema.js +4 -5
  413. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  414. package/lib/cjs/solid/Box.js +7 -2
  415. package/lib/cjs/solid/Box.js.map +1 -1
  416. package/lib/cjs/solid/Cone.js +6 -2
  417. package/lib/cjs/solid/Cone.js.map +1 -1
  418. package/lib/cjs/solid/LinearSweep.js +4 -2
  419. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  420. package/lib/cjs/solid/RotationalSweep.js +5 -2
  421. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  422. package/lib/cjs/solid/RuledSweep.d.ts +26 -23
  423. package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
  424. package/lib/cjs/solid/RuledSweep.js +32 -24
  425. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  426. package/lib/cjs/solid/SolidPrimitive.d.ts +12 -11
  427. package/lib/cjs/solid/SolidPrimitive.d.ts.map +1 -1
  428. package/lib/cjs/solid/SolidPrimitive.js +11 -6
  429. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  430. package/lib/cjs/solid/Sphere.js +4 -2
  431. package/lib/cjs/solid/Sphere.js.map +1 -1
  432. package/lib/cjs/solid/SweepContour.d.ts +24 -15
  433. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  434. package/lib/cjs/solid/SweepContour.js +33 -15
  435. package/lib/cjs/solid/SweepContour.js.map +1 -1
  436. package/lib/cjs/solid/TorusPipe.js +7 -2
  437. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  438. package/lib/cjs/topology/ChainMerge.js +16 -4
  439. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  440. package/lib/cjs/topology/Graph.js +41 -6
  441. package/lib/cjs/topology/Graph.js.map +1 -1
  442. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +1 -1
  443. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -1
  444. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  445. package/lib/cjs/topology/HalfEdgeGraphSearch.js +2 -0
  446. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  447. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js +9 -2
  448. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  449. package/lib/cjs/topology/HalfEdgeGraphValidation.js +7 -9
  450. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  451. package/lib/cjs/topology/HalfEdgeMarkSet.js +5 -0
  452. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  453. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js +6 -0
  454. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  455. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js +1 -0
  456. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  457. package/lib/cjs/topology/HalfEdgePositionDetail.js +16 -0
  458. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  459. package/lib/cjs/topology/HalfEdgePriorityQueue.js +2 -0
  460. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  461. package/lib/cjs/topology/InsertAndRetriangulateContext.js +4 -0
  462. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  463. package/lib/cjs/topology/MaskManager.js +3 -0
  464. package/lib/cjs/topology/MaskManager.js.map +1 -1
  465. package/lib/cjs/topology/Merging.js +11 -6
  466. package/lib/cjs/topology/Merging.js.map +1 -1
  467. package/lib/cjs/topology/RegularizeFace.js +22 -0
  468. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  469. package/lib/cjs/topology/SignedDataSummary.js +22 -0
  470. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  471. package/lib/cjs/topology/Triangulation.js +21 -11
  472. package/lib/cjs/topology/Triangulation.js.map +1 -1
  473. package/lib/cjs/topology/XYParitySearchContext.js +13 -0
  474. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  475. package/lib/esm/Constant.js +17 -17
  476. package/lib/esm/Constant.js.map +1 -1
  477. package/lib/esm/Geometry.js +35 -35
  478. package/lib/esm/Geometry.js.map +1 -1
  479. package/lib/esm/bspline/AkimaCurve3d.js +3 -1
  480. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  481. package/lib/esm/bspline/BSpline1dNd.d.ts +90 -54
  482. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  483. package/lib/esm/bspline/BSpline1dNd.js +137 -84
  484. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  485. package/lib/esm/bspline/BSplineCurve.d.ts +193 -155
  486. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  487. package/lib/esm/bspline/BSplineCurve.js +249 -181
  488. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  489. package/lib/esm/bspline/BSplineCurve3dH.js +1 -0
  490. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  491. package/lib/esm/bspline/BSplineCurveOps.d.ts.map +1 -1
  492. package/lib/esm/bspline/BSplineCurveOps.js +18 -21
  493. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  494. package/lib/esm/bspline/BSplineSurface.js +22 -2
  495. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  496. package/lib/esm/bspline/Bezier1dNd.js +6 -0
  497. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  498. package/lib/esm/bspline/BezierCurve3d.d.ts +3 -1
  499. package/lib/esm/bspline/BezierCurve3d.d.ts.map +1 -1
  500. package/lib/esm/bspline/BezierCurve3d.js +5 -5
  501. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  502. package/lib/esm/bspline/BezierCurve3dH.js +2 -0
  503. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  504. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
  505. package/lib/esm/bspline/BezierCurveBase.js +21 -2
  506. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  507. package/lib/esm/bspline/InterpolationCurve3d.js +12 -1
  508. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  509. package/lib/esm/bspline/KnotVector.d.ts +82 -60
  510. package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
  511. package/lib/esm/bspline/KnotVector.js +144 -84
  512. package/lib/esm/bspline/KnotVector.js.map +1 -1
  513. package/lib/esm/bspline/SurfaceLocationDetail.js +12 -0
  514. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  515. package/lib/esm/clipping/AlternatingConvexClipTree.js +14 -13
  516. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  517. package/lib/esm/clipping/BooleanClipNode.js +4 -0
  518. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  519. package/lib/esm/clipping/ClipPlane.js +10 -1
  520. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  521. package/lib/esm/clipping/ClipPrimitive.js +19 -0
  522. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  523. package/lib/esm/clipping/ClipUtils.js +5 -1
  524. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  525. package/lib/esm/clipping/ClipVector.js +11 -8
  526. package/lib/esm/clipping/ClipVector.js.map +1 -1
  527. package/lib/esm/clipping/ConvexClipPlaneSet.js +5 -3
  528. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  529. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +2 -1
  530. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  531. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js +3 -0
  532. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  533. package/lib/esm/core-geometry.d.ts +1 -0
  534. package/lib/esm/core-geometry.d.ts.map +1 -1
  535. package/lib/esm/core-geometry.js +1 -0
  536. package/lib/esm/core-geometry.js.map +1 -1
  537. package/lib/esm/curve/Arc3d.d.ts +17 -3
  538. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  539. package/lib/esm/curve/Arc3d.js +49 -20
  540. package/lib/esm/curve/Arc3d.js.map +1 -1
  541. package/lib/esm/curve/ConstructCurveBetweenCurves.js +3 -0
  542. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  543. package/lib/esm/curve/CoordinateXYZ.js +3 -2
  544. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  545. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +0 -2
  546. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  547. package/lib/esm/curve/CurveChainWithDistanceIndex.js +25 -10
  548. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  549. package/lib/esm/curve/CurveCollection.d.ts +10 -0
  550. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  551. package/lib/esm/curve/CurveCollection.js +35 -9
  552. package/lib/esm/curve/CurveCollection.js.map +1 -1
  553. package/lib/esm/curve/CurveFactory.d.ts +87 -53
  554. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  555. package/lib/esm/curve/CurveFactory.js +213 -135
  556. package/lib/esm/curve/CurveFactory.js.map +1 -1
  557. package/lib/esm/curve/CurveLocationDetail.js +44 -0
  558. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  559. package/lib/esm/curve/CurvePrimitive.d.ts +7 -10
  560. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  561. package/lib/esm/curve/CurvePrimitive.js +27 -12
  562. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  563. package/lib/esm/curve/CurveProcessor.js +2 -0
  564. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  565. package/lib/esm/curve/CurveWireMomentsXYZ.js +2 -0
  566. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  567. package/lib/esm/curve/LineSegment3d.js +6 -2
  568. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  569. package/lib/esm/curve/LineString3d.js +27 -7
  570. package/lib/esm/curve/LineString3d.js.map +1 -1
  571. package/lib/esm/curve/Loop.js +12 -4
  572. package/lib/esm/curve/Loop.js.map +1 -1
  573. package/lib/esm/curve/OffsetOptions.js +25 -21
  574. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  575. package/lib/esm/curve/ParityRegion.js +4 -2
  576. package/lib/esm/curve/ParityRegion.js.map +1 -1
  577. package/lib/esm/curve/Path.js +2 -2
  578. package/lib/esm/curve/Path.js.map +1 -1
  579. package/lib/esm/curve/PointString3d.js +3 -2
  580. package/lib/esm/curve/PointString3d.js.map +1 -1
  581. package/lib/esm/curve/ProxyCurve.js +1 -0
  582. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  583. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -0
  584. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  585. package/lib/esm/curve/Query/CurveSplitContext.js +3 -0
  586. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  587. package/lib/esm/curve/Query/CylindricalRange.js +6 -2
  588. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  589. package/lib/esm/curve/Query/PlanarSubdivision.js +4 -6
  590. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  591. package/lib/esm/curve/Query/StrokeCountChain.js +12 -0
  592. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  593. package/lib/esm/curve/Query/StrokeCountMap.js +14 -0
  594. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  595. package/lib/esm/curve/RegionMomentsXY.js +4 -5
  596. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  597. package/lib/esm/curve/RegionOps.js +9 -10
  598. package/lib/esm/curve/RegionOps.js.map +1 -1
  599. package/lib/esm/curve/RegionOpsClassificationSweeps.js +24 -1
  600. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  601. package/lib/esm/curve/StrokeOptions.d.ts +4 -4
  602. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  603. package/lib/esm/curve/StrokeOptions.js +23 -6
  604. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  605. package/lib/esm/curve/UnionRegion.js +4 -2
  606. package/lib/esm/curve/UnionRegion.js.map +1 -1
  607. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +13 -7
  608. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  609. package/lib/esm/curve/internalContexts/ChainCollectorContext.js +6 -0
  610. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  611. package/lib/esm/curve/internalContexts/CloneCurvesContext.js +2 -0
  612. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  613. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js +13 -5
  614. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  615. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js +3 -0
  616. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  617. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +18 -5
  618. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  619. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +26 -13
  620. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  621. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +11 -5
  622. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  623. package/lib/esm/curve/internalContexts/CurveLengthContext.js +6 -0
  624. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  625. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js +8 -6
  626. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  627. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +38 -5
  628. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  629. package/lib/esm/curve/internalContexts/GapSearchContext.js +1 -0
  630. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  631. package/lib/esm/curve/internalContexts/MultiChainCollector.js +12 -0
  632. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  633. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js +1 -0
  634. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  635. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +7 -0
  636. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  637. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +22 -4
  638. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  639. package/lib/esm/curve/internalContexts/SumLengthsContext.js +1 -0
  640. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  641. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js +3 -0
  642. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  643. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +2 -0
  644. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  645. package/lib/esm/curve/spiral/ClothoidSeries.js +4 -0
  646. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  647. package/lib/esm/curve/spiral/CubicEvaluator.js +2 -0
  648. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  649. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +4 -0
  650. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  651. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +5 -0
  652. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  653. package/lib/esm/curve/spiral/DirectSpiral3d.js +12 -2
  654. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  655. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +24 -4
  656. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  657. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +2 -0
  658. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  659. package/lib/esm/curve/spiral/NormalizedTransition.js +5 -0
  660. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  661. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +2 -0
  662. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  663. package/lib/esm/curve/spiral/TransitionConditionalProperties.js +10 -0
  664. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  665. package/lib/esm/curve/spiral/TransitionSpiral3d.js +10 -0
  666. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  667. package/lib/esm/curve/spiral/XYCurveEvaluator.js +6 -0
  668. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  669. package/lib/esm/geometry3d/Angle.js +18 -16
  670. package/lib/esm/geometry3d/Angle.js.map +1 -1
  671. package/lib/esm/geometry3d/AngleSweep.d.ts +1 -1
  672. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  673. package/lib/esm/geometry3d/AngleSweep.js +3 -1
  674. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  675. package/lib/esm/geometry3d/BarycentricTriangle.js +25 -0
  676. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  677. package/lib/esm/geometry3d/BilinearPatch.js +8 -0
  678. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  679. package/lib/esm/geometry3d/CoincidentGeometryOps.js +5 -0
  680. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  681. package/lib/esm/geometry3d/Ellipsoid.js +48 -0
  682. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  683. package/lib/esm/geometry3d/FrameBuilder.js +12 -4
  684. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  685. package/lib/esm/geometry3d/FrustumAnimation.js +7 -0
  686. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  687. package/lib/esm/geometry3d/GrowableBlockedArray.js +12 -0
  688. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  689. package/lib/esm/geometry3d/GrowableFloat64Array.js +3 -0
  690. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  691. package/lib/esm/geometry3d/GrowableXYArray.d.ts +0 -5
  692. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  693. package/lib/esm/geometry3d/GrowableXYArray.js +16 -7
  694. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  695. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +32 -10
  696. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  697. package/lib/esm/geometry3d/GrowableXYZArray.js +70 -16
  698. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  699. package/lib/esm/geometry3d/IndexedCollectionInterval.js +6 -0
  700. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  701. package/lib/esm/geometry3d/IndexedXYCollection.js +1 -0
  702. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  703. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +13 -2
  704. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  705. package/lib/esm/geometry3d/IndexedXYZCollection.js +26 -11
  706. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  707. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js +3 -0
  708. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  709. package/lib/esm/geometry3d/Matrix3d.d.ts +3 -4
  710. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  711. package/lib/esm/geometry3d/Matrix3d.js +36 -14
  712. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  713. package/lib/esm/geometry3d/OrderedRotationAngles.js +10 -2
  714. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  715. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +2 -0
  716. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  717. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +7 -0
  718. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  719. package/lib/esm/geometry3d/Point2dArrayCarrier.js +2 -0
  720. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  721. package/lib/esm/geometry3d/Point2dVector2d.js +4 -0
  722. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  723. package/lib/esm/geometry3d/Point3dArrayCarrier.js +3 -1
  724. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  725. package/lib/esm/geometry3d/Point3dVector3d.d.ts +6 -6
  726. package/lib/esm/geometry3d/Point3dVector3d.js +12 -6
  727. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  728. package/lib/esm/geometry3d/PointHelpers.d.ts +3 -3
  729. package/lib/esm/geometry3d/PointHelpers.js +8 -8
  730. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  731. package/lib/esm/geometry3d/PointStreaming.js +12 -4
  732. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  733. package/lib/esm/geometry3d/PolygonOps.d.ts +2 -2
  734. package/lib/esm/geometry3d/PolygonOps.js +62 -25
  735. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  736. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +7 -3
  737. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  738. package/lib/esm/geometry3d/PolylineOps.d.ts +9 -5
  739. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  740. package/lib/esm/geometry3d/PolylineOps.js +12 -5
  741. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  742. package/lib/esm/geometry3d/Range.js +21 -4
  743. package/lib/esm/geometry3d/Range.js.map +1 -1
  744. package/lib/esm/geometry3d/Ray2d.js +2 -0
  745. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  746. package/lib/esm/geometry3d/Ray3d.d.ts +2 -2
  747. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  748. package/lib/esm/geometry3d/Ray3d.js +20 -11
  749. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  750. package/lib/esm/geometry3d/ReusableObjectCache.js +4 -0
  751. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  752. package/lib/esm/geometry3d/Segment1d.js +4 -0
  753. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  754. package/lib/esm/geometry3d/SortablePolygon.js +11 -0
  755. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  756. package/lib/esm/geometry3d/Transform.js +3 -0
  757. package/lib/esm/geometry3d/Transform.js.map +1 -1
  758. package/lib/esm/geometry3d/YawPitchRollAngles.js +6 -0
  759. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  760. package/lib/esm/geometry4d/Map4d.js +2 -0
  761. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  762. package/lib/esm/geometry4d/Matrix4d.js +1 -0
  763. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  764. package/lib/esm/geometry4d/MomentData.d.ts +72 -73
  765. package/lib/esm/geometry4d/MomentData.d.ts.map +1 -1
  766. package/lib/esm/geometry4d/MomentData.js +90 -66
  767. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  768. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js +6 -0
  769. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  770. package/lib/esm/geometry4d/Point4d.js +2 -0
  771. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  772. package/lib/esm/numerics/BezierPolynomials.js +8 -0
  773. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  774. package/lib/esm/numerics/ClusterableArray.js +29 -13
  775. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  776. package/lib/esm/numerics/Complex.js +2 -0
  777. package/lib/esm/numerics/Complex.js.map +1 -1
  778. package/lib/esm/numerics/ConvexPolygon2d.js +3 -0
  779. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  780. package/lib/esm/numerics/Newton.js +59 -4
  781. package/lib/esm/numerics/Newton.js.map +1 -1
  782. package/lib/esm/numerics/PascalCoefficients.js +1 -1
  783. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  784. package/lib/esm/numerics/PolarData.js +13 -1
  785. package/lib/esm/numerics/PolarData.js.map +1 -1
  786. package/lib/esm/numerics/Polynomials.js +64 -26
  787. package/lib/esm/numerics/Polynomials.js.map +1 -1
  788. package/lib/esm/numerics/Quadrature.js +26 -20
  789. package/lib/esm/numerics/Quadrature.js.map +1 -1
  790. package/lib/esm/numerics/TriDiagonalSystem.js +11 -0
  791. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  792. package/lib/esm/numerics/UnionFind.js +1 -0
  793. package/lib/esm/numerics/UnionFind.js.map +1 -1
  794. package/lib/esm/numerics/UsageSums.js +10 -0
  795. package/lib/esm/numerics/UsageSums.js.map +1 -1
  796. package/lib/esm/polyface/AuxData.js +16 -0
  797. package/lib/esm/polyface/AuxData.js.map +1 -1
  798. package/lib/esm/polyface/BoxTopology.js +67 -67
  799. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  800. package/lib/esm/polyface/FacetFaceData.d.ts +1 -1
  801. package/lib/esm/polyface/FacetFaceData.js +3 -1
  802. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  803. package/lib/esm/polyface/FacetLocationDetail.js +30 -0
  804. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  805. package/lib/esm/polyface/FacetOrientation.js +12 -1
  806. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  807. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js +18 -2
  808. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  809. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +33 -23
  810. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  811. package/lib/esm/polyface/IndexedEdgeMatcher.js +63 -33
  812. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  813. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +3 -2
  814. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  815. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +11 -2
  816. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  817. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts +233 -0
  818. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts.map +1 -0
  819. package/lib/esm/polyface/IndexedPolyfaceWalker.js +349 -0
  820. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -0
  821. package/lib/esm/polyface/Polyface.d.ts +35 -10
  822. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  823. package/lib/esm/polyface/Polyface.js +73 -12
  824. package/lib/esm/polyface/Polyface.js.map +1 -1
  825. package/lib/esm/polyface/PolyfaceBuilder.d.ts +14 -27
  826. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  827. package/lib/esm/polyface/PolyfaceBuilder.js +48 -80
  828. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  829. package/lib/esm/polyface/PolyfaceClip.js +8 -0
  830. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  831. package/lib/esm/polyface/PolyfaceData.d.ts +28 -0
  832. package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
  833. package/lib/esm/polyface/PolyfaceData.js +87 -5
  834. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  835. package/lib/esm/polyface/PolyfaceQuery.js +47 -7
  836. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  837. package/lib/esm/polyface/RangeLengthData.js +7 -0
  838. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  839. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js +12 -0
  840. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  841. package/lib/esm/polyface/RangeTree/MinimumValueTester.js +5 -2
  842. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  843. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js +12 -0
  844. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  845. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js +14 -0
  846. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  847. package/lib/esm/polyface/RangeTree/RangeTreeNode.js +5 -0
  848. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  849. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js +43 -0
  850. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  851. package/lib/esm/polyface/TaggedNumericData.js +8 -0
  852. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  853. package/lib/esm/polyface/TriangleCandidate.js +3 -0
  854. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  855. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +7 -0
  856. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  857. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js +6 -0
  858. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  859. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +3 -0
  860. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  861. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js +3 -0
  862. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  863. package/lib/esm/polyface/multiclip/OffsetMeshContext.js +32 -0
  864. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  865. package/lib/esm/polyface/multiclip/RangeSearch.js +5 -5
  866. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  867. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +21 -8
  868. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  869. package/lib/esm/polyface/multiclip/XYPointBuckets.js +6 -0
  870. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  871. package/lib/esm/serialization/BGFBAccessors.js +82 -164
  872. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  873. package/lib/esm/serialization/BGFBReader.js +22 -22
  874. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  875. package/lib/esm/serialization/BGFBWriter.js +1 -0
  876. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  877. package/lib/esm/serialization/DeepCompare.js +17 -17
  878. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  879. package/lib/esm/serialization/GeometrySamples.d.ts +5 -5
  880. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  881. package/lib/esm/serialization/GeometrySamples.js +113 -112
  882. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  883. package/lib/esm/serialization/IModelJsonSchema.d.ts +16 -22
  884. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  885. package/lib/esm/serialization/IModelJsonSchema.js +4 -5
  886. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  887. package/lib/esm/solid/Box.js +7 -2
  888. package/lib/esm/solid/Box.js.map +1 -1
  889. package/lib/esm/solid/Cone.js +6 -2
  890. package/lib/esm/solid/Cone.js.map +1 -1
  891. package/lib/esm/solid/LinearSweep.js +4 -2
  892. package/lib/esm/solid/LinearSweep.js.map +1 -1
  893. package/lib/esm/solid/RotationalSweep.js +5 -2
  894. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  895. package/lib/esm/solid/RuledSweep.d.ts +26 -23
  896. package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
  897. package/lib/esm/solid/RuledSweep.js +32 -24
  898. package/lib/esm/solid/RuledSweep.js.map +1 -1
  899. package/lib/esm/solid/SolidPrimitive.d.ts +12 -11
  900. package/lib/esm/solid/SolidPrimitive.d.ts.map +1 -1
  901. package/lib/esm/solid/SolidPrimitive.js +11 -6
  902. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  903. package/lib/esm/solid/Sphere.js +4 -2
  904. package/lib/esm/solid/Sphere.js.map +1 -1
  905. package/lib/esm/solid/SweepContour.d.ts +24 -15
  906. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  907. package/lib/esm/solid/SweepContour.js +33 -15
  908. package/lib/esm/solid/SweepContour.js.map +1 -1
  909. package/lib/esm/solid/TorusPipe.js +7 -2
  910. package/lib/esm/solid/TorusPipe.js.map +1 -1
  911. package/lib/esm/topology/ChainMerge.js +16 -4
  912. package/lib/esm/topology/ChainMerge.js.map +1 -1
  913. package/lib/esm/topology/Graph.js +41 -6
  914. package/lib/esm/topology/Graph.js.map +1 -1
  915. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +1 -1
  916. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -1
  917. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  918. package/lib/esm/topology/HalfEdgeGraphSearch.js +2 -0
  919. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  920. package/lib/esm/topology/HalfEdgeGraphSpineContext.js +9 -2
  921. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  922. package/lib/esm/topology/HalfEdgeGraphValidation.js +7 -9
  923. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  924. package/lib/esm/topology/HalfEdgeMarkSet.js +5 -0
  925. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  926. package/lib/esm/topology/HalfEdgeNodeXYZUV.js +6 -0
  927. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  928. package/lib/esm/topology/HalfEdgePointInGraphSearch.js +1 -0
  929. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  930. package/lib/esm/topology/HalfEdgePositionDetail.js +16 -0
  931. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  932. package/lib/esm/topology/HalfEdgePriorityQueue.js +2 -0
  933. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  934. package/lib/esm/topology/InsertAndRetriangulateContext.js +4 -0
  935. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  936. package/lib/esm/topology/MaskManager.js +3 -0
  937. package/lib/esm/topology/MaskManager.js.map +1 -1
  938. package/lib/esm/topology/Merging.js +11 -6
  939. package/lib/esm/topology/Merging.js.map +1 -1
  940. package/lib/esm/topology/RegularizeFace.js +22 -0
  941. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  942. package/lib/esm/topology/SignedDataSummary.js +22 -0
  943. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  944. package/lib/esm/topology/Triangulation.js +21 -11
  945. package/lib/esm/topology/Triangulation.js.map +1 -1
  946. package/lib/esm/topology/XYParitySearchContext.js +13 -0
  947. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  948. package/package.json +7 -7
@@ -8,6 +8,7 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.KnotVector = exports.BSplineWrapMode = void 0;
11
+ const core_bentley_1 = require("@itwin/core-bentley");
11
12
  const Geometry_1 = require("../Geometry");
12
13
  const PointHelpers_1 = require("../geometry3d/PointHelpers");
13
14
  /**
@@ -19,59 +20,89 @@ var BSplineWrapMode;
19
20
  (function (BSplineWrapMode) {
20
21
  /** No conversion performed. */
21
22
  BSplineWrapMode[BSplineWrapMode["None"] = 0] = "None";
22
- /** The B-spline was opened up by adding degree wrap-around control points to the legacy periodic data.
23
- * * This is typical of B-splines constructed with maximum (degree - 1) continuity.
23
+ /**
24
+ * The legacy periodic B-spline data was opened up by adding `degree` wrap-around poles.
25
+ * * This is typical of B-spline curves and surfaces constructed with maximum `degree - 1` continuity.
24
26
  * * Knots are unaffected by this conversion.
25
27
  */
26
28
  BSplineWrapMode[BSplineWrapMode["OpenByAddingControlPoints"] = 1] = "OpenByAddingControlPoints";
27
- /** The B-spline was opened up by removing degree extreme knots from the legacy periodic data.
29
+ /**
30
+ * The legacy periodic B-spline data was opened up by removing `degree` exterior knots.
28
31
  * * This is typical of rational B-spline curves representing full circles and ellipses.
29
32
  * * Poles are unaffected by this conversion.
30
33
  */
31
34
  BSplineWrapMode[BSplineWrapMode["OpenByRemovingKnots"] = 2] = "OpenByRemovingKnots";
32
35
  })(BSplineWrapMode || (exports.BSplineWrapMode = BSplineWrapMode = {}));
33
36
  /**
34
- * Array of non-decreasing numbers acting as a knot array for B-splines.
37
+ * Array of non-decreasing numbers acting as a knot vector for B-spline curves and surfaces.
35
38
  *
36
39
  * * Essential identity: numKnots = numPoles + order - 2 = numPoles + degree - 1
37
- * * Various B-spline libraries have confusion over how many "end knots" are needed. Many libraries (including MicroStation and Parasolid)
38
- * demand order knots at each end for clamping. But only order-1 are really needed. This class uses the order-1 convention.
40
+ * * Various B-spline libraries have confusion over how many "end knots" are needed. Many libraries (including MicroStation
41
+ * and Parasolid) demand order knots at each end for clamping. However, only order-1 are really needed. This class uses the
42
+ * order-1 convention.
39
43
  * * A span is a single interval of the knots.
40
- * * The left knot of span {k} is knot {k+degree-1}.
44
+ * * The left knot of the span with index `k>=0` is the knot with index `k+degree-1`.
45
+ * * A knot vector is clamped when the first `degree` knots are equal and the last `degree` knots are equal.
46
+ * * The "active knot interval" is the subset of the knot vector sans its first and last `degree-1` knots, and serves as
47
+ * the parametric domain of the associated B-spline object.
41
48
  * * This class provides queries to convert among spanIndex, knotIndex, spanFraction, fraction of knot range, and knot.
42
- * * Core computations (evaluateBasisFunctions) have leftKnotIndex and global knot value as inputs. Callers need to
43
- * know their primary values (global knot, spanFraction).
49
+ * * Callers need to distinguish core computational inputs such as left knot index, knot value, span index, and span fraction.
44
50
  * @public
45
51
  */
46
52
  class KnotVector {
47
- /** Return the leftmost knot value (of the active interval, ignoring unclamped leading knots)*/
48
- get leftKnot() { return this._knot0; }
49
- /** Return the rightmost knot value (of the active interval, ignoring unclamped leading knots)*/
50
- get rightKnot() { return this._knot1; }
51
- /** Return the index of the leftmost knot of the active interval */
52
- get leftKnotIndex() { return this.degree - 1; }
53
- /** Return the index of the rightmost knot of the active interval */
54
- get rightKnotIndex() { return this.knots.length - this.degree; }
55
- /** Whether this KnotVector was created by converting legacy periodic data during deserialization. The conversion used is specified by BSplineWrapMode, and is reversed at serialization time. */
56
- get wrappable() { return this._wrapMode === undefined ? BSplineWrapMode.None : this._wrapMode; }
57
- set wrappable(value) { this._wrapMode = value; }
58
- /** Return the number of bezier spans. Note that this includes zero-length spans if there are repeated knots. */
59
- get numSpans() { return this.rightKnotIndex - this.leftKnotIndex; }
53
+ /** The simple array of knot values. */
54
+ knots;
55
+ /** The degree of basis functions defined in these knots. */
56
+ degree;
57
+ /** The leftmost knot value (of the active interval, ignoring unclamped leading knots). */
58
+ _knot0;
59
+ /** The rightmost knot value (of the active interval, ignoring unclamped leading knots). */
60
+ _knot1;
61
+ _wrapMode;
62
+ /** Tolerance for considering two knots to be the same. */
63
+ static knotTolerance = 1.0e-9;
64
+ /** Return the leftmost knot value (of the active interval, ignoring unclamped leading knots). */
65
+ get leftKnot() {
66
+ return this._knot0;
67
+ }
68
+ /** Return the rightmost knot value (of the active interval, ignoring unclamped leading knots). */
69
+ get rightKnot() {
70
+ return this._knot1;
71
+ }
72
+ /** Return the index of the leftmost knot of the active interval. */
73
+ get leftKnotIndex() {
74
+ return this.degree - 1;
75
+ }
76
+ /** Return the index of the rightmost knot of the active interval. */
77
+ get rightKnotIndex() {
78
+ return this.knots.length - this.degree;
79
+ }
80
+ /**
81
+ * Whether this KnotVector was created by converting legacy periodic data during deserialization. The conversion used
82
+ * is specified by BSplineWrapMode, and is reversed at serialization time.
83
+ */
84
+ get wrappable() {
85
+ return this._wrapMode === undefined ? BSplineWrapMode.None : this._wrapMode;
86
+ }
87
+ set wrappable(value) {
88
+ this._wrapMode = value;
89
+ }
90
+ /** Return the number of Bezier spans. Note that this includes zero-length spans if there are repeated knots. */
91
+ get numSpans() {
92
+ return this.rightKnotIndex - this.leftKnotIndex;
93
+ }
60
94
  /**
61
- *
62
- * * If knots is a number array or Float64Array, the those values become the local knot array.
63
- * * If knots is a simple number, the local knot array is allocated to that size but left as zeros.
64
- * @param knots
65
- * @param degree
95
+ * Private constructor.
96
+ * * If `knots` is a number array or Float64Array, then its values are copied to the instance array.
97
+ * * If `knots` is a number, the instance array is allocated to this size but left as zeros.
66
98
  */
67
99
  constructor(knots, degree, wrapMode) {
68
100
  this.degree = degree;
69
101
  this._wrapMode = wrapMode;
70
- // default values to satisfy compiler -- real values happen in setupFixedValues, or final else defers to user
102
+ // default values to satisfy compiler; real values happen in setupFixedValues or the final else clause defers to user
71
103
  this._knot0 = 0.0;
72
104
  this._knot1 = 1.0;
73
- // satisfy the initialize checker ..
74
- if (Array.isArray(knots)) { // remark: This ctor is private. The callers (as of April 2019) do not use this path.
105
+ if (Array.isArray(knots)) {
75
106
  this.knots = new Float64Array(knots.length);
76
107
  this.setKnots(knots);
77
108
  this.setupFixedValues();
@@ -80,23 +111,32 @@ class KnotVector {
80
111
  this.knots = knots.slice();
81
112
  this.setupFixedValues();
82
113
  }
83
- else { // caller is responsible for filling array separately ...
84
- this.knots = new Float64Array(knots);
114
+ else { // caller is responsible for filling array separately
115
+ const knotSize = knots;
116
+ this.knots = new Float64Array(knotSize);
85
117
  }
86
118
  }
87
- /** copy degree and knots to a new KnotVector. */
88
- clone() { return new KnotVector(this.knots, this.degree, this.wrappable); }
119
+ /** Copy degree and knots to a new KnotVector. */
120
+ clone() {
121
+ return new KnotVector(this.knots, this.degree, this.wrappable);
122
+ }
89
123
  setupFixedValues() {
90
124
  if (this.degree > 0 && this.knots.length > this.degree) {
91
125
  this._knot0 = this.knots[this.degree - 1];
92
126
  this._knot1 = this.knots[this.knots.length - this.degree];
93
127
  }
94
128
  }
95
- /** Return the total knot distance from beginning to end. */
96
- get knotLength01() { return this._knot1 - this._knot0; }
97
129
  /**
98
- * Returns true if all numeric values have wraparound conditions that allow the knots to be closed with specified wrap mode.
99
- * @param mode optional test mode. If undefined, use this.wrappable.
130
+ * Return the length of the active knot interval.
131
+ * * This is the size of (one dimension of) the parametric domain for the associated B-spline object.
132
+ */
133
+ get knotLength01() {
134
+ return this._knot1 - this._knot0;
135
+ }
136
+ /**
137
+ * Returns true if all numeric values have wraparound conditions that allow the knots to be closed with specified
138
+ * wrap mode.
139
+ * @param mode optional test mode. If undefined, use this.wrappable.
100
140
  */
101
141
  testClosable(mode) {
102
142
  if (mode === undefined)
@@ -130,7 +170,7 @@ class KnotVector {
130
170
  }
131
171
  return false;
132
172
  }
133
- /** Test matching degree and knot values */
173
+ /** Test matching degree and knot values. */
134
174
  isAlmostEqual(other) {
135
175
  if (this.degree !== other.degree)
136
176
  return false;
@@ -170,8 +210,9 @@ class KnotVector {
170
210
  }
171
211
  return m;
172
212
  }
173
- /** Transform knots to span [0,1].
174
- * @returns false if and only if this.knotLength01 is trivial
213
+ /**
214
+ * Transform knots such that the active knot range becomes [0,1].
215
+ * @returns false if and only if `this.knotLength01` is trivial.
175
216
  */
176
217
  normalize() {
177
218
  if (this.knotLength01 < KnotVector.knotTolerance)
@@ -189,8 +230,7 @@ class KnotVector {
189
230
  this.setupFixedValues();
190
231
  return true;
191
232
  }
192
- /** install knot values from an array, optionally ignoring first and last.
193
- */
233
+ /** Install knot values from an array, optionally ignoring first and last. */
194
234
  setKnots(knots, skipFirstAndLast) {
195
235
  const numAllocate = skipFirstAndLast ? knots.length - 2 : knots.length;
196
236
  if (numAllocate !== this.knots.length)
@@ -205,17 +245,17 @@ class KnotVector {
205
245
  }
206
246
  this.setupFixedValues();
207
247
  }
208
- /** Set knots to input array (CAPTURED) */
248
+ /** Set knots to input array (CAPTURED). */
209
249
  setKnotsCapture(knots) {
210
250
  this.knots = knots;
211
251
  this.setupFixedValues();
212
252
  }
213
253
  /**
214
254
  * Create knot vector with {degree-1} replicated knots at start and end, and uniform knots between.
215
- * @param numPoles Number of poles
216
- * @param degree degree of polynomial
217
- * @param a0 left knot value for active interval
218
- * @param a1 right knot value for active interval
255
+ * @param numPoles number of poles.
256
+ * @param degree degree of polynomial.
257
+ * @param a0 left knot value for active interval.
258
+ * @param a1 right knot value for active interval.
219
259
  */
220
260
  static createUniformClamped(numPoles, degree, a0, a1) {
221
261
  const knots = new KnotVector(numPoles + degree - 1, degree);
@@ -232,24 +272,26 @@ class KnotVector {
232
272
  }
233
273
  /**
234
274
  * Create knot vector with wraparound knots at start and end, and uniform knots between.
235
- * @param numInterval number of intervals in knot space. (NOT POLE COUNT)
236
- * @param degree degree of polynomial
237
- * @param a0 left knot value for active interval
238
- * @param a1 right knot value for active interval
275
+ * @param numInterval the number of intervals into which to uniformly divide the active knot interval `[a0,a1]`,
276
+ * creating `numInterval-1` equally spaced interior knots between `a0` and `a1`.
277
+ * This number is equal to the number of Bezier spans in the associated B-spline object.
278
+ * It is _not_ the pole count.
279
+ * @param degree degree of polynomial.
280
+ * @param a0 left knot value for active interval.
281
+ * @param a1 right knot value for active interval.
239
282
  */
240
283
  static createUniformWrapped(numInterval, degree, a0, a1) {
241
284
  const knots = new KnotVector(numInterval + 2 * degree - 1, degree);
242
285
  const du = 1.0 / numInterval;
243
- for (let i = 1 - degree, k = 0; i < numInterval + degree; i++, k++) {
286
+ for (let i = 1 - degree, k = 0; i < numInterval + degree; i++, k++)
244
287
  knots.knots[k] = Geometry_1.Geometry.interpolate(a0, i * du, a1);
245
- }
246
288
  knots.setupFixedValues();
247
289
  return knots;
248
290
  }
249
291
  /**
250
292
  * Create knot vector with given knot values and degree.
251
- * @param knotArray knot values
252
- * @param degree degree of polynomial
293
+ * @param knotArray knot values.
294
+ * @param degree degree of polynomial.
253
295
  * @param skipFirstAndLast true to skip copying the first and last knot values.
254
296
  */
255
297
  static create(knotArray, degree, skipFirstAndLast) {
@@ -260,19 +302,24 @@ class KnotVector {
260
302
  }
261
303
  /**
262
304
  * Return the average of degree consecutive knots beginning at knotIndex.
305
+ * * If `knotIndex` is negative, return `leftKnot`.
306
+ * * If `knotIndex > rightKnotIndex` return `rightKnot`.
263
307
  */
264
308
  grevilleKnot(knotIndex) {
265
309
  if (knotIndex < 0)
266
310
  return this.leftKnot;
267
311
  if (knotIndex > this.rightKnotIndex)
268
312
  return this.rightKnot;
313
+ knotIndex = Math.floor(knotIndex);
269
314
  let sum = 0.0;
270
315
  for (let i = knotIndex; i < knotIndex + this.degree; i++)
271
316
  sum += this.knots[i];
272
317
  return sum / this.degree;
273
318
  }
274
- /** Return an array sized for a set of the basis function values. */
275
- createBasisArray() { return new Float64Array(this.degree + 1); }
319
+ /** Return an array of size `degree + 1`, e.g., to hold the set of relevant basis function values at a parameter. */
320
+ createBasisArray() {
321
+ return new Float64Array(this.degree + 1);
322
+ }
276
323
  /** Convert localFraction within the interval following an indexed knot to a knot value. */
277
324
  baseKnotFractionToKnot(knotIndex0, localFraction) {
278
325
  const knot0 = this.knots[knotIndex0];
@@ -295,29 +342,38 @@ class KnotVector {
295
342
  fraction = Geometry_1.Geometry.clamp(fraction, 0, 1); // B-splines are not extendable
296
343
  return Geometry_1.Geometry.interpolate(this.knots[this.degree - 1], fraction, this.knots[this.knots.length - this.degree]);
297
344
  }
345
+ isKnotInValidSpan(knotIndex0, u) {
346
+ const spanIsValid = knotIndex0 >= this.degree - 1 && knotIndex0 + this.degree < this.knots.length;
347
+ const uIsInSpan = this.knots[knotIndex0] <= u && u <= this.knots[knotIndex0 + 1];
348
+ return spanIsValid && uIsInSpan;
349
+ }
298
350
  /**
299
- * Evaluate basis functions f[] at knot value u.
300
- *
301
- * @param u knot value for evaluation
302
- * @param f preallocated output array of order basis function values
303
- * @returns true if and only if output array is sufficiently sized
351
+ * Evaluate the B-spline basis functions f[] at a parameter u in a knot span.
352
+ * * This method implements the Mansfield-Cox-de Boor recurrence relation.
353
+ * @param knotIndex0 index of the left knot of the span.
354
+ * @param u value in the knot span: knot[knotIndex0] <= u <= knot[knotIndex0 + 1].
355
+ * @param f preallocated output array of order basis function values.
356
+ * @returns true if and only if output array is sufficiently sized.
304
357
  */
305
358
  evaluateBasisFunctions(knotIndex0, u, f) {
306
359
  if (f.length < this.degree + 1)
307
360
  return false;
361
+ (0, core_bentley_1.assert)(() => this.isKnotInValidSpan(knotIndex0, u), "knot is in a valid span");
308
362
  f[0] = 1.0;
309
363
  if (this.degree < 1)
310
364
  return true;
311
- // direct compute for linear part ...
365
+ // direct compute for linear part
312
366
  const u0 = this.knots[knotIndex0];
313
367
  const u1 = this.knots[knotIndex0 + 1];
314
368
  f[1] = (u - u0) / (u1 - u0);
315
369
  f[0] = 1.0 - f[1];
316
370
  if (this.degree < 2)
317
371
  return true;
372
+ // each iteration of the outer loop evaluates the basis functions of degree depth+1 using
373
+ // one or two values of the basis functions of one less degree from the preceding iteration
318
374
  for (let depth = 1; depth < this.degree; depth++) {
319
375
  let kLeft = knotIndex0 - depth;
320
- let kRight = kLeft + depth + 1;
376
+ let kRight = knotIndex0 + 1;
321
377
  let gCarry = 0.0;
322
378
  for (let step = 0; step <= depth; step++) {
323
379
  const tLeft = this.knots[kLeft++];
@@ -329,17 +385,20 @@ class KnotVector {
329
385
  gCarry = g1;
330
386
  }
331
387
  f[depth + 1] = gCarry;
388
+ // at this point, the head of f[] contains the depth+2 values at u
389
+ // of the basis functions of degree depth+1 with support over [u0,u1)
332
390
  }
333
391
  return true;
334
392
  }
335
393
  /**
336
- * Evaluate basis functions f[], derivatives df[], and optional second derivatives ddf[] at knot value u.
337
- *
338
- * @param u knot value for evaluation
339
- * @param f preallocated output array of order basis function values
340
- * @param df preallocated output array of order basis derivative values
341
- * @param ddf optional preallocated output array of order basis second derivative values
342
- * @returns true if and only if output arrays are sufficiently sized
394
+ * Evaluate basis functions f[], derivatives df[], and optional second derivatives ddf[] at a parameter u
395
+ * in a knot span.
396
+ * @param knotIndex0 index of the left knot of the span.
397
+ * @param u value in the knot span: knot[knotIndex0] <= u <= knot[knotIndex0 + 1].
398
+ * @param f preallocated output array of order basis function values.
399
+ * @param df preallocated output array of order basis derivative values.
400
+ * @param ddf optional preallocated output array of order basis second derivative values.
401
+ * @returns true if and only if output arrays are sufficiently sized.
343
402
  */
344
403
  evaluateBasisFunctions1(knotIndex0, u, f, df, ddf) {
345
404
  if (f.length < this.degree + 1)
@@ -348,15 +407,16 @@ class KnotVector {
348
407
  return false;
349
408
  if (ddf && ddf.length < this.degree + 1)
350
409
  return false;
410
+ (0, core_bentley_1.assert)(() => this.isKnotInValidSpan(knotIndex0, u), "knot is in a valid span");
351
411
  f[0] = 1.0;
352
412
  df[0] = 0.0;
353
413
  if (this.degree < 1)
354
414
  return true;
355
- // direct compute for linear part ...
415
+ // direct compute for linear part
356
416
  const u0 = this.knots[knotIndex0];
357
417
  const u1 = this.knots[knotIndex0 + 1];
358
- // ah = 1/(u1-u0) is the derivative of fraction0
359
- // (-ah) is the derivative of fraction1.
418
+ // ah = 1/(u1-u0) is the derivative of fraction0
419
+ // -ah is the derivative of fraction1
360
420
  let ah = 1.0 / (u1 - u0);
361
421
  f[1] = (u - u0) * ah;
362
422
  f[0] = 1.0 - f[1];
@@ -375,7 +435,7 @@ class KnotVector {
375
435
  let dgCarry = 0.0;
376
436
  let ddgCarry = 0.0;
377
437
  // f, df, ddf, are each row vectors with product of `step` linear terms.
378
- // f is multiplied on the right by matrix V. Each row has 2 nonzero entries (which sum to 1) (0,0,1-fraction, fraction,0,0,0)
438
+ // f is multiplied on the right by matrix V. Each row has 2 nonzero entries (which sum to 1) (0,0,1-fraction, fraction,0,0,0)
379
439
  // Each row of the derivative dV is two entries (0,0, -1/h, 1/h,0,0,0)
380
440
  // Hence fnew = f * V
381
441
  // dfnew = df * V + f * dV
@@ -397,7 +457,7 @@ class KnotVector {
397
457
  df[step] = dgCarry + dg0;
398
458
  gCarry = g1;
399
459
  dgCarry = dg1;
400
- if (ddf) { // do the backward reference to df before rewriting df !!!
460
+ if (ddf) { // do the backward reference to df before rewriting df
401
461
  const ddg1 = ddf[step] * fraction + dfSave;
402
462
  const ddg0 = ddf[step] * fraction1 - dfSave;
403
463
  ddf[step] = ddgCarry + ddg0;
@@ -411,9 +471,10 @@ class KnotVector {
411
471
  }
412
472
  return true;
413
473
  }
414
- /** Find the knot span bracketing knots[i] <= u < knots[i+1] and return i.
474
+ /**
475
+ * Find the knot span bracketing knots[i] <= u < knots[i+1] and return i.
415
476
  * * If u has no such bracket, return the smaller index of the closest nontrivial bracket.
416
- * @param u value to bracket
477
+ * @param u value to bracket.
417
478
  */
418
479
  knotToLeftKnotIndex(u) {
419
480
  for (let i = this.leftKnotIndex; i < this.rightKnotIndex; ++i) {
@@ -429,7 +490,7 @@ class KnotVector {
429
490
  }
430
491
  /**
431
492
  * Given a span index, return the index of the knot at its left.
432
- * @param spanIndex index of span
493
+ * @param spanIndex index of span.
433
494
  */
434
495
  spanIndexToLeftKnotIndex(spanIndex) {
435
496
  const d = this.degree;
@@ -444,7 +505,8 @@ class KnotVector {
444
505
  }
445
506
  /**
446
507
  * Given a span index, test if it is within range and has nonzero length.
447
- * * note that a false return does not imply there are no more spans. This may be a double knot (zero length span) followed by more real spans
508
+ * * note that a false return does not imply there are no more spans. This may be a double knot (zero length span)
509
+ * followed by more real spans
448
510
  * @param spanIndex index of span to test.
449
511
  */
450
512
  isIndexOfRealSpan(spanIndex) {
@@ -452,7 +514,7 @@ class KnotVector {
452
514
  return !Geometry_1.Geometry.isSmallMetricDistance(this.spanIndexToSpanLength(spanIndex));
453
515
  return false;
454
516
  }
455
- /** Reflect all knots so `leftKnot` and `rightKnot` are maintained but interval lengths reverse. */
517
+ /** Reflect all knots so `leftKnot` and `rightKnot` are maintained but interval lengths are reversed. */
456
518
  reflectKnots() {
457
519
  const a = this.leftKnot;
458
520
  const b = this.rightKnot;
@@ -494,6 +556,4 @@ class KnotVector {
494
556
  }
495
557
  }
496
558
  exports.KnotVector = KnotVector;
497
- /** tolerance for considering two knots to be the same. */
498
- KnotVector.knotTolerance = 1.0e-9;
499
559
  //# sourceMappingURL=KnotVector.js.map