@itwin/core-geometry 5.14.0-dev.1 → 5.14.0-dev.10

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 (234) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/lib/cjs/bspline/AkimaCurve3d.d.ts +18 -13
  3. package/lib/cjs/bspline/AkimaCurve3d.d.ts.map +1 -1
  4. package/lib/cjs/bspline/AkimaCurve3d.js +19 -16
  5. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurve.d.ts +2 -1
  7. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  8. package/lib/cjs/bspline/BSplineCurve.js +3 -2
  9. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  10. package/lib/cjs/bspline/InterpolationCurve3d.d.ts +5 -1
  11. package/lib/cjs/bspline/InterpolationCurve3d.d.ts.map +1 -1
  12. package/lib/cjs/bspline/InterpolationCurve3d.js +11 -11
  13. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  14. package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -1
  15. package/lib/cjs/clipping/ClipUtils.js +0 -2
  16. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  17. package/lib/cjs/curve/CoordinateXYZ.d.ts +2 -2
  18. package/lib/cjs/curve/CoordinateXYZ.d.ts.map +1 -1
  19. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  20. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +5 -5
  21. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  22. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -23
  23. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  24. package/lib/cjs/curve/CurveCollection.d.ts +20 -4
  25. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  26. package/lib/cjs/curve/CurveCollection.js +39 -2
  27. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  28. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  29. package/lib/cjs/curve/CurveFactory.js +4 -5
  30. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  31. package/lib/cjs/curve/CurveOps.d.ts.map +1 -1
  32. package/lib/cjs/curve/CurveOps.js.map +1 -1
  33. package/lib/cjs/curve/CurvePrimitive.d.ts +10 -3
  34. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  35. package/lib/cjs/curve/CurvePrimitive.js +1 -1
  36. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  37. package/lib/cjs/curve/CurveProcessor.d.ts +7 -7
  38. package/lib/cjs/curve/CurveProcessor.d.ts.map +1 -1
  39. package/lib/cjs/curve/CurveProcessor.js +19 -3
  40. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  41. package/lib/cjs/curve/GeometryQuery.d.ts +49 -4
  42. package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
  43. package/lib/cjs/curve/GeometryQuery.js +52 -0
  44. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  45. package/lib/cjs/curve/LineSegment3d.d.ts +1 -1
  46. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  47. package/lib/cjs/curve/LineSegment3d.js +1 -1
  48. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  49. package/lib/cjs/curve/Loop.d.ts +18 -2
  50. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  51. package/lib/cjs/curve/Loop.js +26 -1
  52. package/lib/cjs/curve/Loop.js.map +1 -1
  53. package/lib/cjs/curve/ParityRegion.d.ts +7 -2
  54. package/lib/cjs/curve/ParityRegion.d.ts.map +1 -1
  55. package/lib/cjs/curve/ParityRegion.js +9 -8
  56. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  57. package/lib/cjs/curve/Path.d.ts +8 -1
  58. package/lib/cjs/curve/Path.d.ts.map +1 -1
  59. package/lib/cjs/curve/Path.js +12 -0
  60. package/lib/cjs/curve/Path.js.map +1 -1
  61. package/lib/cjs/curve/ProxyCurve.d.ts +1 -1
  62. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
  63. package/lib/cjs/curve/ProxyCurve.js +2 -3
  64. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  65. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +36 -35
  66. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  67. package/lib/cjs/curve/Query/PlanarSubdivision.js +4 -4
  68. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  69. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  70. package/lib/cjs/curve/RegionOps.js +3 -3
  71. package/lib/cjs/curve/RegionOps.js.map +1 -1
  72. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  73. package/lib/cjs/curve/UnionRegion.d.ts +9 -2
  74. package/lib/cjs/curve/UnionRegion.d.ts.map +1 -1
  75. package/lib/cjs/curve/UnionRegion.js +12 -0
  76. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  77. package/lib/cjs/curve/internalContexts/CloneCurvesContext.d.ts +1 -0
  78. package/lib/cjs/curve/internalContexts/CloneCurvesContext.d.ts.map +1 -1
  79. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js +3 -1
  80. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  81. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.d.ts +1 -6
  82. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.d.ts.map +1 -1
  83. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js +15 -8
  84. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  85. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +5 -2
  86. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  87. package/lib/cjs/curve/spiral/DirectSpiral3d.js +6 -3
  88. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  89. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +5 -2
  90. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  91. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +6 -3
  92. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  93. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +2 -0
  94. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  95. package/lib/cjs/geometry3d/Point3dVector3d.js +4 -0
  96. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  97. package/lib/cjs/geometry3d/Range.d.ts +2 -0
  98. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  99. package/lib/cjs/geometry3d/Range.js +6 -0
  100. package/lib/cjs/geometry3d/Range.js.map +1 -1
  101. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  102. package/lib/cjs/polyface/PolyfaceQuery.js +4 -4
  103. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  104. package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
  105. package/lib/cjs/serialization/BGFBReader.js +5 -2
  106. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  107. package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
  108. package/lib/cjs/serialization/BGFBWriter.js +1 -2
  109. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  110. package/lib/cjs/serialization/IModelJsonSchema.d.ts +56 -41
  111. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  112. package/lib/cjs/serialization/IModelJsonSchema.js +16 -17
  113. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  114. package/lib/cjs/topology/Merging.d.ts +4 -2
  115. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  116. package/lib/cjs/topology/Merging.js +23 -20
  117. package/lib/cjs/topology/Merging.js.map +1 -1
  118. package/lib/esm/bspline/AkimaCurve3d.d.ts +18 -13
  119. package/lib/esm/bspline/AkimaCurve3d.d.ts.map +1 -1
  120. package/lib/esm/bspline/AkimaCurve3d.js +19 -16
  121. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  122. package/lib/esm/bspline/BSplineCurve.d.ts +2 -1
  123. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  124. package/lib/esm/bspline/BSplineCurve.js +3 -2
  125. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  126. package/lib/esm/bspline/InterpolationCurve3d.d.ts +5 -1
  127. package/lib/esm/bspline/InterpolationCurve3d.d.ts.map +1 -1
  128. package/lib/esm/bspline/InterpolationCurve3d.js +11 -11
  129. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  130. package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
  131. package/lib/esm/clipping/ClipUtils.js +0 -2
  132. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  133. package/lib/esm/curve/CoordinateXYZ.d.ts +2 -2
  134. package/lib/esm/curve/CoordinateXYZ.d.ts.map +1 -1
  135. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  136. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +5 -5
  137. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  138. package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -23
  139. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  140. package/lib/esm/curve/CurveCollection.d.ts +20 -4
  141. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  142. package/lib/esm/curve/CurveCollection.js +39 -2
  143. package/lib/esm/curve/CurveCollection.js.map +1 -1
  144. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  145. package/lib/esm/curve/CurveFactory.js +4 -5
  146. package/lib/esm/curve/CurveFactory.js.map +1 -1
  147. package/lib/esm/curve/CurveOps.d.ts.map +1 -1
  148. package/lib/esm/curve/CurveOps.js.map +1 -1
  149. package/lib/esm/curve/CurvePrimitive.d.ts +10 -3
  150. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  151. package/lib/esm/curve/CurvePrimitive.js +1 -1
  152. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  153. package/lib/esm/curve/CurveProcessor.d.ts +7 -7
  154. package/lib/esm/curve/CurveProcessor.d.ts.map +1 -1
  155. package/lib/esm/curve/CurveProcessor.js +19 -3
  156. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  157. package/lib/esm/curve/GeometryQuery.d.ts +49 -4
  158. package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
  159. package/lib/esm/curve/GeometryQuery.js +52 -0
  160. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  161. package/lib/esm/curve/LineSegment3d.d.ts +1 -1
  162. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  163. package/lib/esm/curve/LineSegment3d.js +1 -1
  164. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  165. package/lib/esm/curve/Loop.d.ts +18 -2
  166. package/lib/esm/curve/Loop.d.ts.map +1 -1
  167. package/lib/esm/curve/Loop.js +26 -1
  168. package/lib/esm/curve/Loop.js.map +1 -1
  169. package/lib/esm/curve/ParityRegion.d.ts +7 -2
  170. package/lib/esm/curve/ParityRegion.d.ts.map +1 -1
  171. package/lib/esm/curve/ParityRegion.js +9 -8
  172. package/lib/esm/curve/ParityRegion.js.map +1 -1
  173. package/lib/esm/curve/Path.d.ts +8 -1
  174. package/lib/esm/curve/Path.d.ts.map +1 -1
  175. package/lib/esm/curve/Path.js +12 -0
  176. package/lib/esm/curve/Path.js.map +1 -1
  177. package/lib/esm/curve/ProxyCurve.d.ts +1 -1
  178. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
  179. package/lib/esm/curve/ProxyCurve.js +2 -3
  180. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  181. package/lib/esm/curve/Query/PlanarSubdivision.d.ts +36 -35
  182. package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  183. package/lib/esm/curve/Query/PlanarSubdivision.js +4 -4
  184. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  185. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  186. package/lib/esm/curve/RegionOps.js +3 -3
  187. package/lib/esm/curve/RegionOps.js.map +1 -1
  188. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  189. package/lib/esm/curve/UnionRegion.d.ts +9 -2
  190. package/lib/esm/curve/UnionRegion.d.ts.map +1 -1
  191. package/lib/esm/curve/UnionRegion.js +12 -0
  192. package/lib/esm/curve/UnionRegion.js.map +1 -1
  193. package/lib/esm/curve/internalContexts/CloneCurvesContext.d.ts +1 -0
  194. package/lib/esm/curve/internalContexts/CloneCurvesContext.d.ts.map +1 -1
  195. package/lib/esm/curve/internalContexts/CloneCurvesContext.js +3 -1
  196. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  197. package/lib/esm/curve/internalContexts/TransformInPlaceContext.d.ts +1 -6
  198. package/lib/esm/curve/internalContexts/TransformInPlaceContext.d.ts.map +1 -1
  199. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js +15 -8
  200. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  201. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +5 -2
  202. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  203. package/lib/esm/curve/spiral/DirectSpiral3d.js +6 -3
  204. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  205. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +5 -2
  206. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  207. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +6 -3
  208. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  209. package/lib/esm/geometry3d/Point3dVector3d.d.ts +2 -0
  210. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  211. package/lib/esm/geometry3d/Point3dVector3d.js +4 -0
  212. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  213. package/lib/esm/geometry3d/Range.d.ts +2 -0
  214. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  215. package/lib/esm/geometry3d/Range.js +6 -0
  216. package/lib/esm/geometry3d/Range.js.map +1 -1
  217. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  218. package/lib/esm/polyface/PolyfaceQuery.js +4 -4
  219. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  220. package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
  221. package/lib/esm/serialization/BGFBReader.js +5 -2
  222. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  223. package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
  224. package/lib/esm/serialization/BGFBWriter.js +1 -2
  225. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  226. package/lib/esm/serialization/IModelJsonSchema.d.ts +56 -41
  227. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  228. package/lib/esm/serialization/IModelJsonSchema.js +16 -17
  229. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  230. package/lib/esm/topology/Merging.d.ts +4 -2
  231. package/lib/esm/topology/Merging.d.ts.map +1 -1
  232. package/lib/esm/topology/Merging.js +23 -20
  233. package/lib/esm/topology/Merging.js.map +1 -1
  234. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,6 +1,14 @@
1
1
  # Change Log - @itwin/core-geometry
2
2
 
3
- This log was last generated on Tue, 25 Aug 2026 21:23:35 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 03 Sep 2026 18:51:17 GMT and should not be manually modified.
4
+
5
+ ## 5.13.0
6
+ Thu, 03 Sep 2026 18:49:56 GMT
7
+
8
+ ### Updates
9
+
10
+ - more RegionOps tolerance improvements
11
+ - Improved dihedralAngleSummary docs
4
12
 
5
13
  ## 5.12.5
6
14
  Tue, 25 Aug 2026 21:22:08 GMT
@@ -11,24 +11,26 @@ import { Transform } from "../geometry3d/Transform";
11
11
  import { XYZProps } from "../geometry3d/XYZProps";
12
12
  import { BSplineCurve3d } from "./BSplineCurve";
13
13
  /**
14
- * fitPoints [[AkimaCurve3d]]
15
- * * This is a "json compatible" version of the serializer-friendly [[AkimaCurve3dOptions]]
14
+ * * This is a "json compatible" version of the serializer-friendly [[AkimaCurve3dOptions]].
16
15
  * @public
17
16
  */
18
17
  export interface AkimaCurve3dProps {
19
- /** Points that the curve must pass through */
18
+ /** Points that the curve must pass through. */
20
19
  fitPoints: XYZProps[];
21
20
  }
22
21
  /**
23
- * fitPoints and end condition data for [[AkimaCurve3d]]
22
+ * Data for an [[AkimaCurve3d]]
24
23
  * * This is a "typed object" version of the serializer-friendly [[AkimaCurve3dProps]]
25
- * * Typical use cases rarely require all parameters, so the constructor does not itemize them as parameters.
26
24
  * @public
27
25
  */
28
26
  export declare class AkimaCurve3dOptions {
27
+ /**
28
+ * Points that the curve must pass through.
29
+ * * Traditional DGN-style Akima curves interpret the first two and last two fit points as end tangent conditions,
30
+ * however as the current implementation uses another interpolation algorithm, there is no such interpretation here.
31
+ */
29
32
  fitPoints: Point3d[];
30
33
  /**
31
- *
32
34
  * @param fitPoints points to CAPTURE
33
35
  * @param knots array to CAPTURE
34
36
  */
@@ -37,32 +39,34 @@ export declare class AkimaCurve3dOptions {
37
39
  * First and last 2 points are "beyond the end" for control of end slope.
38
40
  fitPoints: Point3d[];
39
41
 
40
- /** Clone with strongly typed members reduced to simple json. */
42
+ /** Clone with strongly typed members reduced to simple json. */
41
43
  cloneAsAkimaCurve3dProps(): AkimaCurve3dProps;
42
44
  /** Clone with strongly typed members reduced to simple json. */
43
45
  clone(): AkimaCurve3dOptions;
44
46
  /** Clone with strongly typed members reduced to simple json. */
45
47
  static create(source: AkimaCurve3dProps): AkimaCurve3dOptions;
48
+ /** Whether the two options are equivalent or both undefined. */
46
49
  static areAlmostEqual(dataA: AkimaCurve3dOptions | undefined, dataB: AkimaCurve3dOptions | undefined): boolean;
47
50
  }
48
51
  /**
49
- * Interpolating curve.
52
+ * Interpolating curve using the Akima formulation.
50
53
  * * Derive from [[ProxyCurve]]
51
54
  * * Use a [[BSplineCurve3d]] as the proxy
52
- * *
55
+ * * Currently the Akima formulation is replaced with a Greville interpolation.
53
56
  * @public
54
57
  */
55
58
  export declare class AkimaCurve3d extends ProxyCurve {
56
- readonly curvePrimitiveType = "interpolationCurve";
59
+ /** String name for schema properties. */
60
+ readonly curvePrimitiveType = "akimaCurve";
57
61
  private _options;
58
62
  /** CAPTURE properties and proxy curve. */
59
63
  private constructor();
60
64
  /** Second step of double dispatch: call `handler.handleAkimaCurve3d(this)` */
61
65
  dispatchToGeometryHandler(handler: GeometryHandler): any;
62
66
  /**
63
- * Create an [[AkimaCurve3d]] based on points, knots, and other properties in the [[AkimaCurve3dProps]] or [[AkimaCurve3dOptions]].
67
+ * Create an [[AkimaCurve3d]] based on an [[AkimaCurve3dProps]] or [[AkimaCurve3dOptions]].
64
68
  * * This saves a COPY OF the options or props.
65
- * * Use createCapture () if the options or props can be used without copy
69
+ * * Use createCapture() if the options or props can be used without copy
66
70
  */
67
71
  static create(options: AkimaCurve3dOptions | AkimaCurve3dProps): AkimaCurve3d | undefined;
68
72
  /**
@@ -101,9 +105,10 @@ export declare class AkimaCurve3d extends ProxyCurve {
101
105
  /** Return a deep clone */
102
106
  clone(): AkimaCurve3d;
103
107
  /** Return a transformed clone. */
104
- cloneTransformed(transform: Transform): AkimaCurve3d | undefined;
108
+ cloneTransformed(transform: Transform): AkimaCurve3d;
105
109
  /** Test if `other` is also an [[AkimaCurve3d]] */
106
110
  isSameGeometryClass(other: GeometryQuery): boolean;
111
+ /** Test if this [[AkimaCurve3d]] is almost equal to another GeometryQuery object. */
107
112
  isAlmostEqual(other: GeometryQuery): boolean;
108
113
  }
109
114
  //# sourceMappingURL=AkimaCurve3d.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AkimaCurve3d.d.ts","sourceRoot":"","sources":["../../../src/bspline/AkimaCurve3d.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,kCAAkC,EAAkB,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;GAIG;AACF,MAAM,WAAW,iBAAiB;IAClC,8CAA8C;IAC9C,SAAS,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB;IACvB,SAAS,EAAE,OAAO,EAAE,CAAC;IAC5B;;;;OAIG;gBACgB,SAAS,CAAC,EAAE,OAAO,EAAE;IAIzC;;;;mEAI+D;IACvD,wBAAwB,IAAI,iBAAiB;IAMtD,gEAAgE;IACvD,KAAK,IAAI,mBAAmB;IAKrC,gEAAgE;WAClD,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB;WAKpD,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,EAAE,KAAK,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO;CAQtH;AAED;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,SAAgB,kBAAkB,wBAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAsB;IACtC,0CAA0C;IAC1C,OAAO;IAIP,8EAA8E;IAC9D,yBAAyB,CAAC,OAAO,EAAE,eAAe;IAMpE;;;;OAIG;WACa,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,iBAAiB,GAAG,YAAY,GAAG,SAAS;IAShG;;;OAGG;WACW,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,GAAG,SAAS;IAMnF,wDAAwD;IACxD,IAAoB,UAAU,IAAI,cAAc,CAE/C;IACD,uEAAuE;IAChE,yBAAyB,IAAI,YAAY;IAIhD;;;OAGG;IACI,MAAM,IAAI,GAAG;IAGpB,2EAA2E;IACpE,UAAU,IAAI,iBAAiB;IAItC;;;OAGG;IACI,cAAc,IAAI,IAAI;IAI7B;;OAEG;IACI,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAOzD;;;;;;OAMG;IACa,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,kCAAkC,GAAG,OAAO;IAG/G,0BAA0B;IACV,KAAK,IAAI,YAAY;IAGrC,kCAAkC;IAClB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS;IAIhF,kDAAkD;IAC3C,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAEzC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;CAM7D"}
1
+ {"version":3,"file":"AkimaCurve3d.d.ts","sourceRoot":"","sources":["../../../src/bspline/AkimaCurve3d.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,kCAAkC,EAAkB,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;GAGG;AACF,MAAM,WAAW,iBAAiB;IAClC,+CAA+C;IAC/C,SAAS,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B;;;;OAIG;IACI,SAAS,EAAE,OAAO,EAAE,CAAC;IAE5B;;;OAGG;gBACgB,SAAS,CAAC,EAAE,OAAO,EAAE;IAIzC;;;;qEAIiE;IACzD,wBAAwB,IAAI,iBAAiB;IAMpD,gEAAgE;IACzD,KAAK,IAAI,mBAAmB;IAKnC,gEAAgE;WAClD,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB;IAKpE,gEAAgE;WAClD,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,EAAE,KAAK,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO;CAOtH;AAED;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,yCAAyC;IACzC,SAAgB,kBAAkB,gBAAgB;IAClD,OAAO,CAAC,QAAQ,CAAsB;IACtC,0CAA0C;IAC1C,OAAO;IAIP,8EAA8E;IAC9D,yBAAyB,CAAC,OAAO,EAAE,eAAe;IAMlE;;;;OAIG;WACW,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,iBAAiB,GAAG,YAAY,GAAG,SAAS;IAShG;;;OAGG;WACW,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,GAAG,SAAS;IAMnF,wDAAwD;IACxD,IAAoB,UAAU,IAAI,cAAc,CAE/C;IACD,uEAAuE;IAChE,yBAAyB,IAAI,YAAY;IAIhD;;;OAGG;IACI,MAAM,IAAI,GAAG;IAGpB,2EAA2E;IACpE,UAAU,IAAI,iBAAiB;IAItC;;;OAGG;IACI,cAAc,IAAI,IAAI;IAI7B;;OAEG;IACI,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAKzD;;;;;;OAMG;IACa,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,kCAAkC,GAAG,OAAO;IAG/G,0BAA0B;IACV,KAAK,IAAI,YAAY;IAGrC,kCAAkC;IAClB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY;IAIpE,kDAAkD;IAC3C,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAEzD,qFAAqF;IACrE,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;CAM7D"}
@@ -13,15 +13,18 @@ const Geometry_1 = require("../Geometry");
13
13
  const PointHelpers_1 = require("../geometry3d/PointHelpers");
14
14
  const BSplineCurve_1 = require("./BSplineCurve");
15
15
  /**
16
- * fitPoints and end condition data for [[AkimaCurve3d]]
16
+ * Data for an [[AkimaCurve3d]]
17
17
  * * This is a "typed object" version of the serializer-friendly [[AkimaCurve3dProps]]
18
- * * Typical use cases rarely require all parameters, so the constructor does not itemize them as parameters.
19
18
  * @public
20
19
  */
21
20
  class AkimaCurve3dOptions {
21
+ /**
22
+ * Points that the curve must pass through.
23
+ * * Traditional DGN-style Akima curves interpret the first two and last two fit points as end tangent conditions,
24
+ * however as the current implementation uses another interpolation algorithm, there is no such interpretation here.
25
+ */
22
26
  fitPoints;
23
27
  /**
24
- *
25
28
  * @param fitPoints points to CAPTURE
26
29
  * @param knots array to CAPTURE
27
30
  */
@@ -32,7 +35,7 @@ class AkimaCurve3dOptions {
32
35
  * First and last 2 points are "beyond the end" for control of end slope.
33
36
  fitPoints: Point3d[];
34
37
 
35
- /** Clone with strongly typed members reduced to simple json. */
38
+ /** Clone with strongly typed members reduced to simple json. */
36
39
  cloneAsAkimaCurve3dProps() {
37
40
  const props = {
38
41
  fitPoints: PointHelpers_1.Point3dArray.cloneDeepJSONNumberArrays(this.fitPoints),
@@ -49,25 +52,26 @@ class AkimaCurve3dOptions {
49
52
  const result = new AkimaCurve3dOptions(PointHelpers_1.Point3dArray.clonePoint3dArray(source.fitPoints));
50
53
  return result;
51
54
  }
55
+ /** Whether the two options are equivalent or both undefined. */
52
56
  static areAlmostEqual(dataA, dataB) {
53
57
  if (dataA === undefined && dataB === undefined)
54
58
  return true;
55
- if (dataA !== undefined && dataB !== undefined) {
59
+ if (dataA !== undefined && dataB !== undefined)
56
60
  return Geometry_1.Geometry.almostEqualArrays(dataA.fitPoints, dataB.fitPoints, (a, b) => a.isAlmostEqual(b));
57
- }
58
61
  return false;
59
62
  }
60
63
  }
61
64
  exports.AkimaCurve3dOptions = AkimaCurve3dOptions;
62
65
  /**
63
- * Interpolating curve.
66
+ * Interpolating curve using the Akima formulation.
64
67
  * * Derive from [[ProxyCurve]]
65
68
  * * Use a [[BSplineCurve3d]] as the proxy
66
- * *
69
+ * * Currently the Akima formulation is replaced with a Greville interpolation.
67
70
  * @public
68
71
  */
69
72
  class AkimaCurve3d extends ProxyCurve_1.ProxyCurve {
70
- curvePrimitiveType = "interpolationCurve";
73
+ /** String name for schema properties. */
74
+ curvePrimitiveType = "akimaCurve";
71
75
  _options;
72
76
  /** CAPTURE properties and proxy curve. */
73
77
  constructor(properties, proxyCurve) {
@@ -82,9 +86,9 @@ class AkimaCurve3d extends ProxyCurve_1.ProxyCurve {
82
86
  return result;
83
87
  }
84
88
  /**
85
- * Create an [[AkimaCurve3d]] based on points, knots, and other properties in the [[AkimaCurve3dProps]] or [[AkimaCurve3dOptions]].
89
+ * Create an [[AkimaCurve3d]] based on an [[AkimaCurve3dProps]] or [[AkimaCurve3dOptions]].
86
90
  * * This saves a COPY OF the options or props.
87
- * * Use createCapture () if the options or props can be used without copy
91
+ * * Use createCapture() if the options or props can be used without copy
88
92
  */
89
93
  static create(options) {
90
94
  let optionsCopy;
@@ -137,11 +141,9 @@ class AkimaCurve3d extends ProxyCurve_1.ProxyCurve {
137
141
  * Transform this [[AkimaCurve3d]] and its defining data in place
138
142
  */
139
143
  tryTransformInPlace(transform) {
140
- const proxyOk = this._proxyCurve.tryTransformInPlace(transform);
141
- if (proxyOk) {
142
- transform.multiplyPoint3dArray(this._options.fitPoints);
143
- }
144
- return proxyOk;
144
+ this._proxyCurve.tryTransformInPlace(transform);
145
+ transform.multiplyPoint3dArray(this._options.fitPoints);
146
+ return true; // we know this succeeds
145
147
  }
146
148
  /**
147
149
  * Find intervals of this CurvePrimitive that are interior to a clipper.
@@ -163,6 +165,7 @@ class AkimaCurve3d extends ProxyCurve_1.ProxyCurve {
163
165
  }
164
166
  /** Test if `other` is also an [[AkimaCurve3d]] */
165
167
  isSameGeometryClass(other) { return other instanceof AkimaCurve3d; }
168
+ /** Test if this [[AkimaCurve3d]] is almost equal to another GeometryQuery object. */
166
169
  isAlmostEqual(other) {
167
170
  if (other instanceof AkimaCurve3d) {
168
171
  return AkimaCurve3dOptions.areAlmostEqual(this._options, other._options);
@@ -1 +1 @@
1
- {"version":3,"file":"AkimaCurve3d.js","sourceRoot":"","sources":["../../../src/bspline/AkimaCurve3d.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 Bspline\r\n */\r\n\r\nimport { Clipper } from \"../clipping/ClipUtils\";\r\nimport { AnnounceNumberNumberCurvePrimitive, CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { ProxyCurve } from \"../curve/ProxyCurve\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Point3dArray } from \"../geometry3d/PointHelpers\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { XYZProps } from \"../geometry3d/XYZProps\";\r\nimport { BSplineCurve3d } from \"./BSplineCurve\";\r\n\r\n/**\r\n * fitPoints [[AkimaCurve3d]]\r\n * * This is a \"json compatible\" version of the serializer-friendly [[AkimaCurve3dOptions]]\r\n * @public\r\n */\r\n export interface AkimaCurve3dProps {\r\n /** Points that the curve must pass through */\r\n fitPoints: XYZProps[];\r\n}\r\n\r\n/**\r\n * fitPoints and end condition data for [[AkimaCurve3d]]\r\n * * This is a \"typed object\" version of the serializer-friendly [[AkimaCurve3dProps]]\r\n * * Typical use cases rarely require all parameters, so the constructor does not itemize them as parameters.\r\n * @public\r\n */\r\nexport class AkimaCurve3dOptions {\r\n public fitPoints: Point3d[];\r\n /**\r\n *\r\n * @param fitPoints points to CAPTURE\r\n * @param knots array to CAPTURE\r\n */\r\n public constructor(fitPoints?: Point3d[]) {\r\n this.fitPoints = fitPoints ? fitPoints : [];\r\n }\r\n\r\n /** Points that the curve must pass through.\r\n * First and last 2 points are \"beyond the end\" for control of end slope.\r\n fitPoints: Point3d[];\r\n\r\n/** Clone with strongly typed members reduced to simple json. */\r\n public cloneAsAkimaCurve3dProps(): AkimaCurve3dProps {\r\n const props = {\r\n fitPoints: Point3dArray.cloneDeepJSONNumberArrays(this.fitPoints),\r\n };\r\n return props;\r\n }\r\n/** Clone with strongly typed members reduced to simple json. */\r\n public clone(): AkimaCurve3dOptions {\r\n const clone = new AkimaCurve3dOptions(Point3dArray.clonePoint3dArray(this.fitPoints));\r\n return clone;\r\n }\r\n\r\n/** Clone with strongly typed members reduced to simple json. */\r\npublic static create(source: AkimaCurve3dProps): AkimaCurve3dOptions {\r\n const result = new AkimaCurve3dOptions(Point3dArray.clonePoint3dArray(source.fitPoints));\r\n return result;\r\n}\r\n\r\n public static areAlmostEqual(dataA: AkimaCurve3dOptions | undefined, dataB: AkimaCurve3dOptions | undefined): boolean {\r\n if (dataA === undefined && dataB === undefined)\r\n return true;\r\n if (dataA !== undefined && dataB !== undefined) {\r\n return Geometry.almostEqualArrays(dataA.fitPoints, dataB.fitPoints, (a: Point3d, b: Point3d) => a.isAlmostEqual(b));\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * Interpolating curve.\r\n * * Derive from [[ProxyCurve]]\r\n * * Use a [[BSplineCurve3d]] as the proxy\r\n * *\r\n * @public\r\n */\r\nexport class AkimaCurve3d extends ProxyCurve {\r\n public readonly curvePrimitiveType = \"interpolationCurve\";\r\n private _options: AkimaCurve3dOptions;\r\n /** CAPTURE properties and proxy curve. */\r\n private constructor(properties: AkimaCurve3dOptions, proxyCurve: CurvePrimitive) {\r\n super(proxyCurve);\r\n this._options = properties;\r\n }\r\n /** Second step of double dispatch: call `handler.handleAkimaCurve3d(this)` */\r\n public override dispatchToGeometryHandler(handler: GeometryHandler) {\r\n let result = handler.handleAkimaCurve3d(this);\r\n if (undefined === result) // if handler doesn't specialize on Akima curves, default to proxy\r\n result = this._proxyCurve.dispatchToGeometryHandler(handler);\r\n return result;\r\n }\r\n/**\r\n * Create an [[AkimaCurve3d]] based on points, knots, and other properties in the [[AkimaCurve3dProps]] or [[AkimaCurve3dOptions]].\r\n * * This saves a COPY OF the options or props.\r\n * * Use createCapture () if the options or props can be used without copy\r\n */\r\n public static create(options: AkimaCurve3dOptions | AkimaCurve3dProps): AkimaCurve3d | undefined {\r\n let optionsCopy;\r\n if (options instanceof AkimaCurve3dOptions) {\r\n optionsCopy = options.clone();\r\n } else {\r\n optionsCopy = AkimaCurve3dOptions.create(options);\r\n }\r\n return AkimaCurve3d.createCapture(optionsCopy);\r\n }\r\n /**\r\n * Create an [[AkimaCurve3d]]\r\n * * The options object is captured into the new curve object (not copied)\r\n */\r\n public static createCapture(options: AkimaCurve3dOptions): AkimaCurve3d | undefined{\r\n const proxyCurve = BSplineCurve3d.createFromAkimaCurve3dOptions(options);\r\n if (proxyCurve)\r\n return new AkimaCurve3d(options, proxyCurve);\r\n return undefined;\r\n }\r\n /** Return the (pointer to) the proxy B-spline curve. */\r\n public override get proxyCurve(): BSplineCurve3d {\r\n return this._proxyCurve as BSplineCurve3d;\r\n }\r\n /** Return a (copy of) the defining points, packed as a Float64Array */\r\n public copyFitPointsFloat64Array(): Float64Array {\r\n return Point3dArray.cloneXYZPropsAsFloat64Array(this._options.fitPoints);\r\n }\r\n\r\n /**\r\n * Return json key-value pairs for for this [[AkimaCurve3d]].\r\n * @returns\r\n */\r\n public toJSON(): any {\r\n return this._options.cloneAsAkimaCurve3dProps();\r\n }\r\n /** Clone the [[AkimaCurve3dProps]] object in this [[AkimaCurve3dProps]] */\r\n public cloneProps(): AkimaCurve3dProps {\r\n return this._options.cloneAsAkimaCurve3dProps();\r\n }\r\n\r\n /**\r\n * Reverse the curve direction.\r\n * * This updates both the defining properties and the proxy bspline.\r\n */\r\n public reverseInPlace(): void {\r\n this._proxyCurve.reverseInPlace();\r\n this._options.fitPoints.reverse();\r\n }\r\n /**\r\n * Transform this [[AkimaCurve3d]] and its defining data in place\r\n */\r\n public tryTransformInPlace(transform: Transform): boolean {\r\n const proxyOk = this._proxyCurve.tryTransformInPlace(transform);\r\n if (proxyOk) {\r\n transform.multiplyPoint3dArray(this._options.fitPoints);\r\n }\r\n return proxyOk;\r\n }\r\n /**\r\n * Find intervals of this CurvePrimitive that are interior to a clipper.\r\n * * This implementation simply passes the call to the proxy curve.\r\n * @param clipper clip structure (e.g. clip planes).\r\n * @param announce (optional) function to be called announcing fractional intervals of the input curve.\r\n * @returns true if any \"in\" segments are announced.\r\n */\r\n public override announceClipIntervals(clipper: Clipper, announce?: AnnounceNumberNumberCurvePrimitive): boolean {\r\n return this._proxyCurve.announceClipIntervals(clipper, announce);\r\n }\r\n /** Return a deep clone */\r\n public override clone(): AkimaCurve3d {\r\n return new AkimaCurve3d(this._options.clone(), this._proxyCurve.clone());\r\n }\r\n /** Return a transformed clone. */\r\n public override cloneTransformed(transform: Transform): AkimaCurve3d | undefined {\r\n return super.cloneTransformed(transform) as AkimaCurve3d | undefined;\r\n }\r\n\r\n /** Test if `other` is also an [[AkimaCurve3d]] */\r\n public isSameGeometryClass(other: GeometryQuery): boolean { return other instanceof AkimaCurve3d; }\r\n\r\n public override isAlmostEqual(other: GeometryQuery): boolean{\r\n if (other instanceof AkimaCurve3d) {\r\n return AkimaCurve3dOptions.areAlmostEqual(this._options, other._options);\r\n }\r\n return false;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"AkimaCurve3d.js","sourceRoot":"","sources":["../../../src/bspline/AkimaCurve3d.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 Bspline\r\n */\r\n\r\nimport { Clipper } from \"../clipping/ClipUtils\";\r\nimport { AnnounceNumberNumberCurvePrimitive, CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { ProxyCurve } from \"../curve/ProxyCurve\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Point3dArray } from \"../geometry3d/PointHelpers\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { XYZProps } from \"../geometry3d/XYZProps\";\r\nimport { BSplineCurve3d } from \"./BSplineCurve\";\r\n\r\n/**\r\n * * This is a \"json compatible\" version of the serializer-friendly [[AkimaCurve3dOptions]].\r\n * @public\r\n */\r\n export interface AkimaCurve3dProps {\r\n /** Points that the curve must pass through. */\r\n fitPoints: XYZProps[];\r\n}\r\n\r\n/**\r\n * Data for an [[AkimaCurve3d]]\r\n * * This is a \"typed object\" version of the serializer-friendly [[AkimaCurve3dProps]]\r\n * @public\r\n */\r\nexport class AkimaCurve3dOptions {\r\n /**\r\n * Points that the curve must pass through.\r\n * * Traditional DGN-style Akima curves interpret the first two and last two fit points as end tangent conditions,\r\n * however as the current implementation uses another interpolation algorithm, there is no such interpretation here.\r\n */\r\n public fitPoints: Point3d[];\r\n\r\n /**\r\n * @param fitPoints points to CAPTURE\r\n * @param knots array to CAPTURE\r\n */\r\n public constructor(fitPoints?: Point3d[]) {\r\n this.fitPoints = fitPoints ? fitPoints : [];\r\n }\r\n\r\n /** Points that the curve must pass through.\r\n * First and last 2 points are \"beyond the end\" for control of end slope.\r\n fitPoints: Point3d[];\r\n\r\n /** Clone with strongly typed members reduced to simple json. */\r\n public cloneAsAkimaCurve3dProps(): AkimaCurve3dProps {\r\n const props = {\r\n fitPoints: Point3dArray.cloneDeepJSONNumberArrays(this.fitPoints),\r\n };\r\n return props;\r\n }\r\n /** Clone with strongly typed members reduced to simple json. */\r\n public clone(): AkimaCurve3dOptions {\r\n const clone = new AkimaCurve3dOptions(Point3dArray.clonePoint3dArray(this.fitPoints));\r\n return clone;\r\n }\r\n\r\n /** Clone with strongly typed members reduced to simple json. */\r\n public static create(source: AkimaCurve3dProps): AkimaCurve3dOptions {\r\n const result = new AkimaCurve3dOptions(Point3dArray.clonePoint3dArray(source.fitPoints));\r\n return result;\r\n }\r\n\r\n /** Whether the two options are equivalent or both undefined. */\r\n public static areAlmostEqual(dataA: AkimaCurve3dOptions | undefined, dataB: AkimaCurve3dOptions | undefined): boolean {\r\n if (dataA === undefined && dataB === undefined)\r\n return true;\r\n if (dataA !== undefined && dataB !== undefined)\r\n return Geometry.almostEqualArrays(dataA.fitPoints, dataB.fitPoints, (a: Point3d, b: Point3d) => a.isAlmostEqual(b));\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * Interpolating curve using the Akima formulation.\r\n * * Derive from [[ProxyCurve]]\r\n * * Use a [[BSplineCurve3d]] as the proxy\r\n * * Currently the Akima formulation is replaced with a Greville interpolation.\r\n * @public\r\n */\r\nexport class AkimaCurve3d extends ProxyCurve {\r\n /** String name for schema properties. */\r\n public readonly curvePrimitiveType = \"akimaCurve\";\r\n private _options: AkimaCurve3dOptions;\r\n /** CAPTURE properties and proxy curve. */\r\n private constructor(properties: AkimaCurve3dOptions, proxyCurve: CurvePrimitive) {\r\n super(proxyCurve);\r\n this._options = properties;\r\n }\r\n /** Second step of double dispatch: call `handler.handleAkimaCurve3d(this)` */\r\n public override dispatchToGeometryHandler(handler: GeometryHandler) {\r\n let result = handler.handleAkimaCurve3d(this);\r\n if (undefined === result) // if handler doesn't specialize on Akima curves, default to proxy\r\n result = this._proxyCurve.dispatchToGeometryHandler(handler);\r\n return result;\r\n }\r\n /**\r\n * Create an [[AkimaCurve3d]] based on an [[AkimaCurve3dProps]] or [[AkimaCurve3dOptions]].\r\n * * This saves a COPY OF the options or props.\r\n * * Use createCapture() if the options or props can be used without copy\r\n */\r\n public static create(options: AkimaCurve3dOptions | AkimaCurve3dProps): AkimaCurve3d | undefined {\r\n let optionsCopy;\r\n if (options instanceof AkimaCurve3dOptions) {\r\n optionsCopy = options.clone();\r\n } else {\r\n optionsCopy = AkimaCurve3dOptions.create(options);\r\n }\r\n return AkimaCurve3d.createCapture(optionsCopy);\r\n }\r\n /**\r\n * Create an [[AkimaCurve3d]]\r\n * * The options object is captured into the new curve object (not copied)\r\n */\r\n public static createCapture(options: AkimaCurve3dOptions): AkimaCurve3d | undefined{\r\n const proxyCurve = BSplineCurve3d.createFromAkimaCurve3dOptions(options);\r\n if (proxyCurve)\r\n return new AkimaCurve3d(options, proxyCurve);\r\n return undefined;\r\n }\r\n /** Return the (pointer to) the proxy B-spline curve. */\r\n public override get proxyCurve(): BSplineCurve3d {\r\n return this._proxyCurve as BSplineCurve3d;\r\n }\r\n /** Return a (copy of) the defining points, packed as a Float64Array */\r\n public copyFitPointsFloat64Array(): Float64Array {\r\n return Point3dArray.cloneXYZPropsAsFloat64Array(this._options.fitPoints);\r\n }\r\n\r\n /**\r\n * Return json key-value pairs for for this [[AkimaCurve3d]].\r\n * @returns\r\n */\r\n public toJSON(): any {\r\n return this._options.cloneAsAkimaCurve3dProps();\r\n }\r\n /** Clone the [[AkimaCurve3dProps]] object in this [[AkimaCurve3dProps]] */\r\n public cloneProps(): AkimaCurve3dProps {\r\n return this._options.cloneAsAkimaCurve3dProps();\r\n }\r\n\r\n /**\r\n * Reverse the curve direction.\r\n * * This updates both the defining properties and the proxy bspline.\r\n */\r\n public reverseInPlace(): void {\r\n this._proxyCurve.reverseInPlace();\r\n this._options.fitPoints.reverse();\r\n }\r\n /**\r\n * Transform this [[AkimaCurve3d]] and its defining data in place\r\n */\r\n public tryTransformInPlace(transform: Transform): boolean {\r\n this._proxyCurve.tryTransformInPlace(transform);\r\n transform.multiplyPoint3dArray(this._options.fitPoints);\r\n return true; // we know this succeeds\r\n }\r\n /**\r\n * Find intervals of this CurvePrimitive that are interior to a clipper.\r\n * * This implementation simply passes the call to the proxy curve.\r\n * @param clipper clip structure (e.g. clip planes).\r\n * @param announce (optional) function to be called announcing fractional intervals of the input curve.\r\n * @returns true if any \"in\" segments are announced.\r\n */\r\n public override announceClipIntervals(clipper: Clipper, announce?: AnnounceNumberNumberCurvePrimitive): boolean {\r\n return this._proxyCurve.announceClipIntervals(clipper, announce);\r\n }\r\n /** Return a deep clone */\r\n public override clone(): AkimaCurve3d {\r\n return new AkimaCurve3d(this._options.clone(), this._proxyCurve.clone());\r\n }\r\n /** Return a transformed clone. */\r\n public override cloneTransformed(transform: Transform): AkimaCurve3d {\r\n return super.cloneTransformed(transform) as AkimaCurve3d;\r\n }\r\n\r\n /** Test if `other` is also an [[AkimaCurve3d]] */\r\n public isSameGeometryClass(other: GeometryQuery): boolean { return other instanceof AkimaCurve3d; }\r\n\r\n /** Test if this [[AkimaCurve3d]] is almost equal to another GeometryQuery object. */\r\n public override isAlmostEqual(other: GeometryQuery): boolean{\r\n if (other instanceof AkimaCurve3d) {\r\n return AkimaCurve3dOptions.areAlmostEqual(this._options, other._options);\r\n }\r\n return false;\r\n }\r\n}\r\n"]}
@@ -265,7 +265,8 @@ export declare class BSplineCurve3d extends BSplineCurve3dBase {
265
265
  static createFromInterpolationCurve3dOptions(options: InterpolationCurve3dOptions): BSplineCurve3d | undefined;
266
266
  /**
267
267
  * Create a B-spline curve from an Akima curve.
268
- * @param options collection of points and end conditions.
268
+ * * The Akima formulation of the curve is currently replaced by a Greville interpolation.
269
+ * @param options data for construction
269
270
  */
270
271
  static createFromAkimaCurve3dOptions(options: AkimaCurve3dOptions): BSplineCurve3d | undefined;
271
272
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BSplineCurve.d.ts","sourceRoot":"","sources":["../../../src/bspline/BSplineCurve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BSplineCurve.d.ts","sourceRoot":"","sources":["../../../src/bspline/BSplineCurve.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAqB,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAY,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,8BAAsB,kBAAmB,SAAQ,cAAc;IAC7D,yCAAyC;IACzC,SAAgB,kBAAkB,kBAAkB;IACpD,mEAAmE;IACnE,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAM;IAC9B,IAAW,cAAc,CAAC,IAAI,EAAE,GAAG,EAElC;IACD,IAAW,cAAc,IAAI,GAAG,CAE/B;IACD,SAAS,aAAa,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAI/F,gEAAgE;IAChE,IAAW,MAAM,IAAI,MAAM,CAE1B;IACD,4DAA4D;IAC5D,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD;;;OAGG;IACH,IAAW,OAAO,IAAI,MAAM,CAE3B;IACD,kCAAkC;IAClC,IAAW,QAAQ,IAAI,MAAM,CAE5B;IACD,uDAAuD;IACvD,IAAW,QAAQ,IAAI,YAAY,CAElC;IACD,uDAAuD;IACvD,IAAW,QAAQ,IAAI,YAAY,CAElC;IACD;;;;OAIG;IACH,IAAW,aAAa,IAAI,MAAM,CAEjC;IACD,uHAAuH;IAChH,SAAS,CAAC,mBAAmB,EAAE,OAAO,GAAG,MAAM,EAAE;IAGxD,sGAAsG;IAC/F,YAAY,IAAI,eAAe;IAGtC,sGAAsG;IAC/F,YAAY,CAAC,KAAK,EAAE,eAAe;IAG1C;;;OAGG;IACH,IAAW,eAAe,IAAI,eAAe,CAS5C;IACD,uEAAuE;aACvD,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IACvG;;;MAGE;aACc,gCAAgC,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK;IAChH,iDAAiD;aACjC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IACpE,gEAAgE;aAChD,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK;IAC7E,qEAAqE;aACrD,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,yBAAyB,GAAG,yBAAyB;IACvH,kEAAkE;IAC3D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAGnE,2EAA2E;IACpE,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK;IAM5E,gFAAgF;IACzE,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,yBAAyB,GAAG,yBAAyB;IAQtH,2CAA2C;IAC3B,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAGrD,yCAAyC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAGnD;;;;OAIG;IACI,cAAc,IAAI,IAAI;IAG7B,0DAA0D;IACnD,kBAAkB,CAAC,SAAS,EAAE,OAAO,GAAG,eAAe,EAAE;IAYhE;;;;;;OAMG;aACa,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,eAAe,GAC9D,eAAe,GAAG,SAAS;IAC9B;;;;OAIG;aACa,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IACxF;;;;;;OAMG;aACa,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IACxF,8EAA8E;IACvE,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKlE;;;;;;;;;OASG;IACa,YAAY,CAC1B,UAAU,EAAE,OAAO,EAAE,OAAO,GAAE,2BAAmC,EAAE,MAAM,CAAC,EAAE,mBAAmB,GAC9F,mBAAmB,GAAG,SAAS;IAqBlC,2BAA2B;aACF,KAAK,IAAI,kBAAkB;IACpD,uCAAuC;IACvB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAK1E;;;;OAIG;IACa,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB;IAgC3F;;;;;;MAME;IACc,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM;IAmDnH;;;OAGG;IACa,iBAAiB,CAAC,uBAAuB,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,GAAG,SAAS;IAM9G;;;;;;;OAOG;IACa,uBAAuB,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;CAGvG;AACD;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,oBAAoB;IAK5B,OAAO;IAGP,wDAAwD;IACjD,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAG/C,sCAAsC;IAC/B,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAIzD,sCAAsC;IAC/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAQ/E,2CAA2C;IACpC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAQ/E;;;OAGG;IACI,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAG1E,gFAAgF;IACzE,UAAU,IAAI,GAAG,EAAE;IAG1B,mDAAmD;IAC5C,sBAAsB,IAAI,YAAY;IAG7C,uHAAuH;IACvG,SAAS,CAAC,mBAAmB,EAAE,OAAO,GAAG,MAAM,EAAE;IAGjE,4CAA4C;WAC9B,kBAAkB,CAC9B,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,GAAG,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAChE,cAAc,GAAG,SAAS;IAqB7B;;;OAGG;WACW,0BAA0B,CACtC,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,GAAG,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAChE,cAAc,GAAG,SAAS;IA0D7B;;;OAGG;WACW,qCAAqC,CAAC,OAAO,EAAE,2BAA2B,GAAG,cAAc,GAAG,SAAS;IAGrH;;;;OAIG;WACW,6BAA6B,CAAC,OAAO,EAAE,mBAAmB,GAAG,cAAc,GAAG,SAAS;IAGrG;;;;;;;;;;;OAWG;WACW,MAAM,CAClB,SAAS,EAAE,YAAY,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAClG,cAAc,GAAG,SAAS;IAiC7B,2BAA2B;IACX,KAAK,IAAI,cAAc;IAMvC,uEAAuE;IAChE,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAI9F;;;OAGG;IACI,gCAAgC,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK;IAOvF;;;;;OAKG;IACI,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAIxD;;;;;OAKG;IACI,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK;IAWjE;;;;;OAKG;IACI,0BAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,yBAAyB,GAAG,yBAAyB;IAS3G,0DAA0D;IAC1C,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAOlD,2DAA2D;IACpD,SAAS,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO;IAG9D;;;OAGG;IACI,WAAW,IAAI,MAAM;IAG5B,+EAA+E;IACxE,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IA6BjF;;;OAGG;IACI,4BAA4B,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM;IAWpE;;;;;OAKG;IACa,qCAAqC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,cAAc;IAc/G,8CAA8C;IACvC,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IASrE;;;OAGG;IACH,IAAW,UAAU,IAAI,eAAe,CAEvC;IACD;;;;;OAKG;IACI,6BAA6B,CAClC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,eAAe,GAC9D,eAAe,GAAG,SAAS;IAK9B;;;;OAIG;IACI,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS;IAYvG;;;;OAIG;IACI,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS;IAYzG,iFAAiF;IAC1E,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG;IAG/D;;;;;;OAMG;IACI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;CAWxE"}
@@ -534,10 +534,11 @@ class BSplineCurve3d extends BSplineCurve3dBase {
534
534
  }
535
535
  /**
536
536
  * Create a B-spline curve from an Akima curve.
537
- * @param options collection of points and end conditions.
537
+ * * The Akima formulation of the curve is currently replaced by a Greville interpolation.
538
+ * @param options data for construction
538
539
  */
539
540
  static createFromAkimaCurve3dOptions(options) {
540
- return BSplineCurveOps_1.BSplineCurveOps.createThroughPoints(options.fitPoints, 4); // temporary
541
+ return BSplineCurveOps_1.BSplineCurveOps.createThroughPoints(options.fitPoints, 4);
541
542
  }
542
543
  /**
543
544
  * Create a B-spline curve with given knots.