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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/CHANGELOG.md +32 -1
  2. package/lib/cjs/Constant.js.map +1 -1
  3. package/lib/cjs/Geometry.js.map +1 -1
  4. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  5. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  7. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  8. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  9. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  10. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  11. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  12. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  13. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  14. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  15. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  16. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  17. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  18. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  19. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  20. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  21. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  22. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  23. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  24. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  25. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  26. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  27. package/lib/cjs/core-geometry.d.ts +1 -0
  28. package/lib/cjs/core-geometry.d.ts.map +1 -1
  29. package/lib/cjs/core-geometry.js +4 -1
  30. package/lib/cjs/core-geometry.js.map +1 -1
  31. package/lib/cjs/curve/Arc3d.d.ts +71 -86
  32. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  33. package/lib/cjs/curve/Arc3d.js +110 -96
  34. package/lib/cjs/curve/Arc3d.js.map +1 -1
  35. package/lib/cjs/curve/ChainCollectorContext.js.map +1 -1
  36. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  37. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  38. package/lib/cjs/curve/CurveChain.js.map +1 -1
  39. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +61 -41
  40. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  41. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +69 -46
  42. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  43. package/lib/cjs/curve/CurveCollection.d.ts +73 -46
  44. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  45. package/lib/cjs/curve/CurveCollection.js +100 -64
  46. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  47. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  48. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  49. package/lib/cjs/curve/CurveCurveCloseApproachXY.js.map +1 -1
  50. package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
  51. package/lib/cjs/curve/CurveCurveIntersectXYZ.js.map +1 -1
  52. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  53. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  54. package/lib/cjs/curve/CurveLocationDetail.d.ts +45 -46
  55. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  56. package/lib/cjs/curve/CurveLocationDetail.js +39 -41
  57. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  58. package/lib/cjs/curve/CurvePrimitive.d.ts +138 -92
  59. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  60. package/lib/cjs/curve/CurvePrimitive.js +115 -75
  61. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  62. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  63. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  64. package/lib/cjs/curve/GeometryQuery.d.ts +26 -20
  65. package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
  66. package/lib/cjs/curve/GeometryQuery.js +11 -9
  67. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  68. package/lib/cjs/curve/LineSegment3d.d.ts +38 -27
  69. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  70. package/lib/cjs/curve/LineSegment3d.js +77 -39
  71. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  72. package/lib/cjs/curve/LineString3d.d.ts +70 -51
  73. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  74. package/lib/cjs/curve/LineString3d.js +120 -71
  75. package/lib/cjs/curve/LineString3d.js.map +1 -1
  76. package/lib/cjs/curve/Loop.d.ts +7 -5
  77. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  78. package/lib/cjs/curve/Loop.js +18 -6
  79. package/lib/cjs/curve/Loop.js.map +1 -1
  80. package/lib/cjs/curve/ParityRegion.d.ts +7 -7
  81. package/lib/cjs/curve/ParityRegion.d.ts.map +1 -1
  82. package/lib/cjs/curve/ParityRegion.js +19 -11
  83. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  84. package/lib/cjs/curve/Path.d.ts +6 -6
  85. package/lib/cjs/curve/Path.d.ts.map +1 -1
  86. package/lib/cjs/curve/Path.js +15 -9
  87. package/lib/cjs/curve/Path.js.map +1 -1
  88. package/lib/cjs/curve/PointString3d.js.map +1 -1
  89. package/lib/cjs/curve/ProxyCurve.d.ts +4 -6
  90. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
  91. package/lib/cjs/curve/ProxyCurve.js +7 -7
  92. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  93. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  94. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  95. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  96. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  97. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  98. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  99. package/lib/cjs/curve/Query/StrokeCountMap.d.ts +14 -13
  100. package/lib/cjs/curve/Query/StrokeCountMap.d.ts.map +1 -1
  101. package/lib/cjs/curve/Query/StrokeCountMap.js +9 -8
  102. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  103. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  104. package/lib/cjs/curve/RegionOps.d.ts +69 -47
  105. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  106. package/lib/cjs/curve/RegionOps.js +70 -47
  107. package/lib/cjs/curve/RegionOps.js.map +1 -1
  108. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  109. package/lib/cjs/curve/StrokeOptions.d.ts +29 -21
  110. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  111. package/lib/cjs/curve/StrokeOptions.js +50 -24
  112. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  113. package/lib/cjs/curve/UnionRegion.d.ts +6 -5
  114. package/lib/cjs/curve/UnionRegion.d.ts.map +1 -1
  115. package/lib/cjs/curve/UnionRegion.js +17 -8
  116. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  117. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  118. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  119. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  120. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  121. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  122. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  123. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  124. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts +2 -1
  125. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
  126. package/lib/cjs/curve/internalContexts/GapSearchContext.js +6 -2
  127. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  128. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +4 -0
  129. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  130. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +5 -2
  131. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  132. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  133. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
  134. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  135. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
  136. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  137. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts +56 -34
  138. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  139. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +152 -87
  140. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  141. package/lib/cjs/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
  142. package/lib/cjs/curve/internalContexts/SumLengthsContext.js +4 -1
  143. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  144. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  145. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  146. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  147. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  148. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  149. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  150. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  151. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  152. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  153. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  154. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  155. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  156. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  157. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  158. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  159. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  160. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  161. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  162. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  163. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  164. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  165. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  166. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  167. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  168. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  169. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  170. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  171. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  172. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  173. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  174. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  175. package/lib/cjs/geometry3d/Matrix3d.d.ts +2 -2
  176. package/lib/cjs/geometry3d/Matrix3d.js +2 -2
  177. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  178. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  179. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  180. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  181. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
  182. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  183. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +35 -32
  184. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  185. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  186. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  187. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  188. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  189. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  190. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  191. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  192. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  193. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  194. package/lib/cjs/geometry3d/Range.d.ts +133 -93
  195. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  196. package/lib/cjs/geometry3d/Range.js +296 -144
  197. package/lib/cjs/geometry3d/Range.js.map +1 -1
  198. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  199. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  200. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  201. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  202. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  203. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  204. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  205. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  206. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  207. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  208. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  209. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  210. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  211. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  212. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  213. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  214. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  215. package/lib/cjs/numerics/Complex.js.map +1 -1
  216. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  217. package/lib/cjs/numerics/Newton.js.map +1 -1
  218. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  219. package/lib/cjs/numerics/PolarData.js.map +1 -1
  220. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  221. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  222. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  223. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  224. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  225. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  226. package/lib/cjs/polyface/AuxData.js.map +1 -1
  227. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  228. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  229. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  230. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  231. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  232. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  233. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  234. package/lib/cjs/polyface/Polyface.js.map +1 -1
  235. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  236. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  237. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  238. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  239. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  240. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  241. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  242. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  243. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  244. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  245. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  246. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  247. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  248. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  249. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  250. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  251. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  252. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  253. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  254. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  255. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  256. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  257. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  258. package/lib/cjs/solid/Box.js.map +1 -1
  259. package/lib/cjs/solid/Cone.js.map +1 -1
  260. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  261. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  262. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  263. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  264. package/lib/cjs/solid/Sphere.js.map +1 -1
  265. package/lib/cjs/solid/SweepContour.js.map +1 -1
  266. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  267. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  268. package/lib/cjs/topology/Graph.js.map +1 -1
  269. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  270. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  271. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  272. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  273. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  274. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  275. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  276. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  277. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  278. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  279. package/lib/cjs/topology/MaskManager.js.map +1 -1
  280. package/lib/cjs/topology/Merging.js.map +1 -1
  281. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  282. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  283. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  284. package/lib/cjs/topology/Triangulation.js.map +1 -1
  285. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  286. package/lib/esm/Constant.js.map +1 -1
  287. package/lib/esm/Geometry.js.map +1 -1
  288. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  289. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  290. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  291. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  292. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  293. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  294. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  295. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  296. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  297. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  298. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  299. package/lib/esm/bspline/KnotVector.js.map +1 -1
  300. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  301. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  302. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  303. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  304. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  305. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  306. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  307. package/lib/esm/clipping/ClipVector.js.map +1 -1
  308. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  309. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  310. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  311. package/lib/esm/core-geometry.d.ts +1 -0
  312. package/lib/esm/core-geometry.d.ts.map +1 -1
  313. package/lib/esm/core-geometry.js +2 -0
  314. package/lib/esm/core-geometry.js.map +1 -1
  315. package/lib/esm/curve/Arc3d.d.ts +71 -86
  316. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  317. package/lib/esm/curve/Arc3d.js +110 -96
  318. package/lib/esm/curve/Arc3d.js.map +1 -1
  319. package/lib/esm/curve/ChainCollectorContext.js.map +1 -1
  320. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  321. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  322. package/lib/esm/curve/CurveChain.js.map +1 -1
  323. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +61 -41
  324. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  325. package/lib/esm/curve/CurveChainWithDistanceIndex.js +69 -46
  326. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  327. package/lib/esm/curve/CurveCollection.d.ts +73 -46
  328. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  329. package/lib/esm/curve/CurveCollection.js +100 -64
  330. package/lib/esm/curve/CurveCollection.js.map +1 -1
  331. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  332. package/lib/esm/curve/CurveCurve.js.map +1 -1
  333. package/lib/esm/curve/CurveCurveCloseApproachXY.js.map +1 -1
  334. package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
  335. package/lib/esm/curve/CurveCurveIntersectXYZ.js.map +1 -1
  336. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  337. package/lib/esm/curve/CurveFactory.js.map +1 -1
  338. package/lib/esm/curve/CurveLocationDetail.d.ts +45 -46
  339. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  340. package/lib/esm/curve/CurveLocationDetail.js +39 -41
  341. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  342. package/lib/esm/curve/CurvePrimitive.d.ts +138 -92
  343. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  344. package/lib/esm/curve/CurvePrimitive.js +115 -75
  345. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  346. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  347. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  348. package/lib/esm/curve/GeometryQuery.d.ts +26 -20
  349. package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
  350. package/lib/esm/curve/GeometryQuery.js +11 -9
  351. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  352. package/lib/esm/curve/LineSegment3d.d.ts +38 -27
  353. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  354. package/lib/esm/curve/LineSegment3d.js +77 -39
  355. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  356. package/lib/esm/curve/LineString3d.d.ts +70 -51
  357. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  358. package/lib/esm/curve/LineString3d.js +120 -71
  359. package/lib/esm/curve/LineString3d.js.map +1 -1
  360. package/lib/esm/curve/Loop.d.ts +7 -5
  361. package/lib/esm/curve/Loop.d.ts.map +1 -1
  362. package/lib/esm/curve/Loop.js +18 -6
  363. package/lib/esm/curve/Loop.js.map +1 -1
  364. package/lib/esm/curve/ParityRegion.d.ts +7 -7
  365. package/lib/esm/curve/ParityRegion.d.ts.map +1 -1
  366. package/lib/esm/curve/ParityRegion.js +19 -11
  367. package/lib/esm/curve/ParityRegion.js.map +1 -1
  368. package/lib/esm/curve/Path.d.ts +6 -6
  369. package/lib/esm/curve/Path.d.ts.map +1 -1
  370. package/lib/esm/curve/Path.js +15 -9
  371. package/lib/esm/curve/Path.js.map +1 -1
  372. package/lib/esm/curve/PointString3d.js.map +1 -1
  373. package/lib/esm/curve/ProxyCurve.d.ts +4 -6
  374. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
  375. package/lib/esm/curve/ProxyCurve.js +7 -7
  376. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  377. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  378. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  379. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  380. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  381. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  382. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  383. package/lib/esm/curve/Query/StrokeCountMap.d.ts +14 -13
  384. package/lib/esm/curve/Query/StrokeCountMap.d.ts.map +1 -1
  385. package/lib/esm/curve/Query/StrokeCountMap.js +9 -8
  386. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  387. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  388. package/lib/esm/curve/RegionOps.d.ts +69 -47
  389. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  390. package/lib/esm/curve/RegionOps.js +70 -47
  391. package/lib/esm/curve/RegionOps.js.map +1 -1
  392. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  393. package/lib/esm/curve/StrokeOptions.d.ts +29 -21
  394. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  395. package/lib/esm/curve/StrokeOptions.js +50 -24
  396. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  397. package/lib/esm/curve/UnionRegion.d.ts +6 -5
  398. package/lib/esm/curve/UnionRegion.d.ts.map +1 -1
  399. package/lib/esm/curve/UnionRegion.js +17 -8
  400. package/lib/esm/curve/UnionRegion.js.map +1 -1
  401. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  402. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  403. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  404. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  405. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  406. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  407. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  408. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts +2 -1
  409. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
  410. package/lib/esm/curve/internalContexts/GapSearchContext.js +6 -2
  411. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  412. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +4 -0
  413. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  414. package/lib/esm/curve/internalContexts/MultiChainCollector.js +5 -2
  415. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  416. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  417. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
  418. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  419. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
  420. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  421. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +56 -34
  422. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  423. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +152 -87
  424. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  425. package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
  426. package/lib/esm/curve/internalContexts/SumLengthsContext.js +4 -1
  427. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  428. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  429. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  430. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  431. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  432. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  433. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  434. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  435. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  436. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  437. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  438. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  439. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  440. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  441. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  442. package/lib/esm/geometry3d/Angle.js.map +1 -1
  443. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  444. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  445. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  446. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  447. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  448. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  449. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  450. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  451. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  452. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  453. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  454. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  455. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  456. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  457. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  458. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  459. package/lib/esm/geometry3d/Matrix3d.d.ts +2 -2
  460. package/lib/esm/geometry3d/Matrix3d.js +2 -2
  461. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  462. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  463. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  464. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  465. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
  466. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  467. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +35 -32
  468. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  469. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  470. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  471. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  472. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  473. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  474. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  475. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  476. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  477. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  478. package/lib/esm/geometry3d/Range.d.ts +133 -93
  479. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  480. package/lib/esm/geometry3d/Range.js +296 -144
  481. package/lib/esm/geometry3d/Range.js.map +1 -1
  482. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  483. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  484. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  485. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  486. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  487. package/lib/esm/geometry3d/Transform.js.map +1 -1
  488. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  489. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  490. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  491. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  492. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  493. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  494. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  495. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  496. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  497. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  498. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  499. package/lib/esm/numerics/Complex.js.map +1 -1
  500. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  501. package/lib/esm/numerics/Newton.js.map +1 -1
  502. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  503. package/lib/esm/numerics/PolarData.js.map +1 -1
  504. package/lib/esm/numerics/Polynomials.js.map +1 -1
  505. package/lib/esm/numerics/Quadrature.js.map +1 -1
  506. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  507. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  508. package/lib/esm/numerics/UnionFind.js.map +1 -1
  509. package/lib/esm/numerics/UsageSums.js.map +1 -1
  510. package/lib/esm/polyface/AuxData.js.map +1 -1
  511. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  512. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  513. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  514. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  515. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  516. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  517. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  518. package/lib/esm/polyface/Polyface.js.map +1 -1
  519. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  520. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  521. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  522. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  523. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  524. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  525. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  526. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  527. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  528. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  529. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  530. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  531. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  532. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  533. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  534. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  535. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  536. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  537. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  538. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  539. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  540. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  541. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  542. package/lib/esm/solid/Box.js.map +1 -1
  543. package/lib/esm/solid/Cone.js.map +1 -1
  544. package/lib/esm/solid/LinearSweep.js.map +1 -1
  545. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  546. package/lib/esm/solid/RuledSweep.js.map +1 -1
  547. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  548. package/lib/esm/solid/Sphere.js.map +1 -1
  549. package/lib/esm/solid/SweepContour.js.map +1 -1
  550. package/lib/esm/solid/TorusPipe.js.map +1 -1
  551. package/lib/esm/topology/ChainMerge.js.map +1 -1
  552. package/lib/esm/topology/Graph.js.map +1 -1
  553. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  554. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  555. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  556. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  557. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  558. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  559. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  560. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  561. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  562. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  563. package/lib/esm/topology/MaskManager.js.map +1 -1
  564. package/lib/esm/topology/Merging.js.map +1 -1
  565. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  566. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  567. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  568. package/lib/esm/topology/Triangulation.js.map +1 -1
  569. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  570. package/package.json +3 -3
@@ -19,20 +19,21 @@ import { AppendPlaneIntersectionStrokeHandler } from "./internalContexts/AppendP
19
19
  import { ClosestPointStrokeHandler } from "./internalContexts/ClosestPointStrokeHandler";
20
20
  import { CurveLengthContext } from "./internalContexts/CurveLengthContext";
21
21
  /**
22
- * A curve primitive is bounded
22
+ * A curve primitive is bounded.
23
23
  * A curve primitive maps fractions in 0..1 to points in space.
24
24
  * As the fraction proceeds from 0 towards 1, the point moves "forward" along the curve.
25
25
  * True distance along the curve is not always strictly proportional to fraction.
26
- * * LineSegment3d always has proportional fraction and distance
27
- * * an Arc3d which is true circular has proportional fraction and distance
28
- * * A LineString3d is not proportional (except for special case of all segments of equal length)
29
- * * A Spiral3d is proportional
26
+ * * A LineSegment3d always has proportional fraction and distance.
27
+ * * An Arc3d which is true circular has proportional fraction and distance.
28
+ * * A LineString3d is not proportional (except for special case of all segments of equal length).
29
+ * * A Spiral3d is proportional.
30
30
  * * A BsplineCurve3d is only proportional for special cases.
31
- *
32
- * For fractions outside 0..1, the curve primitive class may either (a) return the near endpoint or (b) evaluate an extended curve.
31
+ * For fractions outside 0..1, the curve primitive class may either (a) return the near endpoint or (b) evaluate
32
+ * an extended curve.
33
33
  * @public
34
34
  */
35
35
  export class CurvePrimitive extends GeometryQuery {
36
+ /** Constructor */
36
37
  constructor() {
37
38
  super();
38
39
  /** String name for schema properties */
@@ -60,30 +61,35 @@ export class CurvePrimitive extends GeometryQuery {
60
61
  const b = data.vectorU.magnitude();
61
62
  return Geometry.conditionalDivideFraction(a, b * b * b);
62
63
  }
63
- /** Construct a frenet frame:
64
+ /**
65
+ * Construct a frenet frame:
64
66
  * * origin at the point on the curve
65
67
  * * x axis is unit vector along the curve (tangent)
66
- * * y axis is perpendicular and in the plane of the osculating circle.
67
- * * z axis perpendicular to those.
68
+ * * y axis is perpendicular and in the plane of the osculating circle. y axis is called "main normal"
69
+ * * z axis perpendicular to those. z axis is called "bi-normal"
68
70
  */
69
71
  fractionToFrenetFrame(fraction, result) {
70
72
  const plane = this.fractionToPointAnd2Derivatives(fraction);
71
73
  if (!plane)
72
74
  return undefined;
75
+ // first derivative (plane.vectorU) and second derivative (plane.vectorV) are not essentially
76
+ // perpendicular so we use createRigidFromColumns to make 3 perpendicular vectors.
73
77
  let axes = Matrix3d.createRigidFromColumns(plane.vectorU, plane.vectorV, AxisOrder.XYZ);
74
78
  if (axes)
75
79
  return Transform.createRefs(plane.origin, axes, result);
76
- // 2nd derivative not distinct -- do arbitrary headsUP ...
80
+ // 2nd derivative not distinct. for example if curve is linear at fraction so second derivative is 0.
81
+ // in this case we find perpendicular vector to plane.vectorU and pass it to createRigidFromColumns.
77
82
  const perpVector = Matrix3d.createPerpendicularVectorFavorXYPlane(plane.vectorU, plane.vectorV);
78
83
  axes = Matrix3d.createRigidFromColumns(plane.vectorU, perpVector, AxisOrder.XYZ);
79
84
  if (axes)
80
85
  return Transform.createRefs(plane.origin, axes, result);
81
86
  return undefined;
82
87
  }
83
- /** Construct signed distance from a point on the curve to its center of curvature (in xy only).
84
- * * Positive is to the left of the xy tangent.
85
- * * negative is to the right of the xy tangent.
86
- * * linear curve is 0.
88
+ /**
89
+ * Construct signed distance from a point on the planar curve to its center of curvature (in xy only).
90
+ * * Positive distance means the center is to the left of the curve at fraction.
91
+ * * Negative distance means the center is to the right of the curve at fraction.
92
+ * * Zero distance means curve is linear at fraction.
87
93
  */
88
94
  fractionToSignedXYRadiusOfCurvature(fraction) {
89
95
  const plane = this.fractionToPointAnd2Derivatives(fraction);
@@ -108,7 +114,7 @@ export class CurvePrimitive extends GeometryQuery {
108
114
  return ray.fractionToPoint(distance);
109
115
  }
110
116
  /**
111
- * return the length of the curve.
117
+ * Return the length of the curve.
112
118
  * * Curve length is always positive.
113
119
  */
114
120
  curveLength() {
@@ -117,9 +123,9 @@ export class CurvePrimitive extends GeometryQuery {
117
123
  return context.getSum();
118
124
  }
119
125
  /**
120
- * Returns a (high accuracy) length of the curve between fractional positions
126
+ * Returns a (high accuracy) length of the curve between fractional positions.
121
127
  * * Curve length is always positive.
122
- * * Default implementation applies a generic gaussian integration.
128
+ * * Default implementation applies a generic Gaussian integration.
123
129
  * * Most curve classes (certainly LineSegment, LineString, Arc) are expected to provide efficient implementations.
124
130
  */
125
131
  curveLengthBetweenFractions(fraction0, fraction1) {
@@ -127,7 +133,7 @@ export class CurvePrimitive extends GeometryQuery {
127
133
  return 0.0;
128
134
  const scale = this.getFractionToDistanceScale();
129
135
  if (scale !== undefined) {
130
- // We are in luck! simple proportions determine it all !!!
136
+ // We are in luck! simple proportions determine it all !!!
131
137
  // (for example, a LineSegment3d or a circular arc)
132
138
  const totalLength = this.curveLength();
133
139
  return Math.abs((fraction1 - fraction0) * totalLength);
@@ -138,14 +144,14 @@ export class CurvePrimitive extends GeometryQuery {
138
144
  }
139
145
  /**
140
146
  * Returns a (high accuracy) range of the curve between fractional positions
141
- * * Default implementation returns teh range of the curve from clonePartialCurve
147
+ * * Default implementation returns the range of the curve from clonePartialCurve.
142
148
  */
143
149
  rangeBetweenFractions(fraction0, fraction1, transform) {
144
150
  return this.rangeBetweenFractionsByClone(fraction0, fraction1, transform);
145
151
  }
146
152
  /**
147
153
  * Returns a (high accuracy) range of the curve between fractional positions
148
- * * Default implementation returns teh range of the curve from clonePartialCurve
154
+ * * Default implementation returns the range of the curve from clonePartialCurve
149
155
  */
150
156
  rangeBetweenFractionsByClone(fraction0, fraction1, transform) {
151
157
  if (fraction0 === fraction1)
@@ -159,12 +165,17 @@ export class CurvePrimitive extends GeometryQuery {
159
165
  * Returns an approximate range based on a fixed number of evaluations
160
166
  * * Default implementation returns a range determined by evaluating a specified number of points on the curve.
161
167
  * * Optional evaluate again at interval midpoints and extrapolate any increase
162
- * * For a smooth curve, Richardson extrapolation suggests each subdivision moves 3/4 of the way to final. So extrapolationFactor
163
- * of 1/3 gets speculatively moves closer to the tight range, and larger multipliers increase confidence in being safely larger.
168
+ * * For a smooth curve, Richardson extrapolation suggests each subdivision moves 3/4 of the way to final. So
169
+ * extrapolationFactor of 1/3 gets speculatively moves closer to the tight range, and larger multipliers increase
170
+ * confidence in being safely larger.
171
+ * * This function is faster version to compute the range of a portion of a curve (because some curves can be
172
+ * expensive to compute the partial curve and/or to compute the partial curve's range.
164
173
  * @param fraction0 start fraction for evaluation
165
174
  * @param fraction1 end fraction for evaluation
166
175
  * @param count number of points to evaluate
167
- * @param extrapolationFactor if positive, evaluate again at interval midpoints and apply this fraction multiplier to any increase in size.
176
+ * @param transform optional transform to be applied to the curve
177
+ * @param extrapolationFactor if positive, evaluate again at interval midpoints and apply this fraction multiplier
178
+ * to any increase in size.
168
179
  */
169
180
  rangeBetweenFractionsByCount(fraction0, fraction1, count, transform, extrapolationFactor = 0.0) {
170
181
  const range = Range3d.createNull();
@@ -189,8 +200,8 @@ export class CurvePrimitive extends GeometryQuery {
189
200
  evaluateSteps(fraction0 + globalFractionStep, globalFractionStep, interiorCount);
190
201
  }
191
202
  if (extrapolationFactor > 0.0) {
192
- // Evaluate at midpoints. Where this makes the range larger, apply extrapolationFactor to move it to safer excess value.
193
- // same interior step, but shift to interval midpoints:.
203
+ // Evaluate at midpoints. Where this makes the range larger, apply extrapolationFactor to move it to safer
204
+ // excess value. same interior step, but shift to interval midpoints.
194
205
  const baseRange = range.clone();
195
206
  const interiorCount1 = interiorCount + 1;
196
207
  const localFraction0 = 0.5 / interiorCount1; // we only evaluate at new midpoints.
@@ -201,13 +212,13 @@ export class CurvePrimitive extends GeometryQuery {
201
212
  return range;
202
213
  }
203
214
  /**
204
- *
205
- * * Run an integration (with a default gaussian quadrature) with a fixed fractional step
215
+ * Run an integration (with a default Gaussian quadrature) with a fixed fractional step
206
216
  * * This is typically called by specific curve type implementations of curveLengthBetweenFractions.
207
- * * For example, in Arc3d implementation of curveLengthBetweenFractions:
217
+ * * For example, in Arc3d implementation of curveLengthBetweenFractions:
208
218
  * * If the Arc3d is true circular, it the arc is true circular, use the direct `arcLength = radius * sweepRadians`
209
- * * If the Arc3d is not true circular, call this method with an interval count appropriate to eccentricity and sweepRadians.
210
- * @returns Returns an integral estimated by numerical quadrature between the fractional positions.
219
+ * * If the Arc3d is not true circular, call this method with an interval count appropriate to eccentricity and
220
+ * sweepRadians.
221
+ * @returns Returns the curve length via an integral estimated by numerical quadrature between the fractional positions.
211
222
  * @param fraction0 start fraction for integration
212
223
  * @param fraction1 end fraction for integration
213
224
  * @param numInterval number of quadrature intervals
@@ -223,33 +234,39 @@ export class CurvePrimitive extends GeometryQuery {
223
234
  return Math.abs(context.getSum());
224
235
  }
225
236
  /**
226
- *
227
- * * (Attempt to) find a position on the curve at a signed distance from start fraction.
237
+ * (Attempt to) find a position on the curve at a signed distance from start fraction.
228
238
  * * Return the position as a CurveLocationDetail.
229
239
  * * In the `CurveLocationDetail`, record:
230
240
  * * `fraction` = fractional position
231
241
  * * `point` = coordinates of the point
232
- * * `a` = (signed!) distance moved. If `allowExtension` is false and the move reached the start or end of the curve, this distance is smaller than the requested signedDistance.
242
+ * * `a` = (signed!) distance moved. If `allowExtension` is false and the move reached the start or end of the
243
+ * curve, this distance is smaller than the requested signedDistance.
233
244
  * * `curveSearchStatus` indicates one of:
234
245
  * * `error` (unusual) computation failed not supported for this curve.
235
246
  * * `success` full movement completed
236
247
  * * `stoppedAtBoundary` partial movement completed. This can be due to either
237
248
  * * `allowExtension` parameter sent as `false`
238
249
  * * the curve type (e.g. bspline) does not support extended range.
239
- * * if `allowExtension` is true, movement may still end at the startPoint or end point for curves that do not support extended geometry (specifically bsplines)
240
- * * if the curve returns a value (i.e. not `undefined`) for `curve.getFractionToDistanceScale()`, the base class carries out the computation
250
+ * * if `allowExtension` is true, movement may still end at the startPoint or end point for curves that do not support
251
+ * extended geometry (specifically bsplines)
252
+ * * if the curve returns a value (i.e. not `undefined`) for `curve.getFractionToDistanceScale()`, the base class
253
+ * carries out the computation
241
254
  * and returns a final location.
242
255
  * * LineSegment3d relies on this.
243
- * * If the curve does not implement the computation or the curve has zero length, the returned `CurveLocationDetail` has
256
+ * * If the curve does not implement the computation or the curve has zero length, the returned `CurveLocationDetail`
257
+ * has
244
258
  * * `fraction` = the value of `startFraction`
245
259
  * * `point` = result of `curve.fractionToPoint(startFraction)`
246
260
  * * `a` = 0
247
261
  * * `curveStartState` = `CurveSearchStatus.error`
248
262
  * @param startFraction fractional position where the move starts
249
263
  * @param signedDistance distance to move. Negative distance is backwards in the fraction space
250
- * @param allowExtension if true, all the move to go beyond the startPoint or endpoint of the curve. If false, do not allow movement beyond the startPoint or endpoint
264
+ * @param allowExtension if true, allow the move to go beyond the startPoint or endpoint of the curve. If false,
265
+ * do not allow movement beyond the startPoint or endpoint
251
266
  * @param result optional result.
252
- * @returns A CurveLocationDetail annotated as above. Note that if the curve does not support the calculation, there is still a result which contains the point at the input startFraction, with failure indicated in the `curveStartState` member
267
+ * @returns A CurveLocationDetail annotated as above. Note that if the curve does not support the calculation, there is
268
+ * still a result which contains the point at the input startFraction, with failure indicated in the `curveStartState`
269
+ * member
253
270
  */
254
271
  moveSignedDistanceFromFraction(startFraction, signedDistance, allowExtension, result) {
255
272
  const scale = this.getFractionToDistanceScale();
@@ -269,13 +286,14 @@ export class CurvePrimitive extends GeometryQuery {
269
286
  * Generic algorithm to search for point at signed distance from a fractional startPoint.
270
287
  * * This will work for well for smooth curves.
271
288
  * * Curves with tangent or other low-order-derivative discontinuities may need to implement specialized algorithms.
272
- * * We need to find an endFraction which is the end-of-interval (usually upper) limit of integration of the tangent magnitude from startFraction to endFraction
289
+ * * We need to find an endFraction which is the end-of-interval (usually upper) limit of integration of the tangent
290
+ * magnitude from startFraction to endFraction
273
291
  * * That integral is a function of endFraction.
274
292
  * * The derivative of that integral with respect to end fraction is the tangent magnitude at end fraction.
275
293
  * * Use that function and (easily evaluated!) derivative for a Newton iteration
276
- * * TO ALL WHO HAVE FUZZY MEMORIES OF CALCULUS CLASS: "The derivative of the integral wrt upper limit is the value of the integrand there" is the
277
- * fundamental theorem of integral calculus !!! The fundamental theorem is not just an abstraction !!! It is being used
278
- * here in its barest possible form !!!
294
+ * * TO ALL WHO HAVE FUZZY MEMORIES OF CALCULUS CLASS: "The derivative of the integral wrt upper limit is the value
295
+ * of the integrand there" is the fundamental theorem of integral calculus !!! The fundamental theorem is not just
296
+ * an abstraction !!! It is being used here in its barest possible form !!!
279
297
  * * See https://en.wikipedia.org/wiki/Fundamental_theorem_of_calculus
280
298
  * @param startFraction
281
299
  * @param signedDistance
@@ -356,20 +374,25 @@ export class CurvePrimitive extends GeometryQuery {
356
374
  return result;
357
375
  }
358
376
  /**
359
- * * Returns true if the curve's fraction queries extend beyond 0..1.
377
+ * * Returns true if the curve can be easily extended past its start/end point (i.e., beyond the usual
378
+ * fraction space [0,1]). Otherwise, returns false.
360
379
  * * Base class default implementation returns false.
361
- * * These class (and perhaps others in the future) will return true:
380
+ * * These classes (and perhaps others in the future) will return true:
362
381
  * * LineSegment3d
363
382
  * * LineString3d
364
383
  * * Arc3d
365
384
  */
366
- get isExtensibleFractionSpace() { return false; }
367
- /** Search for the curve point that is closest to the spacePoint.
368
- *
385
+ get isExtensibleFractionSpace() {
386
+ return false;
387
+ }
388
+ /**
389
+ * Search for a point on the curve that is closest to the spacePoint.
369
390
  * * If the space point is exactly on the curve, this is the reverse of fractionToPoint.
370
- * * Since CurvePrimitive should always have start and end available as candidate points, this method should always succeed
391
+ * * Since CurvePrimitive should always have start and end available as candidate points, this method should always
392
+ * succeed
371
393
  * @param spacePoint point in space
372
- * @param extend true to extend the curve (if possible), false for no extend, single CurveExtendOptions (for both directions), or array of distinct CurveExtendOptions for start and end.
394
+ * @param extend true to extend the curve (if possible), false for no extend, single CurveExtendOptions (for both
395
+ * directions), or array of distinct CurveExtendOptions for start and end.
373
396
  * @returns Returns a CurveLocationDetail structure that holds the details of the close point.
374
397
  */
375
398
  closestPoint(spacePoint, extend) {
@@ -380,14 +403,16 @@ export class CurvePrimitive extends GeometryQuery {
380
403
  /**
381
404
  * Find intervals of this curvePrimitive that are interior to a clipper
382
405
  * @param clipper clip structure (e.g. clip planes)
383
- * @param announce (optional) function to be called announcing fractional intervals" ` announce(fraction0, fraction1, curvePrimitive)`
406
+ * @param announce (optional) function to be called announcing fractional intervals
407
+ * `announce(fraction0, fraction1, curvePrimitive)`
384
408
  * @returns true if any "in" segments are announced.
385
409
  */
386
410
  announceClipIntervals(_clipper, _announce) {
387
411
  // DEFAULT IMPLEMENTATION -- no interior parts
388
412
  return false;
389
413
  }
390
- /** Return (if possible) a curve primitive which is a portion of this curve.
414
+ /**
415
+ * Return (if possible) a curve primitive which is a portion of this curve.
391
416
  * @param _fractionA [in] start fraction
392
417
  * @param _fractionB [in] end fraction
393
418
  */
@@ -395,8 +420,8 @@ export class CurvePrimitive extends GeometryQuery {
395
420
  return undefined;
396
421
  }
397
422
  /**
398
- * * If the curve primitive has distance-along-curve strictly proportional to curve fraction, return the scale factor.
399
- * * If distance-along-the-curve is not proportional, return undefined.
423
+ * If the curve primitive has distance-along-curve strictly proportional to curve fraction, return the scale factor.
424
+ * If distance-along-the-curve is not proportional, return undefined.
400
425
  * * When defined, the scale factor is always the length of the curve.
401
426
  * * This scale factor is typically available for these curve types:
402
427
  * * * All `LineSegment3d`
@@ -407,12 +432,14 @@ export class CurvePrimitive extends GeometryQuery {
407
432
  * * * bspline and bezier curves
408
433
  * @returns scale factor or undefined
409
434
  */
410
- getFractionToDistanceScale() { return undefined; }
435
+ getFractionToDistanceScale() {
436
+ return undefined;
437
+ }
411
438
  /**
412
- * Compute intersections with a plane.
439
+ * Compute intersections of the curve with a plane.
413
440
  * * The intersections are appended to the result array.
414
- * * The base class implementation emits strokes to an AppendPlaneIntersectionStrokeHandler object, which uses a Newton iteration to get
415
- * high-accuracy intersection points within strokes.
441
+ * * The base class implementation emits strokes to an AppendPlaneIntersectionStrokeHandler object, which uses a
442
+ * Newton iteration to get high-accuracy intersection points within strokes.
416
443
  * * Derived classes should override this default implementation if there are easy analytic solutions.
417
444
  * * Derived classes are free to implement extended intersections (e.g. arc!!!)
418
445
  * @param plane The plane to be intersected.
@@ -429,8 +456,8 @@ export class CurvePrimitive extends GeometryQuery {
429
456
  * Examine contents of an array of CurveLocationDetail.
430
457
  * Filter the intersections according to the parameters.
431
458
  * @param allowExtend if false, remove points on the extension.
432
- * @param applySnappedCoordinates if true, change the stored fractions and coordinates to exact end values. Otherwise
433
- * use the exact values only for purpose of updating the curveIntervalRole.
459
+ * @param applySnappedCoordinates if true, change the stored fractions and coordinates to exact end values.
460
+ * Otherwise use the exact values only for purpose of updating the curveIntervalRole.
434
461
  * @param startEndFractionTolerance if nonzero, adjust fraction to 0 or 1 with this tolerance.
435
462
  * @param startEndXYZTolerance if nonzero, adjust to endpoint with this tolerance.
436
463
  * @internal
@@ -493,12 +520,16 @@ export class CurvePrimitive extends GeometryQuery {
493
520
  if (acceptIndex < n0)
494
521
  details.length = acceptIndex;
495
522
  }
496
- /** return the startPoint of the primitive. The default implementation returns fractionToPoint (0.0) */
497
- startPoint(result) { return this.fractionToPoint(0.0, result); }
498
- /** return the end point of the primitive. The default implementation returns fractionToPoint(1.0) */
499
- endPoint(result) { return this.fractionToPoint(1.0, result); }
523
+ /** Return the startPoint of the primitive. The default implementation returns fractionToPoint(0.0) */
524
+ startPoint(result) {
525
+ return this.fractionToPoint(0.0, result);
526
+ }
527
+ /** Return the end point of the primitive. The default implementation returns fractionToPoint(1.0) */
528
+ endPoint(result) {
529
+ return this.fractionToPoint(1.0, result);
530
+ }
500
531
  /**
501
- * attach StrokeCountMap structure to this primitive (and recursively to any children)
532
+ * Attach StrokeCountMap structure to this primitive (and recursively to any children)
502
533
  * * Base class implementation (here) gets the simple count from computeStrokeCountForOptions and attaches it.
503
534
  * * LineString3d, arc3d, BezierCurve3d, BezierCurve3dH accept that default.
504
535
  * * Subdivided primitives (linestring, bspline curve) implement themselves and attach a StrokeCountMap containing the
@@ -506,7 +537,8 @@ export class CurvePrimitive extends GeometryQuery {
506
537
  * * For CurvePrimitiveWithDistanceIndex, the top level gets (only) a total count, and each child gets
507
538
  * its own StrokeCountMap with appropriate structure.
508
539
  * @param options StrokeOptions that determine count
509
- * @param parentStrokeMap optional map from parent. Its count, curveLength, and a1 values are increased with count and distance from this primitive.
540
+ * @param parentStrokeMap optional map from parent. Its count, curveLength, and a1 values are increased with count
541
+ * and distance from this primitive.
510
542
  * @return sum of `a0+this.curveLength()`, for use as `a0` of successor in chain.
511
543
  */
512
544
  computeAndAttachRecursiveStrokeCounts(options, parentMap) {
@@ -515,8 +547,9 @@ export class CurvePrimitive extends GeometryQuery {
515
547
  CurvePrimitive.installStrokeCountMap(this, StrokeCountMap.createWithCurvePrimitive(this, n, a, 0, a), parentMap);
516
548
  }
517
549
  /**
518
- * * evaluate strokes at fractions indicated in a StrokeCountMap.
519
- * * Base class implementation (here) gets the simple count from computeStrokeCountForOptions and strokes at uniform fractions.
550
+ * Evaluate strokes at fractions indicated in a StrokeCountMap.
551
+ * * Base class implementation (here) gets the simple count from computeStrokeCountForOptions and strokes at
552
+ * uniform fractions.
520
553
  * * LineString3d, arc3d, BezierCurve3d, BezierCurve3dH accept that default.
521
554
  * * Subdivided primitives (linestring, bspline curve) implement themselves and evaluate within components.
522
555
  * * CurvePrimitiveWithDistanceIndex recurses to its children.
@@ -536,7 +569,7 @@ export class CurvePrimitive extends GeometryQuery {
536
569
  return linestring.numPoints() - numPoint0;
537
570
  }
538
571
  /**
539
- * final install step to save curveMap in curve. If parentMap is given, update its length, count, and a1 fields
572
+ * Final install step to save curveMap in curve. If parentMap is given, update its length, count, and a1 fields
540
573
  * @param curve curve to receive the annotation
541
574
  * @param map
542
575
  * @param parentMap
@@ -550,8 +583,10 @@ export class CurvePrimitive extends GeometryQuery {
550
583
  * Return an array containing only the curve primitives.
551
584
  * * This DEFAULT implementation simply pushes `this` to the collectorArray.
552
585
  * @param collectorArray array to receive primitives (pushed -- the array is not cleared)
553
- * @param smallestPossiblePrimitives if true, a [[CurvePrimitiveWithDistanceIndex]] recurses on its (otherwise hidden) children. If false, it returns only itself.
554
- * @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false, push only the [[LineString3d]].
586
+ * @param smallestPossiblePrimitives if true, a [[CurvePrimitiveWithDistanceIndex]] recurses on its (otherwise hidden)
587
+ * children. If false, it returns only itself.
588
+ * @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false,
589
+ * push only the [[LineString3d]].
555
590
  */
556
591
  collectCurvePrimitivesGo(collectorArray, _smallestPossiblePrimitives, _explodeLinestrings = false) {
557
592
  collectorArray.push(this);
@@ -559,18 +594,23 @@ export class CurvePrimitive extends GeometryQuery {
559
594
  /**
560
595
  * Return an array containing only the curve primitives.
561
596
  * * This DEFAULT implementation captures the optional collector and calls [[collectCurvePrimitivesGo]].
562
- * @param collectorArray optional array to receive primitives. If present, new primitives are ADDED (without clearing the array.)
563
- * @param smallestPossiblePrimitives if false, CurvePrimitiveWithDistanceIndex returns only itself. If true, it recurses to its (otherwise hidden) children.
597
+ * @param collectorArray optional array to receive primitives. If present, new primitives are ADDED (without
598
+ * clearing the array.)
599
+ * @param smallestPossiblePrimitives if false, CurvePrimitiveWithDistanceIndex returns only itself. If true,
600
+ * it recurses to its (otherwise hidden) children.
564
601
  */
565
602
  collectCurvePrimitives(collectorArray, smallestPossiblePrimitives = false, explodeLinestrings = false) {
566
603
  const results = collectorArray === undefined ? [] : collectorArray;
567
604
  this.collectCurvePrimitivesGo(results, smallestPossiblePrimitives, explodeLinestrings);
568
605
  return results;
569
606
  }
570
- /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
607
+ /**
608
+ * Project instance geometry (via dispatch) onto the line of the given ray, and return the extreme fractional
609
+ * parameters of projection.
571
610
  * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
572
611
  * @param lowHigh optional receiver for output
573
- * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
612
+ * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the
613
+ * end of the ray.
574
614
  */
575
615
  projectedParameterRange(_ray, _lowHigh) {
576
616
  return undefined; // common implementation delegated to subclasses to avoid circular dependency