@itwin/core-geometry 5.3.0-dev.18 → 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 (503) hide show
  1. package/lib/cjs/Constant.js.map +1 -1
  2. package/lib/cjs/Geometry.js.map +1 -1
  3. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  4. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  5. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  7. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  8. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  9. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  10. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  11. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  12. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  13. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  14. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  15. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  16. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  17. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  18. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  19. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  20. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  21. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  22. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  23. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  24. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  25. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  26. package/lib/cjs/core-geometry.js.map +1 -1
  27. package/lib/cjs/curve/Arc3d.js.map +1 -1
  28. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  29. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  30. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  31. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  32. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  33. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  34. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  35. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  36. package/lib/cjs/curve/CurveOps.js.map +1 -1
  37. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  38. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  39. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  40. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  41. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  42. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  43. package/lib/cjs/curve/LineString3d.js.map +1 -1
  44. package/lib/cjs/curve/Loop.js.map +1 -1
  45. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  46. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  47. package/lib/cjs/curve/Path.js.map +1 -1
  48. package/lib/cjs/curve/PointString3d.js.map +1 -1
  49. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  50. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  51. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  52. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  53. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  54. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  55. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  56. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  57. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  58. package/lib/cjs/curve/RegionOps.js.map +1 -1
  59. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  60. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  61. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  62. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  63. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  64. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  65. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  66. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  67. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  68. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  69. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  70. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  71. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  72. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  73. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  74. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  75. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  76. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  77. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  78. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  79. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  80. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  81. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
  82. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  83. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  84. package/lib/cjs/curve/spiral/ClothoidSeries.d.ts +5 -1
  85. package/lib/cjs/curve/spiral/ClothoidSeries.d.ts.map +1 -1
  86. package/lib/cjs/curve/spiral/ClothoidSeries.js +11 -6
  87. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  88. package/lib/cjs/curve/spiral/CubicEvaluator.d.ts +1 -1
  89. package/lib/cjs/curve/spiral/CubicEvaluator.js +1 -1
  90. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  91. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts +6 -6
  92. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +6 -6
  93. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  94. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  95. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +19 -19
  96. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  97. package/lib/cjs/curve/spiral/DirectSpiral3d.js +21 -21
  98. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  99. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +1 -1
  100. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  101. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +3 -2
  102. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  103. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +1 -1
  104. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +1 -1
  105. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  106. package/lib/cjs/curve/spiral/NormalizedTransition.d.ts +8 -6
  107. package/lib/cjs/curve/spiral/NormalizedTransition.d.ts.map +1 -1
  108. package/lib/cjs/curve/spiral/NormalizedTransition.js +10 -6
  109. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  110. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts +1 -1
  111. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +1 -1
  112. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  113. package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts +20 -8
  114. package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
  115. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +20 -8
  116. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  117. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +5 -4
  118. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  119. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  120. package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts.map +1 -1
  121. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  122. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  123. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  124. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  125. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  126. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  127. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  128. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  129. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  130. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  131. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  132. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  133. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  134. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  135. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  136. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  137. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  138. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  139. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  140. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  141. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  142. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  143. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  144. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  145. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  146. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  147. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  148. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  149. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  150. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  151. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  152. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  153. package/lib/cjs/geometry3d/Range.js.map +1 -1
  154. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  155. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  156. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  157. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  158. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  159. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  160. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  161. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  162. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  163. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  164. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  165. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  166. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  167. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  168. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  169. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  170. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  171. package/lib/cjs/numerics/Complex.js.map +1 -1
  172. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  173. package/lib/cjs/numerics/Newton.js.map +1 -1
  174. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  175. package/lib/cjs/numerics/PolarData.js.map +1 -1
  176. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  177. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  178. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  179. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  180. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  181. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  182. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  183. package/lib/cjs/polyface/AuxData.js.map +1 -1
  184. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  185. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  186. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  187. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  188. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  189. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  190. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  191. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -1
  192. package/lib/cjs/polyface/Polyface.js.map +1 -1
  193. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  194. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  195. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  196. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  197. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  198. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  199. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  200. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  201. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  202. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  203. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  204. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  205. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  206. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  207. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  208. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  209. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  210. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  211. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  212. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  213. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  214. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  215. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  216. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  217. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  218. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  219. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  220. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  221. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  222. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  223. package/lib/cjs/solid/Box.js.map +1 -1
  224. package/lib/cjs/solid/Cone.js.map +1 -1
  225. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  226. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  227. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  228. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  229. package/lib/cjs/solid/Sphere.js.map +1 -1
  230. package/lib/cjs/solid/SweepContour.js.map +1 -1
  231. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  232. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  233. package/lib/cjs/topology/Graph.js.map +1 -1
  234. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  235. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  236. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  237. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  238. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  239. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  240. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  241. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  242. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  243. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  244. package/lib/cjs/topology/MaskManager.js.map +1 -1
  245. package/lib/cjs/topology/Merging.js.map +1 -1
  246. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  247. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  248. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  249. package/lib/cjs/topology/Triangulation.js.map +1 -1
  250. package/lib/cjs/topology/Voronoi.js.map +1 -1
  251. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  252. package/lib/esm/Constant.js.map +1 -1
  253. package/lib/esm/Geometry.js.map +1 -1
  254. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  255. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  256. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  257. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  258. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  259. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  260. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  261. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  262. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  263. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  264. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  265. package/lib/esm/bspline/KnotVector.js.map +1 -1
  266. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  267. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  268. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  269. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  270. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  271. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  272. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  273. package/lib/esm/clipping/ClipVector.js.map +1 -1
  274. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  275. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  276. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  277. package/lib/esm/core-geometry.js.map +1 -1
  278. package/lib/esm/curve/Arc3d.js.map +1 -1
  279. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  280. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  281. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  282. package/lib/esm/curve/CurveCollection.js.map +1 -1
  283. package/lib/esm/curve/CurveCurve.js.map +1 -1
  284. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  285. package/lib/esm/curve/CurveFactory.js.map +1 -1
  286. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  287. package/lib/esm/curve/CurveOps.js.map +1 -1
  288. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  289. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  290. package/lib/esm/curve/CurveTypes.js.map +1 -1
  291. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  292. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  293. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  294. package/lib/esm/curve/LineString3d.js.map +1 -1
  295. package/lib/esm/curve/Loop.js.map +1 -1
  296. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  297. package/lib/esm/curve/ParityRegion.js.map +1 -1
  298. package/lib/esm/curve/Path.js.map +1 -1
  299. package/lib/esm/curve/PointString3d.js.map +1 -1
  300. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  301. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  302. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  303. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  304. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  305. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  306. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  307. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  308. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  309. package/lib/esm/curve/RegionOps.js.map +1 -1
  310. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  311. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  312. package/lib/esm/curve/UnionRegion.js.map +1 -1
  313. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  314. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  315. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  316. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  317. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  318. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  319. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  320. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  321. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  322. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  323. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  324. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  325. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  326. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  327. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  328. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  329. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  330. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  331. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  332. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
  333. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  334. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  335. package/lib/esm/curve/spiral/ClothoidSeries.d.ts +5 -1
  336. package/lib/esm/curve/spiral/ClothoidSeries.d.ts.map +1 -1
  337. package/lib/esm/curve/spiral/ClothoidSeries.js +11 -6
  338. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  339. package/lib/esm/curve/spiral/CubicEvaluator.d.ts +1 -1
  340. package/lib/esm/curve/spiral/CubicEvaluator.js +1 -1
  341. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  342. package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts +6 -6
  343. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +6 -6
  344. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  345. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  346. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +19 -19
  347. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  348. package/lib/esm/curve/spiral/DirectSpiral3d.js +21 -21
  349. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  350. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +1 -1
  351. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  352. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +3 -2
  353. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  354. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +1 -1
  355. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +1 -1
  356. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  357. package/lib/esm/curve/spiral/NormalizedTransition.d.ts +8 -6
  358. package/lib/esm/curve/spiral/NormalizedTransition.d.ts.map +1 -1
  359. package/lib/esm/curve/spiral/NormalizedTransition.js +10 -6
  360. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  361. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts +1 -1
  362. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +1 -1
  363. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  364. package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts +20 -8
  365. package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
  366. package/lib/esm/curve/spiral/TransitionConditionalProperties.js +20 -8
  367. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  368. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +5 -4
  369. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  370. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  371. package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts.map +1 -1
  372. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  373. package/lib/esm/geometry3d/Angle.js.map +1 -1
  374. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  375. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  376. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  377. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  378. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  379. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  380. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  381. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  382. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  383. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  384. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  385. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  386. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  387. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  388. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  389. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  390. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  391. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  392. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  393. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  394. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  395. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  396. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  397. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  398. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  399. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  400. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  401. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  402. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  403. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  404. package/lib/esm/geometry3d/Range.js.map +1 -1
  405. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  406. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  407. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  408. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  409. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  410. package/lib/esm/geometry3d/Transform.js.map +1 -1
  411. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  412. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  413. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  414. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  415. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  416. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  417. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  418. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  419. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  420. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  421. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  422. package/lib/esm/numerics/Complex.js.map +1 -1
  423. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  424. package/lib/esm/numerics/Newton.js.map +1 -1
  425. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  426. package/lib/esm/numerics/PolarData.js.map +1 -1
  427. package/lib/esm/numerics/Polynomials.js.map +1 -1
  428. package/lib/esm/numerics/Quadrature.js.map +1 -1
  429. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  430. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  431. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  432. package/lib/esm/numerics/UnionFind.js.map +1 -1
  433. package/lib/esm/numerics/UsageSums.js.map +1 -1
  434. package/lib/esm/polyface/AuxData.js.map +1 -1
  435. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  436. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  437. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  438. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  439. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  440. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  441. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  442. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -1
  443. package/lib/esm/polyface/Polyface.js.map +1 -1
  444. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  445. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  446. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  447. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  448. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  449. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  450. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  451. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  452. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  453. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  454. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  455. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  456. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  457. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  458. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  459. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  460. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  461. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  462. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  463. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  464. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  465. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  466. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  467. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  468. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  469. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  470. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  471. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  472. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  473. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  474. package/lib/esm/solid/Box.js.map +1 -1
  475. package/lib/esm/solid/Cone.js.map +1 -1
  476. package/lib/esm/solid/LinearSweep.js.map +1 -1
  477. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  478. package/lib/esm/solid/RuledSweep.js.map +1 -1
  479. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  480. package/lib/esm/solid/Sphere.js.map +1 -1
  481. package/lib/esm/solid/SweepContour.js.map +1 -1
  482. package/lib/esm/solid/TorusPipe.js.map +1 -1
  483. package/lib/esm/topology/ChainMerge.js.map +1 -1
  484. package/lib/esm/topology/Graph.js.map +1 -1
  485. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  486. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  487. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  488. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  489. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  490. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  491. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  492. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  493. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  494. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  495. package/lib/esm/topology/MaskManager.js.map +1 -1
  496. package/lib/esm/topology/Merging.js.map +1 -1
  497. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  498. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  499. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  500. package/lib/esm/topology/Triangulation.js.map +1 -1
  501. package/lib/esm/topology/Voronoi.js.map +1 -1
  502. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  503. package/package.json +3 -3
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { XYCurveEvaluator } from "./XYCurveEvaluator";
9
9
  /**
10
- * Intermediate class for evaluation of bare cubic spirals `y = m ^x^3` with x axis from [0..xLength]
10
+ * Intermediate class for evaluation of bare cubic spirals `y = m*x^3` with x axis from [0..xLength]
11
11
  * * This implements all the computations among fraction, x, and y.
12
12
  * * Derived classes implement specialized logic such as (a) precomputing `m` and (b) domain-specific fraction-to-distance
13
13
  * approximations.
@@ -1 +1 @@
1
- {"version":3,"file":"CubicEvaluator.js","sourceRoot":"","sources":["../../../../src/curve/spiral/CubicEvaluator.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,OAAgB,cAAe,SAAQ,gBAAgB;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","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\n/**\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\n * 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() {\n return this._axisLength;\n }\n public get cubicM() {\n return this._cubicM;\n }\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 */\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 {\n return fraction * this._axisLength;\n }\n /** Evaluate derivative of X with respect to fraction. */\n public fractionToDX(_fraction: number): number {\n return this._axisLength;\n }\n /** Evaluate second derivative of X with respect to fraction. */\n public fractionToDDX(_fraction: number): number {\n return 0.0;\n }\n /** Evaluate third derivative of X with respect to fraction. */\n public fractionToD3X(_fraction: number): number {\n return 0.0;\n }\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 {\n return x / this._axisLength;\n }\n}\n"]}
1
+ {"version":3,"file":"CubicEvaluator.js","sourceRoot":"","sources":["../../../../src/curve/spiral/CubicEvaluator.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,OAAgB,cAAe,SAAQ,gBAAgB;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","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,12 +1,12 @@
1
1
  import { CubicEvaluator } from "./CubicEvaluator";
2
2
  /**
3
3
  * Czech cubic.
4
- * This is y= m*x^3 with
4
+ * This is y = m*x^3 with
5
5
  * * x any point on the x axis.
6
6
  * * `fraction` along the spiral goes to `x = fraction * L`.
7
- * * m is gamma / (6RL).
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.
9
+ * * `gamma = 2R/sqrt(4RR-LL)` pushes y down a little bit to simulate the lost series terms.
10
10
  * @internal
11
11
  */
12
12
  export declare class CzechSpiralEvaluator extends CubicEvaluator {
@@ -56,12 +56,12 @@ export declare class CzechSpiralEvaluator extends CubicEvaluator {
56
56
  }
57
57
  /**
58
58
  * Italian cubic.
59
- * This is y= m*x^3 with
59
+ * This is y = m*x^3 with
60
60
  * * x any point on the x axis.
61
61
  * * `fraction` along the spiral goes to `x = fraction * L`.
62
- * * m is gamma / (6RL).
62
+ * * m is gamma/(6RL).
63
63
  * * 1/(6RL) is the leading term of the sine series.
64
- * * `gamma = 2R/sqrt (4RR-LL)` pushes y down a little bit to simulate the lost series terms.
64
+ * * `gamma = 2R/sqrt(4RR-LL)` pushes y down a little bit to simulate the lost series terms.
65
65
  * @internal
66
66
  */
67
67
  export declare class ItalianSpiralEvaluator extends CubicEvaluator {
@@ -10,12 +10,12 @@ import { CubicEvaluator } from "./CubicEvaluator";
10
10
  import { SimpleNewton } from "../../numerics/Newton";
11
11
  /**
12
12
  * Czech cubic.
13
- * This is y= m*x^3 with
13
+ * This is y = m*x^3 with
14
14
  * * x any point on the x axis.
15
15
  * * `fraction` along the spiral goes to `x = fraction * L`.
16
- * * m is gamma / (6RL).
16
+ * * m is gamma/(6RL).
17
17
  * * 1/(6RL) is the leading term of the sine series.
18
- * * `gamma = 2R/sqrt (4RR-LL)` pushes y down a little bit to simulate the lost series terms.
18
+ * * `gamma = 2R/sqrt(4RR-LL)` pushes y down a little bit to simulate the lost series terms.
19
19
  * @internal
20
20
  */
21
21
  export class CzechSpiralEvaluator extends CubicEvaluator {
@@ -117,12 +117,12 @@ export class CzechSpiralEvaluator extends CubicEvaluator {
117
117
  }
118
118
  /**
119
119
  * Italian cubic.
120
- * This is y= m*x^3 with
120
+ * This is y = m*x^3 with
121
121
  * * x any point on the x axis.
122
122
  * * `fraction` along the spiral goes to `x = fraction * L`.
123
- * * m is gamma / (6RL).
123
+ * * m is gamma/(6RL).
124
124
  * * 1/(6RL) is the leading term of the sine series.
125
- * * `gamma = 2R/sqrt (4RR-LL)` pushes y down a little bit to simulate the lost series terms.
125
+ * * `gamma = 2R/sqrt(4RR-LL)` pushes y down a little bit to simulate the lost series terms.
126
126
  * @internal
127
127
  */
128
128
  export class ItalianSpiralEvaluator extends CubicEvaluator {
@@ -1 +1 @@
1
- {"version":3,"file":"CzechSpiralEvaluator.js","sourceRoot":"","sources":["../../../../src/curve/spiral/CzechSpiralEvaluator.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 { CubicEvaluator } from \"./CubicEvaluator\";\nimport { SimpleNewton } from \"../../numerics/Newton\";\n\n/**\n * Czech cubic.\n * This is y= m*x^3 with\n * * x any point on the x axis.\n * * `fraction` along the spiral goes to `x = fraction * L`.\n * * m is gamma / (6RL).\n * * 1/(6RL) is the leading term of the sine series.\n * * `gamma = 2R/sqrt (4RR-LL)` pushes y down a little bit to simulate the lost series terms.\n * @internal\n */\nexport class CzechSpiralEvaluator extends CubicEvaluator {\n public nominalLength1: number;\n public nominalRadius1: number;\n /** Constructor is private. Caller responsible for cubicM validity. */\n private constructor(length1: number, radius1: number, cubicM: number) {\n super(length1, cubicM);\n this.nominalLength1 = length1;\n this.nominalRadius1 = radius1;\n }\n /**\n * Return the scale factor between simple x^3 / (6RL) cubic and the czech correction.\n * * For typical case with l1/R1 smallish, this is just less than 1.0:\n * (0.25==>0.99215), (0.15==>0.997184), (0.10==>0.998749), (0.05==>999687)\n */\n public static gammaConstant(length1: number, radius1: number): number | undefined {\n return 2.0 * radius1 / Math.sqrt(4.0 * radius1 * radius1 - length1 * length1);\n }\n /** Compute the czech cubic constant. */\n public static computeCubicM(length1: number, radius1: number): number | undefined {\n const gamma = CzechSpiralEvaluator.gammaConstant(length1, radius1);\n // in the private update method, the LR values should have been vetted\n if (gamma === undefined)\n return undefined;\n // if radius is negative, it shows up in gamma; but the a signed denominator undoes it so take abs of denominator\n return gamma / Math.abs((6.0 * radius1 * length1));\n }\n public static create(length1: number, radius1: number): CzechSpiralEvaluator | undefined {\n const m = this.computeCubicM(length1, radius1);\n if (m === undefined)\n return undefined;\n return new CzechSpiralEvaluator(length1, radius1, m);\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(): CzechSpiralEvaluator {\n return new CzechSpiralEvaluator(this.nominalLength1, this.nominalRadius1, this.cubicM);\n }\n /** Member by member matchup. */\n public isAlmostEqual(other: any): boolean {\n if (other instanceof CzechSpiralEvaluator) {\n return Geometry.isSameCoordinate(this.nominalLength1, other.nominalLength1)\n && Geometry.isSameCoordinate(this.nominalRadius1, other.nominalRadius1);\n }\n return false;\n }\n /**\n * Return a (fast but mediocre) approximation of spiral length as a function of x axis position.\n * * This x-to-distance relation is not as precise as the CurvePrimitive method moveSignedDistanceFromFraction.\n * * It is supported here for users interested in replicating the Czech distance mapping rather than the more accurate\n * CurvePrimitive measurements.\n * @param x distance along the x axis.\n */\n public xToCzechApproximateDistance(x: number): number {\n return CzechSpiralEvaluator.forwardL2R2Map(x, 1.0, this.nominalLength1, this.nominalRadius1);\n }\n /**\n * Return the inverse of the `forwardL2R2Map` function.\n * * The undefined result can only occur for distances outside the usual spirals.\n * @param d (approximate) distance along the spiral.\n */\n public czechApproximateDistanceToX(d: number): number | undefined {\n return CzechSpiralEvaluator.inverseL2R2Map(d, 1.0, this.nominalLength1, this.nominalRadius1);\n }\n /**\n * Evaluate a series expansion that is used with varying signs (plus or minus 1) in czech and italian spirals.\n * @param x distance along the x axis.\n */\n public static forwardL2R2Map(x: number, sign: number, length: number, radius: number): number {\n const l2 = length * length;\n const r2 = radius * radius;\n const Q = 4.0 * r2 - l2;\n const xx = x * x;\n return x * (1.0 + sign * xx * xx / (10.0 * Q * l2));\n }\n /**\n * Return the inverse of the `forwardL2R2Map` function.\n * * The undefined result can only occur for distances outside the usual spirals.\n * @param d (approximate) distance along the spiral.\n */\n public static inverseL2R2Map(d: number, sign: number, length: number, radius: number): number | undefined {\n const l2 = length * length;\n const r2 = radius * radius;\n const Q = 4.0 * r2 - l2;\n const a = sign / (10.0 * Q * l2);\n return SimpleNewton.runNewton1D(\n d,\n (x: number) => {\n const xx = x * x;\n return x * (1.0 + xx * xx * a) - d;\n },\n (x: number) => {\n const xx = x * x;\n return 1.0 + 5 * xx * xx * a;\n },\n );\n }\n}\n\n/**\n * Italian cubic.\n * This is y= m*x^3 with\n * * x any point on the x axis.\n * * `fraction` along the spiral goes to `x = fraction * L`.\n * * m is gamma / (6RL).\n * * 1/(6RL) is the leading term of the sine series.\n * * `gamma = 2R/sqrt (4RR-LL)` pushes y down a little bit to simulate the lost series terms.\n * @internal\n */\nexport class ItalianSpiralEvaluator extends CubicEvaluator {\n public nominalLength1: number;\n public nominalRadius1: number;\n\n /**\n * Compute the czech cubic constant.\n * * Funky mixture of lengths.\n */\n private static computeCubicM(lengthXByForward: number, radius1: number): number | undefined {\n const gamma = CzechSpiralEvaluator.gammaConstant(lengthXByForward, radius1);\n // in the private update method, the LR values should have been vetted\n if (gamma === undefined)\n return undefined;\n // if radius is negative, it shows up in gamma; but the a signed denominator undoes it so take abs of denominator\n return gamma / Math.abs((6.0 * radius1 * lengthXByForward));\n }\n /** Constructor is private. Caller responsible for cubicM validity. */\n private constructor(length1: number, radius1: number, lengthX: number, cubicM: number) {\n super(lengthX, cubicM);\n this.nominalLength1 = length1;\n this.nominalRadius1 = radius1;\n }\n public static create(length1: number, radius1: number): ItalianSpiralEvaluator | undefined {\n // this seems goofy.; lengthX from forward, then invert for another but that's what the native code does too\n const lengthX = CzechSpiralEvaluator.forwardL2R2Map(length1, -1.0, length1, radius1);\n const lengthX1 = CzechSpiralEvaluator.inverseL2R2Map(length1, 1.0, lengthX, radius1);\n if (lengthX1 === undefined)\n return undefined;\n const m = ItalianSpiralEvaluator.computeCubicM(lengthX, radius1);\n if (m === undefined)\n return undefined;\n return new ItalianSpiralEvaluator(length1, radius1, lengthX1, m);\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(): ItalianSpiralEvaluator {\n return new ItalianSpiralEvaluator(this.nominalLength1, this.nominalRadius1, super.axisLength, this.cubicM);\n }\n /** Member by member matchup. */\n public isAlmostEqual(other: any): boolean {\n if (other instanceof ItalianSpiralEvaluator) {\n return Geometry.isSameCoordinate(this.nominalLength1, other.nominalLength1)\n && Geometry.isSameCoordinate(this.nominalRadius1, other.nominalRadius1);\n }\n return false;\n }\n /**\n * Return a (fast but mediocre) approximation of spiral length as a function of x axis position.\n * * This x-to-distance relation is not as precise as the CurvePrimitive method moveSignedDistanceFromFraction.\n * * It is supported here for users interested in replicating the Czech distance mapping rather than the more accurate\n * CurvePrimitive measurements.\n * @param x distance along the x axis.\n */\n public distanceToItalianApproximateX(x: number): number {\n return CzechSpiralEvaluator.forwardL2R2Map(x, -1.0, this.nominalLength1, this.nominalRadius1);\n }\n /**\n * Return the inverse of the `forwardL2R2Map` function.\n * * The undefined result can only occur for distances outside the usual spirals.\n * @param d (approximate) distance along the spiral.\n */\n public xToItalianApproximateDistance(d: number): number | undefined {\n return CzechSpiralEvaluator.inverseL2R2Map(d, -1.0, this.nominalLength1, this.nominalRadius1);\n }\n}\n"]}
1
+ {"version":3,"file":"CzechSpiralEvaluator.js","sourceRoot":"","sources":["../../../../src/curve/spiral/CzechSpiralEvaluator.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 { CubicEvaluator } from \"./CubicEvaluator\";\r\nimport { SimpleNewton } from \"../../numerics/Newton\";\r\n\r\n/**\r\n * Czech cubic.\r\n * This is y = m*x^3 with\r\n * * x any point on the x axis.\r\n * * `fraction` along the spiral goes to `x = fraction * L`.\r\n * * m is gamma/(6RL).\r\n * * 1/(6RL) is the leading term of the sine series.\r\n * * `gamma = 2R/sqrt(4RR-LL)` pushes y down a little bit to simulate the lost series terms.\r\n * @internal\r\n */\r\nexport class CzechSpiralEvaluator 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, cubicM: number) {\r\n super(length1, cubicM);\r\n this.nominalLength1 = length1;\r\n this.nominalRadius1 = radius1;\r\n }\r\n /**\r\n * Return the scale factor between simple x^3 / (6RL) cubic and the czech correction.\r\n * * For typical case with l1/R1 smallish, this is just less than 1.0:\r\n * (0.25==>0.99215), (0.15==>0.997184), (0.10==>0.998749), (0.05==>999687)\r\n */\r\n public static gammaConstant(length1: number, radius1: number): number | undefined {\r\n return 2.0 * radius1 / Math.sqrt(4.0 * radius1 * radius1 - length1 * length1);\r\n }\r\n /** Compute the czech cubic constant. */\r\n public static computeCubicM(length1: number, radius1: number): number | undefined {\r\n const gamma = CzechSpiralEvaluator.gammaConstant(length1, radius1);\r\n // in the private update method, the LR values should have been vetted\r\n if (gamma === undefined)\r\n return undefined;\r\n // if radius is negative, it shows up in gamma; but the a signed denominator undoes it so take abs of denominator\r\n return gamma / Math.abs((6.0 * radius1 * length1));\r\n }\r\n public static create(length1: number, radius1: number): CzechSpiralEvaluator | undefined {\r\n const m = this.computeCubicM(length1, radius1);\r\n if (m === undefined)\r\n return undefined;\r\n return new CzechSpiralEvaluator(length1, radius1, 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(): CzechSpiralEvaluator {\r\n return new CzechSpiralEvaluator(this.nominalLength1, this.nominalRadius1, this.cubicM);\r\n }\r\n /** Member by member matchup. */\r\n public isAlmostEqual(other: any): boolean {\r\n if (other instanceof CzechSpiralEvaluator) {\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 /**\r\n * Return a (fast but mediocre) approximation of spiral length as a function of x axis position.\r\n * * This x-to-distance relation is not as precise as the CurvePrimitive method moveSignedDistanceFromFraction.\r\n * * It is supported here for users interested in replicating the Czech distance mapping rather than the more accurate\r\n * CurvePrimitive measurements.\r\n * @param x distance along the x axis.\r\n */\r\n public xToCzechApproximateDistance(x: number): number {\r\n return CzechSpiralEvaluator.forwardL2R2Map(x, 1.0, this.nominalLength1, this.nominalRadius1);\r\n }\r\n /**\r\n * Return the inverse of the `forwardL2R2Map` function.\r\n * * The undefined result can only occur for distances outside the usual spirals.\r\n * @param d (approximate) distance along the spiral.\r\n */\r\n public czechApproximateDistanceToX(d: number): number | undefined {\r\n return CzechSpiralEvaluator.inverseL2R2Map(d, 1.0, this.nominalLength1, this.nominalRadius1);\r\n }\r\n /**\r\n * Evaluate a series expansion that is used with varying signs (plus or minus 1) in czech and italian spirals.\r\n * @param x distance along the x axis.\r\n */\r\n public static forwardL2R2Map(x: number, sign: number, length: number, radius: number): number {\r\n const l2 = length * length;\r\n const r2 = radius * radius;\r\n const Q = 4.0 * r2 - l2;\r\n const xx = x * x;\r\n return x * (1.0 + sign * xx * xx / (10.0 * Q * l2));\r\n }\r\n /**\r\n * Return the inverse of the `forwardL2R2Map` function.\r\n * * The undefined result can only occur for distances outside the usual spirals.\r\n * @param d (approximate) distance along the spiral.\r\n */\r\n public static inverseL2R2Map(d: number, sign: number, length: number, radius: number): number | undefined {\r\n const l2 = length * length;\r\n const r2 = radius * radius;\r\n const Q = 4.0 * r2 - l2;\r\n const a = sign / (10.0 * Q * l2);\r\n return SimpleNewton.runNewton1D(\r\n d,\r\n (x: number) => {\r\n const xx = x * x;\r\n return x * (1.0 + xx * xx * a) - d;\r\n },\r\n (x: number) => {\r\n const xx = x * x;\r\n return 1.0 + 5 * xx * xx * a;\r\n },\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Italian cubic.\r\n * This is y = m*x^3 with\r\n * * x any point on the x axis.\r\n * * `fraction` along the spiral goes to `x = fraction * L`.\r\n * * m is gamma/(6RL).\r\n * * 1/(6RL) is the leading term of the sine series.\r\n * * `gamma = 2R/sqrt(4RR-LL)` pushes y down a little bit to simulate the lost series terms.\r\n * @internal\r\n */\r\nexport class ItalianSpiralEvaluator extends CubicEvaluator {\r\n public nominalLength1: number;\r\n public nominalRadius1: number;\r\n\r\n /**\r\n * Compute the czech cubic constant.\r\n * * Funky mixture of lengths.\r\n */\r\n private static computeCubicM(lengthXByForward: number, radius1: number): number | undefined {\r\n const gamma = CzechSpiralEvaluator.gammaConstant(lengthXByForward, radius1);\r\n // in the private update method, the LR values should have been vetted\r\n if (gamma === undefined)\r\n return undefined;\r\n // if radius is negative, it shows up in gamma; but the a signed denominator undoes it so take abs of denominator\r\n return gamma / Math.abs((6.0 * radius1 * lengthXByForward));\r\n }\r\n /** Constructor is private. Caller responsible for cubicM validity. */\r\n private constructor(length1: number, radius1: number, lengthX: number, cubicM: number) {\r\n super(lengthX, cubicM);\r\n this.nominalLength1 = length1;\r\n this.nominalRadius1 = radius1;\r\n }\r\n public static create(length1: number, radius1: number): ItalianSpiralEvaluator | undefined {\r\n // this seems goofy.; lengthX from forward, then invert for another but that's what the native code does too\r\n const lengthX = CzechSpiralEvaluator.forwardL2R2Map(length1, -1.0, length1, radius1);\r\n const lengthX1 = CzechSpiralEvaluator.inverseL2R2Map(length1, 1.0, lengthX, radius1);\r\n if (lengthX1 === undefined)\r\n return undefined;\r\n const m = ItalianSpiralEvaluator.computeCubicM(lengthX, radius1);\r\n if (m === undefined)\r\n return undefined;\r\n return new ItalianSpiralEvaluator(length1, radius1, lengthX1, 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(): ItalianSpiralEvaluator {\r\n return new ItalianSpiralEvaluator(this.nominalLength1, this.nominalRadius1, super.axisLength, this.cubicM);\r\n }\r\n /** Member by member matchup. */\r\n public isAlmostEqual(other: any): boolean {\r\n if (other instanceof ItalianSpiralEvaluator) {\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 /**\r\n * Return a (fast but mediocre) approximation of spiral length as a function of x axis position.\r\n * * This x-to-distance relation is not as precise as the CurvePrimitive method moveSignedDistanceFromFraction.\r\n * * It is supported here for users interested in replicating the Czech distance mapping rather than the more accurate\r\n * CurvePrimitive measurements.\r\n * @param x distance along the x axis.\r\n */\r\n public distanceToItalianApproximateX(x: number): number {\r\n return CzechSpiralEvaluator.forwardL2R2Map(x, -1.0, this.nominalLength1, this.nominalRadius1);\r\n }\r\n /**\r\n * Return the inverse of the `forwardL2R2Map` function.\r\n * * The undefined result can only occur for distances outside the usual spirals.\r\n * @param d (approximate) distance along the spiral.\r\n */\r\n public xToItalianApproximateDistance(d: number): number | undefined {\r\n return CzechSpiralEvaluator.inverseL2R2Map(d, -1.0, this.nominalLength1, this.nominalRadius1);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DirectHalfCosineSpiralEvaluator.js","sourceRoot":"","sources":["../../../../src/curve/spiral/DirectHalfCosineSpiralEvaluator.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 { XYCurveEvaluator } from \"./XYCurveEvaluator\";\nimport { SimpleNewton } from \"../../numerics/Newton\";\n\n/**\n * @internal\n */\nexport class DirectHalfCosineSpiralEvaluator extends XYCurveEvaluator {\n public nominalLength1: number;\n public nominalRadius1: number;\n private _c: number;\n private _c1: number;\n private _c2: number;\n public constructor(length1: number, radius1: number) {\n super();\n this.nominalLength1 = length1;\n this.nominalRadius1 = radius1;\n const pi = Math.PI;\n this._c1 = 1.0 / (2.0 * pi * pi);\n this._c2 = 0.25;\n this._c = 0.0; // TO BE UPDATED BELOW\n this.updateConstants();\n }\n private updateConstants() {\n this._c = this.nominalLength1 * this.nominalLength1 / this.nominalRadius1;\n }\n public scaleInPlace(scaleFactor: number) {\n this.nominalLength1 *= scaleFactor;\n this.nominalRadius1 *= scaleFactor;\n this.updateConstants();\n }\n /** Return a deep copy of the evaluator. */\n public clone(): DirectHalfCosineSpiralEvaluator {\n return new DirectHalfCosineSpiralEvaluator(this.nominalLength1, this.nominalRadius1);\n }\n /** Member by member matchup. */\n public isAlmostEqual(other: any): boolean {\n if (other instanceof DirectHalfCosineSpiralEvaluator) {\n return Geometry.isSameCoordinate(this.nominalLength1, other.nominalLength1)\n && Geometry.isSameCoordinate(this.nominalRadius1, other.nominalRadius1);\n // remark: c,c1,c2 are computed, need not be tested.\n }\n return false;\n }\n /** Evaluate X at fractional position. */\n public fractionToX(fraction: number): number {\n return fraction * this.nominalLength1;\n }\n /** Evaluate Y at fractional position. */\n public fractionToY(fraction: number): number {\n const theta = fraction * Math.PI;\n return this._c * (this._c2 * fraction * fraction - this._c1 * (1.0 - Math.cos(theta)));\n }\n /** Evaluate derivative of X with respect to fraction at fractional position. */\n public fractionToDX(_fraction: number): number {\n return this.nominalLength1;\n }\n /** Evaluate derivative of Y with respect to fraction at fractional position. */\n public fractionToDY(fraction: number): number {\n const pi = Math.PI;\n const theta = fraction * pi;\n return this._c * (2.0 * this._c2 * fraction - this._c1 * pi * Math.sin(theta));\n }\n /** Evaluate second derivative of X with respect to fraction at fractional position. */\n public fractionToDDX(_fraction: number): number {\n return 0.0;\n }\n /** Evaluate third derivative of Y with respect to fraction at fractional position. */\n public fractionToDDY(fraction: number): number {\n const pi = Math.PI;\n const theta = fraction * pi;\n return this._c * (2.0 * this._c2 - this._c1 * pi * pi * Math.cos(theta));\n }\n /** Evaluate second derivative of X with respect to fraction at fractional position. */\n public fractionToD3X(_fraction: number): number {\n return 0.0;\n }\n /** Evaluate third derivative of Y with respect to fraction at fractional position. */\n public fractionToD3Y(fraction: number): number {\n const pi = Math.PI;\n const theta = fraction * pi;\n return this._c * this._c1 * pi * pi * pi * Math.sin(theta);\n }\n /** Return the magnitude of the first vector at fractional coordinate. */\n public override fractionToTangentMagnitude(fraction: number): number {\n return Geometry.hypotenuseXY(this.fractionToDX(fraction), this.fractionToDY(fraction));\n }\n /** Invert the fractionToX function for given X. */\n public xToFraction(x: number): number | undefined {\n const fraction0 = x / this.nominalLength1;\n const fraction1 = SimpleNewton.runNewton1D(\n fraction0,\n (f: number) => (this.fractionToX(f) - x),\n (f: number) => this.fractionToDX(f),\n );\n if (fraction1 === undefined)\n return undefined;\n return fraction1;\n }\n}\n"]}
1
+ {"version":3,"file":"DirectHalfCosineSpiralEvaluator.js","sourceRoot":"","sources":["../../../../src/curve/spiral/DirectHalfCosineSpiralEvaluator.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 { XYCurveEvaluator } from \"./XYCurveEvaluator\";\r\nimport { SimpleNewton } from \"../../numerics/Newton\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class DirectHalfCosineSpiralEvaluator extends XYCurveEvaluator {\r\n public nominalLength1: number;\r\n public nominalRadius1: number;\r\n private _c: number;\r\n private _c1: number;\r\n private _c2: number;\r\n public constructor(length1: number, radius1: number) {\r\n super();\r\n this.nominalLength1 = length1;\r\n this.nominalRadius1 = radius1;\r\n const pi = Math.PI;\r\n this._c1 = 1.0 / (2.0 * pi * pi);\r\n this._c2 = 0.25;\r\n this._c = 0.0; // TO BE UPDATED BELOW\r\n this.updateConstants();\r\n }\r\n private updateConstants() {\r\n this._c = this.nominalLength1 * this.nominalLength1 / this.nominalRadius1;\r\n }\r\n public scaleInPlace(scaleFactor: number) {\r\n this.nominalLength1 *= scaleFactor;\r\n this.nominalRadius1 *= scaleFactor;\r\n this.updateConstants();\r\n }\r\n /** Return a deep copy of the evaluator. */\r\n public clone(): DirectHalfCosineSpiralEvaluator {\r\n return new DirectHalfCosineSpiralEvaluator(this.nominalLength1, this.nominalRadius1);\r\n }\r\n /** Member by member matchup. */\r\n public isAlmostEqual(other: any): boolean {\r\n if (other instanceof DirectHalfCosineSpiralEvaluator) {\r\n return Geometry.isSameCoordinate(this.nominalLength1, other.nominalLength1)\r\n && Geometry.isSameCoordinate(this.nominalRadius1, other.nominalRadius1);\r\n // remark: c,c1,c2 are computed, need not be tested.\r\n }\r\n return false;\r\n }\r\n /** Evaluate X at fractional position. */\r\n public fractionToX(fraction: number): number {\r\n return fraction * this.nominalLength1;\r\n }\r\n /** Evaluate Y at fractional position. */\r\n public fractionToY(fraction: number): number {\r\n const theta = fraction * Math.PI;\r\n return this._c * (this._c2 * fraction * fraction - this._c1 * (1.0 - Math.cos(theta)));\r\n }\r\n /** Evaluate derivative of X with respect to fraction at fractional position. */\r\n public fractionToDX(_fraction: number): number {\r\n return this.nominalLength1;\r\n }\r\n /** Evaluate derivative of Y with respect to fraction at fractional position. */\r\n public fractionToDY(fraction: number): number {\r\n const pi = Math.PI;\r\n const theta = fraction * pi;\r\n return this._c * (2.0 * this._c2 * fraction - this._c1 * pi * Math.sin(theta));\r\n }\r\n /** Evaluate second derivative of X with respect to fraction at fractional position. */\r\n public fractionToDDX(_fraction: number): number {\r\n return 0.0;\r\n }\r\n /** Evaluate third derivative of Y with respect to fraction at fractional position. */\r\n public fractionToDDY(fraction: number): number {\r\n const pi = Math.PI;\r\n const theta = fraction * pi;\r\n return this._c * (2.0 * this._c2 - this._c1 * pi * pi * Math.cos(theta));\r\n }\r\n /** Evaluate second derivative of X with respect to fraction at fractional position. */\r\n public fractionToD3X(_fraction: number): number {\r\n return 0.0;\r\n }\r\n /** Evaluate third derivative of Y with respect to fraction at fractional position. */\r\n public fractionToD3Y(fraction: number): number {\r\n const pi = Math.PI;\r\n const theta = fraction * pi;\r\n return this._c * this._c1 * pi * pi * pi * Math.sin(theta);\r\n }\r\n /** Return the magnitude of the first vector at fractional coordinate. */\r\n public override fractionToTangentMagnitude(fraction: number): number {\r\n return Geometry.hypotenuseXY(this.fractionToDX(fraction), this.fractionToDY(fraction));\r\n }\r\n /** Invert the fractionToX function for given X. */\r\n public xToFraction(x: number): number | undefined {\r\n const fraction0 = x / this.nominalLength1;\r\n const fraction1 = SimpleNewton.runNewton1D(\r\n fraction0,\r\n (f: number) => (this.fractionToX(f) - x),\r\n (f: number) => this.fractionToDX(f),\r\n );\r\n if (fraction1 === undefined)\r\n return undefined;\r\n return fraction1;\r\n }\r\n}\r\n"]}
@@ -79,23 +79,12 @@ export declare class DirectSpiral3d extends TransitionSpiral3d {
79
79
  * @param activeInterval (optional) active interval (as fractions of nominalL1)
80
80
  */
81
81
  static createTruncatedClothoid(spiralType: string, localToWorld: Transform, numXTerm: number, numYTerm: number, originalProperties: TransitionConditionalProperties | undefined, nominalL1: number, nominalR1: number, activeInterval: Segment1d | undefined): DirectSpiral3d | undefined;
82
- /**
83
- * Create a Japanese spiral clothoid approximation.
84
- * * X is 1 terms of the clothoid series as a function of nominal distance along.
85
- * * Y is 1 terms of the clothoid series as a function of nominal distance along.
86
- * * Remark: This is identical to the ChineseCubic.
87
- * @param localToWorld axes with inflection at origin, tangent along x axis.
88
- * @param nominalL1 nominal length as used in series LR terms.
89
- * @param nominalR1 nominal final radius as used in series LR terms.
90
- * @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along
91
- */
92
- static createJapaneseCubic(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
93
82
  /**
94
83
  * Create a czech cubic.
95
84
  * This is y = m*x^3 with
96
85
  * * x any point on the x axis.
97
86
  * * `fraction` along the spiral goes to `x = fraction * L`.
98
- * * m is gamma / (6RL).
87
+ * * m is gamma/(6RL).
99
88
  * * 1/(6RL) is the leading term of the sine series.
100
89
  * * `gamma = 2R/sqrt(4RR-LL)` pushes y up a little bit to simulate the lost series terms.
101
90
  * @param localToWorld
@@ -109,7 +98,7 @@ export declare class DirectSpiral3d extends TransitionSpiral3d {
109
98
  * This is y = m*x^3 with
110
99
  * * x any point on the x axis.
111
100
  * * `fraction` along the spiral goes to `x = fraction * L`.
112
- * * m is gamma / (6RL).
101
+ * * m is gamma/(6RL).
113
102
  * * 1/(6RL) is the leading term of the sine series.
114
103
  * * `gamma = 2R/sqrt(4RR-LL)` pushes y up a little bit to simulate the lost series terms.
115
104
  * @param localToWorld
@@ -121,7 +110,7 @@ export declare class DirectSpiral3d extends TransitionSpiral3d {
121
110
  /**
122
111
  * Create an MX Cubic whose nominal length is close to along the curve.
123
112
  * This is y = m*x^3 with
124
- * * m is 1/ (6RL1).
113
+ * * m is 1/(6RL1).
125
114
  * * 1/(6RL) is the leading term of the sine series.
126
115
  * * L1 is an along-the-x-axis distance that is slightly LESS THAN the nominal length.
127
116
  * * x is axis position that is slightly LESS than nominal distance along.
@@ -134,8 +123,8 @@ export declare class DirectSpiral3d extends TransitionSpiral3d {
134
123
  static createMXCubicAlongArc(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
135
124
  /**
136
125
  * Create a polish cubic
137
- * This is y= m*x^3 with
138
- * * m is 1/ (6RL).
126
+ * This is y = m*x^3 with
127
+ * * m is 1/(6RL).
139
128
  * * 1/(6RL) is the leading term of the sine series.
140
129
  * * L is nominal length.
141
130
  * * R is nominal end radius.
@@ -145,12 +134,12 @@ export declare class DirectSpiral3d extends TransitionSpiral3d {
145
134
  static createPolishCubic(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
146
135
  /**
147
136
  * Create an AustralianRailCorp spiral
148
- * This is y= m*x^3 with
137
+ * This is y = m*x^3 with
149
138
  * * x any point on the x axis.
150
139
  * * `fraction` along the spiral goes to `x = fraction * L`.
151
- * * m is gamma / (6RL).
140
+ * * m is gamma/(6RL).
152
141
  * * 1/(6RL) is the leading term of the sine series.
153
- * * `gamma = 2R/sqrt (4RR-LL)` pushes y up a little bit to simulate the lost series terms.
142
+ * * `gamma = 2R/sqrt(4RR-LL)` pushes y up a little bit to simulate the lost series terms.
154
143
  * @param localToWorld
155
144
  * @param nominalL1
156
145
  * @param nominalR1
@@ -169,6 +158,17 @@ export declare class DirectSpiral3d extends TransitionSpiral3d {
169
158
  * @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along.
170
159
  */
171
160
  static createArema(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
161
+ /**
162
+ * Create a Japanese spiral clothoid approximation.
163
+ * * X is 1 terms of the clothoid series as a function of nominal distance along.
164
+ * * Y is 1 terms of the clothoid series as a function of nominal distance along.
165
+ * * Remark: This is identical to the ChineseCubic.
166
+ * @param localToWorld axes with inflection at origin, tangent along x axis.
167
+ * @param nominalL1 nominal length as used in series LR terms.
168
+ * @param nominalR1 nominal final radius as used in series LR terms.
169
+ * @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along
170
+ */
171
+ static createJapaneseCubic(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
172
172
  /**
173
173
  * Create a Chinese clothoid approximation
174
174
  * * X is 2 terms of the clothoid series as a function of nominal distance along.
@@ -1 +1 @@
1
- {"version":3,"file":"DirectSpiral3d.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/DirectSpiral3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DirectSpiral3d.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/DirectSpiral3d.ts"],"names":[],"mappings":"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"}
@@ -147,25 +147,12 @@ export class DirectSpiral3d extends TransitionSpiral3d {
147
147
  const evaluator = new ClothoidSeriesRLEvaluator(nominalL1, 1.0 / (2.0 * nominalL1 * nominalR1), numXTerm, numYTerm);
148
148
  return new DirectSpiral3d(localToWorld.clone(), spiralType, originalProperties, nominalL1, nominalR1, activeInterval ? activeInterval.clone() : Segment1d.create(0, 1), evaluator);
149
149
  }
150
- /**
151
- * Create a Japanese spiral clothoid approximation.
152
- * * X is 1 terms of the clothoid series as a function of nominal distance along.
153
- * * Y is 1 terms of the clothoid series as a function of nominal distance along.
154
- * * Remark: This is identical to the ChineseCubic.
155
- * @param localToWorld axes with inflection at origin, tangent along x axis.
156
- * @param nominalL1 nominal length as used in series LR terms.
157
- * @param nominalR1 nominal final radius as used in series LR terms.
158
- * @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along
159
- */
160
- static createJapaneseCubic(localToWorld, nominalL1, nominalR1, activeInterval) {
161
- return this.createTruncatedClothoid("JapaneseCubic", localToWorld, 1, 1, undefined, nominalL1, nominalR1, activeInterval);
162
- }
163
150
  /**
164
151
  * Create a czech cubic.
165
152
  * This is y = m*x^3 with
166
153
  * * x any point on the x axis.
167
154
  * * `fraction` along the spiral goes to `x = fraction * L`.
168
- * * m is gamma / (6RL).
155
+ * * m is gamma/(6RL).
169
156
  * * 1/(6RL) is the leading term of the sine series.
170
157
  * * `gamma = 2R/sqrt(4RR-LL)` pushes y up a little bit to simulate the lost series terms.
171
158
  * @param localToWorld
@@ -184,7 +171,7 @@ export class DirectSpiral3d extends TransitionSpiral3d {
184
171
  * This is y = m*x^3 with
185
172
  * * x any point on the x axis.
186
173
  * * `fraction` along the spiral goes to `x = fraction * L`.
187
- * * m is gamma / (6RL).
174
+ * * m is gamma/(6RL).
188
175
  * * 1/(6RL) is the leading term of the sine series.
189
176
  * * `gamma = 2R/sqrt(4RR-LL)` pushes y up a little bit to simulate the lost series terms.
190
177
  * @param localToWorld
@@ -201,7 +188,7 @@ export class DirectSpiral3d extends TransitionSpiral3d {
201
188
  /**
202
189
  * Create an MX Cubic whose nominal length is close to along the curve.
203
190
  * This is y = m*x^3 with
204
- * * m is 1/ (6RL1).
191
+ * * m is 1/(6RL1).
205
192
  * * 1/(6RL) is the leading term of the sine series.
206
193
  * * L1 is an along-the-x-axis distance that is slightly LESS THAN the nominal length.
207
194
  * * x is axis position that is slightly LESS than nominal distance along.
@@ -219,8 +206,8 @@ export class DirectSpiral3d extends TransitionSpiral3d {
219
206
  }
220
207
  /**
221
208
  * Create a polish cubic
222
- * This is y= m*x^3 with
223
- * * m is 1/ (6RL).
209
+ * This is y = m*x^3 with
210
+ * * m is 1/(6RL).
224
211
  * * 1/(6RL) is the leading term of the sine series.
225
212
  * * L is nominal length.
226
213
  * * R is nominal end radius.
@@ -235,12 +222,12 @@ export class DirectSpiral3d extends TransitionSpiral3d {
235
222
  }
236
223
  /**
237
224
  * Create an AustralianRailCorp spiral
238
- * This is y= m*x^3 with
225
+ * This is y = m*x^3 with
239
226
  * * x any point on the x axis.
240
227
  * * `fraction` along the spiral goes to `x = fraction * L`.
241
- * * m is gamma / (6RL).
228
+ * * m is gamma/(6RL).
242
229
  * * 1/(6RL) is the leading term of the sine series.
243
- * * `gamma = 2R/sqrt (4RR-LL)` pushes y up a little bit to simulate the lost series terms.
230
+ * * `gamma = 2R/sqrt(4RR-LL)` pushes y up a little bit to simulate the lost series terms.
244
231
  * @param localToWorld
245
232
  * @param nominalL1
246
233
  * @param nominalR1
@@ -268,6 +255,19 @@ export class DirectSpiral3d extends TransitionSpiral3d {
268
255
  static createArema(localToWorld, nominalL1, nominalR1, activeInterval) {
269
256
  return this.createTruncatedClothoid("Arema", localToWorld, 2, 2, undefined, nominalL1, nominalR1, activeInterval);
270
257
  }
258
+ /**
259
+ * Create a Japanese spiral clothoid approximation.
260
+ * * X is 1 terms of the clothoid series as a function of nominal distance along.
261
+ * * Y is 1 terms of the clothoid series as a function of nominal distance along.
262
+ * * Remark: This is identical to the ChineseCubic.
263
+ * @param localToWorld axes with inflection at origin, tangent along x axis.
264
+ * @param nominalL1 nominal length as used in series LR terms.
265
+ * @param nominalR1 nominal final radius as used in series LR terms.
266
+ * @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along
267
+ */
268
+ static createJapaneseCubic(localToWorld, nominalL1, nominalR1, activeInterval) {
269
+ return this.createTruncatedClothoid("JapaneseCubic", localToWorld, 1, 1, undefined, nominalL1, nominalR1, activeInterval);
270
+ }
271
271
  /**
272
272
  * Create a Chinese clothoid approximation
273
273
  * * X is 2 terms of the clothoid series as a function of nominal distance along.