@itwin/core-geometry 4.0.0-dev.4 → 4.0.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 (344) hide show
  1. package/CHANGELOG.md +17 -3
  2. package/lib/cjs/Geometry.d.ts +56 -16
  3. package/lib/cjs/Geometry.d.ts.map +1 -1
  4. package/lib/cjs/Geometry.js +87 -30
  5. package/lib/cjs/Geometry.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurveOps.js +4 -5
  7. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  8. package/lib/cjs/bspline/InterpolationCurve3d.js +7 -10
  9. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  10. package/lib/cjs/clipping/ClipPrimitive.js +2 -2
  11. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  12. package/lib/cjs/clipping/ClipUtils.js +4 -4
  13. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  14. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js +2 -2
  15. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  16. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  17. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +20 -13
  18. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  19. package/lib/cjs/curve/CurveCollection.js +1 -1
  20. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  21. package/lib/cjs/curve/CurveCurve.d.ts +11 -8
  22. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  23. package/lib/cjs/curve/CurveCurve.js +16 -12
  24. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  25. package/lib/cjs/curve/CurveCurveIntersectXY.d.ts +5 -1
  26. package/lib/cjs/curve/CurveCurveIntersectXY.d.ts.map +1 -1
  27. package/lib/cjs/curve/CurveCurveIntersectXY.js +11 -10
  28. package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
  29. package/lib/cjs/curve/Loop.d.ts +2 -2
  30. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  31. package/lib/cjs/curve/Loop.js +6 -0
  32. package/lib/cjs/curve/Loop.js.map +1 -1
  33. package/lib/cjs/curve/RegionOps.d.ts +10 -10
  34. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  35. package/lib/cjs/curve/RegionOps.js +11 -11
  36. package/lib/cjs/curve/RegionOps.js.map +1 -1
  37. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +2 -1
  38. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  39. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +5 -2
  40. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  41. package/lib/cjs/curve/StrokeOptions.js +1 -2
  42. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  43. package/lib/cjs/curve/spiral/DirectSpiral3d.js +1 -2
  44. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  45. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +1 -2
  46. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  47. package/lib/cjs/geometry3d/Angle.d.ts +19 -0
  48. package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
  49. package/lib/cjs/geometry3d/Angle.js +39 -0
  50. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  51. package/lib/cjs/geometry3d/AngleSweep.d.ts +1 -0
  52. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  53. package/lib/cjs/geometry3d/AngleSweep.js +1 -0
  54. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  55. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts +195 -8
  56. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  57. package/lib/cjs/geometry3d/BarycentricTriangle.js +459 -11
  58. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  59. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts +1 -0
  60. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  61. package/lib/cjs/geometry3d/CoincidentGeometryOps.js +3 -0
  62. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  63. package/lib/cjs/geometry3d/GrowableFloat64Array.js +2 -2
  64. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  65. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +1 -1
  66. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  67. package/lib/cjs/geometry3d/GrowableXYArray.js +2 -2
  68. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  69. package/lib/cjs/geometry3d/GrowableXYZArray.js +1 -1
  70. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  71. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts +22 -7
  72. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  73. package/lib/cjs/geometry3d/IndexedXYCollection.js +41 -5
  74. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  75. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +58 -4
  76. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  77. package/lib/cjs/geometry3d/IndexedXYZCollection.js +102 -4
  78. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  79. package/lib/cjs/geometry3d/Matrix3d.d.ts +479 -265
  80. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  81. package/lib/cjs/geometry3d/Matrix3d.js +996 -784
  82. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  83. package/lib/cjs/geometry3d/OrderedRotationAngles.d.ts +1 -0
  84. package/lib/cjs/geometry3d/OrderedRotationAngles.d.ts.map +1 -1
  85. package/lib/cjs/geometry3d/OrderedRotationAngles.js +1 -0
  86. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  87. package/lib/cjs/geometry3d/Point2dArrayCarrier.d.ts +10 -0
  88. package/lib/cjs/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
  89. package/lib/cjs/geometry3d/Point2dArrayCarrier.js +14 -0
  90. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  91. package/lib/cjs/geometry3d/Point2dVector2d.js +4 -6
  92. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  93. package/lib/cjs/geometry3d/Point3dArrayCarrier.d.ts +0 -6
  94. package/lib/cjs/geometry3d/Point3dArrayCarrier.d.ts.map +1 -1
  95. package/lib/cjs/geometry3d/Point3dArrayCarrier.js +0 -6
  96. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  97. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +57 -57
  98. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  99. package/lib/cjs/geometry3d/Point3dVector3d.js +63 -65
  100. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  101. package/lib/cjs/geometry3d/PointHelpers.d.ts +14 -1
  102. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  103. package/lib/cjs/geometry3d/PointHelpers.js +33 -1
  104. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  105. package/lib/cjs/geometry3d/PolygonOps.d.ts +127 -19
  106. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  107. package/lib/cjs/geometry3d/PolygonOps.js +420 -22
  108. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  109. package/lib/cjs/geometry3d/Ray3d.js +1 -1
  110. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  111. package/lib/cjs/geometry3d/Segment1d.d.ts +1 -1
  112. package/lib/cjs/geometry3d/Segment1d.js +1 -1
  113. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  114. package/lib/cjs/numerics/Polynomials.d.ts +12 -0
  115. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  116. package/lib/cjs/numerics/Polynomials.js +14 -0
  117. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  118. package/lib/cjs/polyface/AuxData.js +1 -1
  119. package/lib/cjs/polyface/AuxData.js.map +1 -1
  120. package/lib/cjs/polyface/FacetLocationDetail.d.ts +264 -0
  121. package/lib/cjs/polyface/FacetLocationDetail.d.ts.map +1 -0
  122. package/lib/cjs/polyface/FacetLocationDetail.js +376 -0
  123. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -0
  124. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +2 -5
  125. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  126. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +5 -2
  127. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  128. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +24 -14
  129. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  130. package/lib/cjs/polyface/PolyfaceBuilder.js +74 -23
  131. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  132. package/lib/cjs/polyface/PolyfaceClip.js +6 -7
  133. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  134. package/lib/cjs/polyface/PolyfaceData.d.ts +1 -1
  135. package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
  136. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  137. package/lib/cjs/polyface/PolyfaceQuery.d.ts +76 -1
  138. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  139. package/lib/cjs/polyface/PolyfaceQuery.js +123 -3
  140. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  141. package/lib/cjs/polyface/multiclip/OffsetMeshContext.d.ts +202 -0
  142. package/lib/cjs/polyface/multiclip/OffsetMeshContext.d.ts.map +1 -0
  143. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js +1038 -0
  144. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -0
  145. package/lib/cjs/serialization/BGFBReader.js +4 -4
  146. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  147. package/lib/cjs/serialization/GeometrySamples.d.ts +8 -6
  148. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  149. package/lib/cjs/serialization/GeometrySamples.js +26 -19
  150. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  151. package/lib/cjs/serialization/IModelJsonSchema.js +1 -2
  152. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  153. package/lib/cjs/solid/Sphere.d.ts +5 -5
  154. package/lib/cjs/solid/Sphere.js +5 -5
  155. package/lib/cjs/solid/Sphere.js.map +1 -1
  156. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  157. package/lib/cjs/solid/SweepContour.js +8 -1
  158. package/lib/cjs/solid/SweepContour.js.map +1 -1
  159. package/lib/cjs/topology/Graph.d.ts +113 -7
  160. package/lib/cjs/topology/Graph.d.ts.map +1 -1
  161. package/lib/cjs/topology/Graph.js +185 -7
  162. package/lib/cjs/topology/Graph.js.map +1 -1
  163. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +38 -0
  164. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts.map +1 -0
  165. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js +82 -0
  166. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -0
  167. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts +2 -1
  168. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  169. package/lib/cjs/topology/HalfEdgeGraphSearch.js +1 -0
  170. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  171. package/lib/cjs/topology/Triangulation.js +1 -1
  172. package/lib/cjs/topology/Triangulation.js.map +1 -1
  173. package/lib/esm/Geometry.d.ts +56 -16
  174. package/lib/esm/Geometry.d.ts.map +1 -1
  175. package/lib/esm/Geometry.js +86 -29
  176. package/lib/esm/Geometry.js.map +1 -1
  177. package/lib/esm/bspline/BSplineCurveOps.js +4 -5
  178. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  179. package/lib/esm/bspline/InterpolationCurve3d.js +7 -10
  180. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  181. package/lib/esm/clipping/ClipPrimitive.js +2 -2
  182. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  183. package/lib/esm/clipping/ClipUtils.js +4 -4
  184. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  185. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js +2 -2
  186. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  187. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  188. package/lib/esm/curve/CurveChainWithDistanceIndex.js +21 -14
  189. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  190. package/lib/esm/curve/CurveCollection.js +1 -1
  191. package/lib/esm/curve/CurveCollection.js.map +1 -1
  192. package/lib/esm/curve/CurveCurve.d.ts +11 -8
  193. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  194. package/lib/esm/curve/CurveCurve.js +16 -12
  195. package/lib/esm/curve/CurveCurve.js.map +1 -1
  196. package/lib/esm/curve/CurveCurveIntersectXY.d.ts +5 -1
  197. package/lib/esm/curve/CurveCurveIntersectXY.d.ts.map +1 -1
  198. package/lib/esm/curve/CurveCurveIntersectXY.js +11 -10
  199. package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
  200. package/lib/esm/curve/Loop.d.ts +2 -2
  201. package/lib/esm/curve/Loop.d.ts.map +1 -1
  202. package/lib/esm/curve/Loop.js +6 -0
  203. package/lib/esm/curve/Loop.js.map +1 -1
  204. package/lib/esm/curve/RegionOps.d.ts +10 -10
  205. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  206. package/lib/esm/curve/RegionOps.js +11 -11
  207. package/lib/esm/curve/RegionOps.js.map +1 -1
  208. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +2 -1
  209. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  210. package/lib/esm/curve/RegionOpsClassificationSweeps.js +5 -2
  211. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  212. package/lib/esm/curve/StrokeOptions.js +1 -2
  213. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  214. package/lib/esm/curve/spiral/DirectSpiral3d.js +1 -2
  215. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  216. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +1 -2
  217. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  218. package/lib/esm/geometry3d/Angle.d.ts +19 -0
  219. package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
  220. package/lib/esm/geometry3d/Angle.js +39 -0
  221. package/lib/esm/geometry3d/Angle.js.map +1 -1
  222. package/lib/esm/geometry3d/AngleSweep.d.ts +1 -0
  223. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  224. package/lib/esm/geometry3d/AngleSweep.js +1 -0
  225. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  226. package/lib/esm/geometry3d/BarycentricTriangle.d.ts +195 -8
  227. package/lib/esm/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  228. package/lib/esm/geometry3d/BarycentricTriangle.js +459 -12
  229. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  230. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts +1 -0
  231. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  232. package/lib/esm/geometry3d/CoincidentGeometryOps.js +3 -0
  233. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  234. package/lib/esm/geometry3d/GrowableFloat64Array.js +2 -2
  235. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  236. package/lib/esm/geometry3d/GrowableXYArray.d.ts +1 -1
  237. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  238. package/lib/esm/geometry3d/GrowableXYArray.js +2 -2
  239. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  240. package/lib/esm/geometry3d/GrowableXYZArray.js +1 -1
  241. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  242. package/lib/esm/geometry3d/IndexedXYCollection.d.ts +22 -7
  243. package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  244. package/lib/esm/geometry3d/IndexedXYCollection.js +41 -5
  245. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  246. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +58 -4
  247. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  248. package/lib/esm/geometry3d/IndexedXYZCollection.js +103 -5
  249. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  250. package/lib/esm/geometry3d/Matrix3d.d.ts +479 -265
  251. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  252. package/lib/esm/geometry3d/Matrix3d.js +996 -784
  253. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  254. package/lib/esm/geometry3d/OrderedRotationAngles.d.ts +1 -0
  255. package/lib/esm/geometry3d/OrderedRotationAngles.d.ts.map +1 -1
  256. package/lib/esm/geometry3d/OrderedRotationAngles.js +1 -0
  257. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  258. package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts +10 -0
  259. package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
  260. package/lib/esm/geometry3d/Point2dArrayCarrier.js +14 -0
  261. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  262. package/lib/esm/geometry3d/Point2dVector2d.js +4 -6
  263. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  264. package/lib/esm/geometry3d/Point3dArrayCarrier.d.ts +0 -6
  265. package/lib/esm/geometry3d/Point3dArrayCarrier.d.ts.map +1 -1
  266. package/lib/esm/geometry3d/Point3dArrayCarrier.js +0 -6
  267. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  268. package/lib/esm/geometry3d/Point3dVector3d.d.ts +57 -57
  269. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  270. package/lib/esm/geometry3d/Point3dVector3d.js +63 -65
  271. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  272. package/lib/esm/geometry3d/PointHelpers.d.ts +14 -1
  273. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  274. package/lib/esm/geometry3d/PointHelpers.js +33 -1
  275. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  276. package/lib/esm/geometry3d/PolygonOps.d.ts +127 -19
  277. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  278. package/lib/esm/geometry3d/PolygonOps.js +419 -22
  279. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  280. package/lib/esm/geometry3d/Ray3d.js +1 -1
  281. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  282. package/lib/esm/geometry3d/Segment1d.d.ts +1 -1
  283. package/lib/esm/geometry3d/Segment1d.js +1 -1
  284. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  285. package/lib/esm/numerics/Polynomials.d.ts +12 -0
  286. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  287. package/lib/esm/numerics/Polynomials.js +14 -0
  288. package/lib/esm/numerics/Polynomials.js.map +1 -1
  289. package/lib/esm/polyface/AuxData.js +1 -1
  290. package/lib/esm/polyface/AuxData.js.map +1 -1
  291. package/lib/esm/polyface/FacetLocationDetail.d.ts +264 -0
  292. package/lib/esm/polyface/FacetLocationDetail.d.ts.map +1 -0
  293. package/lib/esm/polyface/FacetLocationDetail.js +369 -0
  294. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -0
  295. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +2 -5
  296. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  297. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +5 -2
  298. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  299. package/lib/esm/polyface/PolyfaceBuilder.d.ts +24 -14
  300. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  301. package/lib/esm/polyface/PolyfaceBuilder.js +74 -23
  302. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  303. package/lib/esm/polyface/PolyfaceClip.js +6 -7
  304. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  305. package/lib/esm/polyface/PolyfaceData.d.ts +1 -1
  306. package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
  307. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  308. package/lib/esm/polyface/PolyfaceQuery.d.ts +76 -1
  309. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  310. package/lib/esm/polyface/PolyfaceQuery.js +121 -2
  311. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  312. package/lib/esm/polyface/multiclip/OffsetMeshContext.d.ts +202 -0
  313. package/lib/esm/polyface/multiclip/OffsetMeshContext.d.ts.map +1 -0
  314. package/lib/esm/polyface/multiclip/OffsetMeshContext.js +1032 -0
  315. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -0
  316. package/lib/esm/serialization/BGFBReader.js +4 -4
  317. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  318. package/lib/esm/serialization/GeometrySamples.d.ts +8 -6
  319. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  320. package/lib/esm/serialization/GeometrySamples.js +26 -19
  321. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  322. package/lib/esm/serialization/IModelJsonSchema.js +1 -2
  323. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  324. package/lib/esm/solid/Sphere.d.ts +5 -5
  325. package/lib/esm/solid/Sphere.js +5 -5
  326. package/lib/esm/solid/Sphere.js.map +1 -1
  327. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  328. package/lib/esm/solid/SweepContour.js +8 -1
  329. package/lib/esm/solid/SweepContour.js.map +1 -1
  330. package/lib/esm/topology/Graph.d.ts +113 -7
  331. package/lib/esm/topology/Graph.d.ts.map +1 -1
  332. package/lib/esm/topology/Graph.js +185 -7
  333. package/lib/esm/topology/Graph.js.map +1 -1
  334. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +38 -0
  335. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts.map +1 -0
  336. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js +78 -0
  337. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -0
  338. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts +2 -1
  339. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  340. package/lib/esm/topology/HalfEdgeGraphSearch.js +1 -0
  341. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  342. package/lib/esm/topology/Triangulation.js +1 -1
  343. package/lib/esm/topology/Triangulation.js.map +1 -1
  344. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"Point3dArrayCarrier.js","sourceRoot":"","sources":["../../../src/geometry3d/Point3dArrayCarrier.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 ArraysAndInterfaces\r\n */\r\n\r\nimport { IndexedReadWriteXYZCollection } from \"./IndexedXYZCollection\";\r\nimport { Point3d, Vector3d } from \"./Point3dVector3d\";\r\nimport { XYAndZ } from \"./XYZProps\";\r\n\r\n/**\r\n * Helper object to access members of a Point3d[] in geometric calculations.\r\n * * The collection holds only a reference to the actual array.\r\n * * The actual array may be replaced by the user as needed.\r\n * * When replaced, there is no cached data to be updated.\r\n * @public\r\n */\r\nexport class Point3dArrayCarrier extends IndexedReadWriteXYZCollection {\r\n /** reference to array being queried. */\r\n public data: Point3d[];\r\n /** CAPTURE caller supplied array ... */\r\n public constructor(data: Point3d[]) {\r\n super();\r\n this.data = data;\r\n }\r\n /** test if `index` is a valid index into the array. */\r\n public isValidIndex(index: number): boolean {\r\n return index >= 0 && index < this.data.length;\r\n }\r\n /**\r\n * Access by index, returning strongly typed Point3d\r\n * * This returns the xyz value but NOT reference to the point in the \"carried\" array.\r\n * @param index index of point within the array\r\n * @param result caller-allocated destination\r\n * @returns undefined if the index is out of bounds\r\n */\r\n public getPoint3dAtCheckedPointIndex(index: number, result?: Point3d): Point3d | undefined {\r\n if (this.isValidIndex(index)) {\r\n const source = this.data[index];\r\n return Point3d.create(source.x, source.y, source.z, result);\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * Access by index, returning strongly typed Point3d\r\n * * This returns the xyz value but NOT reference to the point in the \"carried\" array.\r\n * @param index index of point within the array\r\n * @param result caller-allocated destination\r\n * @returns undefined if the index is out of bounds\r\n */\r\n public getPoint3dAtUncheckedPointIndex(index: number, result?: Point3d): Point3d {\r\n const source = this.data[index];\r\n return Point3d.create(source.x, source.y, source.z, result);\r\n }\r\n /**\r\n * Access by index, returning strongly typed Vector3d\r\n * @param index index of point within the array\r\n * @param result caller-allocated destination\r\n * @returns undefined if the index is out of bounds\r\n */\r\n public getVector3dAtCheckedVectorIndex(index: number, result?: Vector3d): Vector3d | undefined {\r\n if (this.isValidIndex(index)) {\r\n const source = this.data[index];\r\n return Vector3d.create(source.x, source.y, source.z, result);\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * access x of indexed point\r\n * * WARNING: make sure `pointIndex` is a valid index, otherwise, you get random results\r\n * */\r\n public getXAtUncheckedPointIndex(pointIndex: number): number {\r\n return this.data[pointIndex].x;\r\n }\r\n /**\r\n * access y of indexed point\r\n * * WARNING: make sure `pointIndex` is a valid index, otherwise, you get random results\r\n * */\r\n public getYAtUncheckedPointIndex(pointIndex: number): number {\r\n return this.data[pointIndex].y;\r\n }\r\n /**\r\n * access z of indexed point\r\n * * WARNING: make sure `pointIndex` is a valid index, otherwise, you get random results\r\n * */\r\n public getZAtUncheckedPointIndex(pointIndex: number): number {\r\n return this.data[pointIndex].z;\r\n }\r\n /**\r\n * Return a vector from the point at indexA to the point at indexB\r\n * @param indexA index of point within the array\r\n * @param indexB index of point within the array\r\n * @param result caller-allocated vector.\r\n * @returns undefined if either index is out of bounds\r\n */\r\n public vectorIndexIndex(indexA: number, indexB: number, result?: Vector3d): Vector3d | undefined {\r\n if (this.isValidIndex(indexA) && this.isValidIndex(indexB))\r\n return Vector3d.createStartEnd(this.data[indexA], this.data[indexB], result);\r\n return undefined;\r\n }\r\n /**\r\n * Return a vector from given origin to point at indexB\r\n * @param origin origin for vector\r\n * @param indexB index of point within the array\r\n * @param result caller-allocated vector.\r\n * @returns undefined if index is out of bounds\r\n */\r\n public vectorXYAndZIndex(origin: XYAndZ, indexB: number, result?: Vector3d): Vector3d | undefined {\r\n if (this.isValidIndex(indexB))\r\n return Vector3d.createStartEnd(origin, this.data[indexB], result);\r\n return undefined;\r\n }\r\n /**\r\n * Return the cross product of vectors from origin to points at indexA and indexB\r\n * @param origin origin for vector\r\n * @param indexA index of first target within the array\r\n * @param indexB index of second target within the array\r\n * @param result caller-allocated vector.\r\n * @returns undefined if either index is out of bounds\r\n */\r\n public crossProductXYAndZIndexIndex(origin: XYAndZ, indexA: number, indexB: number, result?: Vector3d): Vector3d | undefined {\r\n if (this.isValidIndex(indexA) && this.isValidIndex(indexB))\r\n return Vector3d.createCrossProductToPoints(origin, this.data[indexA], this.data[indexB], result);\r\n return undefined;\r\n }\r\n /**\r\n * Return the cross product of vectors from point at originIndex to points at indexA and indexB\r\n * @param originIndex index of origin\r\n * @param indexA index of first target within the array\r\n * @param indexB index of second target within the array\r\n * @param result caller-allocated vector.\r\n * @returns return true if indexA, indexB both valid\r\n */\r\n public crossProductIndexIndexIndex(originIndex: number, indexA: number, indexB: number, result?: Vector3d): Vector3d | undefined {\r\n if (this.isValidIndex(originIndex) && this.isValidIndex(indexA) && this.isValidIndex(indexB))\r\n return Vector3d.createCrossProductToPoints(this.data[originIndex], this.data[indexA], this.data[indexB], result);\r\n return undefined;\r\n }\r\n /**\r\n * Compute the cross product of vectors from point at originIndex to points at indexA and indexB, and accumulate it to the result.\r\n * @param origin index of origin\r\n * @param indexA index of first target within the array\r\n * @param indexB index of second target within the array\r\n * @param result caller-allocated vector.\r\n * @returns return true if indexA, indexB both valid\r\n */\r\n public accumulateCrossProductIndexIndexIndex(originIndex: number, indexA: number, indexB: number, result: Vector3d): void {\r\n const data = this.data;\r\n if (this.isValidIndex(originIndex) && this.isValidIndex(indexA) && this.isValidIndex(indexB))\r\n result.addCrossProductToTargetsInPlace(\r\n data[originIndex].x, data[originIndex].y, data[originIndex].z,\r\n data[indexA].x, data[indexA].y, data[indexA].z,\r\n data[indexB].x, data[indexB].y, data[indexB].z\r\n );\r\n }\r\n /**\r\n * Accumulate scale times the x,y,z values at index to the sum.\r\n * No action if index is out of bounds.\r\n */\r\n public accumulateScaledXYZ(index: number, scale: number, sum: Point3d): void {\r\n if (this.isValidIndex(index)) {\r\n const point = this.data[index];\r\n sum.x += scale * point.x;\r\n sum.y += scale * point.y;\r\n sum.z += scale * point.z;\r\n }\r\n }\r\n /**\r\n * read-only property for number of XYZ in the collection.\r\n */\r\n public get length(): number {\r\n return this.data.length;\r\n }\r\n /** push a (clone of) point onto the collection\r\n * * point itself is not pushed -- xyz data is extracted into the native form of the collection.\r\n */\r\n public push(data: Point3d): void {\r\n this.data.push(data.clone());\r\n }\r\n /**\r\n * push a new point (given by coordinates) onto the collection\r\n * @param x x coordinate\r\n * @param y y coordinate\r\n * @param z z coordinate\r\n */\r\n public pushXYZ(x?: number, y?: number, z?: number): void {\r\n this.data.push(\r\n Point3d.create(x === undefined ? 0.0 : x, y === undefined ? 0.0 : y, z === undefined ? 0.0 : z)\r\n );\r\n }\r\n /** extract (copy) the final point */\r\n public back(result?: Point3d): Point3d | undefined {\r\n if (this.data.length > 0) {\r\n return this.data[this.data.length - 1].clone(result);\r\n }\r\n return undefined;\r\n }\r\n /** extract (copy) the first point */\r\n public front(result?: Point3d): Point3d | undefined {\r\n if (this.data.length > 0) {\r\n return this.data[0].clone(result);\r\n }\r\n return undefined;\r\n }\r\n /** remove the final point. */\r\n public pop(): void {\r\n if (this.data.length > 0)\r\n this.data.pop();\r\n }\r\n /** remove all points. */\r\n public clear(): void {\r\n this.data.length = 0;\r\n }\r\n /** Reverse the points in place */\r\n public reverseInPlace(): void {\r\n this.data.reverse();\r\n }\r\n /**\r\n * Return distance squared between indicated points.\r\n * * Concrete classes may be able to implement this without creating a temporary.\r\n * @param index0 first point index\r\n * @param index1 second point index\r\n * @param defaultDistanceSquared distance squared to return if either point index is invalid.\r\n *\r\n */\r\n public distanceSquaredIndexIndex(index0: number, index1: number): number | undefined {\r\n const n = this.data.length;\r\n if (index0 >= 0 && index0 < n && index1 >= 0 && index1 < n) {\r\n return this.data[index0].distanceSquared(this.data[index1]);\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * Return distance between indicated points.\r\n * * Concrete classes may be able to implement this without creating a temporary.\r\n * @param index0 first point index\r\n * @param index1 second point index\r\n * @param defaultDistanceSquared distance squared to return if either point index is invalid.\r\n */\r\n public distanceIndexIndex(index0: number, index1: number): number | undefined {\r\n const n = this.data.length;\r\n if (index0 >= 0 && index0 < n && index1 >= 0 && index1 < n) {\r\n return this.data[index0].distance(this.data[index1]);\r\n }\r\n return undefined;\r\n }\r\n /** Adjust index into range by modulo with the length. */\r\n public override cyclicIndex(i: number): number {\r\n return (i % this.data.length);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Point3dArrayCarrier.js","sourceRoot":"","sources":["../../../src/geometry3d/Point3dArrayCarrier.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 ArraysAndInterfaces\r\n */\r\n\r\nimport { IndexedReadWriteXYZCollection } from \"./IndexedXYZCollection\";\r\nimport { Point3d, Vector3d } from \"./Point3dVector3d\";\r\nimport { XYAndZ } from \"./XYZProps\";\r\n\r\n/**\r\n * Helper object to access members of a Point3d[] in geometric calculations.\r\n * * The collection holds only a reference to the actual array.\r\n * * The actual array may be replaced by the user as needed.\r\n * * When replaced, there is no cached data to be updated.\r\n * @public\r\n */\r\nexport class Point3dArrayCarrier extends IndexedReadWriteXYZCollection {\r\n /** reference to array being queried. */\r\n public data: Point3d[];\r\n /** CAPTURE caller supplied array ... */\r\n public constructor(data: Point3d[]) {\r\n super();\r\n this.data = data;\r\n }\r\n /** test if `index` is a valid index into the array. */\r\n public isValidIndex(index: number): boolean {\r\n return index >= 0 && index < this.data.length;\r\n }\r\n /**\r\n * Access by index, returning strongly typed Point3d\r\n * * This returns the xyz value but NOT reference to the point in the \"carried\" array.\r\n * @param index index of point within the array\r\n * @param result caller-allocated destination\r\n * @returns undefined if the index is out of bounds\r\n */\r\n public getPoint3dAtCheckedPointIndex(index: number, result?: Point3d): Point3d | undefined {\r\n if (this.isValidIndex(index)) {\r\n const source = this.data[index];\r\n return Point3d.create(source.x, source.y, source.z, result);\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * Access by index, returning strongly typed Point3d\r\n * * This returns the xyz value but NOT reference to the point in the \"carried\" array.\r\n * @param index index of point within the array\r\n * @param result caller-allocated destination\r\n */\r\n public getPoint3dAtUncheckedPointIndex(index: number, result?: Point3d): Point3d {\r\n const source = this.data[index];\r\n return Point3d.create(source.x, source.y, source.z, result);\r\n }\r\n /**\r\n * Access by index, returning strongly typed Vector3d\r\n * @param index index of point within the array\r\n * @param result caller-allocated destination\r\n * @returns undefined if the index is out of bounds\r\n */\r\n public getVector3dAtCheckedVectorIndex(index: number, result?: Vector3d): Vector3d | undefined {\r\n if (this.isValidIndex(index)) {\r\n const source = this.data[index];\r\n return Vector3d.create(source.x, source.y, source.z, result);\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * access x of indexed point\r\n * * WARNING: make sure `pointIndex` is a valid index, otherwise, you get random results\r\n * */\r\n public getXAtUncheckedPointIndex(pointIndex: number): number {\r\n return this.data[pointIndex].x;\r\n }\r\n /**\r\n * access y of indexed point\r\n * * WARNING: make sure `pointIndex` is a valid index, otherwise, you get random results\r\n * */\r\n public getYAtUncheckedPointIndex(pointIndex: number): number {\r\n return this.data[pointIndex].y;\r\n }\r\n /**\r\n * access z of indexed point\r\n * * WARNING: make sure `pointIndex` is a valid index, otherwise, you get random results\r\n * */\r\n public getZAtUncheckedPointIndex(pointIndex: number): number {\r\n return this.data[pointIndex].z;\r\n }\r\n /**\r\n * Return a vector from the point at indexA to the point at indexB\r\n * @param indexA index of point within the array\r\n * @param indexB index of point within the array\r\n * @param result caller-allocated vector.\r\n * @returns undefined if either index is out of bounds\r\n */\r\n public vectorIndexIndex(indexA: number, indexB: number, result?: Vector3d): Vector3d | undefined {\r\n if (this.isValidIndex(indexA) && this.isValidIndex(indexB))\r\n return Vector3d.createStartEnd(this.data[indexA], this.data[indexB], result);\r\n return undefined;\r\n }\r\n /**\r\n * Return a vector from given origin to point at indexB\r\n * @param origin origin for vector\r\n * @param indexB index of point within the array\r\n * @param result caller-allocated vector.\r\n * @returns undefined if index is out of bounds\r\n */\r\n public vectorXYAndZIndex(origin: XYAndZ, indexB: number, result?: Vector3d): Vector3d | undefined {\r\n if (this.isValidIndex(indexB))\r\n return Vector3d.createStartEnd(origin, this.data[indexB], result);\r\n return undefined;\r\n }\r\n /**\r\n * Return the cross product of vectors from origin to points at indexA and indexB\r\n * @param origin origin for vector\r\n * @param indexA index of first target within the array\r\n * @param indexB index of second target within the array\r\n * @param result caller-allocated vector.\r\n * @returns undefined if either index is out of bounds\r\n */\r\n public crossProductXYAndZIndexIndex(origin: XYAndZ, indexA: number, indexB: number, result?: Vector3d): Vector3d | undefined {\r\n if (this.isValidIndex(indexA) && this.isValidIndex(indexB))\r\n return Vector3d.createCrossProductToPoints(origin, this.data[indexA], this.data[indexB], result);\r\n return undefined;\r\n }\r\n /**\r\n * Return the cross product of vectors from point at originIndex to points at indexA and indexB\r\n * @param originIndex index of origin\r\n * @param indexA index of first target within the array\r\n * @param indexB index of second target within the array\r\n * @param result caller-allocated vector.\r\n * @returns return true if indexA, indexB both valid\r\n */\r\n public crossProductIndexIndexIndex(originIndex: number, indexA: number, indexB: number, result?: Vector3d): Vector3d | undefined {\r\n if (this.isValidIndex(originIndex) && this.isValidIndex(indexA) && this.isValidIndex(indexB))\r\n return Vector3d.createCrossProductToPoints(this.data[originIndex], this.data[indexA], this.data[indexB], result);\r\n return undefined;\r\n }\r\n /**\r\n * Compute the cross product of vectors from point at originIndex to points at indexA and indexB, and accumulate it to the result.\r\n * @param origin index of origin\r\n * @param indexA index of first target within the array\r\n * @param indexB index of second target within the array\r\n * @param result caller-allocated vector.\r\n * @returns return true if indexA, indexB both valid\r\n */\r\n public accumulateCrossProductIndexIndexIndex(originIndex: number, indexA: number, indexB: number, result: Vector3d): void {\r\n const data = this.data;\r\n if (this.isValidIndex(originIndex) && this.isValidIndex(indexA) && this.isValidIndex(indexB))\r\n result.addCrossProductToTargetsInPlace(\r\n data[originIndex].x, data[originIndex].y, data[originIndex].z,\r\n data[indexA].x, data[indexA].y, data[indexA].z,\r\n data[indexB].x, data[indexB].y, data[indexB].z\r\n );\r\n }\r\n /**\r\n * Accumulate scale times the x,y,z values at index to the sum.\r\n * No action if index is out of bounds.\r\n */\r\n public accumulateScaledXYZ(index: number, scale: number, sum: Point3d): void {\r\n if (this.isValidIndex(index)) {\r\n const point = this.data[index];\r\n sum.x += scale * point.x;\r\n sum.y += scale * point.y;\r\n sum.z += scale * point.z;\r\n }\r\n }\r\n /**\r\n * read-only property for number of XYZ in the collection.\r\n */\r\n public get length(): number {\r\n return this.data.length;\r\n }\r\n /** push a (clone of) point onto the collection\r\n * * point itself is not pushed -- xyz data is extracted into the native form of the collection.\r\n */\r\n public push(data: Point3d): void {\r\n this.data.push(data.clone());\r\n }\r\n /**\r\n * push a new point (given by coordinates) onto the collection\r\n * @param x x coordinate\r\n * @param y y coordinate\r\n * @param z z coordinate\r\n */\r\n public pushXYZ(x?: number, y?: number, z?: number): void {\r\n this.data.push(\r\n Point3d.create(x === undefined ? 0.0 : x, y === undefined ? 0.0 : y, z === undefined ? 0.0 : z)\r\n );\r\n }\r\n /** extract (copy) the final point */\r\n public back(result?: Point3d): Point3d | undefined {\r\n if (this.data.length > 0) {\r\n return this.data[this.data.length - 1].clone(result);\r\n }\r\n return undefined;\r\n }\r\n /** extract (copy) the first point */\r\n public front(result?: Point3d): Point3d | undefined {\r\n if (this.data.length > 0) {\r\n return this.data[0].clone(result);\r\n }\r\n return undefined;\r\n }\r\n /** remove the final point. */\r\n public pop(): void {\r\n if (this.data.length > 0)\r\n this.data.pop();\r\n }\r\n /** remove all points. */\r\n public clear(): void {\r\n this.data.length = 0;\r\n }\r\n /** Reverse the points in place */\r\n public reverseInPlace(): void {\r\n this.data.reverse();\r\n }\r\n /**\r\n * Return distance squared between indicated points.\r\n * @param index0 first point index\r\n * @param index1 second point index\r\n */\r\n public distanceSquaredIndexIndex(index0: number, index1: number): number | undefined {\r\n const n = this.data.length;\r\n if (index0 >= 0 && index0 < n && index1 >= 0 && index1 < n) {\r\n return this.data[index0].distanceSquared(this.data[index1]);\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * Return distance between indicated points.\r\n * @param index0 first point index\r\n * @param index1 second point index\r\n */\r\n public distanceIndexIndex(index0: number, index1: number): number | undefined {\r\n const n = this.data.length;\r\n if (index0 >= 0 && index0 < n && index1 >= 0 && index1 < n) {\r\n return this.data[index0].distance(this.data[index1]);\r\n }\r\n return undefined;\r\n }\r\n /** Adjust index into range by modulo with the length. */\r\n public override cyclicIndex(i: number): number {\r\n return (i % this.data.length);\r\n }\r\n}\r\n"]}
@@ -374,34 +374,34 @@ export declare class Vector3d extends XYZ {
374
374
  static createFrom(data: XYAndZ | XAndY | Float64Array | number[], result?: Vector3d): Vector3d;
375
375
  /**
376
376
  * Return a vector defined by start and end points (end - start).
377
- * @param start start point for vector
378
- * @param end end point for vector
379
- * @param result optional result
377
+ * @param start start point for vector.
378
+ * @param end end point for vector.
379
+ * @param result optional result.
380
380
  */
381
381
  static createStartEnd(start: XAndY | XYAndZ, end: XAndY | XYAndZ, result?: Vector3d): Vector3d;
382
382
  /**
383
383
  * Return a vector (optionally in preallocated result, otherwise newly created) from [x0,y0,z0] to [x1,y1,z1]
384
- * @param x0 start point x coordinate
385
- * @param y0 start point y coordinate
386
- * @param z0 start point z coordinate
387
- * @param x1 end point x coordinate
388
- * @param y1 end point y coordinate
389
- * @param z1 end point z coordinate
390
- * @param result optional result vector
384
+ * @param x0 start point x coordinate.
385
+ * @param y0 start point y coordinate.
386
+ * @param z0 start point z coordinate.
387
+ * @param x1 end point x coordinate.
388
+ * @param y1 end point y coordinate.
389
+ * @param z1 end point z coordinate.
390
+ * @param result optional result vector.
391
391
  */
392
392
  static createStartEndXYZXYZ(x0: number, y0: number, z0: number, x1: number, y1: number, z1: number, result?: Vector3d): Vector3d;
393
393
  /**
394
- * Return a vector which is the input vector rotated around the axis vector.
395
- * @param vector initial vector
396
- * @param axis axis of rotation
397
- * @param angle angle of rotation. If undefined, 90 degrees is implied
394
+ * Return a vector which is the input `vector` rotated by `angle` around the `axis` vector.
395
+ * @param vector initial vector.
396
+ * @param axis axis of rotation.
397
+ * @param angle angle of rotation. If undefined, 90 degrees is implied.
398
398
  * @param result optional result vector
399
399
  * @returns undefined if axis has no length.
400
400
  */
401
401
  static createRotateVectorAroundVector(vector: Vector3d, axis: Vector3d, angle?: Angle): Vector3d | undefined;
402
402
  /**
403
403
  * Set (replace) xyz components so they are a vector from point0 to point1
404
- * @param point0 start point of computed vector
404
+ * @param point0 start point of computed vector.
405
405
  * @param point1 end point of computed vector.
406
406
  */
407
407
  setStartEnd(point0: XYAndZ, point1: XYAndZ): void;
@@ -426,7 +426,7 @@ export declare class Vector3d extends XYZ {
426
426
  mag: number;
427
427
  };
428
428
  /**
429
- * Return a unit vector parallel with this. Return undefined if this.magnitude is near zero.
429
+ * Return a unit vector parallel with this. Return undefined if this.magnitude is near zero.
430
430
  * @param result optional result.
431
431
  */
432
432
  normalize(result?: Vector3d): Vector3d | undefined;
@@ -445,6 +445,8 @@ export declare class Vector3d extends XYZ {
445
445
  * * It's returning the signed projection magnitude divided by the target magnitude.
446
446
  * * To find the projection vector, scale the target vector by the value that this function is returning.
447
447
  * * math details can be found at docs/learning/geometry/PointVector.md
448
+ * * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/ProjectVectorOnVector
449
+ * and https://www.itwinjs.org/sandbox/SaeedTorabi/ProjectVectorOnPlane
448
450
  * @param target the target vector
449
451
  * @param defaultFraction the returned value in case magnitude square of target vector is very small
450
452
  * */
@@ -458,7 +460,7 @@ export declare class Vector3d extends XYZ {
458
460
  /** Return a vector same length as this but rotated 90 degrees clockwise */
459
461
  rotate90CWXY(result?: Vector3d): Vector3d;
460
462
  /**
461
- * Return a vector which is in the xy plane, perpendicular ot the xy part of this vector, and of unit length.
463
+ * Return a vector which is in the xy plane, perpendicular to the xy part of this vector, and of unit length.
462
464
  * * If the xy part is 00, the return is the rotated (but not normalized) xy parts of this vector.
463
465
  * @param result optional preallocated result.
464
466
  */
@@ -632,6 +634,7 @@ export declare class Vector3d extends XYZ {
632
634
  crossProductXY(vectorB: Vector3d): number;
633
635
  /**
634
636
  * Return the cross product of this vector and vectorB.
637
+ * * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/CrossProduct
635
638
  * @param vectorB second vector of cross product
636
639
  * @param result optional preallocated result.
637
640
  */
@@ -645,74 +648,71 @@ export declare class Vector3d extends XYZ {
645
648
  */
646
649
  crossProductXYZ(x: number, y: number, z: number, result?: Vector3d): Vector3d;
647
650
  /**
648
- * Return the (radians as a simple number, not strongly typed Angle) angle from this vector to vectorB.
649
- * * The returned angle is always positive and no larger than 180 degrees (PI radians)
650
- * * The returned angle is "in the plane containing the two vectors"
651
- * * Use `planarRadiansTo` and `signedRadiansTo` to take have angle measured in specific plane.
651
+ * Return the angle in radians (not as strongly typed Angle) from this vector to vectorB.
652
+ * * The returned angle is between 0 and `Math.PI`.
653
+ * * The returned angle is measured in the plane containing the two vectors.
654
+ * * Use `planarRadiansTo` and `signedRadiansTo` to return an angle measured in a specific plane.
652
655
  * @param vectorB target vector.
653
656
  */
654
657
  radiansTo(vectorB: Vector3d): number;
655
658
  /**
656
- * Return the (strongly typed) angle from this vector to vectorB.
657
- * * The returned angle is always positive and no larger than 180 degrees (PI radians)
658
- * * The returned angle is "in the plane containing the two vectors"
659
- * * Use `planarAngleTo` and `signedAngleTo` to take have angle measured in specific plane.
659
+ * Return the (strongly-typed) angle from this vector to vectorB.
660
+ * * The returned angle is between 0 and 180 degrees.
661
+ * * The returned angle is measured in the plane containing the two vectors.
662
+ * * Use `planarAngleTo` and `signedAngleTo` to return an angle measured in a specific plane.
660
663
  * @param vectorB target vector.
661
664
  */
662
665
  angleTo(vectorB: Vector3d): Angle;
663
666
  /**
664
- * Return the (strongly typed) angle from this vector to the plane perpendicular to planeNormal.
665
- * * The returned vector is signed
666
- * * The returned vector is (as degrees) always between -90 and 90 degrees.
667
- * * The function returns "PI/2 - angleTo(planeNormal)"
667
+ * Return the (strongly-typed) angle from this vector to the plane perpendicular to planeNormal.
668
+ * * The returned angle is between -90 and 90 degrees.
669
+ * * The returned angle is measured in the plane containing the two vectors.
670
+ * * The function returns PI/2 - angleTo(planeNormal).
668
671
  * @param planeNormal a normal vector to the plane.
669
672
  */
670
673
  angleFromPerpendicular(planeNormal: Vector3d): Angle;
671
674
  /**
672
- * Return the (Strongly typed) angle from this vector to vectorB, using only the xy parts.
673
- * * The returned angle can range from negative 180 degrees (negative PI radians) to positive 180
674
- * * degrees (positive PI radians), not closed on the negative side.
675
- * * Use `planarAngleTo` and `signedAngleTo` to take have angle measured in other planes.
675
+ * Return the (strongly-typed) angle from this vector to vectorB, using only the xy parts.
676
+ * * The returned angle is between -180 and 180 degrees.
677
+ * * Use `planarAngleTo` and `signedAngleTo` to return an angle measured in a specific plane.
676
678
  * @param vectorB target vector.
677
679
  */
678
680
  angleToXY(vectorB: Vector3d): Angle;
679
681
  /**
680
- * Return the (simple number of radians, not Strongly typed Angle) angle from this vector to vectorB, measured
681
- * in the plane containing both, with vectorW indicating which side to view to control sign of the angle.
682
- * * The returned angle can range from negative PI to positive PI (not closed on negative side)
683
- * * The returned angle is "in the plane containing the two vectors"
684
- * * The returned angle has the same sign as vectorW dot product (thisVector cross vectorB)
685
- * * vectorW does not have to be perpendicular to the plane.
686
- * * Use planarRadiansTo to measure the angle between vectors that are projected to another plane.
682
+ * Return the angle in radians (not as strongly-typed Angle) from this vector to vectorB, measured
683
+ * in their containing plane whose normal lies in the same half-space as vectorW.
684
+ * * The returned angle is between `-Math.PI` and `Math.PI`.
685
+ * * If the cross product of this vector and vectorB lies on the same side of the plane as vectorW,
686
+ * this function returns `radiansTo(vectorB)`; otherwise, it returns `-radiansTo(vectorB)`.
687
+ * * `vectorW` does not have to be perpendicular to the plane.
688
+ * * Use `planarRadiansTo` to measure the angle between vectors that are projected to another plane.
687
689
  * @param vectorB target vector.
688
- * @param vectorW distinguishes between the sides of the plane.
690
+ * @param vectorW determines the side of the plane in which the returned angle is measured
689
691
  */
690
692
  signedRadiansTo(vectorB: Vector3d, vectorW: Vector3d): number;
691
- /**
692
- * Return the (strongly typed Angle) angle from this vector to vectorB, measured in the plane containing both,
693
- * with vectorW indicating which side to view to control sign of the angle.
694
- * * The returned angle can range from negative 180 degrees (negative PI radians) to positive 180 degrees
695
- * * (positive PI radians), not closed on the negative side.
696
- * * The returned angle is "in the plane containing the two vectors"
697
- * * `vectorW` distinguishes between the sides of the plane, but does not have to be perpendicular.
698
- * * The returned angle has the same sign as vectorW dot product (thisVector cross vectorB)
699
- * * Use planarRadiansTo to measure the angle between vectors that are projected to another plane.
700
- * @param vectorB target vector.
701
- * @param vectorW distinguishes between the sides of the plane.
702
- */
693
+ /** Return the (strongly-typed) angle from this vector to vectorB, measured
694
+ * in their containing plane whose normal lies in the same half-space as vectorW.
695
+ * * The returned angle is between -180 and 180 degrees.
696
+ * * If the cross product of this vector and vectorB lies on the same side of the plane as vectorW,
697
+ * this function returns `angleTo(vectorB)`; otherwise, it returns `-angleTo(vectorB)`.
698
+ * * `vectorW` does not have to be perpendicular to the plane.
699
+ * * Use `planarAngleTo` to measure the angle between vectors that are projected to another plane.
700
+ * @param vectorB target vector.
701
+ * @param vectorW determines the side of the plane in which the returned angle is measured
702
+ */
703
703
  signedAngleTo(vectorB: Vector3d, vectorW: Vector3d): Angle;
704
704
  /**
705
- * Return the radians (as a simple number, not strongly typed Angle) from this vector to vectorB,
705
+ * Return the angle in radians (not as strongly-typed Angle) from this vector to vectorB,
706
706
  * measured between their projections to the plane with the given normal.
707
- * * The returned angle can be positive or negative, with magnitude no larger than PI radians
707
+ * * The returned angle is between `-Math.PI` and `Math.PI`.
708
708
  * @param vectorB target vector
709
709
  * @param planeNormal the normal vector to the plane.
710
710
  */
711
711
  planarRadiansTo(vectorB: Vector3d, planeNormal: Vector3d): number;
712
712
  /**
713
- * Return the angle (as strongly typed Angle) from this vector to vectorB,
713
+ * Return the (strongly-type) angle from this vector to vectorB,
714
714
  * measured between their projections to the plane with the given normal.
715
- * * The returned angle can range from negative PI to positive PI (not closed on negative side)
715
+ * * The returned angle is between -180 and 180 degrees.
716
716
  * @param vectorB target vector.
717
717
  * @param planeNormal the normal vector to the plane.
718
718
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Point3dVector3d.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/Point3dVector3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Point3dVector3d.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/Point3dVector3d.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,10 @@
5
5
  /** @packageDocumentation
6
6
  * @module CartesianGeometry
7
7
  */
8
- // cspell:word CWXY
9
8
  import { Geometry } from "../Geometry";
10
9
  import { Angle } from "./Angle";
11
10
  import { XYAndZ } from "./XYZProps";
11
+ // cspell:words CWXY CCWXY arctan Rodrigues
12
12
  /**
13
13
  * * `XYZ` is a minimal object containing x,y,z and operations that are meaningful without change in both point and vector.
14
14
  * * `XYZ` is not instantiable.
@@ -245,7 +245,7 @@ export class XYZ {
245
245
  setAt(index, value) {
246
246
  if (index < 0.5)
247
247
  this.x = value;
248
- if (index > 1.5)
248
+ else if (index > 1.5)
249
249
  this.z = value;
250
250
  else
251
251
  this.y = value;
@@ -747,9 +747,9 @@ export class Vector3d extends XYZ {
747
747
  }
748
748
  /**
749
749
  * Return a vector defined by start and end points (end - start).
750
- * @param start start point for vector
751
- * @param end end point for vector
752
- * @param result optional result
750
+ * @param start start point for vector.
751
+ * @param end end point for vector.
752
+ * @param result optional result.
753
753
  */
754
754
  static createStartEnd(start, end, result) {
755
755
  const zStart = XYZ.accessZ(start, 0.0);
@@ -763,22 +763,22 @@ export class Vector3d extends XYZ {
763
763
  }
764
764
  /**
765
765
  * Return a vector (optionally in preallocated result, otherwise newly created) from [x0,y0,z0] to [x1,y1,z1]
766
- * @param x0 start point x coordinate
767
- * @param y0 start point y coordinate
768
- * @param z0 start point z coordinate
769
- * @param x1 end point x coordinate
770
- * @param y1 end point y coordinate
771
- * @param z1 end point z coordinate
772
- * @param result optional result vector
766
+ * @param x0 start point x coordinate.
767
+ * @param y0 start point y coordinate.
768
+ * @param z0 start point z coordinate.
769
+ * @param x1 end point x coordinate.
770
+ * @param y1 end point y coordinate.
771
+ * @param z1 end point z coordinate.
772
+ * @param result optional result vector.
773
773
  */
774
774
  static createStartEndXYZXYZ(x0, y0, z0, x1, y1, z1, result) {
775
775
  return this.create(x1 - x0, y1 - y0, z1 - z0, result);
776
776
  }
777
777
  /**
778
- * Return a vector which is the input vector rotated around the axis vector.
779
- * @param vector initial vector
780
- * @param axis axis of rotation
781
- * @param angle angle of rotation. If undefined, 90 degrees is implied
778
+ * Return a vector which is the input `vector` rotated by `angle` around the `axis` vector.
779
+ * @param vector initial vector.
780
+ * @param axis axis of rotation.
781
+ * @param angle angle of rotation. If undefined, 90 degrees is implied.
782
782
  * @param result optional result vector
783
783
  * @returns undefined if axis has no length.
784
784
  */
@@ -802,7 +802,7 @@ export class Vector3d extends XYZ {
802
802
  }
803
803
  /**
804
804
  * Set (replace) xyz components so they are a vector from point0 to point1
805
- * @param point0 start point of computed vector
805
+ * @param point0 start point of computed vector.
806
806
  * @param point1 end point of computed vector.
807
807
  */
808
808
  setStartEnd(point0, point1) {
@@ -845,7 +845,7 @@ export class Vector3d extends XYZ {
845
845
  return { v: this.safeDivideOrNull(magnitude, result), mag: magnitude };
846
846
  }
847
847
  /**
848
- * Return a unit vector parallel with this. Return undefined if this.magnitude is near zero.
848
+ * Return a unit vector parallel with this. Return undefined if this.magnitude is near zero.
849
849
  * @param result optional result.
850
850
  */
851
851
  normalize(result) {
@@ -882,6 +882,8 @@ export class Vector3d extends XYZ {
882
882
  * * It's returning the signed projection magnitude divided by the target magnitude.
883
883
  * * To find the projection vector, scale the target vector by the value that this function is returning.
884
884
  * * math details can be found at docs/learning/geometry/PointVector.md
885
+ * * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/ProjectVectorOnVector
886
+ * and https://www.itwinjs.org/sandbox/SaeedTorabi/ProjectVectorOnPlane
885
887
  * @param target the target vector
886
888
  * @param defaultFraction the returned value in case magnitude square of target vector is very small
887
889
  * */
@@ -929,7 +931,7 @@ export class Vector3d extends XYZ {
929
931
  return result;
930
932
  }
931
933
  /**
932
- * Return a vector which is in the xy plane, perpendicular ot the xy part of this vector, and of unit length.
934
+ * Return a vector which is in the xy plane, perpendicular to the xy part of this vector, and of unit length.
933
935
  * * If the xy part is 00, the return is the rotated (but not normalized) xy parts of this vector.
934
936
  * @param result optional preallocated result.
935
937
  */
@@ -1274,6 +1276,7 @@ export class Vector3d extends XYZ {
1274
1276
  }
1275
1277
  /**
1276
1278
  * Return the cross product of this vector and vectorB.
1279
+ * * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/CrossProduct
1277
1280
  * @param vectorB second vector of cross product
1278
1281
  * @param result optional preallocated result.
1279
1282
  */
@@ -1291,10 +1294,10 @@ export class Vector3d extends XYZ {
1291
1294
  return Vector3d.createCrossProduct(this.x, this.y, this.z, x, y, z, result);
1292
1295
  }
1293
1296
  /**
1294
- * Return the (radians as a simple number, not strongly typed Angle) angle from this vector to vectorB.
1295
- * * The returned angle is always positive and no larger than 180 degrees (PI radians)
1296
- * * The returned angle is "in the plane containing the two vectors"
1297
- * * Use `planarRadiansTo` and `signedRadiansTo` to take have angle measured in specific plane.
1297
+ * Return the angle in radians (not as strongly typed Angle) from this vector to vectorB.
1298
+ * * The returned angle is between 0 and `Math.PI`.
1299
+ * * The returned angle is measured in the plane containing the two vectors.
1300
+ * * Use `planarRadiansTo` and `signedRadiansTo` to return an angle measured in a specific plane.
1298
1301
  * @param vectorB target vector.
1299
1302
  */
1300
1303
  radiansTo(vectorB) {
@@ -1303,45 +1306,44 @@ export class Vector3d extends XYZ {
1303
1306
  return Math.atan2(this.crossProductMagnitude(vectorB), this.dotProduct(vectorB));
1304
1307
  }
1305
1308
  /**
1306
- * Return the (strongly typed) angle from this vector to vectorB.
1307
- * * The returned angle is always positive and no larger than 180 degrees (PI radians)
1308
- * * The returned angle is "in the plane containing the two vectors"
1309
- * * Use `planarAngleTo` and `signedAngleTo` to take have angle measured in specific plane.
1309
+ * Return the (strongly-typed) angle from this vector to vectorB.
1310
+ * * The returned angle is between 0 and 180 degrees.
1311
+ * * The returned angle is measured in the plane containing the two vectors.
1312
+ * * Use `planarAngleTo` and `signedAngleTo` to return an angle measured in a specific plane.
1310
1313
  * @param vectorB target vector.
1311
1314
  */
1312
1315
  angleTo(vectorB) {
1313
1316
  return Angle.createRadians(this.radiansTo(vectorB));
1314
1317
  }
1315
1318
  /**
1316
- * Return the (strongly typed) angle from this vector to the plane perpendicular to planeNormal.
1317
- * * The returned vector is signed
1318
- * * The returned vector is (as degrees) always between -90 and 90 degrees.
1319
- * * The function returns "PI/2 - angleTo(planeNormal)"
1319
+ * Return the (strongly-typed) angle from this vector to the plane perpendicular to planeNormal.
1320
+ * * The returned angle is between -90 and 90 degrees.
1321
+ * * The returned angle is measured in the plane containing the two vectors.
1322
+ * * The function returns PI/2 - angleTo(planeNormal).
1320
1323
  * @param planeNormal a normal vector to the plane.
1321
1324
  */
1322
1325
  angleFromPerpendicular(planeNormal) {
1323
1326
  return Angle.createAtan2(this.dotProduct(planeNormal), this.crossProductMagnitude(planeNormal));
1324
1327
  }
1325
1328
  /**
1326
- * Return the (Strongly typed) angle from this vector to vectorB, using only the xy parts.
1327
- * * The returned angle can range from negative 180 degrees (negative PI radians) to positive 180
1328
- * * degrees (positive PI radians), not closed on the negative side.
1329
- * * Use `planarAngleTo` and `signedAngleTo` to take have angle measured in other planes.
1329
+ * Return the (strongly-typed) angle from this vector to vectorB, using only the xy parts.
1330
+ * * The returned angle is between -180 and 180 degrees.
1331
+ * * Use `planarAngleTo` and `signedAngleTo` to return an angle measured in a specific plane.
1330
1332
  * @param vectorB target vector.
1331
1333
  */
1332
1334
  angleToXY(vectorB) {
1333
1335
  return Angle.createAtan2(this.crossProductXY(vectorB), this.dotProductXY(vectorB));
1334
1336
  }
1335
1337
  /**
1336
- * Return the (simple number of radians, not Strongly typed Angle) angle from this vector to vectorB, measured
1337
- * in the plane containing both, with vectorW indicating which side to view to control sign of the angle.
1338
- * * The returned angle can range from negative PI to positive PI (not closed on negative side)
1339
- * * The returned angle is "in the plane containing the two vectors"
1340
- * * The returned angle has the same sign as vectorW dot product (thisVector cross vectorB)
1341
- * * vectorW does not have to be perpendicular to the plane.
1342
- * * Use planarRadiansTo to measure the angle between vectors that are projected to another plane.
1338
+ * Return the angle in radians (not as strongly-typed Angle) from this vector to vectorB, measured
1339
+ * in their containing plane whose normal lies in the same half-space as vectorW.
1340
+ * * The returned angle is between `-Math.PI` and `Math.PI`.
1341
+ * * If the cross product of this vector and vectorB lies on the same side of the plane as vectorW,
1342
+ * this function returns `radiansTo(vectorB)`; otherwise, it returns `-radiansTo(vectorB)`.
1343
+ * * `vectorW` does not have to be perpendicular to the plane.
1344
+ * * Use `planarRadiansTo` to measure the angle between vectors that are projected to another plane.
1343
1345
  * @param vectorB target vector.
1344
- * @param vectorW distinguishes between the sides of the plane.
1346
+ * @param vectorW determines the side of the plane in which the returned angle is measured
1345
1347
  */
1346
1348
  signedRadiansTo(vectorB, vectorW) {
1347
1349
  const p = this.crossProduct(vectorB);
@@ -1351,25 +1353,23 @@ export class Vector3d extends XYZ {
1351
1353
  else
1352
1354
  return theta;
1353
1355
  }
1354
- /**
1355
- * Return the (strongly typed Angle) angle from this vector to vectorB, measured in the plane containing both,
1356
- * with vectorW indicating which side to view to control sign of the angle.
1357
- * * The returned angle can range from negative 180 degrees (negative PI radians) to positive 180 degrees
1358
- * * (positive PI radians), not closed on the negative side.
1359
- * * The returned angle is "in the plane containing the two vectors"
1360
- * * `vectorW` distinguishes between the sides of the plane, but does not have to be perpendicular.
1361
- * * The returned angle has the same sign as vectorW dot product (thisVector cross vectorB)
1362
- * * Use planarRadiansTo to measure the angle between vectors that are projected to another plane.
1363
- * @param vectorB target vector.
1364
- * @param vectorW distinguishes between the sides of the plane.
1365
- */
1356
+ /** Return the (strongly-typed) angle from this vector to vectorB, measured
1357
+ * in their containing plane whose normal lies in the same half-space as vectorW.
1358
+ * * The returned angle is between -180 and 180 degrees.
1359
+ * * If the cross product of this vector and vectorB lies on the same side of the plane as vectorW,
1360
+ * this function returns `angleTo(vectorB)`; otherwise, it returns `-angleTo(vectorB)`.
1361
+ * * `vectorW` does not have to be perpendicular to the plane.
1362
+ * * Use `planarAngleTo` to measure the angle between vectors that are projected to another plane.
1363
+ * @param vectorB target vector.
1364
+ * @param vectorW determines the side of the plane in which the returned angle is measured
1365
+ */
1366
1366
  signedAngleTo(vectorB, vectorW) {
1367
1367
  return Angle.createRadians(this.signedRadiansTo(vectorB, vectorW));
1368
1368
  }
1369
1369
  /**
1370
- * Return the radians (as a simple number, not strongly typed Angle) from this vector to vectorB,
1370
+ * Return the angle in radians (not as strongly-typed Angle) from this vector to vectorB,
1371
1371
  * measured between their projections to the plane with the given normal.
1372
- * * The returned angle can be positive or negative, with magnitude no larger than PI radians
1372
+ * * The returned angle is between `-Math.PI` and `Math.PI`.
1373
1373
  * @param vectorB target vector
1374
1374
  * @param planeNormal the normal vector to the plane.
1375
1375
  */
@@ -1387,9 +1387,9 @@ export class Vector3d extends XYZ {
1387
1387
  return thisProj.signedRadiansTo(vectorBProj, planeNormal);
1388
1388
  }
1389
1389
  /**
1390
- * Return the angle (as strongly typed Angle) from this vector to vectorB,
1390
+ * Return the (strongly-type) angle from this vector to vectorB,
1391
1391
  * measured between their projections to the plane with the given normal.
1392
- * * The returned angle can range from negative PI to positive PI (not closed on negative side)
1392
+ * * The returned angle is between -180 and 180 degrees.
1393
1393
  * @param vectorB target vector.
1394
1394
  * @param planeNormal the normal vector to the plane.
1395
1395
  */
@@ -1418,9 +1418,8 @@ export class Vector3d extends XYZ {
1418
1418
  * @param options optional radian and distance tolerances.
1419
1419
  */
1420
1420
  isParallelTo(other, oppositeIsParallel = false, returnValueIfAnInputIsZeroLength = false, options) {
1421
- var _a, _b;
1422
- const radianSquaredTol = (_a = options === null || options === void 0 ? void 0 : options.radianSquaredTol) !== null && _a !== void 0 ? _a : Geometry.smallAngleRadiansSquared;
1423
- const distanceSquaredTol = (_b = options === null || options === void 0 ? void 0 : options.distanceSquaredTol) !== null && _b !== void 0 ? _b : Geometry.smallMetricDistanceSquared;
1421
+ const radianSquaredTol = options?.radianSquaredTol ?? Geometry.smallAngleRadiansSquared;
1422
+ const distanceSquaredTol = options?.distanceSquaredTol ?? Geometry.smallMetricDistanceSquared;
1424
1423
  const a2 = this.magnitudeSquared();
1425
1424
  const b2 = other.magnitudeSquared();
1426
1425
  if (a2 < distanceSquaredTol || b2 < distanceSquaredTol)
@@ -1443,9 +1442,8 @@ export class Vector3d extends XYZ {
1443
1442
  * @param options optional radian and distance tolerances.
1444
1443
  */
1445
1444
  isPerpendicularTo(other, returnValueIfAnInputIsZeroLength = false, options) {
1446
- var _a, _b;
1447
- const radianSquaredTol = (_a = options === null || options === void 0 ? void 0 : options.radianSquaredTol) !== null && _a !== void 0 ? _a : Geometry.smallAngleRadiansSquared;
1448
- const distanceSquaredTol = (_b = options === null || options === void 0 ? void 0 : options.distanceSquaredTol) !== null && _b !== void 0 ? _b : Geometry.smallMetricDistanceSquared;
1445
+ const radianSquaredTol = options?.radianSquaredTol ?? Geometry.smallAngleRadiansSquared;
1446
+ const distanceSquaredTol = options?.distanceSquaredTol ?? Geometry.smallMetricDistanceSquared;
1449
1447
  const aa = this.magnitudeSquared();
1450
1448
  const bb = other.magnitudeSquared();
1451
1449
  if (aa < distanceSquaredTol || bb < distanceSquaredTol)