@itwin/core-geometry 5.14.0-dev.7 → 5.14.0-dev.9

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 (191) hide show
  1. package/lib/cjs/bspline/AkimaCurve3d.d.ts +18 -13
  2. package/lib/cjs/bspline/AkimaCurve3d.d.ts.map +1 -1
  3. package/lib/cjs/bspline/AkimaCurve3d.js +19 -16
  4. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  5. package/lib/cjs/bspline/BSplineCurve.d.ts +2 -1
  6. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  7. package/lib/cjs/bspline/BSplineCurve.js +3 -2
  8. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  9. package/lib/cjs/bspline/InterpolationCurve3d.d.ts +5 -1
  10. package/lib/cjs/bspline/InterpolationCurve3d.d.ts.map +1 -1
  11. package/lib/cjs/bspline/InterpolationCurve3d.js +11 -11
  12. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  13. package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -1
  14. package/lib/cjs/clipping/ClipUtils.js +0 -2
  15. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  16. package/lib/cjs/curve/CoordinateXYZ.d.ts +2 -2
  17. package/lib/cjs/curve/CoordinateXYZ.d.ts.map +1 -1
  18. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  19. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +5 -5
  20. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  21. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -23
  22. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  23. package/lib/cjs/curve/CurveCollection.d.ts +14 -4
  24. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  25. package/lib/cjs/curve/CurveCollection.js +24 -2
  26. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  27. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  28. package/lib/cjs/curve/CurveFactory.js +4 -5
  29. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  30. package/lib/cjs/curve/CurvePrimitive.d.ts +10 -3
  31. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  32. package/lib/cjs/curve/CurvePrimitive.js +1 -1
  33. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  34. package/lib/cjs/curve/CurveProcessor.d.ts +7 -7
  35. package/lib/cjs/curve/CurveProcessor.d.ts.map +1 -1
  36. package/lib/cjs/curve/CurveProcessor.js +19 -3
  37. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  38. package/lib/cjs/curve/GeometryQuery.d.ts +8 -4
  39. package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
  40. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  41. package/lib/cjs/curve/LineSegment3d.d.ts +1 -1
  42. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  43. package/lib/cjs/curve/LineSegment3d.js +1 -1
  44. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  45. package/lib/cjs/curve/Loop.d.ts +18 -2
  46. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  47. package/lib/cjs/curve/Loop.js +26 -1
  48. package/lib/cjs/curve/Loop.js.map +1 -1
  49. package/lib/cjs/curve/ParityRegion.d.ts +7 -2
  50. package/lib/cjs/curve/ParityRegion.d.ts.map +1 -1
  51. package/lib/cjs/curve/ParityRegion.js +9 -8
  52. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  53. package/lib/cjs/curve/Path.d.ts +8 -1
  54. package/lib/cjs/curve/Path.d.ts.map +1 -1
  55. package/lib/cjs/curve/Path.js +12 -0
  56. package/lib/cjs/curve/Path.js.map +1 -1
  57. package/lib/cjs/curve/ProxyCurve.d.ts +1 -1
  58. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
  59. package/lib/cjs/curve/ProxyCurve.js +2 -3
  60. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  61. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  62. package/lib/cjs/curve/RegionOps.js +0 -2
  63. package/lib/cjs/curve/RegionOps.js.map +1 -1
  64. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  65. package/lib/cjs/curve/UnionRegion.d.ts +9 -2
  66. package/lib/cjs/curve/UnionRegion.d.ts.map +1 -1
  67. package/lib/cjs/curve/UnionRegion.js +12 -0
  68. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  69. package/lib/cjs/curve/internalContexts/CloneCurvesContext.d.ts +1 -0
  70. package/lib/cjs/curve/internalContexts/CloneCurvesContext.d.ts.map +1 -1
  71. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js +3 -1
  72. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  73. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.d.ts +1 -6
  74. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.d.ts.map +1 -1
  75. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js +15 -8
  76. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  77. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +5 -2
  78. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  79. package/lib/cjs/curve/spiral/DirectSpiral3d.js +6 -3
  80. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  81. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +5 -2
  82. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  83. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +6 -3
  84. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  85. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  86. package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
  87. package/lib/cjs/serialization/BGFBReader.js +5 -2
  88. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  89. package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
  90. package/lib/cjs/serialization/BGFBWriter.js +1 -2
  91. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  92. package/lib/cjs/serialization/IModelJsonSchema.d.ts +36 -22
  93. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  94. package/lib/cjs/serialization/IModelJsonSchema.js +16 -17
  95. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  96. package/lib/esm/bspline/AkimaCurve3d.d.ts +18 -13
  97. package/lib/esm/bspline/AkimaCurve3d.d.ts.map +1 -1
  98. package/lib/esm/bspline/AkimaCurve3d.js +19 -16
  99. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  100. package/lib/esm/bspline/BSplineCurve.d.ts +2 -1
  101. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  102. package/lib/esm/bspline/BSplineCurve.js +3 -2
  103. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  104. package/lib/esm/bspline/InterpolationCurve3d.d.ts +5 -1
  105. package/lib/esm/bspline/InterpolationCurve3d.d.ts.map +1 -1
  106. package/lib/esm/bspline/InterpolationCurve3d.js +11 -11
  107. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  108. package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
  109. package/lib/esm/clipping/ClipUtils.js +0 -2
  110. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  111. package/lib/esm/curve/CoordinateXYZ.d.ts +2 -2
  112. package/lib/esm/curve/CoordinateXYZ.d.ts.map +1 -1
  113. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  114. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +5 -5
  115. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  116. package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -23
  117. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  118. package/lib/esm/curve/CurveCollection.d.ts +14 -4
  119. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  120. package/lib/esm/curve/CurveCollection.js +24 -2
  121. package/lib/esm/curve/CurveCollection.js.map +1 -1
  122. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  123. package/lib/esm/curve/CurveFactory.js +4 -5
  124. package/lib/esm/curve/CurveFactory.js.map +1 -1
  125. package/lib/esm/curve/CurvePrimitive.d.ts +10 -3
  126. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  127. package/lib/esm/curve/CurvePrimitive.js +1 -1
  128. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  129. package/lib/esm/curve/CurveProcessor.d.ts +7 -7
  130. package/lib/esm/curve/CurveProcessor.d.ts.map +1 -1
  131. package/lib/esm/curve/CurveProcessor.js +19 -3
  132. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  133. package/lib/esm/curve/GeometryQuery.d.ts +8 -4
  134. package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
  135. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  136. package/lib/esm/curve/LineSegment3d.d.ts +1 -1
  137. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  138. package/lib/esm/curve/LineSegment3d.js +1 -1
  139. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  140. package/lib/esm/curve/Loop.d.ts +18 -2
  141. package/lib/esm/curve/Loop.d.ts.map +1 -1
  142. package/lib/esm/curve/Loop.js +26 -1
  143. package/lib/esm/curve/Loop.js.map +1 -1
  144. package/lib/esm/curve/ParityRegion.d.ts +7 -2
  145. package/lib/esm/curve/ParityRegion.d.ts.map +1 -1
  146. package/lib/esm/curve/ParityRegion.js +9 -8
  147. package/lib/esm/curve/ParityRegion.js.map +1 -1
  148. package/lib/esm/curve/Path.d.ts +8 -1
  149. package/lib/esm/curve/Path.d.ts.map +1 -1
  150. package/lib/esm/curve/Path.js +12 -0
  151. package/lib/esm/curve/Path.js.map +1 -1
  152. package/lib/esm/curve/ProxyCurve.d.ts +1 -1
  153. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
  154. package/lib/esm/curve/ProxyCurve.js +2 -3
  155. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  156. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  157. package/lib/esm/curve/RegionOps.js +0 -2
  158. package/lib/esm/curve/RegionOps.js.map +1 -1
  159. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  160. package/lib/esm/curve/UnionRegion.d.ts +9 -2
  161. package/lib/esm/curve/UnionRegion.d.ts.map +1 -1
  162. package/lib/esm/curve/UnionRegion.js +12 -0
  163. package/lib/esm/curve/UnionRegion.js.map +1 -1
  164. package/lib/esm/curve/internalContexts/CloneCurvesContext.d.ts +1 -0
  165. package/lib/esm/curve/internalContexts/CloneCurvesContext.d.ts.map +1 -1
  166. package/lib/esm/curve/internalContexts/CloneCurvesContext.js +3 -1
  167. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  168. package/lib/esm/curve/internalContexts/TransformInPlaceContext.d.ts +1 -6
  169. package/lib/esm/curve/internalContexts/TransformInPlaceContext.d.ts.map +1 -1
  170. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js +15 -8
  171. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  172. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +5 -2
  173. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  174. package/lib/esm/curve/spiral/DirectSpiral3d.js +6 -3
  175. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  176. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +5 -2
  177. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  178. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +6 -3
  179. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  180. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  181. package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
  182. package/lib/esm/serialization/BGFBReader.js +5 -2
  183. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  184. package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
  185. package/lib/esm/serialization/BGFBWriter.js +1 -2
  186. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  187. package/lib/esm/serialization/IModelJsonSchema.d.ts +36 -22
  188. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  189. package/lib/esm/serialization/IModelJsonSchema.js +16 -17
  190. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  191. package/package.json +3 -3
@@ -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"}
@@ -10,15 +10,18 @@ import { Geometry } from "../Geometry";
10
10
  import { Point3dArray } from "../geometry3d/PointHelpers";
11
11
  import { BSplineCurve3d } from "./BSplineCurve";
12
12
  /**
13
- * fitPoints and end condition data for [[AkimaCurve3d]]
13
+ * Data for an [[AkimaCurve3d]]
14
14
  * * This is a "typed object" version of the serializer-friendly [[AkimaCurve3dProps]]
15
- * * Typical use cases rarely require all parameters, so the constructor does not itemize them as parameters.
16
15
  * @public
17
16
  */
18
17
  export class AkimaCurve3dOptions {
18
+ /**
19
+ * Points that the curve must pass through.
20
+ * * Traditional DGN-style Akima curves interpret the first two and last two fit points as end tangent conditions,
21
+ * however as the current implementation uses another interpolation algorithm, there is no such interpretation here.
22
+ */
19
23
  fitPoints;
20
24
  /**
21
- *
22
25
  * @param fitPoints points to CAPTURE
23
26
  * @param knots array to CAPTURE
24
27
  */
@@ -29,7 +32,7 @@ export class AkimaCurve3dOptions {
29
32
  * First and last 2 points are "beyond the end" for control of end slope.
30
33
  fitPoints: Point3d[];
31
34
 
32
- /** Clone with strongly typed members reduced to simple json. */
35
+ /** Clone with strongly typed members reduced to simple json. */
33
36
  cloneAsAkimaCurve3dProps() {
34
37
  const props = {
35
38
  fitPoints: Point3dArray.cloneDeepJSONNumberArrays(this.fitPoints),
@@ -46,24 +49,25 @@ export class AkimaCurve3dOptions {
46
49
  const result = new AkimaCurve3dOptions(Point3dArray.clonePoint3dArray(source.fitPoints));
47
50
  return result;
48
51
  }
52
+ /** Whether the two options are equivalent or both undefined. */
49
53
  static areAlmostEqual(dataA, dataB) {
50
54
  if (dataA === undefined && dataB === undefined)
51
55
  return true;
52
- if (dataA !== undefined && dataB !== undefined) {
56
+ if (dataA !== undefined && dataB !== undefined)
53
57
  return Geometry.almostEqualArrays(dataA.fitPoints, dataB.fitPoints, (a, b) => a.isAlmostEqual(b));
54
- }
55
58
  return false;
56
59
  }
57
60
  }
58
61
  /**
59
- * Interpolating curve.
62
+ * Interpolating curve using the Akima formulation.
60
63
  * * Derive from [[ProxyCurve]]
61
64
  * * Use a [[BSplineCurve3d]] as the proxy
62
- * *
65
+ * * Currently the Akima formulation is replaced with a Greville interpolation.
63
66
  * @public
64
67
  */
65
68
  export class AkimaCurve3d extends ProxyCurve {
66
- curvePrimitiveType = "interpolationCurve";
69
+ /** String name for schema properties. */
70
+ curvePrimitiveType = "akimaCurve";
67
71
  _options;
68
72
  /** CAPTURE properties and proxy curve. */
69
73
  constructor(properties, proxyCurve) {
@@ -78,9 +82,9 @@ export class AkimaCurve3d extends ProxyCurve {
78
82
  return result;
79
83
  }
80
84
  /**
81
- * Create an [[AkimaCurve3d]] based on points, knots, and other properties in the [[AkimaCurve3dProps]] or [[AkimaCurve3dOptions]].
85
+ * Create an [[AkimaCurve3d]] based on an [[AkimaCurve3dProps]] or [[AkimaCurve3dOptions]].
82
86
  * * This saves a COPY OF the options or props.
83
- * * Use createCapture () if the options or props can be used without copy
87
+ * * Use createCapture() if the options or props can be used without copy
84
88
  */
85
89
  static create(options) {
86
90
  let optionsCopy;
@@ -133,11 +137,9 @@ export class AkimaCurve3d extends ProxyCurve {
133
137
  * Transform this [[AkimaCurve3d]] and its defining data in place
134
138
  */
135
139
  tryTransformInPlace(transform) {
136
- const proxyOk = this._proxyCurve.tryTransformInPlace(transform);
137
- if (proxyOk) {
138
- transform.multiplyPoint3dArray(this._options.fitPoints);
139
- }
140
- return proxyOk;
140
+ this._proxyCurve.tryTransformInPlace(transform);
141
+ transform.multiplyPoint3dArray(this._options.fitPoints);
142
+ return true; // we know this succeeds
141
143
  }
142
144
  /**
143
145
  * Find intervals of this CurvePrimitive that are interior to a clipper.
@@ -159,6 +161,7 @@ export class AkimaCurve3d extends ProxyCurve {
159
161
  }
160
162
  /** Test if `other` is also an [[AkimaCurve3d]] */
161
163
  isSameGeometryClass(other) { return other instanceof AkimaCurve3d; }
164
+ /** Test if this [[AkimaCurve3d]] is almost equal to another GeometryQuery object. */
162
165
  isAlmostEqual(other) {
163
166
  if (other instanceof AkimaCurve3d) {
164
167
  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":"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"}
@@ -530,10 +530,11 @@ export class BSplineCurve3d extends BSplineCurve3dBase {
530
530
  }
531
531
  /**
532
532
  * Create a B-spline curve from an Akima curve.
533
- * @param options collection of points and end conditions.
533
+ * * The Akima formulation of the curve is currently replaced by a Greville interpolation.
534
+ * @param options data for construction
534
535
  */
535
536
  static createFromAkimaCurve3dOptions(options) {
536
- return BSplineCurveOps.createThroughPoints(options.fitPoints, 4); // temporary
537
+ return BSplineCurveOps.createThroughPoints(options.fitPoints, 4);
537
538
  }
538
539
  /**
539
540
  * Create a B-spline curve with given knots.