@itwin/core-geometry 5.3.0-dev.2 → 5.3.0-dev.21

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 (608) hide show
  1. package/CHANGELOG.md +21 -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.js.map +1 -1
  28. package/lib/cjs/curve/Arc3d.d.ts +15 -1
  29. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  30. package/lib/cjs/curve/Arc3d.js +36 -9
  31. package/lib/cjs/curve/Arc3d.js.map +1 -1
  32. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  33. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  34. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  35. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  36. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  37. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  38. package/lib/cjs/curve/CurveFactory.d.ts +25 -8
  39. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  40. package/lib/cjs/curve/CurveFactory.js +51 -55
  41. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  42. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  43. package/lib/cjs/curve/CurveOps.d.ts +2 -5
  44. package/lib/cjs/curve/CurveOps.d.ts.map +1 -1
  45. package/lib/cjs/curve/CurveOps.js +2 -5
  46. package/lib/cjs/curve/CurveOps.js.map +1 -1
  47. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  48. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  49. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  50. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  51. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  52. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  53. package/lib/cjs/curve/LineString3d.js.map +1 -1
  54. package/lib/cjs/curve/Loop.js.map +1 -1
  55. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  56. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  57. package/lib/cjs/curve/Path.js.map +1 -1
  58. package/lib/cjs/curve/PointString3d.js.map +1 -1
  59. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  60. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  61. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  62. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  63. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  64. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +50 -15
  65. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  66. package/lib/cjs/curve/Query/PlanarSubdivision.js +102 -84
  67. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  68. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  69. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  70. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  71. package/lib/cjs/curve/RegionOps.d.ts +44 -25
  72. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  73. package/lib/cjs/curve/RegionOps.js +74 -39
  74. package/lib/cjs/curve/RegionOps.js.map +1 -1
  75. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  76. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +8 -8
  77. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  78. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  79. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  80. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  81. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  82. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  83. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  84. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  85. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  86. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  87. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  88. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +1 -0
  89. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  90. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +102 -92
  91. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  92. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  93. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  94. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  95. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  96. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  97. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  98. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  99. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  100. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  101. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  102. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
  103. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  104. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.d.ts +10 -13
  105. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -1
  106. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js +23 -22
  107. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  108. package/lib/cjs/curve/spiral/ClothoidSeries.d.ts +10 -6
  109. package/lib/cjs/curve/spiral/ClothoidSeries.d.ts.map +1 -1
  110. package/lib/cjs/curve/spiral/ClothoidSeries.js +36 -19
  111. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  112. package/lib/cjs/curve/spiral/CubicEvaluator.d.ts +7 -6
  113. package/lib/cjs/curve/spiral/CubicEvaluator.d.ts.map +1 -1
  114. package/lib/cjs/curve/spiral/CubicEvaluator.js +29 -14
  115. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  116. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts +34 -44
  117. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -1
  118. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +47 -53
  119. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  120. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts +2 -2
  121. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -1
  122. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js +17 -7
  123. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  124. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +112 -104
  125. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  126. package/lib/cjs/curve/spiral/DirectSpiral3d.js +143 -117
  127. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  128. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +71 -53
  129. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  130. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +99 -66
  131. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  132. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +8 -12
  133. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -1
  134. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +11 -13
  135. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  136. package/lib/cjs/curve/spiral/NormalizedTransition.d.ts +36 -29
  137. package/lib/cjs/curve/spiral/NormalizedTransition.d.ts.map +1 -1
  138. package/lib/cjs/curve/spiral/NormalizedTransition.js +62 -40
  139. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  140. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts +13 -18
  141. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -1
  142. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +21 -24
  143. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  144. package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts +41 -27
  145. package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
  146. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +50 -33
  147. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  148. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +45 -34
  149. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  150. package/lib/cjs/curve/spiral/TransitionSpiral3d.js +56 -38
  151. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  152. package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts +27 -21
  153. package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts.map +1 -1
  154. package/lib/cjs/curve/spiral/XYCurveEvaluator.js +23 -18
  155. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  156. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  157. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  158. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  159. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  160. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  161. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  162. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  163. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  164. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  165. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  166. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  167. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +98 -99
  168. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  169. package/lib/cjs/geometry3d/GrowableXYArray.js +123 -111
  170. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  171. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +137 -143
  172. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  173. package/lib/cjs/geometry3d/GrowableXYZArray.js +167 -161
  174. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  175. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  176. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts +51 -34
  177. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  178. package/lib/cjs/geometry3d/IndexedXYCollection.js +16 -6
  179. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  180. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +87 -93
  181. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  182. package/lib/cjs/geometry3d/IndexedXYZCollection.js +41 -38
  183. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  184. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  185. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  186. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  187. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  188. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  189. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  190. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  191. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  192. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  193. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  194. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  195. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  196. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  197. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  198. package/lib/cjs/geometry3d/PolylineOps.d.ts +2 -2
  199. package/lib/cjs/geometry3d/PolylineOps.js +2 -2
  200. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  201. package/lib/cjs/geometry3d/Range.js.map +1 -1
  202. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  203. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  204. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  205. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  206. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  207. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  208. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  209. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  210. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  211. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  212. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  213. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  214. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  215. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  216. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  217. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  218. package/lib/cjs/numerics/ClusterableArray.d.ts.map +1 -1
  219. package/lib/cjs/numerics/ClusterableArray.js +2 -2
  220. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  221. package/lib/cjs/numerics/Complex.js.map +1 -1
  222. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  223. package/lib/cjs/numerics/Newton.js.map +1 -1
  224. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  225. package/lib/cjs/numerics/PolarData.js.map +1 -1
  226. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  227. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  228. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  229. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  230. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  231. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  232. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  233. package/lib/cjs/polyface/AuxData.js.map +1 -1
  234. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  235. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  236. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  237. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  238. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  239. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  240. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  241. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -1
  242. package/lib/cjs/polyface/Polyface.js.map +1 -1
  243. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  244. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  245. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  246. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  247. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  248. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  249. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  250. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  251. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  252. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  253. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  254. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  255. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  256. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  257. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  258. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  259. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  260. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  261. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  262. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  263. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  264. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  265. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  266. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  267. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  268. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  269. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  270. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  271. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  272. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  273. package/lib/cjs/solid/Box.js.map +1 -1
  274. package/lib/cjs/solid/Cone.js.map +1 -1
  275. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  276. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  277. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  278. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  279. package/lib/cjs/solid/Sphere.js.map +1 -1
  280. package/lib/cjs/solid/SweepContour.js.map +1 -1
  281. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  282. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  283. package/lib/cjs/topology/Graph.js.map +1 -1
  284. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  285. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  286. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  287. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  288. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  289. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  290. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  291. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  292. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  293. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  294. package/lib/cjs/topology/MaskManager.js.map +1 -1
  295. package/lib/cjs/topology/Merging.d.ts +15 -7
  296. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  297. package/lib/cjs/topology/Merging.js +15 -10
  298. package/lib/cjs/topology/Merging.js.map +1 -1
  299. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  300. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  301. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  302. package/lib/cjs/topology/Triangulation.js.map +1 -1
  303. package/lib/cjs/topology/Voronoi.js.map +1 -1
  304. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  305. package/lib/esm/Constant.js.map +1 -1
  306. package/lib/esm/Geometry.js.map +1 -1
  307. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  308. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  309. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  310. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  311. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  312. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  313. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  314. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  315. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  316. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  317. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  318. package/lib/esm/bspline/KnotVector.js.map +1 -1
  319. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  320. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  321. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  322. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  323. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  324. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  325. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  326. package/lib/esm/clipping/ClipVector.js.map +1 -1
  327. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  328. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  329. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  330. package/lib/esm/core-geometry.js.map +1 -1
  331. package/lib/esm/curve/Arc3d.d.ts +15 -1
  332. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  333. package/lib/esm/curve/Arc3d.js +36 -9
  334. package/lib/esm/curve/Arc3d.js.map +1 -1
  335. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  336. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  337. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  338. package/lib/esm/curve/CurveCollection.js.map +1 -1
  339. package/lib/esm/curve/CurveCurve.js.map +1 -1
  340. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  341. package/lib/esm/curve/CurveFactory.d.ts +25 -8
  342. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  343. package/lib/esm/curve/CurveFactory.js +51 -55
  344. package/lib/esm/curve/CurveFactory.js.map +1 -1
  345. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  346. package/lib/esm/curve/CurveOps.d.ts +2 -5
  347. package/lib/esm/curve/CurveOps.d.ts.map +1 -1
  348. package/lib/esm/curve/CurveOps.js +2 -5
  349. package/lib/esm/curve/CurveOps.js.map +1 -1
  350. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  351. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  352. package/lib/esm/curve/CurveTypes.js.map +1 -1
  353. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  354. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  355. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  356. package/lib/esm/curve/LineString3d.js.map +1 -1
  357. package/lib/esm/curve/Loop.js.map +1 -1
  358. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  359. package/lib/esm/curve/ParityRegion.js.map +1 -1
  360. package/lib/esm/curve/Path.js.map +1 -1
  361. package/lib/esm/curve/PointString3d.js.map +1 -1
  362. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  363. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  364. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  365. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  366. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  367. package/lib/esm/curve/Query/PlanarSubdivision.d.ts +50 -15
  368. package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  369. package/lib/esm/curve/Query/PlanarSubdivision.js +102 -84
  370. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  371. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  372. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  373. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  374. package/lib/esm/curve/RegionOps.d.ts +44 -25
  375. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  376. package/lib/esm/curve/RegionOps.js +72 -37
  377. package/lib/esm/curve/RegionOps.js.map +1 -1
  378. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  379. package/lib/esm/curve/RegionOpsClassificationSweeps.js +8 -8
  380. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  381. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  382. package/lib/esm/curve/UnionRegion.js.map +1 -1
  383. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  384. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  385. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  386. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  387. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  388. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  389. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  390. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  391. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +1 -0
  392. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  393. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +102 -92
  394. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  395. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  396. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  397. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  398. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  399. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  400. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  401. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  402. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  403. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  404. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  405. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
  406. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  407. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts +10 -13
  408. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -1
  409. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +23 -22
  410. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  411. package/lib/esm/curve/spiral/ClothoidSeries.d.ts +10 -6
  412. package/lib/esm/curve/spiral/ClothoidSeries.d.ts.map +1 -1
  413. package/lib/esm/curve/spiral/ClothoidSeries.js +36 -19
  414. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  415. package/lib/esm/curve/spiral/CubicEvaluator.d.ts +7 -6
  416. package/lib/esm/curve/spiral/CubicEvaluator.d.ts.map +1 -1
  417. package/lib/esm/curve/spiral/CubicEvaluator.js +29 -14
  418. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  419. package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts +34 -44
  420. package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -1
  421. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +47 -53
  422. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  423. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts +2 -2
  424. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -1
  425. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +17 -7
  426. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  427. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +112 -104
  428. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  429. package/lib/esm/curve/spiral/DirectSpiral3d.js +143 -117
  430. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  431. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +71 -53
  432. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  433. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +99 -66
  434. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  435. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +8 -12
  436. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -1
  437. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +11 -13
  438. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  439. package/lib/esm/curve/spiral/NormalizedTransition.d.ts +36 -29
  440. package/lib/esm/curve/spiral/NormalizedTransition.d.ts.map +1 -1
  441. package/lib/esm/curve/spiral/NormalizedTransition.js +62 -40
  442. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  443. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts +13 -18
  444. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -1
  445. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +21 -24
  446. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  447. package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts +41 -27
  448. package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
  449. package/lib/esm/curve/spiral/TransitionConditionalProperties.js +50 -33
  450. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  451. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +45 -34
  452. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  453. package/lib/esm/curve/spiral/TransitionSpiral3d.js +56 -38
  454. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  455. package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts +27 -21
  456. package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts.map +1 -1
  457. package/lib/esm/curve/spiral/XYCurveEvaluator.js +23 -18
  458. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  459. package/lib/esm/geometry3d/Angle.js.map +1 -1
  460. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  461. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  462. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  463. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  464. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  465. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  466. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  467. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  468. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  469. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  470. package/lib/esm/geometry3d/GrowableXYArray.d.ts +98 -99
  471. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  472. package/lib/esm/geometry3d/GrowableXYArray.js +124 -112
  473. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  474. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +137 -143
  475. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  476. package/lib/esm/geometry3d/GrowableXYZArray.js +167 -161
  477. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  478. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  479. package/lib/esm/geometry3d/IndexedXYCollection.d.ts +51 -34
  480. package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  481. package/lib/esm/geometry3d/IndexedXYCollection.js +14 -5
  482. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  483. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +87 -93
  484. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  485. package/lib/esm/geometry3d/IndexedXYZCollection.js +41 -38
  486. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  487. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  488. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  489. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  490. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  491. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  492. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  493. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  494. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  495. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  496. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  497. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  498. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  499. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  500. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  501. package/lib/esm/geometry3d/PolylineOps.d.ts +2 -2
  502. package/lib/esm/geometry3d/PolylineOps.js +2 -2
  503. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  504. package/lib/esm/geometry3d/Range.js.map +1 -1
  505. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  506. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  507. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  508. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  509. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  510. package/lib/esm/geometry3d/Transform.js.map +1 -1
  511. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  512. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  513. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  514. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  515. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  516. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  517. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  518. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  519. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  520. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  521. package/lib/esm/numerics/ClusterableArray.d.ts.map +1 -1
  522. package/lib/esm/numerics/ClusterableArray.js +2 -2
  523. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  524. package/lib/esm/numerics/Complex.js.map +1 -1
  525. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  526. package/lib/esm/numerics/Newton.js.map +1 -1
  527. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  528. package/lib/esm/numerics/PolarData.js.map +1 -1
  529. package/lib/esm/numerics/Polynomials.js.map +1 -1
  530. package/lib/esm/numerics/Quadrature.js.map +1 -1
  531. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  532. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  533. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  534. package/lib/esm/numerics/UnionFind.js.map +1 -1
  535. package/lib/esm/numerics/UsageSums.js.map +1 -1
  536. package/lib/esm/polyface/AuxData.js.map +1 -1
  537. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  538. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  539. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  540. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  541. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  542. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  543. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  544. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -1
  545. package/lib/esm/polyface/Polyface.js.map +1 -1
  546. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  547. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  548. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  549. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  550. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  551. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  552. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  553. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  554. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  555. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  556. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  557. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  558. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  559. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  560. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  561. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  562. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  563. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  564. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  565. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  566. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  567. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  568. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  569. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  570. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  571. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  572. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  573. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  574. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  575. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  576. package/lib/esm/solid/Box.js.map +1 -1
  577. package/lib/esm/solid/Cone.js.map +1 -1
  578. package/lib/esm/solid/LinearSweep.js.map +1 -1
  579. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  580. package/lib/esm/solid/RuledSweep.js.map +1 -1
  581. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  582. package/lib/esm/solid/Sphere.js.map +1 -1
  583. package/lib/esm/solid/SweepContour.js.map +1 -1
  584. package/lib/esm/solid/TorusPipe.js.map +1 -1
  585. package/lib/esm/topology/ChainMerge.js.map +1 -1
  586. package/lib/esm/topology/Graph.js.map +1 -1
  587. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  588. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  589. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  590. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  591. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  592. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  593. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  594. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  595. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  596. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  597. package/lib/esm/topology/MaskManager.js.map +1 -1
  598. package/lib/esm/topology/Merging.d.ts +15 -7
  599. package/lib/esm/topology/Merging.d.ts.map +1 -1
  600. package/lib/esm/topology/Merging.js +15 -10
  601. package/lib/esm/topology/Merging.js.map +1 -1
  602. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  603. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  604. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  605. package/lib/esm/topology/Triangulation.js.map +1 -1
  606. package/lib/esm/topology/Voronoi.js.map +1 -1
  607. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  608. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"PolishCubicSpiralEvaluator.js","sourceRoot":"","sources":["../../../../src/curve/spiral/PolishCubicSpiralEvaluator.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Curve\n */\nimport { Geometry } from \"../../Geometry\";\nimport { SimpleNewton } from \"../../numerics/Newton\";\nimport { CubicEvaluator } from \"./CubicEvaluator\";\n/**\n * Polish Cubic.\n * * Construction takes nominal length and end radius.\n * curve is is y= m*x^3 with\n * * x any point on the x axis\n * * m is (1/6RL)\n * * Lx = x length is along the axis, determined by inversion of a distance series at nominal length\n * *\n * @param localToWorld\n * @param nominalL1\n * @param nominalR1\n * @param activeInterval\n * @internal\n */\nexport class PolishCubicEvaluator extends CubicEvaluator {\n public nominalLength1: number;\n public nominalRadius1: number;\n\n /** Constructor is private. Caller responsible for cubicM validity. */\n private constructor(length1: number, radius1: number, axisLength: number, cubicM: number) {\n super(axisLength, cubicM);\n this.nominalLength1 = length1;\n this.nominalRadius1 = radius1;\n }\n\n /** Compute the czech cubic constant. */\n public static computeCubicM(length1: number, radius1: number): number {\n return 1.0 / (6.0 * length1 * radius1);\n }\n\n public static create(length1: number, radius1: number): PolishCubicEvaluator | undefined {\n const m = this.computeCubicM(length1, radius1);\n if (m === undefined)\n return undefined;\n const xMax = PolishCubicEvaluator.approximateDistanceAlongToX(length1, radius1, length1);\n if (xMax === undefined)\n return undefined;\n return new PolishCubicEvaluator(length1, radius1, xMax, m);\n }\n\n public override scaleInPlace(scaleFactor: number) {\n this.nominalLength1 *= scaleFactor;\n this.nominalRadius1 *= scaleFactor;\n super.scaleInPlace(scaleFactor);\n }\n /** return a deep copy of the evaluator */\n public clone(): PolishCubicEvaluator { return new PolishCubicEvaluator(this.nominalLength1, this.nominalRadius1, this.axisLength, this.cubicM); }\n /** Member by member matchup ... */\n public isAlmostEqual(other: any): boolean {\n if (other instanceof PolishCubicEvaluator) {\n return Geometry.isSameCoordinate(this.nominalLength1, other.nominalLength1)\n && Geometry.isSameCoordinate(this.nominalRadius1, other.nominalRadius1);\n }\n return false;\n }\n\n /** Compute the coefficient of x^4 in the x-to-distance series expansion */\n public static computeX4SeriesCoefficient(length1: number, radius1: number): number {\n return 1.0 / (4.0 * length1 * length1 * radius1 * radius1);\n }\n /**\n * Evaluate a series approximation of distance along the true curve.\n * @param x distance along x axis\n * @param radius1 nominal end radius\n * @param length1 nominal length along curve\n * @returns\n */\n public static xToApproximateDistance(x: number, radius1: number, length1: number): number {\n // C31 * ( 1 + 1 / 10 * E31 - 1 / 72 * E31^2 + 1 / 208 * E31^3 - 5 / 2176 * E31^4 )\n const a4 = this.computeX4SeriesCoefficient(length1, radius1);\n const ax2 = a4 * x * x;\n const ax3 = ax2 * x;\n const ax4 = ax3 * x;\n const s0 = x * (1.0 + ax4 * (0.1 + ax4 * (-1.0 / 72.0 + ax4 * (1.0 / 208.0 - 5.0 * ax4 / 2176.0))));\n return s0;\n }\n\n /**\n * Evaluate the derivative of the x-to-distance series.\n * @param x distance along x axis\n * @param radius1 nominal end radius\n * @param length1 nominal length along curve\n * @returns\n */\n public static xToApproximateDistanceDerivative(x: number, radius1: number, length1: number): number {\n // C31 * ( 1 + 1 / 10 * E31 - 1 / 72 * E31^2 + 1 / 208 * E31^3 - 5 / 2176 * E31^4 )\n const a4 = this.computeX4SeriesCoefficient(length1, radius1);\n const ax2 = a4 * x * x;\n const ax3 = ax2 * x;\n const ax4 = ax3 * x;\n // derivative notes ..\n // take away leading x -- this reduces each power by 1\n // multiply each coefficient by its original power:\n // 0.1==>0.5\n // 1/72==> 9/72 = 1/8\n // 1/208==>13/208=1/16\n // 1/2176==>17/2176= 1/128\n const ds = (1.0 + ax4 * (0.5 + ax4 * (-1.0 / 8.0 + ax4 * (1.0 / 16.0 - 5.0 * ax4 / 128.0))));\n return ds;\n }\n\n /** Invert the xToApproximateDistance function. */\n public static approximateDistanceAlongToX(s: number, radius1: number, length1: number): number | undefined {\n const root = SimpleNewton.runNewton1D(s,\n (x: number) => (this.xToApproximateDistance(x, radius1, length1) - s),\n (x: number) => this.xToApproximateDistanceDerivative(x, radius1, length1));\n return root;\n }\n}\n"]}
1
+ {"version":3,"file":"PolishCubicSpiralEvaluator.js","sourceRoot":"","sources":["../../../../src/curve/spiral/PolishCubicSpiralEvaluator.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Curve\r\n */\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { SimpleNewton } from \"../../numerics/Newton\";\r\nimport { CubicEvaluator } from \"./CubicEvaluator\";\r\n\r\n/**\r\n * Polish Cubic.\r\n * * Construction takes nominal length and end radius.\r\n * curve is y = m*x^3 with\r\n * * x any point on the x axis.\r\n * * m is (1/6RL).\r\n * * Lx = x length is along the axis, determined by inversion of a distance series at nominal length.\r\n * @internal\r\n */\r\nexport class PolishCubicEvaluator extends CubicEvaluator {\r\n public nominalLength1: number;\r\n public nominalRadius1: number;\r\n /** Constructor is private. Caller responsible for cubicM validity. */\r\n private constructor(length1: number, radius1: number, axisLength: number, cubicM: number) {\r\n super(axisLength, cubicM);\r\n this.nominalLength1 = length1;\r\n this.nominalRadius1 = radius1;\r\n }\r\n /** Compute the czech cubic constant. */\r\n public static computeCubicM(length1: number, radius1: number): number {\r\n return 1.0 / (6.0 * length1 * radius1);\r\n }\r\n public static create(length1: number, radius1: number): PolishCubicEvaluator | undefined {\r\n const m = this.computeCubicM(length1, radius1);\r\n if (m === undefined)\r\n return undefined;\r\n const xMax = PolishCubicEvaluator.approximateDistanceAlongToX(length1, radius1, length1);\r\n if (xMax === undefined)\r\n return undefined;\r\n return new PolishCubicEvaluator(length1, radius1, xMax, m);\r\n }\r\n public override scaleInPlace(scaleFactor: number) {\r\n this.nominalLength1 *= scaleFactor;\r\n this.nominalRadius1 *= scaleFactor;\r\n super.scaleInPlace(scaleFactor);\r\n }\r\n /** Return a deep copy of the evaluator. */\r\n public clone(): PolishCubicEvaluator {\r\n return new PolishCubicEvaluator(this.nominalLength1, this.nominalRadius1, this.axisLength, this.cubicM);\r\n }\r\n /** Member by member matchup. */\r\n public isAlmostEqual(other: any): boolean {\r\n if (other instanceof PolishCubicEvaluator) {\r\n return Geometry.isSameCoordinate(this.nominalLength1, other.nominalLength1)\r\n && Geometry.isSameCoordinate(this.nominalRadius1, other.nominalRadius1);\r\n }\r\n return false;\r\n }\r\n /** Compute the coefficient of x^4 in the x-to-distance series expansion. */\r\n public static computeX4SeriesCoefficient(length1: number, radius1: number): number {\r\n return 1.0 / (4.0 * length1 * length1 * radius1 * radius1);\r\n }\r\n /**\r\n * Evaluate a series approximation of distance along the true curve.\r\n * @param x distance along x axis.\r\n * @param radius1 nominal end radius.\r\n * @param length1 nominal length along curve.\r\n * @returns\r\n */\r\n public static xToApproximateDistance(x: number, radius1: number, length1: number): number {\r\n // C31 * ( 1 + 1 / 10 * E31 - 1 / 72 * E31^2 + 1 / 208 * E31^3 - 5 / 2176 * E31^4 )\r\n const a4 = this.computeX4SeriesCoefficient(length1, radius1);\r\n const ax2 = a4 * x * x;\r\n const ax3 = ax2 * x;\r\n const ax4 = ax3 * x;\r\n const s0 = x * (1.0 + ax4 * (0.1 + ax4 * (-1.0 / 72.0 + ax4 * (1.0 / 208.0 - 5.0 * ax4 / 2176.0))));\r\n return s0;\r\n }\r\n /**\r\n * Evaluate the derivative of the x-to-distance series.\r\n * @param x distance along x axis.\r\n * @param radius1 nominal end radius.\r\n * @param length1 nominal length along curve.\r\n * @returns\r\n */\r\n public static xToApproximateDistanceDerivative(x: number, radius1: number, length1: number): number {\r\n // C31 * ( 1 + 1 / 10 * E31 - 1 / 72 * E31^2 + 1 / 208 * E31^3 - 5 / 2176 * E31^4 )\r\n const a4 = this.computeX4SeriesCoefficient(length1, radius1);\r\n const ax2 = a4 * x * x;\r\n const ax3 = ax2 * x;\r\n const ax4 = ax3 * x;\r\n // derivative notes:\r\n // take away leading x -- this reduces each power by 1\r\n // multiply each coefficient by its original power:\r\n // 0.1 ==> 0.5\r\n // 1/72 ==> 9/72 = 1/8\r\n // 1/208 ==> 13/208 = 1/16\r\n // 1/2176 ==> 17/2176 = 1/128\r\n const ds = (1.0 + ax4 * (0.5 + ax4 * (-1.0 / 8.0 + ax4 * (1.0 / 16.0 - 5.0 * ax4 / 128.0))));\r\n return ds;\r\n }\r\n /** Invert the xToApproximateDistance function. */\r\n public static approximateDistanceAlongToX(s: number, radius1: number, length1: number): number | undefined {\r\n const root = SimpleNewton.runNewton1D(s,\r\n (x: number) => (this.xToApproximateDistance(x, radius1, length1) - s),\r\n (x: number) => this.xToApproximateDistanceDerivative(x, radius1, length1));\r\n return root;\r\n }\r\n}\r\n"]}
@@ -1,53 +1,67 @@
1
1
  import { Angle } from "../../geometry3d/Angle";
2
- /** A true transition spiral is a curve defined by its curvature, with the curvature function symmetric about midpoint.
2
+ /**
3
+ * A true transition spiral is a curve defined by its curvature, with the curvature function symmetric about midpoint.
3
4
  * * The symmetry condition creates a relationship among the following 4 quantities:
4
- * ** curvature0 = curvature (i.e. 1/radius) at start
5
- * ** curvature1 = curvature (i.e. 1/radius) at end
6
- * ** sweepRadians = signed turning angle from start to end
7
- * ** arcLength = length of curve
8
- * * The relationship is the equation
5
+ * ** curvature0 = curvature (i.e. 1/radius) at start.
6
+ * ** curvature1 = curvature (i.e. 1/radius) at end.
7
+ * ** sweepRadians = signed turning angle from start to end.
8
+ * ** arcLength = length of curve.
9
+ * * The relationship is the equation:
9
10
  * ** `sweepRadians = arcLength * average Curvature = arcLength * 0.5 * (curvature0 + curvature1)`
10
- * * That is, regardless of any curvature properties other than symmetry, specifying any 3 of the quantities fully determines the remaining one.
11
+ * * That is, regardless of any curvature properties other than symmetry, specifying any 3 of the quantities fully
12
+ * determines the remaining one.
11
13
  * @public
12
14
  */
13
15
  export declare class TransitionConditionalProperties {
14
- /** radius (or 0 at start) */
16
+ /**
17
+ * Radius at start (radius of the osculating circle at the spiral segment's start).
18
+ * radius0 === 0 means straight line at start.
19
+ */
15
20
  radius0: number | undefined;
16
- /** radius (or 0) at end */
21
+ /**
22
+ * Radius at end (radius of the osculating circle at the spiral segment's end).
23
+ * radius1 === 0 means straight line at end.
24
+ */
17
25
  radius1: number | undefined;
18
- /** bearing at start, measured from x towards y */
26
+ /**
27
+ * Bearing at start (the signed angle from global x-axis to the start tangent of the spiral).
28
+ * * If the direction from x-axis to start tangent is CCW, the start bearing is positive.
29
+ */
19
30
  bearing0: Angle | undefined;
20
- /** bearing at end, measured from x towards y */
31
+ /**
32
+ * Bearing at end (the signed angle from global x-axis to the end tangent of the spiral).
33
+ * * If the direction from x-axis to end tangent is CCW, the end bearing is positive.
34
+ */
21
35
  bearing1: Angle | undefined;
22
- /** curve length */
36
+ /** Curve length. */
23
37
  curveLength: number | undefined;
24
38
  /**
25
- * capture numeric or undefined values
26
- * @param radius0 start radius or undefined
27
- * @param radius1 end radius or undefined
28
- * @param bearing0 start bearing or undefined
29
- * @param bearing1 end bearing or undefined
30
- * @param arcLength arc length or undefined
39
+ * Capture numeric or undefined values.
40
+ * @param radius0 start radius or undefined.
41
+ * @param radius1 end radius or undefined.
42
+ * @param bearing0 start bearing or undefined.
43
+ * @param bearing1 end bearing or undefined.
44
+ * @param arcLength arc length or undefined.
31
45
  */
32
46
  constructor(radius0: number | undefined, radius1: number | undefined, bearing0: Angle | undefined, bearing1: Angle | undefined, arcLength: number | undefined);
33
- /** return the number of defined values among the 5 properties. */
47
+ /** Return the number of defined values among the 5 properties. */
34
48
  numDefinedProperties(): number;
35
- /** clone with all properties (i.e. preserve undefined states) */
49
+ /** Clone with all 5 properties (i.e., preserve undefined states). */
36
50
  clone(): TransitionConditionalProperties;
37
- /** Return true if all components are defined and agree equationally. */
51
+ /** Return true if all 5 properties are defined and agree equationally. */
38
52
  getIsValidCompleteSet(): boolean;
39
- /** Examine which properties are defined and compute the (single) undefined.
40
- * @returns Return true if the input state had precisely one undefined member.
53
+ /**
54
+ * Examine which properties are defined and compute the (single) undefined.
55
+ * @returns true if the input state had precisely one undefined member.
41
56
  */
42
57
  tryResolveAnySingleUnknown(): boolean;
43
58
  private almostEqualCoordinate;
44
59
  private almostEqualBearing;
45
- /**
46
- * Test if this and other have matching numeric and undefined members.
47
- */
60
+ /** Test if `this` and `other` have matching numeric and undefined members. */
48
61
  isAlmostEqual(other?: TransitionConditionalProperties): boolean;
49
- /** Apply a NONZERO scale factor to all distances. */
62
+ /** Apply a NONZERO scale factor to all distances. If `a` is zero, do nothing. */
50
63
  applyScaleFactor(a: number): void;
64
+ /** Test if `a` and `b` have matching numeric and undefined members. */
51
65
  static areAlmostEqual(a: TransitionConditionalProperties | undefined, b: TransitionConditionalProperties | undefined): boolean;
52
66
  }
53
67
  //# sourceMappingURL=TransitionConditionalProperties.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionConditionalProperties.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionConditionalProperties.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAG/C;;;;;;;;;;GAUG;AACH,qBAAa,+BAA+B;IAC1C,6BAA6B;IACtB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,2BAA2B;IACpB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,kDAAkD;IAC3C,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC,gDAAgD;IACzC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC,mBAAmB;IACZ,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC;;;;;;;OAOG;gBAED,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,GAAG,SAAS;IAO/B,kEAAkE;IAC3D,oBAAoB;IAO3B,iEAAiE;IAC1D,KAAK,IAAI,+BAA+B;IAQ/C,wEAAwE;IACjE,qBAAqB;IAS5B;;OAEG;IACI,0BAA0B,IAAI,OAAO;IAkC5C,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IAEI,aAAa,CAAC,KAAK,CAAC,EAAE,+BAA+B;IAe5D,qDAAqD;IAC9C,gBAAgB,CAAC,CAAC,EAAE,MAAM;WAQnB,cAAc,CAAC,CAAC,EAAE,+BAA+B,GAAG,SAAS,EAAE,CAAC,EAAE,+BAA+B,GAAG,SAAS,GAAG,OAAO;CAKtI"}
1
+ {"version":3,"file":"TransitionConditionalProperties.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionConditionalProperties.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAG/C;;;;;;;;;;;;GAYG;AACH,qBAAa,+BAA+B;IAC1C;;;OAGG;IACI,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;OAGG;IACI,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;OAGG;IACI,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC;;;OAGG;IACI,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC,oBAAoB;IACb,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC;;;;;;;OAOG;gBAED,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,GAAG,SAAS;IAQ/B,kEAAkE;IAC3D,oBAAoB;IAO3B,qEAAqE;IAC9D,KAAK,IAAI,+BAA+B;IAS/C,0EAA0E;IACnE,qBAAqB,IAAI,OAAO;IAUvC;;;OAGG;IACI,0BAA0B,IAAI,OAAO;IAsC5C,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,kBAAkB;IAO1B,8EAA8E;IACvE,aAAa,CAAC,KAAK,CAAC,EAAE,+BAA+B,GAAG,OAAO;IAetE,iFAAiF;IAC1E,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAUxC,uEAAuE;WACzD,cAAc,CAC1B,CAAC,EAAE,+BAA+B,GAAG,SAAS,EAAE,CAAC,EAAE,+BAA+B,GAAG,SAAS,GAC7F,OAAO;CAKX"}
@@ -8,36 +8,49 @@
8
8
  import { Geometry } from "../../Geometry";
9
9
  import { Angle } from "../../geometry3d/Angle";
10
10
  import { TransitionSpiral3d } from "./TransitionSpiral3d";
11
- // import {} from "./";
12
- /** A true transition spiral is a curve defined by its curvature, with the curvature function symmetric about midpoint.
11
+ /**
12
+ * A true transition spiral is a curve defined by its curvature, with the curvature function symmetric about midpoint.
13
13
  * * The symmetry condition creates a relationship among the following 4 quantities:
14
- * ** curvature0 = curvature (i.e. 1/radius) at start
15
- * ** curvature1 = curvature (i.e. 1/radius) at end
16
- * ** sweepRadians = signed turning angle from start to end
17
- * ** arcLength = length of curve
18
- * * The relationship is the equation
14
+ * ** curvature0 = curvature (i.e. 1/radius) at start.
15
+ * ** curvature1 = curvature (i.e. 1/radius) at end.
16
+ * ** sweepRadians = signed turning angle from start to end.
17
+ * ** arcLength = length of curve.
18
+ * * The relationship is the equation:
19
19
  * ** `sweepRadians = arcLength * average Curvature = arcLength * 0.5 * (curvature0 + curvature1)`
20
- * * That is, regardless of any curvature properties other than symmetry, specifying any 3 of the quantities fully determines the remaining one.
20
+ * * That is, regardless of any curvature properties other than symmetry, specifying any 3 of the quantities fully
21
+ * determines the remaining one.
21
22
  * @public
22
23
  */
23
24
  export class TransitionConditionalProperties {
24
- /** radius (or 0 at start) */
25
+ /**
26
+ * Radius at start (radius of the osculating circle at the spiral segment's start).
27
+ * radius0 === 0 means straight line at start.
28
+ */
25
29
  radius0;
26
- /** radius (or 0) at end */
30
+ /**
31
+ * Radius at end (radius of the osculating circle at the spiral segment's end).
32
+ * radius1 === 0 means straight line at end.
33
+ */
27
34
  radius1;
28
- /** bearing at start, measured from x towards y */
35
+ /**
36
+ * Bearing at start (the signed angle from global x-axis to the start tangent of the spiral).
37
+ * * If the direction from x-axis to start tangent is CCW, the start bearing is positive.
38
+ */
29
39
  bearing0;
30
- /** bearing at end, measured from x towards y */
40
+ /**
41
+ * Bearing at end (the signed angle from global x-axis to the end tangent of the spiral).
42
+ * * If the direction from x-axis to end tangent is CCW, the end bearing is positive.
43
+ */
31
44
  bearing1;
32
- /** curve length */
45
+ /** Curve length. */
33
46
  curveLength;
34
47
  /**
35
- * capture numeric or undefined values
36
- * @param radius0 start radius or undefined
37
- * @param radius1 end radius or undefined
38
- * @param bearing0 start bearing or undefined
39
- * @param bearing1 end bearing or undefined
40
- * @param arcLength arc length or undefined
48
+ * Capture numeric or undefined values.
49
+ * @param radius0 start radius or undefined.
50
+ * @param radius1 end radius or undefined.
51
+ * @param bearing0 start bearing or undefined.
52
+ * @param bearing1 end bearing or undefined.
53
+ * @param arcLength arc length or undefined.
41
54
  */
42
55
  constructor(radius0, radius1, bearing0, bearing1, arcLength) {
43
56
  this.radius0 = radius0;
@@ -46,7 +59,7 @@ export class TransitionConditionalProperties {
46
59
  this.bearing1 = bearing1;
47
60
  this.curveLength = arcLength;
48
61
  }
49
- /** return the number of defined values among the 5 properties. */
62
+ /** Return the number of defined values among the 5 properties. */
50
63
  numDefinedProperties() {
51
64
  return Geometry.defined01(this.radius0)
52
65
  + Geometry.defined01(this.radius1)
@@ -54,21 +67,22 @@ export class TransitionConditionalProperties {
54
67
  + Geometry.defined01(this.bearing1)
55
68
  + Geometry.defined01(this.curveLength);
56
69
  }
57
- /** clone with all properties (i.e. preserve undefined states) */
70
+ /** Clone with all 5 properties (i.e., preserve undefined states). */
58
71
  clone() {
59
72
  return new TransitionConditionalProperties(this.radius0, this.radius1, this.bearing0 === undefined ? undefined : this.bearing0.clone(), this.bearing1 === undefined ? undefined : this.bearing1.clone(), this.curveLength);
60
73
  }
61
- /** Return true if all components are defined and agree equationally. */
74
+ /** Return true if all 5 properties are defined and agree equationally. */
62
75
  getIsValidCompleteSet() {
63
76
  if (this.curveLength !== undefined && this.bearing0 !== undefined && this.bearing1 !== undefined
64
77
  && this.radius0 !== undefined && this.radius1 !== undefined) {
65
- const length1 = TransitionSpiral3d.radiusRadiusSweepRadiansToArcLength(this.radius0, this.radius1, this.bearing1.radians - this.bearing0.radians);
66
- return Geometry.isSameCoordinate(this.curveLength, length1);
78
+ const arcLength = TransitionSpiral3d.radiusRadiusSweepRadiansToArcLength(this.radius0, this.radius1, this.bearing1.radians - this.bearing0.radians);
79
+ return Geometry.isSameCoordinate(this.curveLength, arcLength);
67
80
  }
68
81
  return false;
69
82
  }
70
- /** Examine which properties are defined and compute the (single) undefined.
71
- * @returns Return true if the input state had precisely one undefined member.
83
+ /**
84
+ * Examine which properties are defined and compute the (single) undefined.
85
+ * @returns true if the input state had precisely one undefined member.
72
86
  */
73
87
  tryResolveAnySingleUnknown() {
74
88
  if (this.getIsValidCompleteSet())
@@ -89,15 +103,17 @@ export class TransitionConditionalProperties {
89
103
  }
90
104
  return false;
91
105
  }
92
- // at least one bearing is undefined ...
106
+ // at least one bearing is undefined
93
107
  if (this.curveLength === undefined || this.radius0 === undefined || this.radius1 === undefined)
94
108
  return false;
95
109
  if (this.bearing0) { // bearing 1 is undefined
96
- this.bearing1 = Angle.createRadians(this.bearing0.radians + TransitionSpiral3d.radiusRadiusLengthToSweepRadians(this.radius0, this.radius1, this.curveLength));
110
+ this.bearing1 = Angle.createRadians(this.bearing0.radians +
111
+ TransitionSpiral3d.radiusRadiusLengthToSweepRadians(this.radius0, this.radius1, this.curveLength));
97
112
  return true;
98
113
  }
99
114
  if (this.bearing1) { // bearing 0 is undefined
100
- this.bearing0 = Angle.createRadians(this.bearing1.radians - TransitionSpiral3d.radiusRadiusLengthToSweepRadians(this.radius0, this.radius1, this.curveLength));
115
+ this.bearing0 = Angle.createRadians(this.bearing1.radians -
116
+ TransitionSpiral3d.radiusRadiusLengthToSweepRadians(this.radius0, this.radius1, this.curveLength));
101
117
  return true;
102
118
  }
103
119
  return false;
@@ -116,9 +132,7 @@ export class TransitionConditionalProperties {
116
132
  return a.isAlmostEqualNoPeriodShift(b);
117
133
  return false;
118
134
  }
119
- /**
120
- * Test if this and other have matching numeric and undefined members.
121
- */
135
+ /** Test if `this` and `other` have matching numeric and undefined members. */
122
136
  isAlmostEqual(other) {
123
137
  if (!other)
124
138
  return false;
@@ -134,8 +148,10 @@ export class TransitionConditionalProperties {
134
148
  return false;
135
149
  return true;
136
150
  }
137
- /** Apply a NONZERO scale factor to all distances. */
151
+ /** Apply a NONZERO scale factor to all distances. If `a` is zero, do nothing. */
138
152
  applyScaleFactor(a) {
153
+ if (a === 0)
154
+ return;
139
155
  if (this.radius0 !== undefined)
140
156
  this.radius0 *= a;
141
157
  if (this.radius1 !== undefined)
@@ -143,6 +159,7 @@ export class TransitionConditionalProperties {
143
159
  if (this.curveLength !== undefined)
144
160
  this.curveLength *= a;
145
161
  }
162
+ /** Test if `a` and `b` have matching numeric and undefined members. */
146
163
  static areAlmostEqual(a, b) {
147
164
  if (a === undefined)
148
165
  return b === undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionConditionalProperties.js","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionConditionalProperties.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Curve\n */\nimport { Geometry } from \"../../Geometry\";\nimport { Angle } from \"../../geometry3d/Angle\";\nimport { TransitionSpiral3d } from \"./TransitionSpiral3d\";\n// import {} from \"./\";\n/** A true transition spiral is a curve defined by its curvature, with the curvature function symmetric about midpoint.\n * * The symmetry condition creates a relationship among the following 4 quantities:\n * ** curvature0 = curvature (i.e. 1/radius) at start\n * ** curvature1 = curvature (i.e. 1/radius) at end\n * ** sweepRadians = signed turning angle from start to end\n * ** arcLength = length of curve\n * * The relationship is the equation\n * ** `sweepRadians = arcLength * average Curvature = arcLength * 0.5 * (curvature0 + curvature1)`\n * * That is, regardless of any curvature properties other than symmetry, specifying any 3 of the quantities fully determines the remaining one.\n * @public\n */\nexport class TransitionConditionalProperties {\n /** radius (or 0 at start) */\n public radius0: number | undefined;\n /** radius (or 0) at end */\n public radius1: number | undefined;\n /** bearing at start, measured from x towards y */\n public bearing0: Angle | undefined;\n /** bearing at end, measured from x towards y */\n public bearing1: Angle | undefined;\n /** curve length */\n public curveLength: number | undefined;\n /**\n * capture numeric or undefined values\n * @param radius0 start radius or undefined\n * @param radius1 end radius or undefined\n * @param bearing0 start bearing or undefined\n * @param bearing1 end bearing or undefined\n * @param arcLength arc length or undefined\n */\n public constructor(\n radius0: number | undefined,\n radius1: number | undefined,\n bearing0: Angle | undefined,\n bearing1: Angle | undefined,\n arcLength: number | undefined) {\n this.radius0 = radius0;\n this.radius1 = radius1;\n this.bearing0 = bearing0;\n this.bearing1 = bearing1;\n this.curveLength = arcLength;\n }\n /** return the number of defined values among the 5 properties. */\n public numDefinedProperties() {\n return Geometry.defined01(this.radius0)\n + Geometry.defined01(this.radius1)\n + Geometry.defined01(this.bearing0)\n + Geometry.defined01(this.bearing1)\n + Geometry.defined01(this.curveLength);\n }\n /** clone with all properties (i.e. preserve undefined states) */\n public clone(): TransitionConditionalProperties {\n return new TransitionConditionalProperties(\n this.radius0,\n this.radius1,\n this.bearing0 === undefined ? undefined : this.bearing0.clone(),\n this.bearing1 === undefined ? undefined : this.bearing1.clone(),\n this.curveLength);\n }\n /** Return true if all components are defined and agree equationally. */\n public getIsValidCompleteSet() {\n if (this.curveLength !== undefined && this.bearing0 !== undefined && this.bearing1 !== undefined\n && this.radius0 !== undefined && this.radius1 !== undefined) {\n const length1 = TransitionSpiral3d.radiusRadiusSweepRadiansToArcLength(this.radius0, this.radius1,\n this.bearing1.radians - this.bearing0.radians);\n return Geometry.isSameCoordinate(this.curveLength, length1);\n }\n return false;\n }\n /** Examine which properties are defined and compute the (single) undefined.\n * @returns Return true if the input state had precisely one undefined member.\n */\n public tryResolveAnySingleUnknown(): boolean {\n if (this.getIsValidCompleteSet())\n return true;\n if (this.bearing0 && this.bearing1) {\n const sweepRadians = this.bearing1.radians - this.bearing0.radians;\n if (this.curveLength === undefined && this.radius0 !== undefined && this.radius1 !== undefined) {\n this.curveLength = TransitionSpiral3d.radiusRadiusSweepRadiansToArcLength(this.radius0, this.radius1, sweepRadians);\n return true;\n }\n if (this.curveLength !== undefined && this.radius0 === undefined && this.radius1 !== undefined) {\n this.radius0 = TransitionSpiral3d.radius1LengthSweepRadiansToRadius0(this.radius1, this.curveLength, sweepRadians);\n return true;\n }\n if (this.curveLength !== undefined && this.radius0 !== undefined && this.radius1 === undefined) {\n this.radius1 = TransitionSpiral3d.radius0LengthSweepRadiansToRadius1(this.radius0, this.curveLength, sweepRadians);\n return true;\n }\n return false;\n }\n // at least one bearing is undefined ...\n if (this.curveLength === undefined || this.radius0 === undefined || this.radius1 === undefined)\n return false;\n\n if (this.bearing0) { // bearing 1 is undefined\n this.bearing1 = Angle.createRadians(this.bearing0.radians + TransitionSpiral3d.radiusRadiusLengthToSweepRadians(this.radius0, this.radius1, this.curveLength));\n return true;\n }\n\n if (this.bearing1) { // bearing 0 is undefined\n this.bearing0 = Angle.createRadians(this.bearing1.radians - TransitionSpiral3d.radiusRadiusLengthToSweepRadians(this.radius0, this.radius1, this.curveLength));\n return true;\n }\n return false;\n }\n private almostEqualCoordinate(a: number | undefined, b: number | undefined): boolean {\n if (a === undefined && b === undefined)\n return true;\n if (a !== undefined && b !== undefined)\n return Geometry.isSameCoordinate(a, b);\n return false;\n }\n private almostEqualBearing(a: Angle | undefined, b: Angle | undefined): boolean {\n if (a === undefined && b === undefined)\n return true;\n if (a !== undefined && b !== undefined)\n return a.isAlmostEqualNoPeriodShift(b);\n return false;\n }\n\n /**\n * Test if this and other have matching numeric and undefined members.\n */\n\n public isAlmostEqual(other?: TransitionConditionalProperties) {\n if (!other)\n return false;\n if (!this.almostEqualCoordinate(this.radius0, other.radius0))\n return false;\n if (!this.almostEqualCoordinate(this.radius1, other.radius1))\n return false;\n if (!this.almostEqualBearing(this.bearing0, other.bearing0))\n return false;\n if (!this.almostEqualBearing(this.bearing1, other.bearing1))\n return false;\n if (!this.almostEqualCoordinate(this.curveLength, other.curveLength))\n return false;\n return true;\n }\n /** Apply a NONZERO scale factor to all distances. */\n public applyScaleFactor(a: number) {\n if (this.radius0 !== undefined)\n this.radius0 *= a;\n if (this.radius1 !== undefined)\n this.radius1 *= a;\n if (this.curveLength !== undefined)\n this.curveLength *= a;\n }\n public static areAlmostEqual(a: TransitionConditionalProperties | undefined, b: TransitionConditionalProperties | undefined): boolean {\n if (a === undefined)\n return b === undefined;\n return a.isAlmostEqual(b);\n }\n}\n"]}
1
+ {"version":3,"file":"TransitionConditionalProperties.js","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionConditionalProperties.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Curve\r\n */\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { Angle } from \"../../geometry3d/Angle\";\r\nimport { TransitionSpiral3d } from \"./TransitionSpiral3d\";\r\n\r\n/**\r\n * A true transition spiral is a curve defined by its curvature, with the curvature function symmetric about midpoint.\r\n * * The symmetry condition creates a relationship among the following 4 quantities:\r\n * ** curvature0 = curvature (i.e. 1/radius) at start.\r\n * ** curvature1 = curvature (i.e. 1/radius) at end.\r\n * ** sweepRadians = signed turning angle from start to end.\r\n * ** arcLength = length of curve.\r\n * * The relationship is the equation:\r\n * ** `sweepRadians = arcLength * average Curvature = arcLength * 0.5 * (curvature0 + curvature1)`\r\n * * That is, regardless of any curvature properties other than symmetry, specifying any 3 of the quantities fully\r\n * determines the remaining one.\r\n * @public\r\n */\r\nexport class TransitionConditionalProperties {\r\n /**\r\n * Radius at start (radius of the osculating circle at the spiral segment's start).\r\n * radius0 === 0 means straight line at start.\r\n */\r\n public radius0: number | undefined;\r\n /**\r\n * Radius at end (radius of the osculating circle at the spiral segment's end).\r\n * radius1 === 0 means straight line at end.\r\n */\r\n public radius1: number | undefined;\r\n /**\r\n * Bearing at start (the signed angle from global x-axis to the start tangent of the spiral).\r\n * * If the direction from x-axis to start tangent is CCW, the start bearing is positive.\r\n */\r\n public bearing0: Angle | undefined;\r\n /**\r\n * Bearing at end (the signed angle from global x-axis to the end tangent of the spiral).\r\n * * If the direction from x-axis to end tangent is CCW, the end bearing is positive.\r\n */\r\n public bearing1: Angle | undefined;\r\n /** Curve length. */\r\n public curveLength: number | undefined;\r\n /**\r\n * Capture numeric or undefined values.\r\n * @param radius0 start radius or undefined.\r\n * @param radius1 end radius or undefined.\r\n * @param bearing0 start bearing or undefined.\r\n * @param bearing1 end bearing or undefined.\r\n * @param arcLength arc length or undefined.\r\n */\r\n public constructor(\r\n radius0: number | undefined,\r\n radius1: number | undefined,\r\n bearing0: Angle | undefined,\r\n bearing1: Angle | undefined,\r\n arcLength: number | undefined,\r\n ) {\r\n this.radius0 = radius0;\r\n this.radius1 = radius1;\r\n this.bearing0 = bearing0;\r\n this.bearing1 = bearing1;\r\n this.curveLength = arcLength;\r\n }\r\n /** Return the number of defined values among the 5 properties. */\r\n public numDefinedProperties() {\r\n return Geometry.defined01(this.radius0)\r\n + Geometry.defined01(this.radius1)\r\n + Geometry.defined01(this.bearing0)\r\n + Geometry.defined01(this.bearing1)\r\n + Geometry.defined01(this.curveLength);\r\n }\r\n /** Clone with all 5 properties (i.e., preserve undefined states). */\r\n public clone(): TransitionConditionalProperties {\r\n return new TransitionConditionalProperties(\r\n this.radius0,\r\n this.radius1,\r\n this.bearing0 === undefined ? undefined : this.bearing0.clone(),\r\n this.bearing1 === undefined ? undefined : this.bearing1.clone(),\r\n this.curveLength,\r\n );\r\n }\r\n /** Return true if all 5 properties are defined and agree equationally. */\r\n public getIsValidCompleteSet(): boolean {\r\n if (this.curveLength !== undefined && this.bearing0 !== undefined && this.bearing1 !== undefined\r\n && this.radius0 !== undefined && this.radius1 !== undefined) {\r\n const arcLength = TransitionSpiral3d.radiusRadiusSweepRadiansToArcLength(\r\n this.radius0, this.radius1, this.bearing1.radians - this.bearing0.radians,\r\n );\r\n return Geometry.isSameCoordinate(this.curveLength, arcLength);\r\n }\r\n return false;\r\n }\r\n /**\r\n * Examine which properties are defined and compute the (single) undefined.\r\n * @returns true if the input state had precisely one undefined member.\r\n */\r\n public tryResolveAnySingleUnknown(): boolean {\r\n if (this.getIsValidCompleteSet())\r\n return true;\r\n if (this.bearing0 && this.bearing1) {\r\n const sweepRadians = this.bearing1.radians - this.bearing0.radians;\r\n if (this.curveLength === undefined && this.radius0 !== undefined && this.radius1 !== undefined) {\r\n this.curveLength = TransitionSpiral3d.radiusRadiusSweepRadiansToArcLength(this.radius0, this.radius1, sweepRadians);\r\n return true;\r\n }\r\n if (this.curveLength !== undefined && this.radius0 === undefined && this.radius1 !== undefined) {\r\n this.radius0 = TransitionSpiral3d.radius1LengthSweepRadiansToRadius0(this.radius1, this.curveLength, sweepRadians);\r\n return true;\r\n }\r\n if (this.curveLength !== undefined && this.radius0 !== undefined && this.radius1 === undefined) {\r\n this.radius1 = TransitionSpiral3d.radius0LengthSweepRadiansToRadius1(this.radius0, this.curveLength, sweepRadians);\r\n return true;\r\n }\r\n return false;\r\n }\r\n // at least one bearing is undefined\r\n if (this.curveLength === undefined || this.radius0 === undefined || this.radius1 === undefined)\r\n return false;\r\n if (this.bearing0) { // bearing 1 is undefined\r\n this.bearing1 = Angle.createRadians(\r\n this.bearing0.radians +\r\n TransitionSpiral3d.radiusRadiusLengthToSweepRadians(this.radius0, this.radius1, this.curveLength),\r\n );\r\n return true;\r\n }\r\n if (this.bearing1) { // bearing 0 is undefined\r\n this.bearing0 = Angle.createRadians(\r\n this.bearing1.radians -\r\n TransitionSpiral3d.radiusRadiusLengthToSweepRadians(this.radius0, this.radius1, this.curveLength),\r\n );\r\n return true;\r\n }\r\n return false;\r\n }\r\n private almostEqualCoordinate(a: number | undefined, b: number | undefined): boolean {\r\n if (a === undefined && b === undefined)\r\n return true;\r\n if (a !== undefined && b !== undefined)\r\n return Geometry.isSameCoordinate(a, b);\r\n return false;\r\n }\r\n private almostEqualBearing(a: Angle | undefined, b: Angle | undefined): boolean {\r\n if (a === undefined && b === undefined)\r\n return true;\r\n if (a !== undefined && b !== undefined)\r\n return a.isAlmostEqualNoPeriodShift(b);\r\n return false;\r\n }\r\n /** Test if `this` and `other` have matching numeric and undefined members. */\r\n public isAlmostEqual(other?: TransitionConditionalProperties): boolean {\r\n if (!other)\r\n return false;\r\n if (!this.almostEqualCoordinate(this.radius0, other.radius0))\r\n return false;\r\n if (!this.almostEqualCoordinate(this.radius1, other.radius1))\r\n return false;\r\n if (!this.almostEqualBearing(this.bearing0, other.bearing0))\r\n return false;\r\n if (!this.almostEqualBearing(this.bearing1, other.bearing1))\r\n return false;\r\n if (!this.almostEqualCoordinate(this.curveLength, other.curveLength))\r\n return false;\r\n return true;\r\n }\r\n /** Apply a NONZERO scale factor to all distances. If `a` is zero, do nothing. */\r\n public applyScaleFactor(a: number): void {\r\n if (a === 0)\r\n return;\r\n if (this.radius0 !== undefined)\r\n this.radius0 *= a;\r\n if (this.radius1 !== undefined)\r\n this.radius1 *= a;\r\n if (this.curveLength !== undefined)\r\n this.curveLength *= a;\r\n }\r\n /** Test if `a` and `b` have matching numeric and undefined members. */\r\n public static areAlmostEqual(\r\n a: TransitionConditionalProperties | undefined, b: TransitionConditionalProperties | undefined,\r\n ): boolean {\r\n if (a === undefined)\r\n return b === undefined;\r\n return a.isAlmostEqual(b);\r\n }\r\n}\r\n"]}
@@ -13,12 +13,13 @@ import { TransitionConditionalProperties } from "./TransitionConditionalProperti
13
13
  import type { Vector3d } from "../../geometry3d/Point3dVector3d";
14
14
  import type { Ray3d } from "../../geometry3d/Ray3d";
15
15
  /**
16
- * This is the set of valid type names for "integrated" spirals
16
+ * This is the set of valid type names for "integrated" spirals.
17
17
  * * Behavior is expressed by a `NormalizedTransition` snap function.
18
- * * The snap function varies smoothly from f(0)=0 to f(1)=1
18
+ * * The snap function varies smoothly from f(0) = 0 to f(1) = 1.
19
19
  * * The various snap functions are:
20
20
  * * clothoid: linear
21
- * * biquadratic: 2 quadratics pieced together, joining with 1st derivative continuity at f(0.) = 0.5, with zero slope f'(0)=0 and f'(1)= 0
21
+ * * biquadratic: 2 quadratics pieced together, joining with 1st derivative continuity at f(0.5) = 0.5, with zero
22
+ * slope f'(0) = 0 and f'(1) = 0
22
23
  * * bloss: A single cubic with zero slope at 0 and 1
23
24
  * * cosine: half of a cosine wave, centered around 0.5
24
25
  * * sine: full period of a sine wave added to the line f(u)=u
@@ -28,66 +29,71 @@ import type { Ray3d } from "../../geometry3d/Ray3d";
28
29
  export type IntegratedSpiralTypeName = "clothoid" | "bloss" | "biquadratic" | "cosine" | "sine";
29
30
  /**
30
31
  * This is the set of valid type names for "direct" spirals.
31
- * "Direct" spirals can evaluate fractionToPoint by direct equations, i.e. not requiring the numeric integrations in "Integrated" spiral types.
32
+ * "Direct" spirals can evaluate fractionToPoint by direct equations, i.e. not requiring the numeric integrations in
33
+ * "Integrated" spiral types.
32
34
  * @public
33
35
  */
34
36
  export type DirectSpiralTypeName = "JapaneseCubic" | "Arema" | "ChineseCubic" | "HalfCosine" | "AustralianRailCorp" | "WesternAustralian" | "Czech" | "MXCubicAlongArc" | "Polish" | "Italian";
35
37
  /**
36
38
  * TransitionSpiral3d is a base class for multiple variants of spirals.
37
39
  * * The menagerie of spiral types have 2 broad categories:
38
- * * IntegratedSpiral3d -- a spiral whose direct function for curvature versus distance must be integrated to determine x,y
39
- * * The IntegratedSpiral3d types are enumerated in `IntegratedSpiralTypes`
40
+ * * IntegratedSpiral3d -- a spiral whose direct function for curvature versus distance must be integrated to
41
+ * determine x,y.
42
+ * * The IntegratedSpiral3d types are enumerated in `IntegratedSpiralTypes`.
40
43
  * * DirectSpiral3d -- a spiral implemented with direct calculation of x,y from fractional position along the spiral.
41
- * * The direct spiral types are enumerated in the `DirectSpiralType`
42
- * * The method set for CurvePrimitive support includes a `handleTransitionSpiral(g: TransitionSpiral3d)` which receives all the spiral types.
44
+ * * The direct spiral types are enumerated in the `DirectSpiralType`.
45
+ * * The method set for CurvePrimitive support includes a `handleTransitionSpiral(g: TransitionSpiral3d)` which receives
46
+ * all the spiral types.
43
47
  * * The spiral class may impose expectations that its inflection is at the origin, with tangent along the x axis.
44
48
  * * This is generally necessary for direct spirals.
45
49
  * * This is not necessary for integrated spirals.
46
50
  * @public
47
51
  */
48
52
  export declare abstract class TransitionSpiral3d extends CurvePrimitive {
49
- /** string name of spiral type */
53
+ /** String name of spiral type. */
50
54
  protected _spiralType: string;
51
55
  /** Original defining properties. */
52
56
  protected _designProperties: TransitionConditionalProperties | undefined;
53
- /** Fractional interval for the "active" part of a containing spiral.
54
- * (The radius, angle, and length conditions define a complete spiral, and some portion of it is "active")
57
+ /** Placement transform. */
58
+ protected _localToWorld: Transform;
59
+ /**
60
+ * Fractional interval for the "active" part of a containing spiral.
61
+ * (the radius, angle, and length conditions define a complete spiral, and some portion of it is "active")
55
62
  */
56
63
  protected _activeFractionInterval: Segment1d;
57
64
  /** Return (reference to) the active portion of the reference spiral. */
58
65
  get activeFractionInterval(): Segment1d;
59
- /** strokes in the active portion */
66
+ /** Strokes in the active portion. */
60
67
  abstract get activeStrokes(): LineString3d;
61
- /** Placement transform */
62
- protected _localToWorld: Transform;
63
- /** (reference to) placement transform. */
68
+ /** (Reference to) placement transform. */
64
69
  get localToWorld(): Transform;
65
70
  protected constructor(spiralType: string | undefined, localToWorld: Transform, activeFractionInterval: Segment1d | undefined, designProperties: TransitionConditionalProperties | undefined);
66
71
  get spiralType(): string;
67
- /** Return 1/r with convention that if true zero is given as radius it represents infinite radius (0 curvature, straight line) */
72
+ /** Return 1/r with convention that exact zero input returns 0 (straight line, zero curvature, infinite radius). */
68
73
  static radiusToCurvature(radius: number): number;
69
- /** Return 1/k with convention that if near-zero is given as curvature, its infinite radius is returned as 0 */
74
+ /** Return 1/k with convention that near-zero input returns 0 (straight line, zero curvature, infinite radius). */
70
75
  static curvatureToRadius(curvature: number): number;
71
76
  /** Return a deep clone. */
72
77
  abstract clone(): TransitionSpiral3d;
73
- /** Recompute strokes */
78
+ /** Recompute strokes. */
74
79
  abstract refreshComputedProperties(): void;
75
80
  /** Return (if possible) a spiral which is a portion of this curve. */
76
81
  clonePartialCurve(fractionA: number, fractionB: number): TransitionSpiral3d;
77
- /** Clone with a transform applied */
82
+ /** Clone with a transform applied. */
78
83
  cloneTransformed(transform: Transform): TransitionSpiral3d;
79
84
  /** Return the average of the start and end curvatures. */
80
85
  static averageCurvature(radiusLimits: Segment1d): number;
81
86
  /**
82
- * Given two radii (or zeros for 0 curvature) return the average curvature
83
- * @param r0 start radius, or 0 for line
84
- * @param r1 end radius, or 0 for line
87
+ * Given two radii (or zeros for 0 curvature) return the average curvature.
88
+ * @param r0 start radius, or 0 for line.
89
+ * @param r1 end radius, or 0 for line.
85
90
  */
86
91
  static averageCurvatureR0R1(r0: number, r1: number): number;
87
92
  /**
88
- * Given two radii (or zeros for 0 curvature) return the average curvature
89
- * @param r0 start radius, or 0 for line
90
- * @param r1 end radius, or 0 for line
93
+ * Given two radii (or zeros for 0 curvature) return the curvature at the given fraction.
94
+ * @param r0 start radius, or 0 for line.
95
+ * @param fraction fractional position between the curvatures defined by r0 and r1.
96
+ * @param r1 end radius, or 0 for line.
91
97
  */
92
98
  static interpolateCurvatureR0R1(r0: number, fraction: number, r1: number): number;
93
99
  /** Return the arc length of a transition spiral with given sweep and radius pair. */
@@ -101,7 +107,8 @@ export declare abstract class TransitionSpiral3d extends CurvePrimitive {
101
107
  /** Return the original defining properties (if any) saved by the constructor. */
102
108
  get designProperties(): TransitionConditionalProperties | undefined;
103
109
  /**
104
- * * If transformA is rigid with uniform scale, apply the rigid part of transformA to the localToWorld transform and return the scale and rigid separation.
110
+ * * If transformA is rigid with uniform scale, apply the rigid part of transformA to the localToWorld transform and
111
+ * return the scale and rigid separation.
105
112
  * * If not rigid, do nothing and return undefined.
106
113
  * * Also apply the scale factor to the designProperties.
107
114
  * @param transformA
@@ -112,21 +119,25 @@ export declare abstract class TransitionSpiral3d extends CurvePrimitive {
112
119
  } | undefined;
113
120
  /**
114
121
  * Construct an offset of the instance curve as viewed in the xy-plane (ignoring z).
115
- * * No attempt is made to join the offsets of smaller constituent primitives. To construct a fully joined offset
116
- * for an aggregate instance (e.g., LineString3d, CurveChainWithDistanceIndex), use RegionOps.constructCurveXYOffset() instead.
117
- * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
122
+ * * No attempt is made to join the offsets of smaller constituent primitives. To construct a fully joined offset for an
123
+ * aggregate instance (e.g., LineString3d, CurveChainWithDistanceIndex), use RegionOps.constructCurveXYOffset() instead.
124
+ * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object.
118
125
  */
119
126
  constructOffsetXY(offsetDistanceOrOptions: number | OffsetOptions): BSplineCurve3d | undefined;
120
- /** extend the range by the strokes of the spiral */
127
+ /** Extend the range by the strokes of the spiral. */
121
128
  extendRange(rangeToExtend: Range3d, transform?: Transform): void;
122
- /** return the range of spiral between fractions of the activeStrokes.
123
- * * Use activeStrokes point count times interval factor for initial evaluation count, but do at least 5
129
+ /**
130
+ * Return the range of spiral between fractions of the activeStrokes.
131
+ * * Use activeStrokes point count times interval factor for initial evaluation count, but do at least 5.
124
132
  */
125
133
  rangeBetweenFractions(fractionA: number, fractionB: number, transform?: Transform): Range3d;
126
- /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
134
+ /**
135
+ * Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of
136
+ * projection.
127
137
  * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
128
138
  * @param lowHigh optional receiver for output
129
- * @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.
139
+ * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the
140
+ * end of the ray.
130
141
  */
131
142
  projectedParameterRange(ray: Vector3d | Ray3d, lowHigh?: Range1d): Range1d | undefined;
132
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionSpiral3d.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionSpiral3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransitionSpiral3d.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionSpiral3d.ts"],"names":[],"mappings":"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"}