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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/CHANGELOG.md +32 -1
  2. package/lib/cjs/Constant.js.map +1 -1
  3. package/lib/cjs/Geometry.js.map +1 -1
  4. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  5. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  7. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  8. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  9. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  10. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  11. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  12. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  13. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  14. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  15. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  16. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  17. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  18. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  19. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  20. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  21. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  22. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  23. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  24. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  25. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  26. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  27. package/lib/cjs/core-geometry.d.ts +1 -0
  28. package/lib/cjs/core-geometry.d.ts.map +1 -1
  29. package/lib/cjs/core-geometry.js +4 -1
  30. package/lib/cjs/core-geometry.js.map +1 -1
  31. package/lib/cjs/curve/Arc3d.d.ts +71 -86
  32. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  33. package/lib/cjs/curve/Arc3d.js +110 -96
  34. package/lib/cjs/curve/Arc3d.js.map +1 -1
  35. package/lib/cjs/curve/ChainCollectorContext.js.map +1 -1
  36. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  37. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  38. package/lib/cjs/curve/CurveChain.js.map +1 -1
  39. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +61 -41
  40. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  41. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +69 -46
  42. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  43. package/lib/cjs/curve/CurveCollection.d.ts +73 -46
  44. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  45. package/lib/cjs/curve/CurveCollection.js +100 -64
  46. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  47. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  48. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  49. package/lib/cjs/curve/CurveCurveCloseApproachXY.js.map +1 -1
  50. package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
  51. package/lib/cjs/curve/CurveCurveIntersectXYZ.js.map +1 -1
  52. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  53. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  54. package/lib/cjs/curve/CurveLocationDetail.d.ts +45 -46
  55. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  56. package/lib/cjs/curve/CurveLocationDetail.js +39 -41
  57. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  58. package/lib/cjs/curve/CurvePrimitive.d.ts +138 -92
  59. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  60. package/lib/cjs/curve/CurvePrimitive.js +115 -75
  61. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  62. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  63. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  64. package/lib/cjs/curve/GeometryQuery.d.ts +26 -20
  65. package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
  66. package/lib/cjs/curve/GeometryQuery.js +11 -9
  67. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  68. package/lib/cjs/curve/LineSegment3d.d.ts +38 -27
  69. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  70. package/lib/cjs/curve/LineSegment3d.js +77 -39
  71. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  72. package/lib/cjs/curve/LineString3d.d.ts +70 -51
  73. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  74. package/lib/cjs/curve/LineString3d.js +120 -71
  75. package/lib/cjs/curve/LineString3d.js.map +1 -1
  76. package/lib/cjs/curve/Loop.d.ts +7 -5
  77. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  78. package/lib/cjs/curve/Loop.js +18 -6
  79. package/lib/cjs/curve/Loop.js.map +1 -1
  80. package/lib/cjs/curve/ParityRegion.d.ts +7 -7
  81. package/lib/cjs/curve/ParityRegion.d.ts.map +1 -1
  82. package/lib/cjs/curve/ParityRegion.js +19 -11
  83. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  84. package/lib/cjs/curve/Path.d.ts +6 -6
  85. package/lib/cjs/curve/Path.d.ts.map +1 -1
  86. package/lib/cjs/curve/Path.js +15 -9
  87. package/lib/cjs/curve/Path.js.map +1 -1
  88. package/lib/cjs/curve/PointString3d.js.map +1 -1
  89. package/lib/cjs/curve/ProxyCurve.d.ts +4 -6
  90. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
  91. package/lib/cjs/curve/ProxyCurve.js +7 -7
  92. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  93. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  94. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  95. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  96. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  97. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  98. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  99. package/lib/cjs/curve/Query/StrokeCountMap.d.ts +14 -13
  100. package/lib/cjs/curve/Query/StrokeCountMap.d.ts.map +1 -1
  101. package/lib/cjs/curve/Query/StrokeCountMap.js +9 -8
  102. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  103. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  104. package/lib/cjs/curve/RegionOps.d.ts +69 -47
  105. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  106. package/lib/cjs/curve/RegionOps.js +70 -47
  107. package/lib/cjs/curve/RegionOps.js.map +1 -1
  108. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  109. package/lib/cjs/curve/StrokeOptions.d.ts +29 -21
  110. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  111. package/lib/cjs/curve/StrokeOptions.js +50 -24
  112. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  113. package/lib/cjs/curve/UnionRegion.d.ts +6 -5
  114. package/lib/cjs/curve/UnionRegion.d.ts.map +1 -1
  115. package/lib/cjs/curve/UnionRegion.js +17 -8
  116. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  117. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  118. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  119. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  120. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  121. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  122. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  123. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  124. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts +2 -1
  125. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
  126. package/lib/cjs/curve/internalContexts/GapSearchContext.js +6 -2
  127. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  128. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +4 -0
  129. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  130. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +5 -2
  131. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  132. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  133. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
  134. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  135. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
  136. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  137. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts +56 -34
  138. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  139. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +152 -87
  140. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  141. package/lib/cjs/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
  142. package/lib/cjs/curve/internalContexts/SumLengthsContext.js +4 -1
  143. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  144. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  145. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  146. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  147. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  148. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  149. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  150. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  151. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  152. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  153. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  154. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  155. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  156. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  157. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  158. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  159. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  160. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  161. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  162. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  163. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  164. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  165. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  166. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  167. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  168. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  169. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  170. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  171. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  172. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  173. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  174. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  175. package/lib/cjs/geometry3d/Matrix3d.d.ts +2 -2
  176. package/lib/cjs/geometry3d/Matrix3d.js +2 -2
  177. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  178. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  179. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  180. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  181. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
  182. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  183. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +35 -32
  184. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  185. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  186. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  187. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  188. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  189. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  190. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  191. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  192. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  193. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  194. package/lib/cjs/geometry3d/Range.d.ts +133 -93
  195. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  196. package/lib/cjs/geometry3d/Range.js +296 -144
  197. package/lib/cjs/geometry3d/Range.js.map +1 -1
  198. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  199. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  200. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  201. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  202. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  203. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  204. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  205. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  206. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  207. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  208. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  209. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  210. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  211. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  212. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  213. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  214. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  215. package/lib/cjs/numerics/Complex.js.map +1 -1
  216. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  217. package/lib/cjs/numerics/Newton.js.map +1 -1
  218. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  219. package/lib/cjs/numerics/PolarData.js.map +1 -1
  220. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  221. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  222. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  223. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  224. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  225. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  226. package/lib/cjs/polyface/AuxData.js.map +1 -1
  227. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  228. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  229. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  230. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  231. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  232. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  233. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  234. package/lib/cjs/polyface/Polyface.js.map +1 -1
  235. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  236. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  237. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  238. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  239. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  240. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  241. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  242. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  243. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  244. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  245. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  246. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  247. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  248. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  249. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  250. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  251. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  252. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  253. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  254. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  255. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  256. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  257. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  258. package/lib/cjs/solid/Box.js.map +1 -1
  259. package/lib/cjs/solid/Cone.js.map +1 -1
  260. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  261. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  262. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  263. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  264. package/lib/cjs/solid/Sphere.js.map +1 -1
  265. package/lib/cjs/solid/SweepContour.js.map +1 -1
  266. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  267. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  268. package/lib/cjs/topology/Graph.js.map +1 -1
  269. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  270. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  271. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  272. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  273. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  274. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  275. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  276. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  277. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  278. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  279. package/lib/cjs/topology/MaskManager.js.map +1 -1
  280. package/lib/cjs/topology/Merging.js.map +1 -1
  281. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  282. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  283. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  284. package/lib/cjs/topology/Triangulation.js.map +1 -1
  285. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  286. package/lib/esm/Constant.js.map +1 -1
  287. package/lib/esm/Geometry.js.map +1 -1
  288. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  289. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  290. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  291. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  292. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  293. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  294. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  295. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  296. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  297. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  298. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  299. package/lib/esm/bspline/KnotVector.js.map +1 -1
  300. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  301. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  302. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  303. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  304. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  305. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  306. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  307. package/lib/esm/clipping/ClipVector.js.map +1 -1
  308. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  309. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  310. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  311. package/lib/esm/core-geometry.d.ts +1 -0
  312. package/lib/esm/core-geometry.d.ts.map +1 -1
  313. package/lib/esm/core-geometry.js +2 -0
  314. package/lib/esm/core-geometry.js.map +1 -1
  315. package/lib/esm/curve/Arc3d.d.ts +71 -86
  316. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  317. package/lib/esm/curve/Arc3d.js +110 -96
  318. package/lib/esm/curve/Arc3d.js.map +1 -1
  319. package/lib/esm/curve/ChainCollectorContext.js.map +1 -1
  320. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  321. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  322. package/lib/esm/curve/CurveChain.js.map +1 -1
  323. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +61 -41
  324. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  325. package/lib/esm/curve/CurveChainWithDistanceIndex.js +69 -46
  326. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  327. package/lib/esm/curve/CurveCollection.d.ts +73 -46
  328. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  329. package/lib/esm/curve/CurveCollection.js +100 -64
  330. package/lib/esm/curve/CurveCollection.js.map +1 -1
  331. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  332. package/lib/esm/curve/CurveCurve.js.map +1 -1
  333. package/lib/esm/curve/CurveCurveCloseApproachXY.js.map +1 -1
  334. package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
  335. package/lib/esm/curve/CurveCurveIntersectXYZ.js.map +1 -1
  336. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  337. package/lib/esm/curve/CurveFactory.js.map +1 -1
  338. package/lib/esm/curve/CurveLocationDetail.d.ts +45 -46
  339. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  340. package/lib/esm/curve/CurveLocationDetail.js +39 -41
  341. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  342. package/lib/esm/curve/CurvePrimitive.d.ts +138 -92
  343. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  344. package/lib/esm/curve/CurvePrimitive.js +115 -75
  345. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  346. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  347. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  348. package/lib/esm/curve/GeometryQuery.d.ts +26 -20
  349. package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
  350. package/lib/esm/curve/GeometryQuery.js +11 -9
  351. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  352. package/lib/esm/curve/LineSegment3d.d.ts +38 -27
  353. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  354. package/lib/esm/curve/LineSegment3d.js +77 -39
  355. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  356. package/lib/esm/curve/LineString3d.d.ts +70 -51
  357. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  358. package/lib/esm/curve/LineString3d.js +120 -71
  359. package/lib/esm/curve/LineString3d.js.map +1 -1
  360. package/lib/esm/curve/Loop.d.ts +7 -5
  361. package/lib/esm/curve/Loop.d.ts.map +1 -1
  362. package/lib/esm/curve/Loop.js +18 -6
  363. package/lib/esm/curve/Loop.js.map +1 -1
  364. package/lib/esm/curve/ParityRegion.d.ts +7 -7
  365. package/lib/esm/curve/ParityRegion.d.ts.map +1 -1
  366. package/lib/esm/curve/ParityRegion.js +19 -11
  367. package/lib/esm/curve/ParityRegion.js.map +1 -1
  368. package/lib/esm/curve/Path.d.ts +6 -6
  369. package/lib/esm/curve/Path.d.ts.map +1 -1
  370. package/lib/esm/curve/Path.js +15 -9
  371. package/lib/esm/curve/Path.js.map +1 -1
  372. package/lib/esm/curve/PointString3d.js.map +1 -1
  373. package/lib/esm/curve/ProxyCurve.d.ts +4 -6
  374. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
  375. package/lib/esm/curve/ProxyCurve.js +7 -7
  376. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  377. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  378. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  379. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  380. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  381. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  382. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  383. package/lib/esm/curve/Query/StrokeCountMap.d.ts +14 -13
  384. package/lib/esm/curve/Query/StrokeCountMap.d.ts.map +1 -1
  385. package/lib/esm/curve/Query/StrokeCountMap.js +9 -8
  386. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  387. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  388. package/lib/esm/curve/RegionOps.d.ts +69 -47
  389. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  390. package/lib/esm/curve/RegionOps.js +70 -47
  391. package/lib/esm/curve/RegionOps.js.map +1 -1
  392. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  393. package/lib/esm/curve/StrokeOptions.d.ts +29 -21
  394. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  395. package/lib/esm/curve/StrokeOptions.js +50 -24
  396. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  397. package/lib/esm/curve/UnionRegion.d.ts +6 -5
  398. package/lib/esm/curve/UnionRegion.d.ts.map +1 -1
  399. package/lib/esm/curve/UnionRegion.js +17 -8
  400. package/lib/esm/curve/UnionRegion.js.map +1 -1
  401. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  402. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  403. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  404. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  405. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  406. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  407. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  408. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts +2 -1
  409. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
  410. package/lib/esm/curve/internalContexts/GapSearchContext.js +6 -2
  411. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  412. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +4 -0
  413. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  414. package/lib/esm/curve/internalContexts/MultiChainCollector.js +5 -2
  415. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  416. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  417. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
  418. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  419. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
  420. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  421. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +56 -34
  422. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  423. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +152 -87
  424. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  425. package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
  426. package/lib/esm/curve/internalContexts/SumLengthsContext.js +4 -1
  427. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  428. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  429. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  430. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  431. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  432. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  433. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  434. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  435. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  436. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  437. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  438. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  439. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  440. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  441. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  442. package/lib/esm/geometry3d/Angle.js.map +1 -1
  443. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  444. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  445. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  446. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  447. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  448. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  449. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  450. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  451. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  452. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  453. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  454. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  455. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  456. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  457. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  458. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  459. package/lib/esm/geometry3d/Matrix3d.d.ts +2 -2
  460. package/lib/esm/geometry3d/Matrix3d.js +2 -2
  461. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  462. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  463. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  464. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  465. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
  466. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  467. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +35 -32
  468. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  469. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  470. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  471. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  472. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  473. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  474. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  475. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  476. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  477. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  478. package/lib/esm/geometry3d/Range.d.ts +133 -93
  479. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  480. package/lib/esm/geometry3d/Range.js +296 -144
  481. package/lib/esm/geometry3d/Range.js.map +1 -1
  482. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  483. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  484. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  485. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  486. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  487. package/lib/esm/geometry3d/Transform.js.map +1 -1
  488. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  489. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  490. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  491. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  492. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  493. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  494. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  495. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  496. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  497. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  498. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  499. package/lib/esm/numerics/Complex.js.map +1 -1
  500. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  501. package/lib/esm/numerics/Newton.js.map +1 -1
  502. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  503. package/lib/esm/numerics/PolarData.js.map +1 -1
  504. package/lib/esm/numerics/Polynomials.js.map +1 -1
  505. package/lib/esm/numerics/Quadrature.js.map +1 -1
  506. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  507. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  508. package/lib/esm/numerics/UnionFind.js.map +1 -1
  509. package/lib/esm/numerics/UsageSums.js.map +1 -1
  510. package/lib/esm/polyface/AuxData.js.map +1 -1
  511. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  512. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  513. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  514. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  515. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  516. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  517. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  518. package/lib/esm/polyface/Polyface.js.map +1 -1
  519. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  520. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  521. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  522. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  523. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  524. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  525. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  526. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  527. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  528. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  529. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  530. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  531. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  532. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  533. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  534. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  535. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  536. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  537. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  538. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  539. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  540. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  541. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  542. package/lib/esm/solid/Box.js.map +1 -1
  543. package/lib/esm/solid/Cone.js.map +1 -1
  544. package/lib/esm/solid/LinearSweep.js.map +1 -1
  545. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  546. package/lib/esm/solid/RuledSweep.js.map +1 -1
  547. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  548. package/lib/esm/solid/Sphere.js.map +1 -1
  549. package/lib/esm/solid/SweepContour.js.map +1 -1
  550. package/lib/esm/solid/TorusPipe.js.map +1 -1
  551. package/lib/esm/topology/ChainMerge.js.map +1 -1
  552. package/lib/esm/topology/Graph.js.map +1 -1
  553. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  554. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  555. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  556. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  557. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  558. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  559. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  560. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  561. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  562. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  563. package/lib/esm/topology/MaskManager.js.map +1 -1
  564. package/lib/esm/topology/Merging.js.map +1 -1
  565. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  566. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  567. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  568. package/lib/esm/topology/Triangulation.js.map +1 -1
  569. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  570. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"StrokeCountMap.js","sourceRoot":"","sources":["../../../../src/curve/Query/StrokeCountMap.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/** @packageDocumentation\r\n * @module Curve\r\n */\r\n\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { CurvePrimitive } from \"../CurvePrimitive\";\r\n\r\n/**\r\n * data carrier interface for per-primitive stroke counts and distances used by PolyfaceBuilder.\r\n * * For a simple primitive (Line segment or arc) that is stroked with uniform fraction, the members are:\r\n * * `numStroke` = total number of strokes\r\n * * `curveLength` = length of this curve\r\n * * `a0` = external mapped coordinate for fraction 0 on this primitive or component\r\n * * `a1` = external mapped coordinate for fraction 1 on this primitive or component\r\n *\r\n * * For linestring and bspline curve, those numbers are totals for the overall curve, and breakdown within\r\n * the components (line segments or bezier spans) is recorded on the optional array `componentData[]`\r\n * * Members of the array are annotated with componentIndex within the linestring or bspline curve\r\n * @public\r\n */\r\nexport class StrokeCountMap {\r\n /** number of strokes expected in this interval. */\r\n public numStroke: number;\r\n /** Length of the curve interval. */\r\n public curveLength: number;\r\n /** start coordinate (in user-defined space) for fraction 0 on this primitive or component */\r\n public a0: number;\r\n /** end coordinate (in user-defined space) for fraction 0 on this primitive or component */\r\n public a1: number;\r\n /** further StrokeCountMap's within this interval (e.g. for individual segments of a linestring.) */\r\n public componentData?: StrokeCountMap[];\r\n /** The curve that this map represents */\r\n public primitive?: CurvePrimitive;\r\n /** this curve's index within its parent. */\r\n public componentIndex?: number;\r\n /**\r\n * Constructor. Initialize all fields from arguments.\r\n * * Callers that expect to announce numStroke and curveLength for multiple components send an empty componentData array.\r\n * * Callers that do not have multiple components send undefined component data.\r\n * @param numStroke\r\n * @param curveLength\r\n * @param a0\r\n * @param a1\r\n * @param componentData\r\n */\r\n private constructor(numStroke: number, curveLength: number, a0: number, a1: number, componentData?: StrokeCountMap[]) {\r\n this.numStroke = numStroke;\r\n this.curveLength = curveLength;\r\n this.a0 = a0;\r\n this.a1 = a1;\r\n this.componentData = componentData;\r\n }\r\n /**\r\n * Create a `StrokeCountMap` with curve primitive and optional componentData array.\r\n * @param primitive\r\n * @param numStroke\r\n * @param curveLength\r\n * @param a0\r\n * @param a1\r\n * @param componentData\r\n */\r\n public static createWithCurvePrimitive(primitive: CurvePrimitive, numStroke: number, curveLength: number, a0: number, a1: number, componentData?: StrokeCountMap[]) {\r\n const result = new StrokeCountMap(numStroke, curveLength, a0, a1, componentData);\r\n result.primitive = primitive;\r\n return result;\r\n }\r\n /**\r\n * Create a `StrokeCountMap` with `componentIndex` (but no primitive or componentData array)\r\n * @param index\r\n * @param numStroke\r\n * @param curveLength\r\n * @param a0\r\n * @param a1\r\n */\r\n public static createWithComponentIndex(componentIndex: number = 0, numStroke: number = 0, curveLength: number = 0, a0: number = 0, a1: number = 0) {\r\n const result = new StrokeCountMap(numStroke, curveLength, a0, a1);\r\n result.componentIndex = componentIndex;\r\n return result;\r\n }\r\n\r\n /**\r\n * create a StrokeCountMap, optionally\r\n * * (a) use parent a1 as new a0\r\n * * (b) attach a (usually empty) array for component counts.\r\n * @param parentMap optional map whose a1 becomes a0 in the new map.\r\n * @param componentData optional array of component StrokeCountMaps.\r\n */\r\n public static createWithCurvePrimitiveAndOptionalParent(curvePrimitive: CurvePrimitive, parentMap?: StrokeCountMap, componentData?: StrokeCountMap[]): StrokeCountMap {\r\n const a0 = parentMap ? parentMap.a1 : 0.0;\r\n const result = new StrokeCountMap(0, 0, a0, a0, componentData);\r\n result.primitive = curvePrimitive;\r\n return result;\r\n\r\n }\r\n /**\r\n * Apply stroke count and curve length from a component to a parent map.\r\n * If componentData is present, install the new count and length with distance limits\r\n * @param parentMap map to be updated.\r\n * @param numStroke number of strokes on new child curve\r\n * @param curveLength curve length for new child curve.\r\n */\r\n public addToCountAndLength(numStroke: number, curveLength: number) {\r\n const a2 = this.a1 + curveLength;\r\n if (this.componentData) {\r\n this.componentData.push(\r\n new StrokeCountMap(numStroke, curveLength, this.a1, a2));\r\n }\r\n this.numStroke += numStroke;\r\n this.curveLength += curveLength;\r\n this.a1 = a2;\r\n }\r\n /** return true if `other` has the same component structure as `this`\r\n * * testing recurses through corresponding members of componentData arrays.\r\n */\r\n public isCompatibleComponentStructure(other: StrokeCountMap, enforceCounts: boolean): boolean {\r\n if (enforceCounts && this.numStroke !== other.numStroke)\r\n return false;\r\n if (this.componentData === undefined && other.componentData === undefined)\r\n return true;\r\n if (this.componentData && other.componentData) {\r\n // both have components. Recurse . . ..\r\n if (this.componentData.length !== other.componentData.length)\r\n return false;\r\n const n = this.componentData.length;\r\n for (let i = 0; i < n; i++)\r\n if (!this.componentData[i].isCompatibleComponentStructure(other.componentData[i], enforceCounts))\r\n return false;\r\n return true;\r\n }\r\n // one has componentData, the other not.\r\n return false;\r\n }\r\n /**\r\n * * clone all data from root.\r\n * * clone componentData arrays recursively.\r\n */\r\n public clone(): StrokeCountMap {\r\n const a = new StrokeCountMap(this.numStroke, this.curveLength, this.a0, this.a1);\r\n if (this.componentData) {\r\n a.componentData = [];\r\n for (const child of this.componentData)\r\n a.componentData.push(child.clone());\r\n }\r\n return a;\r\n }\r\n /**\r\n * interpolate in the a0,a1 mapping.\r\n * @param fraction fractional position between a0 and a1\r\n */\r\n public fractionToA(fraction: number) {\r\n return Geometry.interpolate(this.a0, fraction, this.a1);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StrokeCountMap.js","sourceRoot":"","sources":["../../../../src/curve/Query/StrokeCountMap.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/** @packageDocumentation\n * @module Curve\n */\n\nimport { Geometry } from \"../../Geometry\";\nimport { CurvePrimitive } from \"../CurvePrimitive\";\n\n/**\n * Data carrier interface for per-primitive stroke counts and distances used by PolyfaceBuilder.\n * * For a simple primitive (line segment or arc) that is stroked with uniform fraction, the members are:\n * * `numStroke` = total number of strokes\n * * `curveLength` = length of this curve\n * * `a0` = external mapped coordinate for fraction 0 on this primitive or component\n * * `a1` = external mapped coordinate for fraction 1 on this primitive or component\n *\n * * For linestring and bspline curve, those numbers are totals for the overall curve, and breakdown within\n * the components (line segments or bezier spans) is recorded on the optional array `componentData[]`\n * * Members of the array are annotated with componentIndex within the linestring or bspline curve\n * @public\n */\nexport class StrokeCountMap {\n /** Number of strokes expected in this interval. */\n public numStroke: number;\n /** Length of the curve interval. */\n public curveLength: number;\n /** Start coordinate (in user-defined space) for fraction 0 on this primitive or component */\n public a0: number;\n /** End coordinate (in user-defined space) for fraction 0 on this primitive or component */\n public a1: number;\n /** Further StrokeCountMap's within this interval (e.g. for individual segments of a linestring.) */\n public componentData?: StrokeCountMap[];\n /** The curve that this map represents */\n public primitive?: CurvePrimitive;\n /** This curve's index within its parent. */\n public componentIndex?: number;\n /**\n * Constructor. Initialize all fields from arguments.\n * * Callers that expect to announce numStroke and curveLength for multiple components send an empty componentData array.\n * * Callers that do not have multiple components send undefined component data.\n * @param numStroke\n * @param curveLength\n * @param a0\n * @param a1\n * @param componentData\n */\n private constructor(numStroke: number, curveLength: number, a0: number, a1: number, componentData?: StrokeCountMap[]) {\n this.numStroke = numStroke;\n this.curveLength = curveLength;\n this.a0 = a0;\n this.a1 = a1;\n this.componentData = componentData;\n }\n /**\n * Create a `StrokeCountMap` with curve primitive and optional componentData array.\n * @param primitive\n * @param numStroke\n * @param curveLength\n * @param a0\n * @param a1\n * @param componentData\n */\n public static createWithCurvePrimitive(\n primitive: CurvePrimitive, numStroke: number, curveLength: number, a0: number, a1: number, componentData?: StrokeCountMap[]\n ): StrokeCountMap {\n const result = new StrokeCountMap(numStroke, curveLength, a0, a1, componentData);\n result.primitive = primitive;\n return result;\n }\n /**\n * Create a `StrokeCountMap` with `componentIndex` (but no primitive or componentData array)\n * @param index\n * @param numStroke\n * @param curveLength\n * @param a0\n * @param a1\n */\n public static createWithComponentIndex(\n componentIndex: number = 0, numStroke: number = 0, curveLength: number = 0, a0: number = 0, a1: number = 0\n ): StrokeCountMap {\n const result = new StrokeCountMap(numStroke, curveLength, a0, a1);\n result.componentIndex = componentIndex;\n return result;\n }\n /**\n * Create a StrokeCountMap, optionally\n * * (a) use parent a1 as new a0\n * * (b) attach a (usually empty) array for component counts.\n * @param parentMap optional map whose a1 becomes a0 in the new map.\n * @param componentData optional array of component StrokeCountMaps.\n */\n public static createWithCurvePrimitiveAndOptionalParent(\n curvePrimitive: CurvePrimitive, parentMap?: StrokeCountMap, componentData?: StrokeCountMap[]\n ): StrokeCountMap {\n const a0 = parentMap ? parentMap.a1 : 0.0;\n const result = new StrokeCountMap(0, 0, a0, a0, componentData);\n result.primitive = curvePrimitive;\n return result;\n }\n /**\n * Apply stroke count and curve length from a component to a parent map.\n * If componentData is present, install the new count and length with distance limits\n * @param parentMap map to be updated.\n * @param numStroke number of strokes on new child curve\n * @param curveLength curve length for new child curve.\n */\n public addToCountAndLength(numStroke: number, curveLength: number): void {\n const a2 = this.a1 + curveLength;\n if (this.componentData) {\n this.componentData.push(\n new StrokeCountMap(numStroke, curveLength, this.a1, a2));\n }\n this.numStroke += numStroke;\n this.curveLength += curveLength;\n this.a1 = a2;\n }\n /**\n * Return true if `other` has the same component structure as `this`\n * * Testing recurses through corresponding members of componentData arrays.\n */\n public isCompatibleComponentStructure(other: StrokeCountMap, enforceCounts: boolean): boolean {\n if (enforceCounts && this.numStroke !== other.numStroke)\n return false;\n if (this.componentData === undefined && other.componentData === undefined)\n return true;\n if (this.componentData && other.componentData) {\n // both have components. Recurse . . ..\n if (this.componentData.length !== other.componentData.length)\n return false;\n const n = this.componentData.length;\n for (let i = 0; i < n; i++)\n if (!this.componentData[i].isCompatibleComponentStructure(other.componentData[i], enforceCounts))\n return false;\n return true;\n }\n // one has componentData, the other not.\n return false;\n }\n /**\n * Clone all data from root.\n * * clone componentData arrays recursively.\n */\n public clone(): StrokeCountMap {\n const a = new StrokeCountMap(this.numStroke, this.curveLength, this.a0, this.a1);\n if (this.componentData) {\n a.componentData = [];\n for (const child of this.componentData)\n a.componentData.push(child.clone());\n }\n return a;\n }\n /**\n * Interpolate in the a0,a1 mapping.\n * @param fraction fractional position between a0 and a1\n */\n public fractionToA(fraction: number) {\n return Geometry.interpolate(this.a0, fraction, this.a1);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RegionMomentsXY.js","sourceRoot":"","sources":["../../../src/curve/RegionMomentsXY.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\n// import { Geometry, Angle, AngleSweep } from \"../Geometry\";\r\n\r\nimport { BSplineCurve3d } from \"../bspline/BSplineCurve\";\r\nimport { BSplineCurve3dH } from \"../bspline/BSplineCurve3dH\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { NullGeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { MomentData } from \"../geometry4d/MomentData\";\r\nimport { Arc3d } from \"./Arc3d\";\r\nimport { CurvePrimitive } from \"./CurvePrimitive\";\r\nimport { LineSegment3d } from \"./LineSegment3d\";\r\nimport { LineString3d } from \"./LineString3d\";\r\nimport { Loop } from \"./Loop\";\r\nimport { ParityRegion } from \"./ParityRegion\";\r\nimport { StrokeOptions } from \"./StrokeOptions\";\r\nimport { TransitionSpiral3d } from \"./spiral/TransitionSpiral3d\";\r\nimport { UnionRegion } from \"./UnionRegion\";\r\n\r\n/**\r\n * Implementation class for computing XY area moments.\r\n * @internal\r\n */\r\nexport class RegionMomentsXY extends NullGeometryHandler {\r\n private _activeMomentData?: MomentData;\r\n private _point0 = Point3d.create();\r\n private _point1 = Point3d.create();\r\n\r\n /** Accumulate (independent) integrations over\r\n * * origin to chord of the arc.\r\n * * origin to the \"cap\" between the chord and arc.\r\n */\r\n public override handleArc3d(arc: Arc3d): void {\r\n const momentData = this._activeMomentData!;\r\n const sweepRadians = arc.sweep.sweepRadians;\r\n const alphaRadians = sweepRadians * 0.5;\r\n // from https://apps.dtic.mil/dtic/tr/fulltext/u2/274936.pdf page 71 for radius = 1\r\n let s = Math.sin(alphaRadians);\r\n let c = Math.cos(alphaRadians);\r\n let s1 = Math.sin(sweepRadians);\r\n if (Angle.isFullCircleRadians(sweepRadians)) {\r\n s = 0.0;\r\n c = -1.0;\r\n s1 = 0.0;\r\n }\r\n const q = 2 * s * s * s * c / (alphaRadians - s * c);\r\n const s3 = s * s * s;\r\n const s6 = s3 * s3;\r\n const area = 0.5 * (sweepRadians - s1);\r\n const inertiaXX = 0.25 * area * (1.0 - q / 3.0);\r\n const inertiaYY1 = 0.25 * area * (1.0 + q);\r\n const inertiaYY = inertiaYY1 - 4.0 * s6 / (9.0 * area);\r\n const productXX = inertiaYY;\r\n const productYY = inertiaXX;\r\n const centerToCentroid = 4.0 * s * s * s / (3.0 * (sweepRadians - s1));\r\n const midRadians = arc.sweep.fractionToRadians(0.5);\r\n const centralPlane = arc.radiansToRotatedBasis(midRadians);\r\n const centroid = centralPlane.origin.plusScaled(centralPlane.vectorU, centerToCentroid);\r\n momentData.accumulateXYProductsInCentroidalFrame(productXX, 0.0, productYY, area, centroid, centralPlane.vectorU, centralPlane.vectorV);\r\n const pointB = arc.fractionToPoint(0.0);\r\n const pointC = arc.fractionToPoint(1.0);\r\n momentData.accumulateTriangleMomentsXY(undefined, pointB, pointC);\r\n }\r\n\r\n /** Accumulate integrals over the (triangular) areas from the origin to each line segment */\r\n public override handleLineString3d(ls: LineString3d): void {\r\n const momentData = this._activeMomentData!;\r\n momentData.accumulateTriangleToLineStringMomentsXY(undefined, ls.packedPoints);\r\n }\r\n /** Accumulate integrals over the (triangular) area from the origin to this line segment */\r\n public override handleLineSegment3d(segment: LineSegment3d): void {\r\n const momentData = this._activeMomentData!;\r\n segment.startPoint(this._point0);\r\n segment.endPoint(this._point1);\r\n momentData.accumulateTriangleMomentsXY(undefined, this._point0, this._point1);\r\n }\r\n /** Accumulate integrals from origin to all primitives in the chain. */\r\n public override handleLoop(loop: Loop): MomentData | undefined {\r\n const momentData = this._activeMomentData = MomentData.create();\r\n momentData.needOrigin = false;\r\n for (const child of loop.children)\r\n child.dispatchToGeometryHandler(this);\r\n this._activeMomentData = undefined;\r\n return momentData;\r\n }\r\n /**\r\n * ASSUMPTIONS FOR ORIENTATION AND CONTAINMENT ISSUES\r\n * * Largest area is outer\r\n * * All others are interior (and not overlapping)\r\n * Hence\r\n * * Outer area sign must be positive -- negate all integrations as needed\r\n * * Outer area signs must be positive -- negate all integrations as needed\r\n * @param region\r\n */\r\n public override handleParityRegion(region: ParityRegion): MomentData | undefined {\r\n const allChildMoments: MomentData[] = [];\r\n let maxAbsArea = 0.0;\r\n let largestChildMoments: MomentData | undefined;\r\n for (const child of region.children) {\r\n if (child instanceof Loop) {\r\n const childMoments = this.handleLoop(child);\r\n if (childMoments) {\r\n allChildMoments.push(childMoments);\r\n const q = Math.abs(childMoments.quantitySum);\r\n if (q > maxAbsArea) {\r\n maxAbsArea = q;\r\n largestChildMoments = childMoments;\r\n }\r\n\r\n }\r\n }\r\n }\r\n if (largestChildMoments) {\r\n const summedMoments = MomentData.create();\r\n const sign0 = largestChildMoments.signFactor(1.0);\r\n summedMoments.accumulateProducts(largestChildMoments, sign0);\r\n for (const childMoments of allChildMoments) {\r\n if (childMoments !== largestChildMoments) {\r\n const sign1 = childMoments.signFactor(-1.0);\r\n summedMoments.accumulateProducts(childMoments, sign1);\r\n }\r\n }\r\n return summedMoments;\r\n }\r\n return undefined;\r\n }\r\n /** Accumulate (as simple addition) products over each component of the union region. */\r\n public override handleUnionRegion(region: UnionRegion): MomentData | undefined {\r\n const summedMoments = MomentData.create();\r\n for (const child of region.children) {\r\n const childMoments = child.dispatchToGeometryHandler(this);\r\n if (childMoments) {\r\n const sign0 = childMoments.signFactor(1.0);\r\n summedMoments.accumulateProducts(childMoments, sign0);\r\n }\r\n }\r\n return summedMoments;\r\n }\r\n\r\n private _strokeOptions?: StrokeOptions;\r\n private getStrokeOptions(): StrokeOptions {\r\n if (this._strokeOptions)\r\n return this._strokeOptions;\r\n const options = StrokeOptions.createForCurves();\r\n // this is unusually fine for stroking, but appropriate for sum.\r\n options.angleTol = Angle.createDegrees(5.0);\r\n this._strokeOptions = options;\r\n return options;\r\n }\r\n /** Single curve primitive (not loop . . .).\r\n * * stroke the curve\r\n * * accumulate stroke array.\r\n */\r\n public handleCurvePrimitive(cp: CurvePrimitive) {\r\n const strokes = LineString3d.create();\r\n const options = this.getStrokeOptions();\r\n cp.emitStrokes(strokes, options);\r\n this.handleLineString3d(strokes);\r\n }\r\n /** handle strongly typed BSplineCurve3d as generic curve primitive */\r\n public override handleBSplineCurve3d(g: BSplineCurve3d) { return this.handleCurvePrimitive(g); }\r\n /** handle strongly typed BSplineCurve3dH as generic curve primitive */\r\n public override handleBSplineCurve3dH(g: BSplineCurve3dH) { return this.handleCurvePrimitive(g); }\r\n /** handle strongly typed TransitionSpiral as generic curve primitive */\r\n public override handleTransitionSpiral(g: TransitionSpiral3d) { return this.handleCurvePrimitive(g); }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"RegionMomentsXY.js","sourceRoot":"","sources":["../../../src/curve/RegionMomentsXY.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\n// import { Geometry, Angle, AngleSweep } from \"../Geometry\";\n\nimport { BSplineCurve3d } from \"../bspline/BSplineCurve\";\nimport { BSplineCurve3dH } from \"../bspline/BSplineCurve3dH\";\nimport { Angle } from \"../geometry3d/Angle\";\nimport { NullGeometryHandler } from \"../geometry3d/GeometryHandler\";\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\nimport { MomentData } from \"../geometry4d/MomentData\";\nimport { Arc3d } from \"./Arc3d\";\nimport { CurvePrimitive } from \"./CurvePrimitive\";\nimport { LineSegment3d } from \"./LineSegment3d\";\nimport { LineString3d } from \"./LineString3d\";\nimport { Loop } from \"./Loop\";\nimport { ParityRegion } from \"./ParityRegion\";\nimport { StrokeOptions } from \"./StrokeOptions\";\nimport { TransitionSpiral3d } from \"./spiral/TransitionSpiral3d\";\nimport { UnionRegion } from \"./UnionRegion\";\n\n/**\n * Implementation class for computing XY area moments.\n * @internal\n */\nexport class RegionMomentsXY extends NullGeometryHandler {\n private _activeMomentData?: MomentData;\n private _point0 = Point3d.create();\n private _point1 = Point3d.create();\n\n /** Accumulate (independent) integrations over\n * * origin to chord of the arc.\n * * origin to the \"cap\" between the chord and arc.\n */\n public override handleArc3d(arc: Arc3d): void {\n const momentData = this._activeMomentData!;\n const sweepRadians = arc.sweep.sweepRadians;\n const alphaRadians = sweepRadians * 0.5;\n // from https://apps.dtic.mil/dtic/tr/fulltext/u2/274936.pdf page 71 for radius = 1\n let s = Math.sin(alphaRadians);\n let c = Math.cos(alphaRadians);\n let s1 = Math.sin(sweepRadians);\n if (Angle.isFullCircleRadians(sweepRadians)) {\n s = 0.0;\n c = -1.0;\n s1 = 0.0;\n }\n const q = 2 * s * s * s * c / (alphaRadians - s * c);\n const s3 = s * s * s;\n const s6 = s3 * s3;\n const area = 0.5 * (sweepRadians - s1);\n const inertiaXX = 0.25 * area * (1.0 - q / 3.0);\n const inertiaYY1 = 0.25 * area * (1.0 + q);\n const inertiaYY = inertiaYY1 - 4.0 * s6 / (9.0 * area);\n const productXX = inertiaYY;\n const productYY = inertiaXX;\n const centerToCentroid = 4.0 * s * s * s / (3.0 * (sweepRadians - s1));\n const midRadians = arc.sweep.fractionToRadians(0.5);\n const centralPlane = arc.radiansToRotatedBasis(midRadians);\n const centroid = centralPlane.origin.plusScaled(centralPlane.vectorU, centerToCentroid);\n momentData.accumulateXYProductsInCentroidalFrame(productXX, 0.0, productYY, area, centroid, centralPlane.vectorU, centralPlane.vectorV);\n const pointB = arc.fractionToPoint(0.0);\n const pointC = arc.fractionToPoint(1.0);\n momentData.accumulateTriangleMomentsXY(undefined, pointB, pointC);\n }\n\n /** Accumulate integrals over the (triangular) areas from the origin to each line segment */\n public override handleLineString3d(ls: LineString3d): void {\n const momentData = this._activeMomentData!;\n momentData.accumulateTriangleToLineStringMomentsXY(undefined, ls.packedPoints);\n }\n /** Accumulate integrals over the (triangular) area from the origin to this line segment */\n public override handleLineSegment3d(segment: LineSegment3d): void {\n const momentData = this._activeMomentData!;\n segment.startPoint(this._point0);\n segment.endPoint(this._point1);\n momentData.accumulateTriangleMomentsXY(undefined, this._point0, this._point1);\n }\n /** Accumulate integrals from origin to all primitives in the chain. */\n public override handleLoop(loop: Loop): MomentData | undefined {\n const momentData = this._activeMomentData = MomentData.create();\n momentData.needOrigin = false;\n for (const child of loop.children)\n child.dispatchToGeometryHandler(this);\n this._activeMomentData = undefined;\n return momentData;\n }\n /**\n * ASSUMPTIONS FOR ORIENTATION AND CONTAINMENT ISSUES\n * * Largest area is outer\n * * All others are interior (and not overlapping)\n * Hence\n * * Outer area sign must be positive -- negate all integrations as needed\n * * Outer area signs must be positive -- negate all integrations as needed\n * @param region\n */\n public override handleParityRegion(region: ParityRegion): MomentData | undefined {\n const allChildMoments: MomentData[] = [];\n let maxAbsArea = 0.0;\n let largestChildMoments: MomentData | undefined;\n for (const child of region.children) {\n if (child instanceof Loop) {\n const childMoments = this.handleLoop(child);\n if (childMoments) {\n allChildMoments.push(childMoments);\n const q = Math.abs(childMoments.quantitySum);\n if (q > maxAbsArea) {\n maxAbsArea = q;\n largestChildMoments = childMoments;\n }\n\n }\n }\n }\n if (largestChildMoments) {\n const summedMoments = MomentData.create();\n const sign0 = largestChildMoments.signFactor(1.0);\n summedMoments.accumulateProducts(largestChildMoments, sign0);\n for (const childMoments of allChildMoments) {\n if (childMoments !== largestChildMoments) {\n const sign1 = childMoments.signFactor(-1.0);\n summedMoments.accumulateProducts(childMoments, sign1);\n }\n }\n return summedMoments;\n }\n return undefined;\n }\n /** Accumulate (as simple addition) products over each component of the union region. */\n public override handleUnionRegion(region: UnionRegion): MomentData | undefined {\n const summedMoments = MomentData.create();\n for (const child of region.children) {\n const childMoments = child.dispatchToGeometryHandler(this);\n if (childMoments) {\n const sign0 = childMoments.signFactor(1.0);\n summedMoments.accumulateProducts(childMoments, sign0);\n }\n }\n return summedMoments;\n }\n\n private _strokeOptions?: StrokeOptions;\n private getStrokeOptions(): StrokeOptions {\n if (this._strokeOptions)\n return this._strokeOptions;\n const options = StrokeOptions.createForCurves();\n // this is unusually fine for stroking, but appropriate for sum.\n options.angleTol = Angle.createDegrees(5.0);\n this._strokeOptions = options;\n return options;\n }\n /** Single curve primitive (not loop . . .).\n * * stroke the curve\n * * accumulate stroke array.\n */\n public handleCurvePrimitive(cp: CurvePrimitive) {\n const strokes = LineString3d.create();\n const options = this.getStrokeOptions();\n cp.emitStrokes(strokes, options);\n this.handleLineString3d(strokes);\n }\n /** handle strongly typed BSplineCurve3d as generic curve primitive */\n public override handleBSplineCurve3d(g: BSplineCurve3d) { return this.handleCurvePrimitive(g); }\n /** handle strongly typed BSplineCurve3dH as generic curve primitive */\n public override handleBSplineCurve3dH(g: BSplineCurve3dH) { return this.handleCurvePrimitive(g); }\n /** handle strongly typed TransitionSpiral as generic curve primitive */\n public override handleTransitionSpiral(g: TransitionSpiral3d) { return this.handleCurvePrimitive(g); }\n\n}\n"]}
@@ -7,13 +7,14 @@ import { Polyface } from "../polyface/Polyface";
7
7
  import { HalfEdge, HalfEdgeGraph, HalfEdgeMask } from "../topology/Graph";
8
8
  import { MultiLineStringDataVariant } from "../topology/Triangulation";
9
9
  import { AnyCurve, AnyRegion } from "./CurveChain";
10
- import { BagOfCurves, ConsolidateAdjacentCurvePrimitivesOptions, CurveCollection } from "./CurveCollection";
10
+ import { BagOfCurves, ConsolidateAdjacentCurvePrimitivesOptions, CurveChain, CurveCollection } from "./CurveCollection";
11
11
  import { CurvePrimitive } from "./CurvePrimitive";
12
12
  import { JointOptions, OffsetOptions } from "./internalContexts/PolygonOffsetContext";
13
13
  import { Loop, SignedLoops } from "./Loop";
14
14
  import { Path } from "./Path";
15
15
  /**
16
- * Possible return types from [[splitToPathsBetweenBreaks]], [[collectInsideAndOutsideOffsets]] and [[collectChains]].
16
+ * Possible return types from [[splitToPathsBetweenBreaks]], [[collectInsideAndOutsideOffsets]] and
17
+ * [[collectChains]].
17
18
  * @public
18
19
  */
19
20
  export type ChainTypes = CurvePrimitive | Path | BagOfCurves | Loop | undefined;
@@ -44,7 +45,8 @@ export declare enum RegionBinaryOpType {
44
45
  * * `ParityRegion` -- a collection of loops, interpreted by parity rules.
45
46
  * The common "One outer loop and many Inner loops" is a parity region.
46
47
  * * `UnionRegion` -- a collection of `Loop` and `ParityRegion` objects understood as a (probably disjoint) union.
47
- * * Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has been rotated parallel to the xy-plane.
48
+ * * **NOTE:** Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has
49
+ * been rotated parallel to the xy-plane.
48
50
  * @public
49
51
  */
50
52
  export declare class RegionOps {
@@ -55,7 +57,8 @@ export declare class RegionOps {
55
57
  * @param root any Loop, ParityRegion, or UnionRegion.
56
58
  */
57
59
  static computeXYAreaMoments(root: AnyRegion): MomentData | undefined;
58
- /** Return an area tolerance for a given xy-range and optional distance tolerance.
60
+ /**
61
+ * Return an area tolerance for a given xy-range and optional distance tolerance.
59
62
  * @param range range of planar region to tolerance
60
63
  * @param distanceTolerance optional absolute distance tolerance
61
64
  */
@@ -67,18 +70,20 @@ export declare class RegionOps {
67
70
  * @param root any Loop, ParityRegion, or UnionRegion.
68
71
  */
69
72
  static computeXYArea(root: AnyRegion): number | undefined;
70
- /** Return MomentData with the sums of wire moments.
73
+ /**
74
+ * Return MomentData with the sums of wire moments.
71
75
  * * If `rawMomentData` is the MomentData returned by computeXYAreaMoments, convert to principal axes and moments with
72
76
  * call `principalMomentData = MomentData.inertiaProductsToPrincipalAxes (rawMomentData.origin, rawMomentData.sums);`
73
77
  * @param root any CurveCollection or CurvePrimitive.
74
78
  */
75
79
  static computeXYZWireMomentSums(root: AnyCurve): MomentData | undefined;
76
80
  /**
77
- * * create loops in the graph.
81
+ * Create loops in the graph.
78
82
  * @internal
79
83
  */
80
84
  static addLoopsToGraph(graph: HalfEdgeGraph, data: MultiLineStringDataVariant, announceIsolatedLoop: (graph: HalfEdgeGraph, seed: HalfEdge) => void): void;
81
- /** Add multiple loops to a graph.
85
+ /**
86
+ * Add multiple loops to a graph.
82
87
  * * Apply edgeTag and mask to each edge.
83
88
  * @internal
84
89
  */
@@ -86,7 +91,6 @@ export declare class RegionOps {
86
91
  /**
87
92
  * Given a graph just produced by booleans, convert to a polyface
88
93
  * * "just produced" implies exterior face markup.
89
- *
90
94
  * @param graph
91
95
  * @param triangulate
92
96
  */
@@ -129,7 +133,8 @@ export declare class RegionOps {
129
133
  * @param loopsB second set of loops
130
134
  * @param operation indicates Union, Intersection, Parity, AMinusB, or BMinusA
131
135
  * @param mergeTolerance absolute distance tolerance for merging loops
132
- * @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added to connect interior loops to exterior loops.
136
+ * @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added
137
+ * to connect interior loops to exterior loops.
133
138
  */
134
139
  static regionBooleanXY(loopsA: AnyRegion | AnyRegion[] | undefined, loopsB: AnyRegion | AnyRegion[] | undefined, operation: RegionBinaryOpType, mergeTolerance?: number): AnyRegion | undefined;
135
140
  /**
@@ -157,29 +162,30 @@ export declare class RegionOps {
157
162
  * @param inputB second set of loops
158
163
  */
159
164
  static polygonBooleanXYToLoops(inputA: MultiLineStringDataVariant[], operation: RegionBinaryOpType, inputB: MultiLineStringDataVariant[]): AnyRegion | undefined;
160
- /** Construct a wire (not area!!) that is offset from given polyline or polygon.
161
- * * This is a simple wire offset, not an area.
162
- * * The construction algorithm attempts to eliminate some self-intersections within the offsets, but does not guarantee a simple area offset.
163
- * * The construction algorithm is subject to being changed, resulting in different (hopefully better) self-intersection behavior on the future.
165
+ /**
166
+ * Construct a wire that is offset from the given polyline or polygon.
167
+ * * This is a simple wire offset, not an area offset.
168
+ * * Since z-coordinates are ignored, for best results the input points should lie in (a plane parallel to)
169
+ * the xy-plane.
170
+ * * The construction algorithm attempts to eliminate some self-intersections within the offsets, but does not
171
+ * guarantee a simple area offset.
172
+ * * If offsetDistance is given as a number, default OffsetOptions are applied.
173
+ * * See [[JointOptions]] class doc for offset construction rules.
164
174
  * @param points a single loop or path
165
175
  * @param wrap true to include wraparound
166
- * @param offsetDistance distance of offset from wire. Positive is left.
176
+ * @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or JointOptions
177
+ * object.
167
178
  */
168
- static constructPolygonWireXYOffset(points: Point3d[], wrap: boolean, offsetDistance: number): CurveCollection | undefined;
179
+ static constructPolygonWireXYOffset(points: Point3d[], wrap: boolean, offsetDistanceOrOptions: number | JointOptions): CurveChain | undefined;
169
180
  /**
170
- * Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
171
- * * The construction will remove "some" local effects of features smaller than the offset distance, but will not detect self intersection among widely separated edges.
172
- * * If offsetDistance is given as a number, default OffsetOptions are applied.
173
- * * When the offset needs to do an "outside" turn, the first applicable construction is applied:
174
- * * If the turn is larger than `options.minArcDegrees`, a circular arc is constructed.
175
- * * If the turn is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to single intersection point.
176
- * * If the turn is larger than `options.maxChamferDegrees`, the turn is constructed as a sequence of straight lines that are:
177
- * * outside the arc
178
- * * have uniform turn angle less than `options.maxChamferDegrees`
179
- * * each line segment (except first and last) touches the arc at its midpoint.
180
- * @param curves base curves.
181
- * @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
182
- */
181
+ * Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
182
+ * * The construction will remove "some" local effects of features smaller than the offset distance, but will
183
+ * not detect self intersection among widely separated edges.
184
+ * * If offsetDistance is given as a number, default OffsetOptions are applied.
185
+ * * See [[JointOptions]] class doc for offset construction rules.
186
+ * @param curves base curves.
187
+ * @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
188
+ */
183
189
  static constructCurveXYOffset(curves: Path | Loop, offsetDistanceOrOptions: number | JointOptions | OffsetOptions): CurveCollection | undefined;
184
190
  /**
185
191
  * Test if point (x,y) is IN, OUT or ON a region.
@@ -189,7 +195,8 @@ export declare class RegionOps {
189
195
  * @param y y coordinate of point to test
190
196
  */
191
197
  static testPointInOnOutRegionXY(curves: AnyRegion, x: number, y: number): number;
192
- /** Create curve collection of subtype determined by gaps between the input curves.
198
+ /**
199
+ * Create curve collection of subtype determined by gaps between the input curves.
193
200
  * * If (a) wrap is requested and (b) all curves connect head-to-tail (including wraparound), assemble as a `loop`.
194
201
  * * If all curves connect head-to-tail except for closure, return a `Path`.
195
202
  * * If there are internal gaps, return a `BagOfCurves`
@@ -217,7 +224,8 @@ export declare class RegionOps {
217
224
  static cloneCurvesWithXYSplits(curvesToCut: AnyCurve | undefined, cutterCurves: CurveCollection): AnyCurve | undefined;
218
225
  /**
219
226
  * Create paths assembled from many curves.
220
- * * Assemble paths from consecutive curves NOT separated by either gaps or the split markup set by [[cloneCurvesWithXYSplits]].
227
+ * * Assemble paths from consecutive curves NOT separated by either gaps or the split markup set by
228
+ * [[cloneCurvesWithXYSplits]].
221
229
  * * Return simplest form -- single primitive, single path, or bag of curves.
222
230
  */
223
231
  static splitToPathsBetweenBreaks(source: AnyCurve | undefined, makeClones: boolean): ChainTypes;
@@ -242,7 +250,8 @@ export declare class RegionOps {
242
250
  */
243
251
  static collectChains(fragments: AnyCurve[], gapTolerance?: number): ChainTypes;
244
252
  /**
245
- * Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments of `curvesToCut`.
253
+ * Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
254
+ * of `curvesToCut`.
246
255
  * * Break `curvesToCut` into parts inside, outside, and coincident.
247
256
  * @returns output object with all fragments split among `insideParts`, `outsideParts`, and `coincidentParts`
248
257
  */
@@ -251,7 +260,8 @@ export declare class RegionOps {
251
260
  outsideParts: AnyCurve[];
252
261
  coincidentParts: AnyCurve[];
253
262
  };
254
- /** If `data` is one of several forms of a rectangle, return its edge Transform.
263
+ /**
264
+ * If `data` is one of several forms of a rectangle, return its edge Transform.
255
265
  * * Points are considered a rectangle if, within the first 4 points:
256
266
  * * vectors from 0 to 1 and 0 to 3 are perpendicular and have a non-zero cross product
257
267
  * * vectors from 0 to 3 and 1 to 2 are the same
@@ -262,7 +272,8 @@ export declare class RegionOps {
262
272
  * * Array of Point3d[]
263
273
  * * IndexedXYZCollection
264
274
  * @param requireClosurePoint whether to require a 5th point equal to the 1st point.
265
- * @returns Transform with origin at one corner, x and y columns extending along two adjacent sides, and unit normal in z column. If not a rectangle, return undefined.
275
+ * @returns Transform with origin at one corner, x and y columns extending along two adjacent sides, and unit
276
+ * normal in z column. If not a rectangle, return undefined.
266
277
  */
267
278
  static rectangleEdgeTransform(data: AnyCurve | Point3d[] | IndexedXYZCollection, requireClosurePoint?: boolean): Transform | undefined;
268
279
  /**
@@ -270,9 +281,10 @@ export declare class RegionOps {
270
281
  * * Contiguous `LineSegment3d` and `LineString3d` objects.
271
282
  * * collect all points
272
283
  * * eliminate duplicated points
273
- * * eliminate points colinear with surrounding points.
274
- * * Contiguous concentric circular or elliptic arcs
284
+ * * eliminate points colinear with surrounding points
285
+ * * contiguous concentric circular or elliptic arcs
275
286
  * * combine angular ranges
287
+ * * This function can be used to compress adjacent LineSegment3ds into a LineString3d
276
288
  * @param curves Path or loop (or larger collection containing paths and loops) to be simplified
277
289
  * @param options options for tolerance and selective simplification.
278
290
  */
@@ -283,24 +295,31 @@ export declare class RegionOps {
283
295
  * @returns a region that captures the input pointers. This region is a:
284
296
  * * `Loop` if there is exactly one input loop. It is oriented counterclockwise.
285
297
  * * `ParityRegion` if input consists of exactly one outer loop with at least one hole loop.
286
- * Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented clockwise.
287
- * * `UnionRegion` if any other input configuration. Its children are individually ordered/oriented as in the above cases.
298
+ * Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
299
+ * clockwise.
300
+ * * `UnionRegion` if any other input configuration. Its children are individually ordered/oriented as in
301
+ * the above cases.
288
302
  * @see [[PolygonOps.sortOuterAndHoleLoopsXY]]
289
303
  */
290
304
  static sortOuterAndHoleLoopsXY(loops: Array<Loop | IndexedXYZCollection>): AnyRegion;
291
305
  /**
292
306
  * Find all areas bounded by the unstructured, possibly intersecting curves.
293
- * * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the input curves.
294
- * * This method does not add bridge edges to connect outer loops to inner loops. Each disconnected loop, regardless
295
- * of its containment, is returned as its own SignedLoops object. Pre-process with [[regionBooleanXY]] to add bridge edges so that
296
- * [[constructAllXYRegionLoops]] will return outer and inner loops in the same SignedLoops object.
297
- * @param curvesAndRegions Any collection of curves. Each Loop/ParityRegion/UnionRegion contributes its curve primitives.
307
+ * * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
308
+ * input curves.
309
+ * * This method does not add bridge edges to connect outer loops to inner loops. Each disconnected loop,
310
+ * regardless of its containment, is returned as its own SignedLoops object. Pre-process with [[regionBooleanXY]]
311
+ * to add bridge edges so that [[constructAllXYRegionLoops]] will return outer and inner loops in the same
312
+ * SignedLoops object.
313
+ * @param curvesAndRegions Any collection of curves. Each Loop/ParityRegion/UnionRegion contributes its curve
314
+ * primitives.
298
315
  * @param tolerance optional distance tolerance for coincidence
299
316
  * @returns array of [[SignedLoops]], each entry of which describes the faces in a single connected component:
300
- * * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have positive area and counterclockwise orientation.
317
+ * * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
318
+ * positive area and counterclockwise orientation.
301
319
  * * `negativeAreaLoops` contains (probably just one) "exterior" loop which is ordered clockwise.
302
320
  * * `slivers` contains sliver loops that have zero area, such as appear between coincident curves.
303
- * * `edges` contains a [[LoopCurveLoopCurve]] object for each component edge, collecting both loops adjacent to the edge and a constituent curve in each.
321
+ * * `edges` contains a [[LoopCurveLoopCurve]] object for each component edge, collecting both loops adjacent
322
+ * to the edge and a constituent curve in each.
304
323
  */
305
324
  static constructAllXYRegionLoops(curvesAndRegions: AnyCurve | AnyCurve[], tolerance?: number): SignedLoops[];
306
325
  /**
@@ -309,12 +328,15 @@ export declare class RegionOps {
309
328
  * * Optionally recurses into hidden primitives if `smallestPossiblePrimitives` is true.
310
329
  * @param candidates input curves
311
330
  * @param collectorArray optional pre-defined output array. If defined, it is NOT cleared: primitives are appended.
312
- * @param smallestPossiblePrimitives if true, recurse into the children of a [[CurveChainWithDistanceIndex]]. If false, push the [[CurveChainWithDistanceIndex]] instead.
313
- * @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false, push the [[LineString3d]] instead.
331
+ * @param smallestPossiblePrimitives if true, recurse into the children of a [[CurveChainWithDistanceIndex]]. If
332
+ * false, push the [[CurveChainWithDistanceIndex]] instead.
333
+ * @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false,
334
+ * push the [[LineString3d]] instead.
314
335
  */
315
336
  static collectCurvePrimitives(candidates: AnyCurve | AnyCurve[], collectorArray?: CurvePrimitive[], smallestPossiblePrimitives?: boolean, explodeLinestrings?: boolean): CurvePrimitive[];
316
337
  /**
317
- * Copy primitive pointers from candidates to result array, replacing each [[LineString3d]] by newly constructed instances of [[LineSegment3d]].
338
+ * Copy primitive pointers from candidates to result array, replacing each [[LineString3d]] by newly constructed
339
+ * instances of [[LineSegment3d]].
318
340
  * @param candidates input curves
319
341
  * @return copied (captured) inputs except for the linestrings, which are exploded
320
342
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RegionOps.d.ts","sourceRoot":"","sources":["../../../src/curve/RegionOps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RegionOps.d.ts","sourceRoot":"","sources":["../../../src/curve/RegionOps.ts"],"names":[],"mappings":"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"}