@itwin/core-geometry 5.3.0-dev.9 → 5.3.1

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 (572) hide show
  1. package/CHANGELOG.md +33 -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 +31 -2
  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.js.map +1 -1
  44. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  45. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  46. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  47. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  48. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  49. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  50. package/lib/cjs/curve/LineString3d.js.map +1 -1
  51. package/lib/cjs/curve/Loop.js.map +1 -1
  52. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  53. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  54. package/lib/cjs/curve/Path.js.map +1 -1
  55. package/lib/cjs/curve/PointString3d.js.map +1 -1
  56. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  57. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  58. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  59. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  60. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  61. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  62. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  63. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  64. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  65. package/lib/cjs/curve/RegionOps.js.map +1 -1
  66. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  67. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  68. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  69. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  70. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  71. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  72. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  73. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  74. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  75. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  76. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  77. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  78. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  79. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  80. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  81. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  82. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  83. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  84. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  85. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  86. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  87. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  88. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
  89. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  90. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.d.ts +10 -13
  91. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -1
  92. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js +23 -22
  93. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  94. package/lib/cjs/curve/spiral/ClothoidSeries.d.ts +10 -6
  95. package/lib/cjs/curve/spiral/ClothoidSeries.d.ts.map +1 -1
  96. package/lib/cjs/curve/spiral/ClothoidSeries.js +36 -19
  97. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  98. package/lib/cjs/curve/spiral/CubicEvaluator.d.ts +7 -6
  99. package/lib/cjs/curve/spiral/CubicEvaluator.d.ts.map +1 -1
  100. package/lib/cjs/curve/spiral/CubicEvaluator.js +29 -14
  101. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  102. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts +34 -44
  103. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -1
  104. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +47 -53
  105. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  106. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts +2 -2
  107. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -1
  108. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js +17 -7
  109. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  110. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +112 -104
  111. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  112. package/lib/cjs/curve/spiral/DirectSpiral3d.js +143 -117
  113. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  114. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +71 -53
  115. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  116. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +99 -66
  117. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  118. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +8 -12
  119. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -1
  120. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +11 -13
  121. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  122. package/lib/cjs/curve/spiral/NormalizedTransition.d.ts +36 -29
  123. package/lib/cjs/curve/spiral/NormalizedTransition.d.ts.map +1 -1
  124. package/lib/cjs/curve/spiral/NormalizedTransition.js +62 -40
  125. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  126. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts +13 -18
  127. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -1
  128. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +21 -24
  129. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  130. package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts +41 -27
  131. package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
  132. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +50 -33
  133. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  134. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +45 -34
  135. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  136. package/lib/cjs/curve/spiral/TransitionSpiral3d.js +56 -38
  137. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  138. package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts +27 -21
  139. package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts.map +1 -1
  140. package/lib/cjs/curve/spiral/XYCurveEvaluator.js +23 -18
  141. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  142. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  143. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  144. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  145. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  146. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  147. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  148. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  149. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  150. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  151. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  152. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  153. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +96 -98
  154. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  155. package/lib/cjs/geometry3d/GrowableXYArray.js +121 -110
  156. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  157. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +135 -142
  158. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  159. package/lib/cjs/geometry3d/GrowableXYZArray.js +165 -160
  160. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  161. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  162. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts +51 -34
  163. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  164. package/lib/cjs/geometry3d/IndexedXYCollection.js +16 -6
  165. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  166. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +78 -77
  167. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  168. package/lib/cjs/geometry3d/IndexedXYZCollection.js +38 -35
  169. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  170. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  171. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  172. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  173. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  174. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  175. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  176. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  177. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  178. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  179. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  180. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  181. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  182. package/lib/cjs/geometry3d/PolygonOps.d.ts +27 -7
  183. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  184. package/lib/cjs/geometry3d/PolygonOps.js +30 -9
  185. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  186. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  187. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  188. package/lib/cjs/geometry3d/Range.js.map +1 -1
  189. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  190. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  191. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  192. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  193. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  194. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  195. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  196. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  197. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  198. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  199. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  200. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  201. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  202. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  203. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  204. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  205. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  206. package/lib/cjs/numerics/Complex.js.map +1 -1
  207. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  208. package/lib/cjs/numerics/Newton.js.map +1 -1
  209. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  210. package/lib/cjs/numerics/PolarData.js.map +1 -1
  211. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  212. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  213. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  214. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  215. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  216. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  217. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  218. package/lib/cjs/polyface/AuxData.js.map +1 -1
  219. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  220. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  221. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  222. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  223. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  224. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  225. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  226. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -1
  227. package/lib/cjs/polyface/Polyface.js.map +1 -1
  228. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  229. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  230. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  231. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  232. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  233. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  234. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  235. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  236. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  237. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  238. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  239. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  240. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  241. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  242. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  243. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  244. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  245. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  246. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  247. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  248. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  249. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  250. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  251. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  252. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  253. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  254. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  255. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  256. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  257. package/lib/cjs/serialization/SerializationHelpers.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/Voronoi.js.map +1 -1
  286. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  287. package/lib/esm/Constant.js.map +1 -1
  288. package/lib/esm/Geometry.js.map +1 -1
  289. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  290. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  291. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  292. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  293. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  294. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  295. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  296. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  297. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  298. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  299. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  300. package/lib/esm/bspline/KnotVector.js.map +1 -1
  301. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  302. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  303. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  304. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  305. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  306. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  307. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  308. package/lib/esm/clipping/ClipVector.js.map +1 -1
  309. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  310. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  311. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  312. package/lib/esm/core-geometry.js.map +1 -1
  313. package/lib/esm/curve/Arc3d.d.ts +15 -1
  314. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  315. package/lib/esm/curve/Arc3d.js +31 -2
  316. package/lib/esm/curve/Arc3d.js.map +1 -1
  317. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  318. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  319. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  320. package/lib/esm/curve/CurveCollection.js.map +1 -1
  321. package/lib/esm/curve/CurveCurve.js.map +1 -1
  322. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  323. package/lib/esm/curve/CurveFactory.d.ts +25 -8
  324. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  325. package/lib/esm/curve/CurveFactory.js +51 -55
  326. package/lib/esm/curve/CurveFactory.js.map +1 -1
  327. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  328. package/lib/esm/curve/CurveOps.js.map +1 -1
  329. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  330. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  331. package/lib/esm/curve/CurveTypes.js.map +1 -1
  332. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  333. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  334. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  335. package/lib/esm/curve/LineString3d.js.map +1 -1
  336. package/lib/esm/curve/Loop.js.map +1 -1
  337. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  338. package/lib/esm/curve/ParityRegion.js.map +1 -1
  339. package/lib/esm/curve/Path.js.map +1 -1
  340. package/lib/esm/curve/PointString3d.js.map +1 -1
  341. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  342. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  343. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  344. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  345. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  346. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  347. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  348. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  349. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  350. package/lib/esm/curve/RegionOps.js.map +1 -1
  351. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  352. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  353. package/lib/esm/curve/UnionRegion.js.map +1 -1
  354. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  355. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  356. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  357. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  358. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  359. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  360. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  361. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  362. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  363. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  364. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  365. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  366. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  367. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  368. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  369. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  370. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  371. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  372. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  373. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
  374. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  375. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts +10 -13
  376. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -1
  377. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +23 -22
  378. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  379. package/lib/esm/curve/spiral/ClothoidSeries.d.ts +10 -6
  380. package/lib/esm/curve/spiral/ClothoidSeries.d.ts.map +1 -1
  381. package/lib/esm/curve/spiral/ClothoidSeries.js +36 -19
  382. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  383. package/lib/esm/curve/spiral/CubicEvaluator.d.ts +7 -6
  384. package/lib/esm/curve/spiral/CubicEvaluator.d.ts.map +1 -1
  385. package/lib/esm/curve/spiral/CubicEvaluator.js +29 -14
  386. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  387. package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts +34 -44
  388. package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -1
  389. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +47 -53
  390. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  391. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts +2 -2
  392. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -1
  393. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +17 -7
  394. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  395. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +112 -104
  396. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  397. package/lib/esm/curve/spiral/DirectSpiral3d.js +143 -117
  398. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  399. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +71 -53
  400. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  401. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +99 -66
  402. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  403. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +8 -12
  404. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -1
  405. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +11 -13
  406. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  407. package/lib/esm/curve/spiral/NormalizedTransition.d.ts +36 -29
  408. package/lib/esm/curve/spiral/NormalizedTransition.d.ts.map +1 -1
  409. package/lib/esm/curve/spiral/NormalizedTransition.js +62 -40
  410. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  411. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts +13 -18
  412. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -1
  413. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +21 -24
  414. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  415. package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts +41 -27
  416. package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
  417. package/lib/esm/curve/spiral/TransitionConditionalProperties.js +50 -33
  418. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  419. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +45 -34
  420. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  421. package/lib/esm/curve/spiral/TransitionSpiral3d.js +56 -38
  422. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  423. package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts +27 -21
  424. package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts.map +1 -1
  425. package/lib/esm/curve/spiral/XYCurveEvaluator.js +23 -18
  426. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  427. package/lib/esm/geometry3d/Angle.js.map +1 -1
  428. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  429. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  430. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  431. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  432. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  433. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  434. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  435. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  436. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  437. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  438. package/lib/esm/geometry3d/GrowableXYArray.d.ts +96 -98
  439. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  440. package/lib/esm/geometry3d/GrowableXYArray.js +122 -111
  441. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  442. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +135 -142
  443. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  444. package/lib/esm/geometry3d/GrowableXYZArray.js +165 -160
  445. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  446. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  447. package/lib/esm/geometry3d/IndexedXYCollection.d.ts +51 -34
  448. package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  449. package/lib/esm/geometry3d/IndexedXYCollection.js +14 -5
  450. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  451. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +78 -77
  452. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  453. package/lib/esm/geometry3d/IndexedXYZCollection.js +38 -35
  454. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  455. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  456. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  457. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  458. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  459. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  460. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  461. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  462. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  463. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  464. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  465. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  466. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  467. package/lib/esm/geometry3d/PolygonOps.d.ts +27 -7
  468. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  469. package/lib/esm/geometry3d/PolygonOps.js +30 -9
  470. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  471. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  472. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  473. package/lib/esm/geometry3d/Range.js.map +1 -1
  474. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  475. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  476. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  477. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  478. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  479. package/lib/esm/geometry3d/Transform.js.map +1 -1
  480. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  481. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  482. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  483. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  484. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  485. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  486. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  487. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  488. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  489. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  490. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  491. package/lib/esm/numerics/Complex.js.map +1 -1
  492. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  493. package/lib/esm/numerics/Newton.js.map +1 -1
  494. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  495. package/lib/esm/numerics/PolarData.js.map +1 -1
  496. package/lib/esm/numerics/Polynomials.js.map +1 -1
  497. package/lib/esm/numerics/Quadrature.js.map +1 -1
  498. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  499. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  500. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  501. package/lib/esm/numerics/UnionFind.js.map +1 -1
  502. package/lib/esm/numerics/UsageSums.js.map +1 -1
  503. package/lib/esm/polyface/AuxData.js.map +1 -1
  504. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  505. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  506. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  507. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  508. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  509. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  510. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  511. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -1
  512. package/lib/esm/polyface/Polyface.js.map +1 -1
  513. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  514. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  515. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  516. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  517. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  518. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  519. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  520. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  521. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  522. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  523. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.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/serialization/SerializationHelpers.js.map +1 -1
  543. package/lib/esm/solid/Box.js.map +1 -1
  544. package/lib/esm/solid/Cone.js.map +1 -1
  545. package/lib/esm/solid/LinearSweep.js.map +1 -1
  546. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  547. package/lib/esm/solid/RuledSweep.js.map +1 -1
  548. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  549. package/lib/esm/solid/Sphere.js.map +1 -1
  550. package/lib/esm/solid/SweepContour.js.map +1 -1
  551. package/lib/esm/solid/TorusPipe.js.map +1 -1
  552. package/lib/esm/topology/ChainMerge.js.map +1 -1
  553. package/lib/esm/topology/Graph.js.map +1 -1
  554. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  555. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  556. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  557. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  558. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  559. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  560. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  561. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  562. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  563. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  564. package/lib/esm/topology/MaskManager.js.map +1 -1
  565. package/lib/esm/topology/Merging.js.map +1 -1
  566. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  567. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  568. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  569. package/lib/esm/topology/Triangulation.js.map +1 -1
  570. package/lib/esm/topology/Voronoi.js.map +1 -1
  571. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  572. package/package.json +3 -3
@@ -12,17 +12,21 @@ const Geometry_1 = require("../../Geometry");
12
12
  const XYCurveEvaluator_1 = require("./XYCurveEvaluator");
13
13
  const Newton_1 = require("../../numerics/Newton");
14
14
  /**
15
- * Methods to evaluate caller-specified number of terms of the x and y series for a clothoid.
16
- * Each instance has
17
- * * Number of x and y terms to use.
18
- * * constant for theta=c * x * x
19
- * * This value is c=1/(2 R L) for curve length L measured from inflection to point with radius R.
15
+ * Methods to evaluate caller-specified number of terms of the x and y Taylor series for a clothoid.
16
+ * Each instance has:
17
+ * * number of x and y terms to use.
18
+ * * constant for theta = c*x*x.
19
+ * * This value is c = 1/(2*R*L) for curve length L measured from inflection to point with radius R.
20
20
  * @internal
21
21
  */
22
22
  class ClothoidSeriesRLEvaluator extends XYCurveEvaluator_1.XYCurveEvaluator {
23
+ /** Number of terms to use in x Taylor series. */
23
24
  numXTerms;
25
+ /** Number of terms to use in y Taylor series. */
24
26
  numYTerms;
27
+ /** Constant c = 1/(2*R*L) in theta = c*s*s. */
25
28
  constantDiv2LR;
29
+ /** The nominal curve length. */
26
30
  nominalLength1;
27
31
  constructor(nominalLength1, constantDiv2LR, numXTerms = 4, numYTerms = 4) {
28
32
  super();
@@ -39,7 +43,7 @@ class ClothoidSeriesRLEvaluator extends XYCurveEvaluator_1.XYCurveEvaluator {
39
43
  this.nominalLength1 *= scaleFactor;
40
44
  this.constantDiv2LR /= (scaleFactor * scaleFactor);
41
45
  }
42
- /** Member by member matchup ... */
46
+ /** Member by member matchup. */
43
47
  isAlmostEqual(other) {
44
48
  if (other instanceof ClothoidSeriesRLEvaluator) {
45
49
  return this.numXTerms === other.numXTerms
@@ -53,43 +57,55 @@ class ClothoidSeriesRLEvaluator extends XYCurveEvaluator_1.XYCurveEvaluator {
53
57
  * Evaluate the X series at a nominal distance along the curve.
54
58
  * @param fraction fractional position along the curve.
55
59
  */
56
- fractionToX(fraction) { return this.fractionToXGo(fraction, this.numXTerms); }
60
+ fractionToX(fraction) {
61
+ return this.fractionToXGo(fraction, this.numXTerms);
62
+ }
57
63
  /**
58
64
  * Evaluate the Y series at a nominal distance along the curve.
59
65
  * @param fraction fractional position along the curve.
60
66
  */
61
- fractionToY(fraction) { return this.fractionToYGo(fraction, this.numYTerms); }
67
+ fractionToY(fraction) {
68
+ return this.fractionToYGo(fraction, this.numYTerms);
69
+ }
62
70
  /**
63
71
  * Evaluate the derivative of the X series at a nominal distance along the curve.
64
72
  * @param fraction fractional position along the curve.
65
73
  */
66
- fractionToDX(fraction) { return this.fractionToDXGo(fraction, this.numXTerms); }
74
+ fractionToDX(fraction) {
75
+ return this.fractionToDXGo(fraction, this.numXTerms);
76
+ }
67
77
  /**
68
78
  * Evaluate the derivative of the Y series at a nominal distance along the curve.
69
79
  * @param fraction fractional position along the curve.
70
80
  */
71
- fractionToDY(fraction) { return this.fractionToDYGo(fraction, this.numYTerms); }
81
+ fractionToDY(fraction) {
82
+ return this.fractionToDYGo(fraction, this.numYTerms);
83
+ }
72
84
  /**
73
85
  * Evaluate the derivative of the X series at a nominal distance along the curve.
74
86
  * @param fraction fractional position along the curve.
75
87
  */
76
- fractionToDDX(fraction) { return this.fractionToDDXGo(fraction, this.numXTerms); }
88
+ fractionToDDX(fraction) {
89
+ return this.fractionToDDXGo(fraction, this.numXTerms);
90
+ }
77
91
  /**
78
92
  * Evaluate the derivative of the Y series at a nominal distance along the curve.
79
93
  * @param fraction fractional position along the curve.
80
94
  */
81
- fractionToDDY(fraction) { return this.fractionToDDYGo(fraction, this.numYTerms); }
95
+ fractionToDDY(fraction) {
96
+ return this.fractionToDDYGo(fraction, this.numYTerms);
97
+ }
82
98
  /**
83
99
  * Evaluate the X series at a nominal distance along the curve.
84
100
  * @param fraction fractional position along the curve.
85
101
  * @param numTerms number of terms to use.
86
102
  */
87
103
  fractionToXGo(fraction, numTerms) {
88
- // Write the series for cos (theta)
104
+ // write the Taylor series for cos(theta)
89
105
  // replace theta by s*s*c
90
106
  // integrate wrt s
91
- // x = s - s^5 c^4/ 2 + s^9 c^8/(4!) - s^13 c^12 / 6!
92
- // x = s(1 - (s^4 c^2/2) ( 1/5 -s^4 c^2 / (3*4) ( 1/9 - ....) ) )
107
+ // x = s - s^5 c^2/ 5*2! + s^9 c^4 / 9*4! - s^13 c^6 / 13*6! + ...
108
+ // x = s(1 - (s^4 c^2/2) ( 1/5 - (s^4 c^2 / 3*4) (1/9 - ...) ) )
93
109
  const s = fraction * this.nominalLength1;
94
110
  let result = s;
95
111
  if (numTerms < 2)
@@ -108,10 +124,11 @@ class ClothoidSeriesRLEvaluator extends XYCurveEvaluator_1.XYCurveEvaluator {
108
124
  return result;
109
125
  }
110
126
  fractionToYGo(fraction, numTerms) {
111
- // Write the series for sin (theta)
127
+ // write the Taylor series for sin(theta)
112
128
  // replace theta by s*s*c
113
129
  // integrate wrt s
114
- // x = s^3 c^2/ 3( (1/3)) - s^7 c^6/(3!) ((1/7)) - s^11 c^10 / 5! ((1/9) - ...)
130
+ // y = s^3 c / 3 - s^7 c^3 / 7*3! + s^11 c^5 / 11*5! - s^15 c^7 / 15*7! + ...
131
+ // y = s^3 c ( 1/3 - s^4 c^2/ 3! ( (1/7) - (s^4 c^2 / 4*5) (1/11 - ...) ) )
115
132
  const s = fraction * this.nominalLength1;
116
133
  const q1 = s * s * this.constantDiv2LR;
117
134
  let result = q1 * s / 3;
@@ -130,7 +147,7 @@ class ClothoidSeriesRLEvaluator extends XYCurveEvaluator_1.XYCurveEvaluator {
130
147
  return result;
131
148
  }
132
149
  fractionToDXGo(fraction, numTerms) {
133
- // Yes -- this does happen during derivatives of cosines with more than 0 terms !!
150
+ // yes -- this does happen during derivatives of cosines with more than 0 terms
134
151
  if (numTerms <= 0)
135
152
  return 0;
136
153
  // dX = 1 - s^4c^2/2 + s^8 c^4 / 4! -
@@ -185,7 +202,7 @@ class ClothoidSeriesRLEvaluator extends XYCurveEvaluator_1.XYCurveEvaluator {
185
202
  fractionToDDYGo(fraction, numTerms) {
186
203
  // DY is "sine"
187
204
  // DDY is "cosine" series times chain rule dTheta/ds = 2 * s * this.constantDivLR
188
- // BUT .... derivative of the cosine series leading term is zero ... use one less term!
205
+ // BUT .... derivative of the cosine series leading term is zero ... use one less term
189
206
  const s = fraction * this.nominalLength1;
190
207
  const dTheta = 2 * this.constantDiv2LR * s;
191
208
  const cosine = this.fractionToDXGo(fraction, numTerms);
@@ -1 +1 @@
1
- {"version":3,"file":"ClothoidSeries.js","sourceRoot":"","sources":["../../../../src/curve/spiral/ClothoidSeries.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 */\n\nimport { Geometry } from \"../../Geometry\";\nimport { XYCurveEvaluator } from \"./XYCurveEvaluator\";\nimport { SimpleNewton } from \"../../numerics/Newton\";\n/**\n * Methods to evaluate caller-specified number of terms of the x and y series for a clothoid.\n * Each instance has\n * * Number of x and y terms to use.\n * * constant for theta=c * x * x\n * * This value is c=1/(2 R L) for curve length L measured from inflection to point with radius R.\n * @internal\n */\nexport class ClothoidSeriesRLEvaluator extends XYCurveEvaluator {\n public numXTerms: number;\n public numYTerms: number;\n public constantDiv2LR: number;\n public nominalLength1: number;\n public constructor(nominalLength1: number, constantDiv2LR: number, numXTerms: number = 4, numYTerms: number = 4) {\n super();\n this.nominalLength1 = nominalLength1;\n this.constantDiv2LR = constantDiv2LR;\n this.numXTerms = numXTerms;\n this.numYTerms = numYTerms;\n }\n /** Return a deep clone. */\n public clone(): ClothoidSeriesRLEvaluator {\n return new ClothoidSeriesRLEvaluator(this.nominalLength1, this.constantDiv2LR, this.numXTerms, this.numYTerms);\n }\n public scaleInPlace(scaleFactor: number) {\n this.nominalLength1 *= scaleFactor;\n this.constantDiv2LR /= (scaleFactor * scaleFactor);\n }\n /** Member by member matchup ... */\n public isAlmostEqual(other: any): boolean {\n if (other instanceof ClothoidSeriesRLEvaluator) {\n return this.numXTerms === other.numXTerms\n && this.numYTerms === other.numYTerms\n && Geometry.isAlmostEqualNumber(this.constantDiv2LR, other.constantDiv2LR)\n && Geometry.isSameCoordinate(this.nominalLength1, other.nominalLength1);\n }\n return false;\n }\n /**\n * Evaluate the X series at a nominal distance along the curve.\n * @param fraction fractional position along the curve.\n */\n public fractionToX(fraction: number): number { return this.fractionToXGo(fraction, this.numXTerms); }\n /**\n * Evaluate the Y series at a nominal distance along the curve.\n * @param fraction fractional position along the curve.\n */\n public fractionToY(fraction: number): number { return this.fractionToYGo(fraction, this.numYTerms); }\n\n /**\n * Evaluate the derivative of the X series at a nominal distance along the curve.\n * @param fraction fractional position along the curve.\n */\n public fractionToDX(fraction: number): number { return this.fractionToDXGo(fraction, this.numXTerms); }\n /**\n * Evaluate the derivative of the Y series at a nominal distance along the curve.\n * @param fraction fractional position along the curve.\n */\n public fractionToDY(fraction: number): number { return this.fractionToDYGo(fraction, this.numYTerms); }\n\n /**\n * Evaluate the derivative of the X series at a nominal distance along the curve.\n * @param fraction fractional position along the curve.\n */\n public fractionToDDX(fraction: number): number { return this.fractionToDDXGo(fraction, this.numXTerms); }\n /**\n * Evaluate the derivative of the Y series at a nominal distance along the curve.\n * @param fraction fractional position along the curve.\n */\n public fractionToDDY(fraction: number): number { return this.fractionToDDYGo(fraction, this.numYTerms); }\n\n /**\n * Evaluate the X series at a nominal distance along the curve.\n * @param fraction fractional position along the curve.\n * @param numTerms number of terms to use.\n */\n public fractionToXGo(fraction: number, numTerms: number): number {\n // Write the series for cos (theta)\n // replace theta by s*s*c\n // integrate wrt s\n // x = s - s^5 c^4/ 2 + s^9 c^8/(4!) - s^13 c^12 / 6!\n // x = s(1 - (s^4 c^2/2) ( 1/5 -s^4 c^2 / (3*4) ( 1/9 - ....) ) )\n const s = fraction * this.nominalLength1;\n let result = s;\n if (numTerms < 2)\n return result;\n const q1 = s * s * this.constantDiv2LR;\n const beta = - q1 * q1;\n let alpha = s;\n let m = 1;\n let n = 5;\n for (let i = 1; i < numTerms; i++) {\n alpha *= beta / (m * (m + 1));\n result += alpha / n;\n m += 2;\n n += 4;\n }\n return result;\n }\n public fractionToYGo(fraction: number, numTerms: number): number {\n // Write the series for sin (theta)\n // replace theta by s*s*c\n // integrate wrt s\n // x = s^3 c^2/ 3( (1/3)) - s^7 c^6/(3!) ((1/7)) - s^11 c^10 / 5! ((1/9) - ...)\n const s = fraction * this.nominalLength1;\n const q1 = s * s * this.constantDiv2LR;\n let result = q1 * s / 3;\n if (numTerms < 2)\n return result;\n const beta = - q1 * q1;\n let alpha = q1 * s;\n let m = 2;\n let n = 7;\n for (let i = 1; i < numTerms; i++) {\n alpha *= beta / (m * (m + 1));\n result += alpha / n;\n m += 2;\n n += 4;\n }\n return result;\n }\n public fractionToDXGo(fraction: number, numTerms: number): number {\n // Yes -- this does happen during derivatives of cosines with more than 0 terms !!\n if (numTerms <= 0)\n return 0;\n // dX = 1 - s^4c^2/2 + s^8 c^4 / 4! -\n // new Term = old Term * beta / (m(m+1))\n const s = fraction * this.nominalLength1;\n let result = 1;\n if (numTerms < 2) {\n return result * this.nominalLength1;\n }\n const q1 = s * s * this.constantDiv2LR;\n const beta = - q1 * q1;\n let alpha = 1.0;\n let m = 1;\n for (let i = 1; i < numTerms; i++) {\n alpha *= beta / (m * (m + 1));\n result += alpha;\n m += 2;\n }\n return result * this.nominalLength1;\n }\n public fractionToDYGo(fraction: number, numTerms: number): number {\n if (numTerms <= 0)\n return 0;\n // dY = q - q^3/3!\n // q = s^2 c\n // dY = s^2 c - s^6 c^3/3! + s^10 c^5/ 5!\n // recurrence advancing m by 2 alpha *= -(s^4 c^2) / (m(m+1))\n const s = fraction * this.nominalLength1;\n const q1 = s * s * this.constantDiv2LR;\n let result = q1;\n if (numTerms < 2)\n return result * this.nominalLength1;\n const beta = - q1 * q1;\n let alpha = q1;\n let m = 2;\n for (let i = 1; i < numTerms; i++) {\n alpha *= beta / (m * (m + 1));\n result += alpha;\n m += 2;\n }\n return result * this.nominalLength1;\n }\n\n public fractionToDDXGo(fraction: number, numTerms: number): number {\n // DX is \"cosine\"\n // DDX is \"- sine\" series times chain rule dTheta/ds = 2 * s * this.constantDivLR\n const s = fraction * this.nominalLength1;\n\n const dTheta = 2 * this.constantDiv2LR * s;\n const sine = this.fractionToDYGo(fraction, numTerms - 1);\n const resultA = (- dTheta * sine * this.nominalLength1);\n return resultA;\n }\n public fractionToDDYGo(fraction: number, numTerms: number): number {\n // DY is \"sine\"\n // DDY is \"cosine\" series times chain rule dTheta/ds = 2 * s * this.constantDivLR\n // BUT .... derivative of the cosine series leading term is zero ... use one less term!\n const s = fraction * this.nominalLength1;\n const dTheta = 2 * this.constantDiv2LR * s;\n const cosine = this.fractionToDXGo(fraction, numTerms);\n return cosine * dTheta * this.nominalLength1;\n }\n\n public fractionToD3X(fraction: number): number {\n if (this.numXTerms <= 1)\n return 0.0;\n // DX is \"cosine\"\n // DDX is \"- sine\" series times chain rule dTheta/ds = 2 * s * this.constantDivLR\n const s = fraction * this.nominalLength1;\n const dTheta = 2.0 * this.constantDiv2LR * s;\n const d2Theta = 2.0 * this.constantDiv2LR;\n const sine = this.fractionToDYGo(fraction, this.numXTerms - 1);\n const cosine = this.fractionToDXGo(fraction, this.numXTerms - 1);\n return (- cosine * dTheta * dTheta - sine * d2Theta) * this.nominalLength1 * this.nominalLength1;\n }\n public fractionToD3Y(fraction: number): number {\n // DY is \"sine\"\n // DDY is \"cosine\" series times chain rule dTheta/ds = 2 * s * this.constantDivLR\n const s = fraction * this.nominalLength1;\n const dTheta = 2.0 * this.constantDiv2LR * s;\n const d2Theta = 2.0 * this.constantDiv2LR;\n // dY is sine series with numYTerms.\n // ddY is cosine series. Leading term of sine series is non-constant, so numYTerms here also\n // d3Y is sine series. Derivative of preceding cosine killed first term.\n const cosine = this.fractionToDXGo(fraction, this.numYTerms);\n const sine = this.fractionToDYGo(fraction, this.numYTerms - 1);\n return (-sine * dTheta * dTheta + cosine * d2Theta) * this.nominalLength1 * this.nominalLength1;\n }\n\n public xToFraction(x: number): number | undefined {\n const fraction0 = x / this.nominalLength1;\n const fraction1 = SimpleNewton.runNewton1D(fraction0,\n (f: number) => (this.fractionToX(f) - x),\n (f: number) => this.fractionToDX(f));\n if (fraction1 === undefined)\n return undefined;\n return fraction1;\n }\n}\n"]}
1
+ {"version":3,"file":"ClothoidSeries.js","sourceRoot":"","sources":["../../../../src/curve/spiral/ClothoidSeries.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\n\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { XYCurveEvaluator } from \"./XYCurveEvaluator\";\r\nimport { SimpleNewton } from \"../../numerics/Newton\";\r\n\r\n/**\r\n * Methods to evaluate caller-specified number of terms of the x and y Taylor series for a clothoid.\r\n * Each instance has:\r\n * * number of x and y terms to use.\r\n * * constant for theta = c*x*x.\r\n * * This value is c = 1/(2*R*L) for curve length L measured from inflection to point with radius R.\r\n * @internal\r\n */\r\nexport class ClothoidSeriesRLEvaluator extends XYCurveEvaluator {\r\n /** Number of terms to use in x Taylor series. */\r\n public numXTerms: number;\r\n /** Number of terms to use in y Taylor series. */\r\n public numYTerms: number;\r\n /** Constant c = 1/(2*R*L) in theta = c*s*s. */\r\n public constantDiv2LR: number;\r\n /** The nominal curve length. */\r\n public nominalLength1: number;\r\n public constructor(nominalLength1: number, constantDiv2LR: number, numXTerms: number = 4, numYTerms: number = 4) {\r\n super();\r\n this.nominalLength1 = nominalLength1;\r\n this.constantDiv2LR = constantDiv2LR;\r\n this.numXTerms = numXTerms;\r\n this.numYTerms = numYTerms;\r\n }\r\n /** Return a deep clone. */\r\n public clone(): ClothoidSeriesRLEvaluator {\r\n return new ClothoidSeriesRLEvaluator(this.nominalLength1, this.constantDiv2LR, this.numXTerms, this.numYTerms);\r\n }\r\n public scaleInPlace(scaleFactor: number): void {\r\n this.nominalLength1 *= scaleFactor;\r\n this.constantDiv2LR /= (scaleFactor * scaleFactor);\r\n }\r\n /** Member by member matchup. */\r\n public isAlmostEqual(other: any): boolean {\r\n if (other instanceof ClothoidSeriesRLEvaluator) {\r\n return this.numXTerms === other.numXTerms\r\n && this.numYTerms === other.numYTerms\r\n && Geometry.isAlmostEqualNumber(this.constantDiv2LR, other.constantDiv2LR)\r\n && Geometry.isSameCoordinate(this.nominalLength1, other.nominalLength1);\r\n }\r\n return false;\r\n }\r\n /**\r\n * Evaluate the X series at a nominal distance along the curve.\r\n * @param fraction fractional position along the curve.\r\n */\r\n public fractionToX(fraction: number): number {\r\n return this.fractionToXGo(fraction, this.numXTerms);\r\n }\r\n /**\r\n * Evaluate the Y series at a nominal distance along the curve.\r\n * @param fraction fractional position along the curve.\r\n */\r\n public fractionToY(fraction: number): number {\r\n return this.fractionToYGo(fraction, this.numYTerms);\r\n }\r\n /**\r\n * Evaluate the derivative of the X series at a nominal distance along the curve.\r\n * @param fraction fractional position along the curve.\r\n */\r\n public fractionToDX(fraction: number): number {\r\n return this.fractionToDXGo(fraction, this.numXTerms);\r\n }\r\n /**\r\n * Evaluate the derivative of the Y series at a nominal distance along the curve.\r\n * @param fraction fractional position along the curve.\r\n */\r\n public fractionToDY(fraction: number): number {\r\n return this.fractionToDYGo(fraction, this.numYTerms);\r\n }\r\n /**\r\n * Evaluate the derivative of the X series at a nominal distance along the curve.\r\n * @param fraction fractional position along the curve.\r\n */\r\n public fractionToDDX(fraction: number): number {\r\n return this.fractionToDDXGo(fraction, this.numXTerms);\r\n }\r\n /**\r\n * Evaluate the derivative of the Y series at a nominal distance along the curve.\r\n * @param fraction fractional position along the curve.\r\n */\r\n public fractionToDDY(fraction: number): number {\r\n return this.fractionToDDYGo(fraction, this.numYTerms);\r\n }\r\n /**\r\n * Evaluate the X series at a nominal distance along the curve.\r\n * @param fraction fractional position along the curve.\r\n * @param numTerms number of terms to use.\r\n */\r\n public fractionToXGo(fraction: number, numTerms: number): number {\r\n // write the Taylor series for cos(theta)\r\n // replace theta by s*s*c\r\n // integrate wrt s\r\n // x = s - s^5 c^2/ 5*2! + s^9 c^4 / 9*4! - s^13 c^6 / 13*6! + ...\r\n // x = s(1 - (s^4 c^2/2) ( 1/5 - (s^4 c^2 / 3*4) (1/9 - ...) ) )\r\n const s = fraction * this.nominalLength1;\r\n let result = s;\r\n if (numTerms < 2)\r\n return result;\r\n const q1 = s * s * this.constantDiv2LR;\r\n const beta = - q1 * q1;\r\n let alpha = s;\r\n let m = 1;\r\n let n = 5;\r\n for (let i = 1; i < numTerms; i++) {\r\n alpha *= beta / (m * (m + 1));\r\n result += alpha / n;\r\n m += 2;\r\n n += 4;\r\n }\r\n return result;\r\n }\r\n public fractionToYGo(fraction: number, numTerms: number): number {\r\n // write the Taylor series for sin(theta)\r\n // replace theta by s*s*c\r\n // integrate wrt s\r\n // y = s^3 c / 3 - s^7 c^3 / 7*3! + s^11 c^5 / 11*5! - s^15 c^7 / 15*7! + ...\r\n // y = s^3 c ( 1/3 - s^4 c^2/ 3! ( (1/7) - (s^4 c^2 / 4*5) (1/11 - ...) ) )\r\n const s = fraction * this.nominalLength1;\r\n const q1 = s * s * this.constantDiv2LR;\r\n let result = q1 * s / 3;\r\n if (numTerms < 2)\r\n return result;\r\n const beta = - q1 * q1;\r\n let alpha = q1 * s;\r\n let m = 2;\r\n let n = 7;\r\n for (let i = 1; i < numTerms; i++) {\r\n alpha *= beta / (m * (m + 1));\r\n result += alpha / n;\r\n m += 2;\r\n n += 4;\r\n }\r\n return result;\r\n }\r\n public fractionToDXGo(fraction: number, numTerms: number): number {\r\n // yes -- this does happen during derivatives of cosines with more than 0 terms\r\n if (numTerms <= 0)\r\n return 0;\r\n // dX = 1 - s^4c^2/2 + s^8 c^4 / 4! -\r\n // new Term = old Term * beta / (m(m+1))\r\n const s = fraction * this.nominalLength1;\r\n let result = 1;\r\n if (numTerms < 2) {\r\n return result * this.nominalLength1;\r\n }\r\n const q1 = s * s * this.constantDiv2LR;\r\n const beta = - q1 * q1;\r\n let alpha = 1.0;\r\n let m = 1;\r\n for (let i = 1; i < numTerms; i++) {\r\n alpha *= beta / (m * (m + 1));\r\n result += alpha;\r\n m += 2;\r\n }\r\n return result * this.nominalLength1;\r\n }\r\n public fractionToDYGo(fraction: number, numTerms: number): number {\r\n if (numTerms <= 0)\r\n return 0;\r\n // dY = q - q^3/3!\r\n // q = s^2 c\r\n // dY = s^2 c - s^6 c^3/3! + s^10 c^5/ 5!\r\n // recurrence advancing m by 2 alpha *= -(s^4 c^2) / (m(m+1))\r\n const s = fraction * this.nominalLength1;\r\n const q1 = s * s * this.constantDiv2LR;\r\n let result = q1;\r\n if (numTerms < 2)\r\n return result * this.nominalLength1;\r\n const beta = - q1 * q1;\r\n let alpha = q1;\r\n let m = 2;\r\n for (let i = 1; i < numTerms; i++) {\r\n alpha *= beta / (m * (m + 1));\r\n result += alpha;\r\n m += 2;\r\n }\r\n return result * this.nominalLength1;\r\n }\r\n public fractionToDDXGo(fraction: number, numTerms: number): number {\r\n // DX is \"cosine\"\r\n // DDX is \"- sine\" series times chain rule dTheta/ds = 2 * s * this.constantDivLR\r\n const s = fraction * this.nominalLength1;\r\n const dTheta = 2 * this.constantDiv2LR * s;\r\n const sine = this.fractionToDYGo(fraction, numTerms - 1);\r\n const resultA = (- dTheta * sine * this.nominalLength1);\r\n return resultA;\r\n }\r\n public fractionToDDYGo(fraction: number, numTerms: number): number {\r\n // DY is \"sine\"\r\n // DDY is \"cosine\" series times chain rule dTheta/ds = 2 * s * this.constantDivLR\r\n // BUT .... derivative of the cosine series leading term is zero ... use one less term\r\n const s = fraction * this.nominalLength1;\r\n const dTheta = 2 * this.constantDiv2LR * s;\r\n const cosine = this.fractionToDXGo(fraction, numTerms);\r\n return cosine * dTheta * this.nominalLength1;\r\n }\r\n public fractionToD3X(fraction: number): number {\r\n if (this.numXTerms <= 1)\r\n return 0.0;\r\n // DX is \"cosine\"\r\n // DDX is \"- sine\" series times chain rule dTheta/ds = 2 * s * this.constantDivLR\r\n const s = fraction * this.nominalLength1;\r\n const dTheta = 2.0 * this.constantDiv2LR * s;\r\n const d2Theta = 2.0 * this.constantDiv2LR;\r\n const sine = this.fractionToDYGo(fraction, this.numXTerms - 1);\r\n const cosine = this.fractionToDXGo(fraction, this.numXTerms - 1);\r\n return (- cosine * dTheta * dTheta - sine * d2Theta) * this.nominalLength1 * this.nominalLength1;\r\n }\r\n public fractionToD3Y(fraction: number): number {\r\n // DY is \"sine\"\r\n // DDY is \"cosine\" series times chain rule dTheta/ds = 2 * s * this.constantDivLR\r\n const s = fraction * this.nominalLength1;\r\n const dTheta = 2.0 * this.constantDiv2LR * s;\r\n const d2Theta = 2.0 * this.constantDiv2LR;\r\n // dY is sine series with numYTerms.\r\n // ddY is cosine series. Leading term of sine series is non-constant, so numYTerms here also\r\n // d3Y is sine series. Derivative of preceding cosine killed first term.\r\n const cosine = this.fractionToDXGo(fraction, this.numYTerms);\r\n const sine = this.fractionToDYGo(fraction, this.numYTerms - 1);\r\n return (-sine * dTheta * dTheta + cosine * d2Theta) * this.nominalLength1 * this.nominalLength1;\r\n }\r\n public xToFraction(x: number): number | undefined {\r\n const fraction0 = x / this.nominalLength1;\r\n const fraction1 = SimpleNewton.runNewton1D(fraction0,\r\n (f: number) => (this.fractionToX(f) - x),\r\n (f: number) => this.fractionToDX(f));\r\n if (fraction1 === undefined)\r\n return undefined;\r\n return fraction1;\r\n }\r\n}\r\n"]}
@@ -2,9 +2,11 @@
2
2
  * @module Curve
3
3
  */
4
4
  import { XYCurveEvaluator } from "./XYCurveEvaluator";
5
- /** Intermediate class for evaluation of bare cubic spirals `y = m ^x^3` with x axis from [0..xLength]
5
+ /**
6
+ * Intermediate class for evaluation of bare cubic spirals `y = m*x^3` with x axis from [0..xLength]
6
7
  * * This implements all the computations among fraction, x, and y.
7
- * * Derived classes implement specialized logic such as (a) precomputing `m` and (b) domain-specific fraction-to-distance approximations.
8
+ * * Derived classes implement specialized logic such as (a) precomputing `m` and (b) domain-specific fraction-to-distance
9
+ * approximations.
8
10
  * @internal
9
11
  */
10
12
  export declare abstract class CubicEvaluator extends XYCurveEvaluator {
@@ -18,16 +20,15 @@ export declare abstract class CubicEvaluator extends XYCurveEvaluator {
18
20
  /**
19
21
  * Apply `scaleFactor` to the xLength and cubicM.
20
22
  * * Derived classes commonly call this as `super.scaleInPlace()`, and additionally apply the scale to their members.
21
- * @param scaleFactor
22
23
  */
23
24
  scaleInPlace(scaleFactor: number): void;
24
25
  /** Evaluate X at fraction. */
25
26
  fractionToX(fraction: number): number;
26
- /** Evaluate derivative of X with respect to fraction */
27
+ /** Evaluate derivative of X with respect to fraction. */
27
28
  fractionToDX(_fraction: number): number;
28
- /** Evaluate second derivative of X with respect to fraction */
29
+ /** Evaluate second derivative of X with respect to fraction. */
29
30
  fractionToDDX(_fraction: number): number;
30
- /** Evaluate third derivative of X with respect to fraction */
31
+ /** Evaluate third derivative of X with respect to fraction. */
31
32
  fractionToD3X(_fraction: number): number;
32
33
  /** Evaluate Y at fraction. */
33
34
  fractionToY(fraction: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"CubicEvaluator.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/CubicEvaluator.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD;;;;GAIG;AACH,8BAAsB,cAAe,SAAQ,gBAAgB;IAC3D,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,aAAa,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKxD,6BAA6B;IACtB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAItD,IAAW,UAAU,WAA+B;IACpD,IAAW,MAAM,WAA2B;IAC5C;;;;OAIG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM;IAKvC,8BAA8B;IACvB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAC5C,wDAAwD;IACjD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAC9C,+DAA+D;IACxD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAC/C,8DAA8D;IACvD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAC/C,8BAA8B;IACvB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI5C,yDAAyD;IAClD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI7C,gEAAgE;IACzD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI9C,+DAA+D;IACxD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAG/C,8BAA8B;IACvB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CACtC"}
1
+ {"version":3,"file":"CubicEvaluator.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/CubicEvaluator.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;GAMG;AACH,8BAAsB,cAAe,SAAQ,gBAAgB;IAC3D,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,aAAa,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKxD,6BAA6B;IACtB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAItD,IAAW,UAAU,WAEpB;IACD,IAAW,MAAM,WAEhB;IACD;;;OAGG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM;IAKvC,8BAA8B;IACvB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAG5C,yDAAyD;IAClD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAG9C,gEAAgE;IACzD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAG/C,+DAA+D;IACxD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAG/C,8BAA8B;IACvB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI5C,yDAAyD;IAClD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI7C,gEAAgE;IACzD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI9C,+DAA+D;IACxD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAG/C,8BAA8B;IACvB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CAGtC"}
@@ -9,9 +9,11 @@ exports.CubicEvaluator = void 0;
9
9
  * @module Curve
10
10
  */
11
11
  const XYCurveEvaluator_1 = require("./XYCurveEvaluator");
12
- /** Intermediate class for evaluation of bare cubic spirals `y = m ^x^3` with x axis from [0..xLength]
12
+ /**
13
+ * Intermediate class for evaluation of bare cubic spirals `y = m*x^3` with x axis from [0..xLength]
13
14
  * * This implements all the computations among fraction, x, and y.
14
- * * Derived classes implement specialized logic such as (a) precomputing `m` and (b) domain-specific fraction-to-distance approximations.
15
+ * * Derived classes implement specialized logic such as (a) precomputing `m` and (b) domain-specific fraction-to-distance
16
+ * approximations.
15
17
  * @internal
16
18
  */
17
19
  class CubicEvaluator extends XYCurveEvaluator_1.XYCurveEvaluator {
@@ -27,26 +29,37 @@ class CubicEvaluator extends XYCurveEvaluator_1.XYCurveEvaluator {
27
29
  this._axisLength = axisLength;
28
30
  this._cubicM = cubicM;
29
31
  }
30
- get axisLength() { return this._axisLength; }
31
- get cubicM() { return this._cubicM; }
32
+ get axisLength() {
33
+ return this._axisLength;
34
+ }
35
+ get cubicM() {
36
+ return this._cubicM;
37
+ }
32
38
  /**
33
39
  * Apply `scaleFactor` to the xLength and cubicM.
34
40
  * * Derived classes commonly call this as `super.scaleInPlace()`, and additionally apply the scale to their members.
35
- * @param scaleFactor
36
41
  */
37
42
  scaleInPlace(scaleFactor) {
38
43
  this._axisLength *= scaleFactor;
39
- // "x" arriving at "m * x^3" will be scaled. "m" has to be divided by the scale to cancel 2 of the 3 . .
44
+ // "x" arriving at "m * x^3" will be scaled. "m" has to be divided by the scale to cancel 2 of the 3
40
45
  this._cubicM /= (scaleFactor * scaleFactor);
41
46
  }
42
47
  /** Evaluate X at fraction. */
43
- fractionToX(fraction) { return fraction * this._axisLength; }
44
- /** Evaluate derivative of X with respect to fraction */
45
- fractionToDX(_fraction) { return this._axisLength; }
46
- /** Evaluate second derivative of X with respect to fraction */
47
- fractionToDDX(_fraction) { return 0.0; }
48
- /** Evaluate third derivative of X with respect to fraction */
49
- fractionToD3X(_fraction) { return 0.0; }
48
+ fractionToX(fraction) {
49
+ return fraction * this._axisLength;
50
+ }
51
+ /** Evaluate derivative of X with respect to fraction. */
52
+ fractionToDX(_fraction) {
53
+ return this._axisLength;
54
+ }
55
+ /** Evaluate second derivative of X with respect to fraction. */
56
+ fractionToDDX(_fraction) {
57
+ return 0.0;
58
+ }
59
+ /** Evaluate third derivative of X with respect to fraction. */
60
+ fractionToD3X(_fraction) {
61
+ return 0.0;
62
+ }
50
63
  /** Evaluate Y at fraction. */
51
64
  fractionToY(fraction) {
52
65
  const x = fraction * this._axisLength;
@@ -67,7 +80,9 @@ class CubicEvaluator extends XYCurveEvaluator_1.XYCurveEvaluator {
67
80
  return 6.0 * this._cubicM * this._axisLength * this._axisLength * this._axisLength;
68
81
  }
69
82
  /** Evaluate fraction at x. */
70
- xToFraction(x) { return x / this._axisLength; }
83
+ xToFraction(x) {
84
+ return x / this._axisLength;
85
+ }
71
86
  }
72
87
  exports.CubicEvaluator = CubicEvaluator;
73
88
  //# sourceMappingURL=CubicEvaluator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CubicEvaluator.js","sourceRoot":"","sources":["../../../../src/curve/spiral/CubicEvaluator.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AACH,yDAAsD;AACtD;;;;GAIG;AACH,MAAsB,cAAe,SAAQ,mCAAgB;IACjD,OAAO,CAAS;IAChB,WAAW,CAAS;IAC9B,YAAsB,UAAkB,EAAE,MAAc;QACtD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IACD,6BAA6B;IACtB,YAAY,CAAC,UAAkB,EAAE,MAAc;QACpD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IACD,IAAW,UAAU,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACpD,IAAW,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C;;;;OAIG;IACI,YAAY,CAAC,WAAmB;QACrC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;QAChC,wGAAwG;QACxG,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;IAC9C,CAAC;IACD,8BAA8B;IACvB,WAAW,CAAC,QAAgB,IAAY,OAAO,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACpF,wDAAwD;IACjD,YAAY,CAAC,SAAiB,IAAY,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3E,+DAA+D;IACxD,aAAa,CAAC,SAAiB,IAAY,OAAO,GAAG,CAAC,CAAC,CAAC;IAC/D,8DAA8D;IACvD,aAAa,CAAC,SAAiB,IAAY,OAAO,GAAG,CAAC,CAAC,CAAC;IAC/D,8BAA8B;IACvB,WAAW,CAAC,QAAgB;QACjC,MAAM,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,yDAAyD;IAClD,YAAY,CAAC,QAAgB;QAClC,MAAM,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;IACvD,CAAC;IACD,gEAAgE;IACzD,aAAa,CAAC,QAAgB;QACnC,MAAM,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtE,CAAC;IACD,+DAA+D;IACxD,aAAa,CAAC,SAAiB;QACpC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrF,CAAC;IACD,8BAA8B;IACvB,WAAW,CAAC,CAAS,IAAY,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;CACvE;AAtDD,wCAsDC","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 { XYCurveEvaluator } from \"./XYCurveEvaluator\";\n/** Intermediate class for evaluation of bare cubic spirals `y = m ^x^3` with x axis from [0..xLength]\n * * This implements all the computations among fraction, x, and y.\n * * Derived classes implement specialized logic such as (a) precomputing `m` and (b) domain-specific fraction-to-distance approximations.\n * @internal\n */\nexport abstract class CubicEvaluator extends XYCurveEvaluator {\n protected _cubicM: number;\n protected _axisLength: number;\n protected constructor(axisLength: number, cubicM: number) {\n super();\n this._cubicM = cubicM;\n this._axisLength = axisLength;\n }\n /** Update both constants. */\n public setConstants(axisLength: number, cubicM: number) {\n this._axisLength = axisLength;\n this._cubicM = cubicM;\n }\n public get axisLength() { return this._axisLength; }\n public get cubicM() { return this._cubicM; }\n /**\n * Apply `scaleFactor` to the xLength and cubicM.\n * * Derived classes commonly call this as `super.scaleInPlace()`, and additionally apply the scale to their members.\n * @param scaleFactor\n */\n public scaleInPlace(scaleFactor: number) {\n this._axisLength *= scaleFactor;\n // \"x\" arriving at \"m * x^3\" will be scaled. \"m\" has to be divided by the scale to cancel 2 of the 3 . .\n this._cubicM /= (scaleFactor * scaleFactor);\n }\n /** Evaluate X at fraction. */\n public fractionToX(fraction: number): number { return fraction * this._axisLength; }\n /** Evaluate derivative of X with respect to fraction */\n public fractionToDX(_fraction: number): number { return this._axisLength; }\n /** Evaluate second derivative of X with respect to fraction */\n public fractionToDDX(_fraction: number): number { return 0.0; }\n /** Evaluate third derivative of X with respect to fraction */\n public fractionToD3X(_fraction: number): number { return 0.0; }\n /** Evaluate Y at fraction. */\n public fractionToY(fraction: number): number {\n const x = fraction * this._axisLength;\n return this._cubicM * x * x * x;\n }\n /** Evaluate derivative of Y with respect to fraction. */\n public fractionToDY(fraction: number): number {\n const x = fraction * this._axisLength;\n return 3.0 * this._cubicM * x * x * this._axisLength;\n }\n /** Evaluate second derivative of Y with respect to fraction. */\n public fractionToDDY(fraction: number): number {\n const x = fraction * this._axisLength;\n return 6.0 * this._cubicM * x * this._axisLength * this._axisLength;\n }\n /** Evaluate third derivative of Y with respect to fraction. */\n public fractionToD3Y(_fraction: number): number {\n return 6.0 * this._cubicM * this._axisLength * this._axisLength * this._axisLength;\n }\n /** Evaluate fraction at x. */\n public xToFraction(x: number): number { return x / this._axisLength; }\n}\n"]}
1
+ {"version":3,"file":"CubicEvaluator.js","sourceRoot":"","sources":["../../../../src/curve/spiral/CubicEvaluator.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AACH,yDAAsD;AAEtD;;;;;;GAMG;AACH,MAAsB,cAAe,SAAQ,mCAAgB;IACjD,OAAO,CAAS;IAChB,WAAW,CAAS;IAC9B,YAAsB,UAAkB,EAAE,MAAc;QACtD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IACD,6BAA6B;IACtB,YAAY,CAAC,UAAkB,EAAE,MAAc;QACpD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IACD,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD;;;OAGG;IACI,YAAY,CAAC,WAAmB;QACrC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;QAChC,oGAAoG;QACpG,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;IAC9C,CAAC;IACD,8BAA8B;IACvB,WAAW,CAAC,QAAgB;QACjC,OAAO,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,CAAC;IACD,yDAAyD;IAClD,YAAY,CAAC,SAAiB;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,gEAAgE;IACzD,aAAa,CAAC,SAAiB;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,+DAA+D;IACxD,aAAa,CAAC,SAAiB;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,8BAA8B;IACvB,WAAW,CAAC,QAAgB;QACjC,MAAM,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,yDAAyD;IAClD,YAAY,CAAC,QAAgB;QAClC,MAAM,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;IACvD,CAAC;IACD,gEAAgE;IACzD,aAAa,CAAC,QAAgB;QACnC,MAAM,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtE,CAAC;IACD,+DAA+D;IACxD,aAAa,CAAC,SAAiB;QACpC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrF,CAAC;IACD,8BAA8B;IACvB,WAAW,CAAC,CAAS;QAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9B,CAAC;CACF;AAnED,wCAmEC","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 { XYCurveEvaluator } from \"./XYCurveEvaluator\";\r\n\r\n/**\r\n * Intermediate class for evaluation of bare cubic spirals `y = m*x^3` with x axis from [0..xLength]\r\n * * This implements all the computations among fraction, x, and y.\r\n * * Derived classes implement specialized logic such as (a) precomputing `m` and (b) domain-specific fraction-to-distance\r\n * approximations.\r\n * @internal\r\n */\r\nexport abstract class CubicEvaluator extends XYCurveEvaluator {\r\n protected _cubicM: number;\r\n protected _axisLength: number;\r\n protected constructor(axisLength: number, cubicM: number) {\r\n super();\r\n this._cubicM = cubicM;\r\n this._axisLength = axisLength;\r\n }\r\n /** Update both constants. */\r\n public setConstants(axisLength: number, cubicM: number) {\r\n this._axisLength = axisLength;\r\n this._cubicM = cubicM;\r\n }\r\n public get axisLength() {\r\n return this._axisLength;\r\n }\r\n public get cubicM() {\r\n return this._cubicM;\r\n }\r\n /**\r\n * Apply `scaleFactor` to the xLength and cubicM.\r\n * * Derived classes commonly call this as `super.scaleInPlace()`, and additionally apply the scale to their members.\r\n */\r\n public scaleInPlace(scaleFactor: number) {\r\n this._axisLength *= scaleFactor;\r\n // \"x\" arriving at \"m * x^3\" will be scaled. \"m\" has to be divided by the scale to cancel 2 of the 3\r\n this._cubicM /= (scaleFactor * scaleFactor);\r\n }\r\n /** Evaluate X at fraction. */\r\n public fractionToX(fraction: number): number {\r\n return fraction * this._axisLength;\r\n }\r\n /** Evaluate derivative of X with respect to fraction. */\r\n public fractionToDX(_fraction: number): number {\r\n return this._axisLength;\r\n }\r\n /** Evaluate second derivative of X with respect to fraction. */\r\n public fractionToDDX(_fraction: number): number {\r\n return 0.0;\r\n }\r\n /** Evaluate third derivative of X with respect to fraction. */\r\n public fractionToD3X(_fraction: number): number {\r\n return 0.0;\r\n }\r\n /** Evaluate Y at fraction. */\r\n public fractionToY(fraction: number): number {\r\n const x = fraction * this._axisLength;\r\n return this._cubicM * x * x * x;\r\n }\r\n /** Evaluate derivative of Y with respect to fraction. */\r\n public fractionToDY(fraction: number): number {\r\n const x = fraction * this._axisLength;\r\n return 3.0 * this._cubicM * x * x * this._axisLength;\r\n }\r\n /** Evaluate second derivative of Y with respect to fraction. */\r\n public fractionToDDY(fraction: number): number {\r\n const x = fraction * this._axisLength;\r\n return 6.0 * this._cubicM * x * this._axisLength * this._axisLength;\r\n }\r\n /** Evaluate third derivative of Y with respect to fraction. */\r\n public fractionToD3Y(_fraction: number): number {\r\n return 6.0 * this._cubicM * this._axisLength * this._axisLength * this._axisLength;\r\n }\r\n /** Evaluate fraction at x. */\r\n public xToFraction(x: number): number {\r\n return x / this._axisLength;\r\n }\r\n}\r\n"]}
@@ -1,107 +1,97 @@
1
1
  import { CubicEvaluator } from "./CubicEvaluator";
2
2
  /**
3
3
  * Czech cubic.
4
- * This is y= m*x^3 with
5
- * * x any point on the x axis
6
- * * `fraction` along the spiral goes to `x = fraction * L`
7
- * * m is gamma / (6RL)
4
+ * This is y = m*x^3 with
5
+ * * x any point on the x axis.
6
+ * * `fraction` along the spiral goes to `x = fraction * L`.
7
+ * * m is gamma/(6RL).
8
8
  * * 1/(6RL) is the leading term of the sine series.
9
- * * `gamma = 2R/sqrt (4RR-LL)` pushes y down a little bit to simulate the lost series terms.
10
- * @param localToWorld
11
- * @param nominalL1
12
- * @param nominalR1
13
- * @param activeInterval
9
+ * * `gamma = 2R/sqrt(4RR-LL)` pushes y down a little bit to simulate the lost series terms.
14
10
  * @internal
15
11
  */
16
12
  export declare class CzechSpiralEvaluator extends CubicEvaluator {
17
13
  nominalLength1: number;
18
14
  nominalRadius1: number;
19
- /** Constructor is private. Caller responsible for cubicM validity. */
15
+ /** Constructor is private. Caller responsible for cubicM validity. */
20
16
  private constructor();
21
17
  /**
22
18
  * Return the scale factor between simple x^3 / (6RL) cubic and the czech correction.
23
19
  * * For typical case with l1/R1 smallish, this is just less than 1.0:
24
20
  * (0.25==>0.99215), (0.15==>0.997184), (0.10==>0.998749), (0.05==>999687)
25
- * @param length1
26
- * @param radius1
27
21
  */
28
22
  static gammaConstant(length1: number, radius1: number): number | undefined;
29
23
  /** Compute the czech cubic constant. */
30
24
  static computeCubicM(length1: number, radius1: number): number | undefined;
31
25
  static create(length1: number, radius1: number): CzechSpiralEvaluator | undefined;
32
26
  scaleInPlace(scaleFactor: number): void;
33
- /** return a deep copy of the evaluator */
27
+ /** Return a deep copy of the evaluator. */
34
28
  clone(): CzechSpiralEvaluator;
35
- /** Member by member matchup ... */
29
+ /** Member by member matchup. */
36
30
  isAlmostEqual(other: any): boolean;
37
31
  /**
38
32
  * Return a (fast but mediocre) approximation of spiral length as a function of x axis position.
39
33
  * * This x-to-distance relation is not as precise as the CurvePrimitive method moveSignedDistanceFromFraction.
40
- * * It is supported here for users interested in replicating the Czech distance mapping rather than the more accurate CurvePrimitive measurements.
34
+ * * It is supported here for users interested in replicating the Czech distance mapping rather than the more accurate
35
+ * CurvePrimitive measurements.
41
36
  * @param x distance along the x axis.
42
37
  */
43
38
  xToCzechApproximateDistance(x: number): number;
44
39
  /**
45
40
  * Return the inverse of the `forwardL2R2Map` function.
46
41
  * * The undefined result can only occur for distances outside the usual spirals.
47
- * @param s (approximate) distance along the spiral.
48
- *
42
+ * @param d (approximate) distance along the spiral.
49
43
  */
50
44
  czechApproximateDistanceToX(d: number): number | undefined;
51
45
  /**
52
- * evaluate a series expansion that is used with varying signs (plus or minus 1) in czech and italian spirals.
53
- * @param x distance along the x axis.
54
- */
46
+ * Evaluate a series expansion that is used with varying signs (plus or minus 1) in czech and italian spirals.
47
+ * @param x distance along the x axis.
48
+ */
55
49
  static forwardL2R2Map(x: number, sign: number, length: number, radius: number): number;
56
50
  /**
57
51
  * Return the inverse of the `forwardL2R2Map` function.
58
52
  * * The undefined result can only occur for distances outside the usual spirals.
59
- * @param s (approximate) distance along the spiral.
60
- *
53
+ * @param d (approximate) distance along the spiral.
61
54
  */
62
- static inverseL2R2Map(b: number, sign: number, length: number, radius: number): number | undefined;
55
+ static inverseL2R2Map(d: number, sign: number, length: number, radius: number): number | undefined;
63
56
  }
64
57
  /**
65
58
  * Italian cubic.
66
- * This is y= m*x^3 with
67
- * * x any point on the x axis
68
- * * `fraction` along the spiral goes to `x = fraction * L`
69
- * * m is gamma / (6RL)
59
+ * This is y = m*x^3 with
60
+ * * x any point on the x axis.
61
+ * * `fraction` along the spiral goes to `x = fraction * L`.
62
+ * * m is gamma/(6RL).
70
63
  * * 1/(6RL) is the leading term of the sine series.
71
- * * `gamma = 2R/sqrt (4RR-LL)` pushes y down a little bit to simulate the lost series terms.
72
- * @param localToWorld
73
- * @param nominalL1
74
- * @param nominalR1
75
- * @param activeInterval
64
+ * * `gamma = 2R/sqrt(4RR-LL)` pushes y down a little bit to simulate the lost series terms.
76
65
  * @internal
77
66
  */
78
67
  export declare class ItalianSpiralEvaluator extends CubicEvaluator {
79
68
  nominalLength1: number;
80
69
  nominalRadius1: number;
81
- /** Compute the czech cubic constant.
82
- * ** funky mixture of lengths ....
70
+ /**
71
+ * Compute the czech cubic constant.
72
+ * * Funky mixture of lengths.
83
73
  */
84
74
  private static computeCubicM;
85
- /** Constructor is private. Caller responsible for cubicM validity. */
75
+ /** Constructor is private. Caller responsible for cubicM validity. */
86
76
  private constructor();
87
77
  static create(length1: number, radius1: number): ItalianSpiralEvaluator | undefined;
88
78
  scaleInPlace(scaleFactor: number): void;
89
- /** return a deep copy of the evaluator */
79
+ /** Return a deep copy of the evaluator. */
90
80
  clone(): ItalianSpiralEvaluator;
91
- /** Member by member matchup ... */
81
+ /** Member by member matchup. */
92
82
  isAlmostEqual(other: any): boolean;
93
83
  /**
94
- * Return a (fast but mediocre) approximation of spiral length as a function of x axis position.
95
- * * This x-to-distance relation is not as precise as the CurvePrimitive method moveSignedDistanceFromFraction.
96
- * * It is supported here for users interested in replicating the Czech distance mapping rather than the more accurate CurvePrimitive measurements.
97
- * @param x distance along the x axis.
98
- */
84
+ * Return a (fast but mediocre) approximation of spiral length as a function of x axis position.
85
+ * * This x-to-distance relation is not as precise as the CurvePrimitive method moveSignedDistanceFromFraction.
86
+ * * It is supported here for users interested in replicating the Czech distance mapping rather than the more accurate
87
+ * CurvePrimitive measurements.
88
+ * @param x distance along the x axis.
89
+ */
99
90
  distanceToItalianApproximateX(x: number): number;
100
91
  /**
101
92
  * Return the inverse of the `forwardL2R2Map` function.
102
93
  * * The undefined result can only occur for distances outside the usual spirals.
103
- * @param s (approximate) distance along the spiral.
104
- *
94
+ * @param d (approximate) distance along the spiral.
105
95
  */
106
96
  xToItalianApproximateDistance(d: number): number | undefined;
107
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CzechSpiralEvaluator.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/CzechSpiralEvaluator.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IAE9B,uEAAuE;IACvE,OAAO;IAKP;;;;;;OAMG;WACW,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAGjF,wCAAwC;WAC1B,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;WASnE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAOxE,YAAY,CAAC,WAAW,EAAE,MAAM;IAKhD,0CAA0C;IACnC,KAAK,IAAI,oBAAoB;IACpC,mCAAmC;IAC5B,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAQzC;;;;;OAKG;IACI,2BAA2B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAGrD;;;;;OAKG;IACI,2BAA2B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIjE;;;SAGK;WACS,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAO7F;;;;;OAKG;WACW,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAe1G;AACD;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAuB,SAAQ,cAAc;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAS5B,uEAAuE;IACvE,OAAO;WAKO,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAY1E,YAAY,CAAC,WAAW,EAAE,MAAM;IAKhD,0CAA0C;IACnC,KAAK,IAAI,sBAAsB;IACtC,mCAAmC;IAC5B,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAOzC;;;;;SAKK;IACE,6BAA6B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAGvD;;;;;OAKG;IACI,6BAA6B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGpE"}
1
+ {"version":3,"file":"CzechSpiralEvaluator.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/CzechSpiralEvaluator.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IAC9B,sEAAsE;IACtE,OAAO;IAKP;;;;OAIG;WACW,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAGjF,wCAAwC;WAC1B,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;WAQnE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAMxE,YAAY,CAAC,WAAW,EAAE,MAAM;IAKhD,2CAA2C;IACpC,KAAK,IAAI,oBAAoB;IAGpC,gCAAgC;IACzB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAOzC;;;;;;OAMG;IACI,2BAA2B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAGrD;;;;OAIG;IACI,2BAA2B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAGjE;;;OAGG;WACW,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAO7F;;;;OAIG;WACW,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAiB1G;AAED;;;;;;;;;GASG;AACH,qBAAa,sBAAuB,SAAQ,cAAc;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAQ5B,sEAAsE;IACtE,OAAO;WAKO,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAW1E,YAAY,CAAC,WAAW,EAAE,MAAM;IAKhD,2CAA2C;IACpC,KAAK,IAAI,sBAAsB;IAGtC,gCAAgC;IACzB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAOzC;;;;;;OAMG;IACI,6BAA6B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAGvD;;;;OAIG;IACI,6BAA6B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGpE"}