@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
@@ -21,11 +21,12 @@ const PolygonOffsetContext_1 = require("./internalContexts/PolygonOffsetContext"
21
21
  const LineSegment3d_1 = require("./LineSegment3d");
22
22
  const StrokeCountMap_1 = require("./Query/StrokeCountMap");
23
23
  /* eslint-disable @typescript-eslint/naming-convention, no-empty */
24
- /* Starting with baseIndex and moving index by stepDirection:
25
- If the vector from baseIndex to baseIndex +1 crossed with vectorA can be normalized, accumulate it (scaled) to normal.
26
- Return when successful.
27
- (Do nothing if everything is parallel through limits of the array)
28
- */
24
+ /**
25
+ * Starting with baseIndex and moving index by stepDirection:
26
+ * If the vector from baseIndex to baseIndex +1 crossed with vectorA can be normalized, accumulate it (scaled) to normal.
27
+ * Return when successful.
28
+ * (Do nothing if everything is parallel through limits of the array)
29
+ */
29
30
  function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirection, weight, normal, workVector) {
30
31
  const n = points.length;
31
32
  if (stepDirection > 0) {
@@ -53,43 +54,67 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
53
54
  return false;
54
55
  }
55
56
  /**
56
- * * A LineString3d (sometimes called a PolyLine) is a sequence of xyz coordinates that are to be joined by line segments.
57
- * * The point coordinates are stored in a GrowableXYZArray, not as full point objects
57
+ * * A LineString3d (sometimes called a PolyLine) is a sequence of xyz coordinates that are to be joined by line
58
+ * segments.
59
+ * * The point coordinates are stored in a GrowableXYZArray, not as full point objects.
58
60
  * * The parameterization of "fraction along" is
59
- * * In a linestring with `N` segments (i.e. `N+1` points), each segment (regardless of physical length) occupies the same fraction (1/N) of the 0-to-1 fraction space.
61
+ * * In a linestring with `N` segments (i.e. `N+1` points), each segment (regardless of physical length) occupies
62
+ * the same fraction (1/N) of the 0-to-1 fraction space.
60
63
  * * Within segment `i`, the fraction interval `i/N` to `(i+1)/N` is mapped proportionally to the segment
61
64
  * * Note that this `fraction` is therefore NOT fraction of true distance along.
62
- * * Use `moveSignedDistanceFromFraction` to do true-length evaluations.
65
+ * * Use `moveSignedDistanceFromFraction` to do true-length evaluations.
63
66
  * @public
64
67
  */
65
68
  class LineString3d extends CurvePrimitive_1.CurvePrimitive {
66
69
  /** test if `other` is an instance of `LineString3d` */
67
- isSameGeometryClass(other) { return other instanceof LineString3d; }
68
- /**
69
- * A LineString3d extends along its first and final segments.
70
- */
71
- get isExtensibleFractionSpace() { return true; }
72
- /** return the points array (cloned). */
73
- get points() { return this._points.getPoint3dArray(); }
70
+ isSameGeometryClass(other) {
71
+ return other instanceof LineString3d;
72
+ }
73
+ /** A LineString3d extends along its first and final segments. */
74
+ get isExtensibleFractionSpace() {
75
+ return true;
76
+ }
77
+ /** Return the points array (cloned). */
78
+ get points() {
79
+ return this._points.getPoint3dArray();
80
+ }
74
81
  /** Return (reference to) point data in packed GrowableXYZArray. */
75
- get packedPoints() { return this._points; }
76
- /** Return array of fraction parameters.
82
+ get packedPoints() {
83
+ return this._points;
84
+ }
85
+ /**
86
+ * Return array of fraction parameters.
77
87
  * * These Are only present during certain constructions such as faceting.
78
- * * When present, these fractions are fractions of some other curve being stroked, and are NOT related to the linestring fraction parameters.
88
+ * * When present, these fractions are fractions of some other curve being stroked, and are NOT related to the
89
+ * linestring fraction parameters.
79
90
  */
80
- get fractions() { return this._fractions; }
91
+ get fractions() {
92
+ return this._fractions;
93
+ }
81
94
  /** Return the (optional) array of derivatives. These Are only present during certain constructions such as faceting. */
82
- get packedDerivatives() { return this._derivatives; }
95
+ get packedDerivatives() {
96
+ return this._derivatives;
97
+ }
83
98
  /** Return the (optional) array of uv params. These Are only present during certain constructions such as faceting. */
84
- get packedUVParams() { return this._uvParams; }
99
+ get packedUVParams() {
100
+ return this._uvParams;
101
+ }
85
102
  /** Return the (optional) array of surface normals. These Are only present during certain constructions such as faceting. */
86
- get packedSurfaceNormals() { return this._surfaceNormals; }
103
+ get packedSurfaceNormals() {
104
+ return this._surfaceNormals;
105
+ }
87
106
  /** Return the (optional) array of normal indices. These Are only present during certain constructions such as faceting. */
88
- get normalIndices() { return this._normalIndices; }
107
+ get normalIndices() {
108
+ return this._normalIndices;
109
+ }
89
110
  /** Return the (optional) array of param indices. These Are only present during certain constructions such as faceting. */
90
- get paramIndices() { return this._uvIndices; }
111
+ get paramIndices() {
112
+ return this._uvIndices;
113
+ }
91
114
  /** Return the (optional) array of point indices. These Are only present during certain constructions such as faceting. */
92
- get pointIndices() { return this._pointIndices; }
115
+ get pointIndices() {
116
+ return this._pointIndices;
117
+ }
93
118
  constructor(points) {
94
119
  super();
95
120
  /** String name for schema properties */
@@ -105,7 +130,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
105
130
  c.tryTransformInPlace(transform);
106
131
  return c;
107
132
  }
108
- /** Create a linestring, using flex length arg list and any typical combination of points such as
133
+ /**
134
+ * Create a linestring, using flex length arg list and any typical combination of points such as
109
135
  * Point3d, Point2d, `[1,2,3]', array of any of those, or GrowableXYZArray
110
136
  */
111
137
  static create(...points) {
@@ -113,7 +139,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
113
139
  result.addPoints(points);
114
140
  return result;
115
141
  }
116
- /** Create a linestring, capturing the given GrowableXYZArray as the points.
142
+ /**
143
+ * Create a linestring, capturing the given GrowableXYZArray as the points.
117
144
  * Point3d, Point2d, `[1,2,3]', array of any of those, or GrowableXYZArray
118
145
  */
119
146
  static createCapture(points) {
@@ -138,7 +165,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
138
165
  }
139
166
  return result;
140
167
  }
141
- /** Add points to the linestring.
168
+ /**
169
+ * Add points to the linestring.
142
170
  * Valid inputs are:
143
171
  * * a Point2d
144
172
  * * a point3d
@@ -290,9 +318,7 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
290
318
  this._surfaceNormals = new GrowableXYZArray_1.GrowableXYZArray();
291
319
  this._surfaceNormals.push(vector);
292
320
  }
293
- /**
294
- * If the linestring is not already closed, add a closure point.
295
- */
321
+ /** If the linestring is not already closed, add a closure point. */
296
322
  addClosurePoint() {
297
323
  const distance = this._points.distanceIndexIndex(0, this._points.length - 1);
298
324
  if (distance !== undefined && !Geometry_1.Geometry.isSameCoordinate(distance, 0))
@@ -306,7 +332,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
306
332
  computeUVFromXYZTransform(transform) {
307
333
  this._uvParams = GrowableXYArray_1.GrowableXYArray.createFromGrowableXYZArray(this._points, transform);
308
334
  }
309
- /** Create the linestring for a rectangle parallel to the xy plane.
335
+ /**
336
+ * Create the linestring for a rectangle parallel to the xy plane.
310
337
  * * The z coordinate from `point0` is used for all points.
311
338
  * * `ax` and `ay` are signed.
312
339
  * * The point sequence is:
@@ -337,7 +364,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
337
364
  * @param center center of the polygon.
338
365
  * @param edgeCount number of edges.
339
366
  * @param radius distance to vertex or edge (see `radiusToVertices`)
340
- * @param radiusToVertices true if polygon is inscribed in circle (radius measured to vertices); false if polygon is outside circle (radius to edges)
367
+ * @param radiusToVertices true if polygon is inscribed in circle (radius measured to vertices); false if polygon
368
+ * is outside circle (radius to edges)
341
369
  */
342
370
  static createRegularPolygonXY(center, edgeCount, radius, radiusToVertices = true) {
343
371
  if (edgeCount < 3)
@@ -419,7 +447,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
419
447
  retVal.setFrom(this);
420
448
  return retVal;
421
449
  }
422
- /** Set point coordinates from a json array, e.g. `[[1,2,3],[4,5,6] . . .]`
450
+ /**
451
+ * Set point coordinates from a json array, e.g. `[[1,2,3],[4,5,6] . . .]`
423
452
  * * The `json` parameter must be an array.
424
453
  * * Each member `i` of the array is converted to a point with `Point3d.fromJSON(json[i]`)
425
454
  */
@@ -444,7 +473,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
444
473
  }
445
474
  return value;
446
475
  }
447
- /** construct a new linestring.
476
+ /**
477
+ * Construct a new linestring.
448
478
  * * See `LineString3d.setFromJSON ()` for remarks on `json` structure.
449
479
  */
450
480
  static fromJSON(json) {
@@ -534,7 +564,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
534
564
  }
535
565
  /**
536
566
  * Convert a global fraction to a segment index and local fraction.
537
- * @param globalFraction a fraction f in [0,1] in the linestring parameterization, where the i_th segment (0 <= i < N) is parameterized by i/N <= f <= (i+1)/N.
567
+ * @param globalFraction a fraction f in [0,1] in the linestring parameterization, where the i_th segment
568
+ * (0 <= i < N) is parameterized by i/N <= f <= (i+1)/N.
538
569
  */
539
570
  globalFractionToSegmentIndexAndLocalFraction(globalFraction) {
540
571
  const numSegment = this._points.length - 1;
@@ -598,7 +629,7 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
598
629
  return Transform_1.Transform.createOriginAndMatrix(origin, matrix, result);
599
630
  return Transform_1.Transform.createTranslation(origin, result);
600
631
  }
601
- /** evaluate the start point of the linestring. */
632
+ /** Evaluate the start point of the linestring. */
602
633
  startPoint() {
603
634
  if (this._points.length === 0)
604
635
  return Point3dVector3d_1.Point3d.createZero();
@@ -610,8 +641,7 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
610
641
  return this._points.getPoint3dAtUncheckedPointIndex(i, result);
611
642
  return undefined;
612
643
  }
613
- /** If i and j are both valid indices, return the vector from point i to point j
614
- */
644
+ /** If i and j are both valid indices, return the vector from point i to point j */
615
645
  vectorBetween(i, j, result) {
616
646
  return this._points.vectorIndexIndex(i, j, result);
617
647
  }
@@ -628,8 +658,10 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
628
658
  return undefined;
629
659
  }
630
660
  /** Return the number of points in this linestring. */
631
- numPoints() { return this._points.length; }
632
- /** evaluate the end point of the linestring. */
661
+ numPoints() {
662
+ return this._points.length;
663
+ }
664
+ /** Evaluate the end point of the linestring. */
633
665
  endPoint() {
634
666
  if (this._points.length === 0)
635
667
  return Point3dVector3d_1.Point3d.createZero();
@@ -653,7 +685,9 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
653
685
  return true;
654
686
  }
655
687
  /** Sum the lengths of segments within the linestring */
656
- curveLength() { return this._points.sumLengths(); }
688
+ curveLength() {
689
+ return this._points.sumLengths();
690
+ }
657
691
  /** Sum the lengths of segments between fractional positions on a linestring. */
658
692
  curveLengthBetweenFractions(fraction0, fraction1) {
659
693
  const numSegments = this._points.length - 1;
@@ -752,10 +786,10 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
752
786
  return CurveLocationDetail_1.CurveLocationDetail.createCurveFractionPointDistanceCurveSearchStatus(this, context.fraction0, context.point0, -context.distance0, context.distanceStatus(), result);
753
787
  }
754
788
  }
755
- /** sum lengths of segments in the linestring. (This is a true length.) */
789
+ /** Sum lengths of segments in the linestring. (This is a true length.) */
756
790
  quickLength() { return this.curveLength(); }
757
791
  /**
758
- * compute and normalize cross product among 3 points on the linestring.
792
+ * Compute and normalize cross product among 3 points on the linestring.
759
793
  * * "any" 3 points are acceptable -- no test for positive overall sense.
760
794
  * * This is appropriate for polygon known to be convex.
761
795
  * * use points spread at index step n/3, hopefully avoiding colinear points.
@@ -794,7 +828,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
794
828
  if (!extend1 || i < lastIndex)
795
829
  segmentFraction = 1.0;
796
830
  }
797
- this._points.getPoint3dAtUncheckedPointIndex(i - 1).interpolate(segmentFraction, this._points.getPoint3dAtUncheckedPointIndex(i), result.pointQ);
831
+ this._points.getPoint3dAtUncheckedPointIndex(i - 1)
832
+ .interpolate(segmentFraction, this._points.getPoint3dAtUncheckedPointIndex(i), result.pointQ);
798
833
  d = result.pointQ.distance(spacePoint);
799
834
  if (d < result.a) {
800
835
  result.setFP(this.segmentIndexAndLocalFractionToGlobalFraction(i - 1, segmentFraction), result.pointQ, undefined, d);
@@ -808,8 +843,9 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
808
843
  isInPlane(plane) {
809
844
  return this._points.isCloseToPlane(plane, Geometry_1.Geometry.smallMetricDistance);
810
845
  }
811
- /** push a hit, fixing up the prior entry if needed.
812
- * return the incremented counter.
846
+ /**
847
+ * Push a hit, fixing up the prior entry if needed.
848
+ * Return the incremented counter.
813
849
  */
814
850
  static pushVertexHit(result, counter, cp, fraction, point) {
815
851
  const detail = CurveLocationDetail_1.CurveLocationDetail.createCurveFractionPoint(cp, fraction, point);
@@ -826,7 +862,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
826
862
  detail.setIntervalRole(CurveLocationDetail_1.CurveIntervalRole.intervalEnd);
827
863
  }
828
864
  }
829
- /** find intersections with a plane.
865
+ /**
866
+ * Find intersections with a plane.
830
867
  * Intersections within segments are recorded as CurveIntervalRole.isolated
831
868
  * Intersections at isolated "on" vertex are recoded as CurveIntervalRole.isolatedAtVertex.
832
869
  */
@@ -863,7 +900,9 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
863
900
  return result.length - initialLength;
864
901
  }
865
902
  /** Extend `rangeToExtend` to include all points of this linestring. */
866
- extendRange(rangeToExtend, transform) { this._points.extendRange(rangeToExtend, transform); }
903
+ extendRange(rangeToExtend, transform) {
904
+ this._points.extendRange(rangeToExtend, transform);
905
+ }
867
906
  /** Test if each point of this linestring isAlmostEqual with corresponding point in `other`. */
868
907
  isAlmostEqual(other) {
869
908
  if (!(other instanceof LineString3d))
@@ -872,7 +911,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
872
911
  return false;
873
912
  return true;
874
913
  }
875
- /** Append (clone of) one point.
914
+ /**
915
+ * Append (clone of) one point.
876
916
  * * BUT ... skip if duplicates the tail of prior points.
877
917
  * * if fraction is given, "duplicate" considers both point and fraction.
878
918
  */
@@ -892,8 +932,7 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
892
932
  this.addFraction(fraction);
893
933
  }
894
934
  }
895
- /** Compress out duplicate points (according to point.isAlmostEqual)
896
- */
935
+ /** Compress out duplicate points (according to point.isAlmostEqual) */
897
936
  removeDuplicatePoints(tolerance = Geometry_1.Geometry.smallMetricDistance) {
898
937
  const n = this._points.length;
899
938
  if (n < 2)
@@ -916,7 +955,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
916
955
  if (this._derivatives)
917
956
  this._derivatives.resize(n1);
918
957
  }
919
- /** Append a suitable evaluation of a curve ..
958
+ /**
959
+ * Append a suitable evaluation of a curve ..
920
960
  * * always append the curve point
921
961
  * * if fraction array is present, append the fraction
922
962
  * * if derivative array is present, append the derivative
@@ -939,7 +979,7 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
939
979
  }
940
980
  }
941
981
  /**
942
- * clear all array data:
982
+ * Clear all array data:
943
983
  * * points
944
984
  * * optional fractions.
945
985
  * * optional derivatives.
@@ -973,7 +1013,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
973
1013
  }
974
1014
  return ls;
975
1015
  }
976
- /** Evaluate a curve at uniform fractions. Append the evaluations to this linestring.
1016
+ /**
1017
+ * Evaluate a curve at uniform fractions. Append the evaluations to this linestring.
977
1018
  * @param curve primitive to evaluate.
978
1019
  * @param numStrokes number of strokes (edges).
979
1020
  * @param fraction0 starting fraction coordinate
@@ -993,7 +1034,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
993
1034
  this.appendFractionToPoint(curve, fraction0 + i * df);
994
1035
  }
995
1036
  }
996
- /** Append points constructed as interpolation between two points.
1037
+ /**
1038
+ * Append points constructed as interpolation between two points.
997
1039
  * @param numStrokes number of strokes.
998
1040
  * @param point0 first point
999
1041
  * @param point1 last point
@@ -1039,7 +1081,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
1039
1081
  }
1040
1082
  }
1041
1083
  }
1042
- /** Emit strokable parts of the curve to a caller-supplied handler.
1084
+ /**
1085
+ * Emit strokable parts of the curve to a caller-supplied handler.
1043
1086
  * If the stroke options does not have a maxEdgeLength, one stroke is emitted for each segment of the linestring.
1044
1087
  * If the stroke options has a maxEdgeLength, smaller segments are emitted as needed.
1045
1088
  */
@@ -1066,7 +1109,7 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
1066
1109
  handler.endCurvePrimitive(this);
1067
1110
  }
1068
1111
  /**
1069
- * return the stroke count required for given options.
1112
+ * Return the stroke count required for given options.
1070
1113
  * @param options StrokeOptions that determine count
1071
1114
  */
1072
1115
  computeStrokeCountForOptions(options) {
@@ -1105,7 +1148,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
1105
1148
  /**
1106
1149
  * Find intervals of this CurvePrimitive that are interior to a clipper
1107
1150
  * @param clipper clip structure (e.g. clip planes)
1108
- * @param announce (optional) function to be called announcing fractional intervals" ` announce(fraction0, fraction1, curvePrimitive)`
1151
+ * @param announce (optional) function to be called announcing fractional intervals"
1152
+ * ` announce(fraction0, fraction1, curvePrimitive)`
1109
1153
  * @returns true if any "in" segments are announced.
1110
1154
  */
1111
1155
  announceClipIntervals(clipper, announce) {
@@ -1149,7 +1193,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
1149
1193
  this._points.interpolate(index, fraction, index + 1, LineString3d._indexPoint);
1150
1194
  dest.push(LineString3d._indexPoint);
1151
1195
  }
1152
- /** Return a LineString which is a portion of this curve.
1196
+ /**
1197
+ * Return a LineString which is a portion of this curve.
1153
1198
  * * Fractions outside [0,1] extend the relevant end segment.
1154
1199
  * @param fractionA [in] start fraction
1155
1200
  * @param fractionB [in] end fraction
@@ -1209,14 +1254,12 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
1209
1254
  return LineSegment3d_1.LineSegment3d.create(this._points.getPoint3dAtCheckedPointIndex(index), this._points.getPoint3dAtCheckedPointIndex(index + 1));
1210
1255
  return undefined;
1211
1256
  }
1212
- /**
1213
- * Returns true if first and last points are within metric tolerance.
1214
- */
1257
+ /** Returns true if first and last points are within metric tolerance. */
1215
1258
  get isPhysicallyClosed() {
1216
1259
  return this._points.length > 0 && Geometry_1.Geometry.isSmallMetricDistance(this._points.distanceIndexIndex(0, this._points.length - 1));
1217
1260
  }
1218
1261
  /**
1219
- * evaluate strokes at fractions indicated in a StrokeCountMap.
1262
+ * Evaluate strokes at fractions indicated in a StrokeCountMap.
1220
1263
  * * The map must have an array of component counts corresponding to the segment of this linestring.
1221
1264
  * * "fractions" in the output are mapped within a0,a1 of the map.componentData
1222
1265
  * @param map = stroke count data.
@@ -1253,7 +1296,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
1253
1296
  }
1254
1297
  return destLinestring.numPoints() - numPoint0;
1255
1298
  }
1256
- /** convert variant point data to a single level array of linestrings.
1299
+ /**
1300
+ * Convert variant point data to a single level array of linestrings.
1257
1301
  * * The result is always an array of LineString3d.
1258
1302
  * * Single linestring is NOT bubbled out as a special case.
1259
1303
  * * data with no point is an empty array.
@@ -1288,7 +1332,8 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
1288
1332
  }
1289
1333
  /**
1290
1334
  * Construct an offset of each segment as viewed in the xy-plane (ignoring z).
1291
- * * No attempt is made to join the offset segments. Use RegionOps.constructCurveXYOffset() to return a fully joined offset.
1335
+ * * No attempt is made to join the offset segments. Use RegionOps.constructCurveXYOffset() to return a fully
1336
+ * joined offset.
1292
1337
  * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
1293
1338
  */
1294
1339
  constructOffsetXY(offsetDistanceOrOptions) {
@@ -1305,10 +1350,13 @@ class LineString3d extends CurvePrimitive_1.CurvePrimitive {
1305
1350
  }
1306
1351
  return offsets;
1307
1352
  }
1308
- /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
1353
+ /**
1354
+ * Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters
1355
+ * of projection.
1309
1356
  * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
1310
1357
  * @param lowHigh optional receiver for output
1311
- * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
1358
+ * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is
1359
+ * the end of the ray.
1312
1360
  */
1313
1361
  projectedParameterRange(ray, lowHigh) {
1314
1362
  return PlaneAltitudeRangeContext_1.PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
@@ -1320,7 +1368,8 @@ LineString3d._workPointC = Point3dVector3d_1.Point3d.create();
1320
1368
  LineString3d._workRay = Ray3d_1.Ray3d.createXAxis();
1321
1369
  LineString3d._indexPoint = Point3dVector3d_1.Point3d.create(); // private point for addResolvedPoint
1322
1370
  exports.LineString3d = LineString3d;
1323
- /** An AnnotatedLineString3d is a linestring with additional surface-related data attached to each point
1371
+ /**
1372
+ * An AnnotatedLineString3d is a linestring with additional surface-related data attached to each point
1324
1373
  * * This is useful in facet construction.
1325
1374
  * @internal
1326
1375
  */
@@ -1328,7 +1377,7 @@ class AnnotatedLineString3d {
1328
1377
  }
1329
1378
  exports.AnnotatedLineString3d = AnnotatedLineString3d;
1330
1379
  /**
1331
- * context to be called to incrementally accumulate distance along line segments.
1380
+ * Context to be called to incrementally accumulate distance along line segments.
1332
1381
  */
1333
1382
  class MoveByDistanceContext {
1334
1383
  /** CAPTURE point0, fraction0, targetDistance */