@itwin/core-geometry 4.1.0-dev.3 → 4.1.0-dev.5

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 (79) hide show
  1. package/lib/cjs/curve/Arc3d.d.ts +70 -86
  2. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  3. package/lib/cjs/curve/Arc3d.js +109 -96
  4. package/lib/cjs/curve/Arc3d.js.map +1 -1
  5. package/lib/cjs/curve/CurveCollection.d.ts +47 -30
  6. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  7. package/lib/cjs/curve/CurveCollection.js +63 -34
  8. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  9. package/lib/cjs/curve/CurveLocationDetail.d.ts +40 -41
  10. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  11. package/lib/cjs/curve/CurveLocationDetail.js +31 -35
  12. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  13. package/lib/cjs/curve/CurvePrimitive.d.ts +137 -92
  14. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  15. package/lib/cjs/curve/CurvePrimitive.js +114 -75
  16. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  17. package/lib/cjs/curve/GeometryQuery.d.ts +26 -20
  18. package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
  19. package/lib/cjs/curve/GeometryQuery.js +11 -9
  20. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  21. package/lib/cjs/curve/LineSegment3d.d.ts +34 -25
  22. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  23. package/lib/cjs/curve/LineSegment3d.js +76 -38
  24. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  25. package/lib/cjs/curve/LineString3d.d.ts +70 -51
  26. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  27. package/lib/cjs/curve/LineString3d.js +120 -71
  28. package/lib/cjs/curve/LineString3d.js.map +1 -1
  29. package/lib/cjs/curve/Query/StrokeCountMap.d.ts +14 -13
  30. package/lib/cjs/curve/Query/StrokeCountMap.d.ts.map +1 -1
  31. package/lib/cjs/curve/Query/StrokeCountMap.js +9 -8
  32. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  33. package/lib/cjs/curve/StrokeOptions.d.ts +29 -21
  34. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  35. package/lib/cjs/curve/StrokeOptions.js +44 -22
  36. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  37. package/lib/cjs/geometry3d/Matrix3d.d.ts +2 -2
  38. package/lib/cjs/geometry3d/Matrix3d.js +2 -2
  39. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  40. package/lib/esm/curve/Arc3d.d.ts +70 -86
  41. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  42. package/lib/esm/curve/Arc3d.js +109 -96
  43. package/lib/esm/curve/Arc3d.js.map +1 -1
  44. package/lib/esm/curve/CurveCollection.d.ts +47 -30
  45. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  46. package/lib/esm/curve/CurveCollection.js +63 -34
  47. package/lib/esm/curve/CurveCollection.js.map +1 -1
  48. package/lib/esm/curve/CurveLocationDetail.d.ts +40 -41
  49. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  50. package/lib/esm/curve/CurveLocationDetail.js +31 -35
  51. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  52. package/lib/esm/curve/CurvePrimitive.d.ts +137 -92
  53. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  54. package/lib/esm/curve/CurvePrimitive.js +114 -75
  55. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  56. package/lib/esm/curve/GeometryQuery.d.ts +26 -20
  57. package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
  58. package/lib/esm/curve/GeometryQuery.js +11 -9
  59. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  60. package/lib/esm/curve/LineSegment3d.d.ts +34 -25
  61. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  62. package/lib/esm/curve/LineSegment3d.js +76 -38
  63. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  64. package/lib/esm/curve/LineString3d.d.ts +70 -51
  65. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  66. package/lib/esm/curve/LineString3d.js +120 -71
  67. package/lib/esm/curve/LineString3d.js.map +1 -1
  68. package/lib/esm/curve/Query/StrokeCountMap.d.ts +14 -13
  69. package/lib/esm/curve/Query/StrokeCountMap.d.ts.map +1 -1
  70. package/lib/esm/curve/Query/StrokeCountMap.js +9 -8
  71. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  72. package/lib/esm/curve/StrokeOptions.d.ts +29 -21
  73. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  74. package/lib/esm/curve/StrokeOptions.js +44 -22
  75. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  76. package/lib/esm/geometry3d/Matrix3d.d.ts +2 -2
  77. package/lib/esm/geometry3d/Matrix3d.js +2 -2
  78. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  79. package/package.json +3 -3
@@ -23,27 +23,35 @@ import type { IntegratedSpiral3d } from "./spiral/IntegratedSpiral3d";
23
23
  import type { Arc3d } from "./Arc3d";
24
24
  import type { LineSegment3d } from "./LineSegment3d";
25
25
  import type { OffsetOptions } from "./internalContexts/PolygonOffsetContext";
26
- /** Describes the concrete type of a [[CurvePrimitive]]. Each type name maps to a specific subclass and can be used for type-switching in conditional statements.
26
+ /**
27
+ * Describes the concrete type of a [[CurvePrimitive]]. Each type name maps to a specific subclass and can be used
28
+ * for type-switching in conditional statements.
27
29
  * - "arc" => [[Arc3d]]
28
30
  * - "lineSegment" => [[LineSegment3d]]
29
31
  * - "lineString" => [[LineString3d]]
30
- * - "bsplineCurve" => [[BSplineCurve3dBase]] which is an intermediate class implemented by [[BSplineCurve3d]] and [[BSplineCurve3dH]]
31
- * - "bezierCurve" => [[BezierCurveBase]] which is an intermediate class implemented by [[BezierCurve3d]] and [[BezierCurve3dH]]
32
+ * - "bsplineCurve" => [[BSplineCurve3dBase]] which is an intermediate class implemented by [[BSplineCurve3d]] and
33
+ * [[BSplineCurve3dH]]
34
+ * - "bezierCurve" => [[BezierCurveBase]] which is an intermediate class implemented by [[BezierCurve3d]] and
35
+ * [[BezierCurve3dH]]
32
36
  * - "transitionSpiral" => [[TransitionSpiral3d]]
33
37
  * - "curveChainWithDistanceIndex" => [[CurveChainWithDistanceIndex]]
38
+ * @see [Curve Collections]($docs/learning/geometry/CurvePrimitive.md) learning article.
34
39
  * @see [[AnyCurvePrimitive]] for a union type that supports compile-time type narrowing.
35
40
  * @public
36
41
  */
37
42
  export type CurvePrimitiveType = "arc" | "lineSegment" | "lineString" | "bsplineCurve" | "bezierCurve" | "transitionSpiral" | "curveChainWithDistanceIndex" | "interpolationCurve" | "akimaCurve";
38
- /** Union type for subclasses of [[CurvePrimitive]]. Specific subclasses can be discriminated at compile- or run-time using [[CurvePrimitive.curvePrimitiveType]].
43
+ /**
44
+ * Union type for subclasses of [[CurvePrimitive]]. Specific subclasses can be discriminated at compile- or run-time using [[CurvePrimitive.curvePrimitiveType]].
39
45
  * @public
40
46
  */
41
47
  export type AnyCurvePrimitive = Arc3d | LineSegment3d | LineString3d | BSplineCurve3d | BezierCurve3d | DirectSpiral3d | IntegratedSpiral3d | CurveChainWithDistanceIndex | InterpolationCurve3d | AkimaCurve3d;
42
- /** function signature for callback which announces a pair of numbers, such as a fractional interval, along with a containing CurvePrimitive.
48
+ /**
49
+ * Function signature for callback which announces a pair of numbers, such as a fractional interval, along with a containing CurvePrimitive.
43
50
  * @public
44
51
  */
45
52
  export type AnnounceNumberNumberCurvePrimitive = (a0: number, a1: number, cp: CurvePrimitive) => void;
46
- /** Function signature for a callback which announces a pair of numbers
53
+ /**
54
+ * Function signature for a callback which announces a pair of numbers
47
55
  * @public
48
56
  */
49
57
  export type AnnounceNumberNumber = (a0: number, a1: number) => void;
@@ -52,17 +60,17 @@ export type AnnounceNumberNumber = (a0: number, a1: number) => void;
52
60
  */
53
61
  export type AnnounceCurvePrimitive = (cp: CurvePrimitive) => void;
54
62
  /**
55
- * A curve primitive is bounded
63
+ * A curve primitive is bounded.
56
64
  * A curve primitive maps fractions in 0..1 to points in space.
57
65
  * As the fraction proceeds from 0 towards 1, the point moves "forward" along the curve.
58
66
  * True distance along the curve is not always strictly proportional to fraction.
59
- * * LineSegment3d always has proportional fraction and distance
60
- * * an Arc3d which is true circular has proportional fraction and distance
61
- * * A LineString3d is not proportional (except for special case of all segments of equal length)
62
- * * A Spiral3d is proportional
67
+ * * A LineSegment3d always has proportional fraction and distance.
68
+ * * An Arc3d which is true circular has proportional fraction and distance.
69
+ * * A LineString3d is not proportional (except for special case of all segments of equal length).
70
+ * * A Spiral3d is proportional.
63
71
  * * A BsplineCurve3d is only proportional for special cases.
64
- *
65
- * For fractions outside 0..1, the curve primitive class may either (a) return the near endpoint or (b) evaluate an extended curve.
72
+ * For fractions outside 0..1, the curve primitive class may either (a) return the near endpoint or (b) evaluate
73
+ * an extended curve.
66
74
  * @public
67
75
  */
68
76
  export declare abstract class CurvePrimitive extends GeometryQuery {
@@ -70,35 +78,38 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
70
78
  readonly geometryCategory = "curvePrimitive";
71
79
  /** String name for schema properties */
72
80
  abstract readonly curvePrimitiveType: CurvePrimitiveType;
81
+ /** Constructor */
73
82
  protected constructor();
74
83
  /**
75
- * data attached during stroking for facets.
84
+ * Data attached during stroking for facets.
76
85
  */
77
86
  strokeData?: StrokeCountMap;
78
87
  /**
79
- * data attached in curve cutting.
88
+ * Data attached in curve cutting.
80
89
  * @internal
81
90
  */
82
91
  startCut?: CurveLocationDetail;
83
92
  /**
84
- * data attached in curve cutting.
93
+ * Data attached in curve cutting.
85
94
  * @internal
86
95
  */
87
96
  endCut?: CurveLocationDetail;
88
97
  /**
89
- * data attached by various algorithms (e.g. Region booleans)
98
+ * Data attached by various algorithms (e.g. Region booleans)
90
99
  */
91
100
  parent?: any;
92
- /** Return the point (x,y,z) on the curve at fractional position.
101
+ /**
102
+ * Return the point (x,y,z) on the curve at fractional position.
93
103
  * @param fraction fractional position along the geometry.
94
104
  * @returns Returns a point on the curve.
95
105
  */
96
106
  abstract fractionToPoint(fraction: number, result?: Point3d): Point3d;
97
- /** Return the point (x,y,z) and derivative on the curve at fractional position.
107
+ /**
108
+ * Return the point (x,y,z) and derivative on the curve at fractional position.
98
109
  *
99
- * * Note that this derivative is "derivative of xyz with respect to fraction."
100
- * * this derivative shows the speed of the "fractional point" moving along the curve.
101
- * * this is not generally a unit vector. use fractionToPointAndUnitTangent for a unit vector.
110
+ * * Note that this derivative is "derivative of xyz with respect to fraction".
111
+ * * This derivative shows the speed of the "fractional point" moving along the curve.
112
+ * * This is not generally a unit vector. Use fractionToPointAndUnitTangent for a unit vector.
102
113
  * @param fraction fractional position along the geometry.
103
114
  * @returns Returns a ray whose origin is the curve point and direction is the derivative with respect to the fraction.
104
115
  */
@@ -115,24 +126,30 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
115
126
  * @param fraction fractional position on the curve
116
127
  */
117
128
  fractionToCurvature(fraction: number): number | undefined;
118
- /** Return a plane with
119
- *
129
+ /**
130
+ * Return a plane with
120
131
  * * origin at fractional position along the curve
121
- * * vectorU is the first derivative, i.e. tangent vector with length equal to the rate of change with respect to the fraction.
122
- * * vectorV is the second derivative, i.e.derivative of vectorU.
132
+ * * vectorU is the first derivative, i.e. tangent vector with length equal to the rate of change with respect to
133
+ * the fraction.
134
+ * * vectorV is the second derivative, i.e. derivative of vectorU which points in the direction of the curve's
135
+ * derivative's change.
136
+ * * **Note:** We are dealing with a parametric equation of the curve (a function f : R -> R^3) so first and
137
+ * second derivatives are in fact derivatives of the parametric equation.
123
138
  */
124
139
  abstract fractionToPointAnd2Derivatives(fraction: number, result?: Plane3dByOriginAndVectors): Plane3dByOriginAndVectors | undefined;
125
- /** Construct a frenet frame:
140
+ /**
141
+ * Construct a frenet frame:
126
142
  * * origin at the point on the curve
127
143
  * * x axis is unit vector along the curve (tangent)
128
- * * y axis is perpendicular and in the plane of the osculating circle.
129
- * * z axis perpendicular to those.
144
+ * * y axis is perpendicular and in the plane of the osculating circle. y axis is called "main normal"
145
+ * * z axis perpendicular to those. z axis is called "bi-normal"
130
146
  */
131
147
  fractionToFrenetFrame(fraction: number, result?: Transform): Transform | undefined;
132
- /** Construct signed distance from a point on the curve to its center of curvature (in xy only).
133
- * * Positive is to the left of the xy tangent.
134
- * * negative is to the right of the xy tangent.
135
- * * linear curve is 0.
148
+ /**
149
+ * Construct signed distance from a point on the planar curve to its center of curvature (in xy only).
150
+ * * Positive distance means the center is to the left of the curve at fraction.
151
+ * * Negative distance means the center is to the right of the curve at fraction.
152
+ * * Zero distance means curve is linear at fraction.
136
153
  */
137
154
  fractionToSignedXYRadiusOfCurvature(fraction: number): number;
138
155
  /**
@@ -142,93 +159,104 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
142
159
  */
143
160
  fractionAndDistanceToPointOnTangent(fraction: number, distance: number): Point3d;
144
161
  /**
145
- * return the length of the curve.
162
+ * Return the length of the curve.
146
163
  * * Curve length is always positive.
147
164
  */
148
165
  curveLength(): number;
149
166
  /**
150
- * Returns a (high accuracy) length of the curve between fractional positions
167
+ * Returns a (high accuracy) length of the curve between fractional positions.
151
168
  * * Curve length is always positive.
152
- * * Default implementation applies a generic gaussian integration.
169
+ * * Default implementation applies a generic Gaussian integration.
153
170
  * * Most curve classes (certainly LineSegment, LineString, Arc) are expected to provide efficient implementations.
154
171
  */
155
172
  curveLengthBetweenFractions(fraction0: number, fraction1: number): number;
156
173
  /**
157
174
  * Returns a (high accuracy) range of the curve between fractional positions
158
- * * Default implementation returns teh range of the curve from clonePartialCurve
175
+ * * Default implementation returns the range of the curve from clonePartialCurve
159
176
  */
160
177
  rangeBetweenFractions(fraction0: number, fraction1: number, transform?: Transform): Range3d;
161
178
  /**
162
179
  * Returns a (high accuracy) range of the curve between fractional positions
163
- * * Default implementation returns teh range of the curve from clonePartialCurve
180
+ * * Default implementation returns the range of the curve from clonePartialCurve
164
181
  */
165
182
  rangeBetweenFractionsByClone(fraction0: number, fraction1: number, transform?: Transform): Range3d;
166
183
  /**
167
184
  * Returns an approximate range based on a fixed number of evaluations
168
185
  * * Default implementation returns a range determined by evaluating a specified number of points on the curve.
169
186
  * * Optional evaluate again at interval midpoints and extrapolate any increase
170
- * * For a smooth curve, Richardson extrapolation suggests each subdivision moves 3/4 of the way to final. So extrapolationFactor
171
- * of 1/3 gets speculatively moves closer to the tight range, and larger multipliers increase confidence in being safely larger.
187
+ * * For a smooth curve, Richardson extrapolation suggests each subdivision moves 3/4 of the way to final. So
188
+ * extrapolationFactor of 1/3 gets speculatively moves closer to the tight range, and larger multipliers increase
189
+ * confidence in being safely larger.
190
+ * * This function is faster version to compute the range of a portion of a curve (because some curves can be
191
+ * expensive to compute the partial curve and/or to compute the partial curve's range.
172
192
  * @param fraction0 start fraction for evaluation
173
193
  * @param fraction1 end fraction for evaluation
174
194
  * @param count number of points to evaluate
175
- * @param extrapolationFactor if positive, evaluate again at interval midpoints and apply this fraction multiplier to any increase in size.
195
+ * @param extrapolationFactor if positive, evaluate again at interval midpoints and apply this fraction multiplier
196
+ * to any increase in size.
176
197
  */
177
198
  rangeBetweenFractionsByCount(fraction0: number, fraction1: number, count: number, transform?: Transform, extrapolationFactor?: number): Range3d;
178
199
  /**
179
- *
180
- * * Run an integration (with a default gaussian quadrature) with a fixed fractional step
200
+ * Run an integration (with a default Gaussian quadrature) with a fixed fractional step
181
201
  * * This is typically called by specific curve type implementations of curveLengthBetweenFractions.
182
- * * For example, in Arc3d implementation of curveLengthBetweenFractions:
202
+ * * For example, in Arc3d implementation of curveLengthBetweenFractions:
183
203
  * * If the Arc3d is true circular, it the arc is true circular, use the direct `arcLength = radius * sweepRadians`
184
- * * If the Arc3d is not true circular, call this method with an interval count appropriate to eccentricity and sweepRadians.
185
- * @returns Returns an integral estimated by numerical quadrature between the fractional positions.
204
+ * * If the Arc3d is not true circular, call this method with an interval count appropriate to eccentricity and
205
+ * sweepRadians.
206
+ * @returns Returns the curve length via an integral estimated by numerical quadrature between the fractional positions.
186
207
  * @param fraction0 start fraction for integration
187
208
  * @param fraction1 end fraction for integration
188
209
  * @param numInterval number of quadrature intervals
189
210
  */
190
211
  curveLengthWithFixedIntervalCountQuadrature(fraction0: number, fraction1: number, numInterval: number, numGauss?: number): number;
191
212
  /**
192
- *
193
- * * (Attempt to) find a position on the curve at a signed distance from start fraction.
213
+ * (Attempt to) find a position on the curve at a signed distance from start fraction.
194
214
  * * Return the position as a CurveLocationDetail.
195
215
  * * In the `CurveLocationDetail`, record:
196
216
  * * `fraction` = fractional position
197
217
  * * `point` = coordinates of the point
198
- * * `a` = (signed!) distance moved. If `allowExtension` is false and the move reached the start or end of the curve, this distance is smaller than the requested signedDistance.
218
+ * * `a` = (signed!) distance moved. If `allowExtension` is false and the move reached the start or end of the
219
+ * curve, this distance is smaller than the requested signedDistance.
199
220
  * * `curveSearchStatus` indicates one of:
200
221
  * * `error` (unusual) computation failed not supported for this curve.
201
222
  * * `success` full movement completed
202
223
  * * `stoppedAtBoundary` partial movement completed. This can be due to either
203
224
  * * `allowExtension` parameter sent as `false`
204
225
  * * the curve type (e.g. bspline) does not support extended range.
205
- * * if `allowExtension` is true, movement may still end at the startPoint or end point for curves that do not support extended geometry (specifically bsplines)
206
- * * if the curve returns a value (i.e. not `undefined`) for `curve.getFractionToDistanceScale()`, the base class carries out the computation
226
+ * * if `allowExtension` is true, movement may still end at the startPoint or end point for curves that do not support
227
+ * extended geometry (specifically bsplines)
228
+ * * if the curve returns a value (i.e. not `undefined`) for `curve.getFractionToDistanceScale()`, the base class
229
+ * carries out the computation
207
230
  * and returns a final location.
208
231
  * * LineSegment3d relies on this.
209
- * * If the curve does not implement the computation or the curve has zero length, the returned `CurveLocationDetail` has
232
+ * * If the curve does not implement the computation or the curve has zero length, the returned `CurveLocationDetail`
233
+ * has
210
234
  * * `fraction` = the value of `startFraction`
211
235
  * * `point` = result of `curve.fractionToPoint(startFraction)`
212
236
  * * `a` = 0
213
237
  * * `curveStartState` = `CurveSearchStatus.error`
214
238
  * @param startFraction fractional position where the move starts
215
239
  * @param signedDistance distance to move. Negative distance is backwards in the fraction space
216
- * @param allowExtension if true, all the move to go beyond the startPoint or endpoint of the curve. If false, do not allow movement beyond the startPoint or endpoint
240
+ * @param allowExtension if true, all the move to go beyond the startPoint or endpoint of the curve. If false, do not
241
+ * allow movement beyond the startPoint or endpoint
217
242
  * @param result optional result.
218
- * @returns A CurveLocationDetail annotated as above. Note that if the curve does not support the calculation, there is still a result which contains the point at the input startFraction, with failure indicated in the `curveStartState` member
243
+ * @returns A CurveLocationDetail annotated as above. Note that if the curve does not support the calculation, there is
244
+ * still a result which contains the point at the input startFraction, with failure indicated in the `curveStartState`
245
+ * member
219
246
  */
220
247
  moveSignedDistanceFromFraction(startFraction: number, signedDistance: number, allowExtension: boolean, result?: CurveLocationDetail): CurveLocationDetail;
221
248
  /**
222
249
  * Generic algorithm to search for point at signed distance from a fractional startPoint.
223
250
  * * This will work for well for smooth curves.
224
251
  * * Curves with tangent or other low-order-derivative discontinuities may need to implement specialized algorithms.
225
- * * We need to find an endFraction which is the end-of-interval (usually upper) limit of integration of the tangent magnitude from startFraction to endFraction
252
+ * * We need to find an endFraction which is the end-of-interval (usually upper) limit of integration of the tangent
253
+ * magnitude from startFraction to endFraction
226
254
  * * That integral is a function of endFraction.
227
255
  * * The derivative of that integral with respect to end fraction is the tangent magnitude at end fraction.
228
256
  * * Use that function and (easily evaluated!) derivative for a Newton iteration
229
- * * TO ALL WHO HAVE FUZZY MEMORIES OF CALCULUS CLASS: "The derivative of the integral wrt upper limit is the value of the integrand there" is the
230
- * fundamental theorem of integral calculus !!! The fundamental theorem is not just an abstraction !!! It is being used
231
- * here in its barest possible form !!!
257
+ * * TO ALL WHO HAVE FUZZY MEMORIES OF CALCULUS CLASS: "The derivative of the integral wrt upper limit is the value
258
+ * of the integrand there" is the fundamental theorem of integral calculus !!! The fundamental theorem is not just
259
+ * an abstraction !!! It is being used here in its barest possible form !!!
232
260
  * * See https://en.wikipedia.org/wiki/Fundamental_theorem_of_calculus
233
261
  * @param startFraction
234
262
  * @param signedDistance
@@ -237,16 +265,17 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
237
265
  */
238
266
  protected moveSignedDistanceFromFractionGeneric(startFraction: number, signedDistance: number, allowExtension: boolean, result?: CurveLocationDetail): CurveLocationDetail;
239
267
  /**
240
- * * Returns true if the curve's fraction queries extend beyond 0..1.
268
+ * * Returns true if the curve can be easily extended past its start/end point (i.e., beyond the usual
269
+ * fraction space [0,1]). Otherwise, returns false.
241
270
  * * Base class default implementation returns false.
242
- * * These class (and perhaps others in the future) will return true:
271
+ * * These classes (and perhaps others in the future) will return true:
243
272
  * * LineSegment3d
244
273
  * * LineString3d
245
274
  * * Arc3d
246
275
  */
247
276
  get isExtensibleFractionSpace(): boolean;
248
277
  /**
249
- * Compute a length which may be an fast approximation to the true length.
278
+ * Compute a length for curve which may be a fast approximation to the true length.
250
279
  * This is expected to be either (a) exact or (b) larger than the actual length, but by no more than
251
280
  * a small multiple, perhaps up to PI/2, but commonly much closer to 1.
252
281
  *
@@ -257,19 +286,22 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
257
286
  * *
258
287
  */
259
288
  abstract quickLength(): number;
260
- /** Search for the curve point that is closest to the spacePoint.
261
- *
289
+ /**
290
+ * Search for a point on the curve that is closest to the spacePoint.
262
291
  * * If the space point is exactly on the curve, this is the reverse of fractionToPoint.
263
- * * Since CurvePrimitive should always have start and end available as candidate points, this method should always succeed
292
+ * * Since CurvePrimitive should always have start and end available as candidate points, this method should always
293
+ * succeed
264
294
  * @param spacePoint point in space
265
- * @param extend true to extend the curve (if possible), false for no extend, single CurveExtendOptions (for both directions), or array of distinct CurveExtendOptions for start and end.
295
+ * @param extend true to extend the curve (if possible), false for no extend, single CurveExtendOptions (for both
296
+ * directions), or array of distinct CurveExtendOptions for start and end.
266
297
  * @returns Returns a CurveLocationDetail structure that holds the details of the close point.
267
298
  */
268
299
  closestPoint(spacePoint: Point3d, extend: VariantCurveExtendParameter): CurveLocationDetail | undefined;
269
300
  /**
270
301
  * Find intervals of this curvePrimitive that are interior to a clipper
271
302
  * @param clipper clip structure (e.g. clip planes)
272
- * @param announce (optional) function to be called announcing fractional intervals" ` announce(fraction0, fraction1, curvePrimitive)`
303
+ * @param announce (optional) function to be called announcing fractional intervals
304
+ * `announce(fraction0, fraction1, curvePrimitive)`
273
305
  * @returns true if any "in" segments are announced.
274
306
  */
275
307
  announceClipIntervals(_clipper: Clipper, _announce?: AnnounceNumberNumberCurvePrimitive): boolean;
@@ -277,14 +309,15 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
277
309
  abstract clone(): CurvePrimitive;
278
310
  /** Return a transformed deep clone. */
279
311
  abstract cloneTransformed(transform: Transform): CurvePrimitive | undefined;
280
- /** Return (if possible) a curve primitive which is a portion of this curve.
312
+ /**
313
+ * Return (if possible) a curve primitive which is a portion of this curve.
281
314
  * @param _fractionA [in] start fraction
282
315
  * @param _fractionB [in] end fraction
283
316
  */
284
317
  clonePartialCurve(_fractionA: number, _fractionB: number): CurvePrimitive | undefined;
285
318
  /**
286
- * * If the curve primitive has distance-along-curve strictly proportional to curve fraction, return the scale factor.
287
- * * If distance-along-the-curve is not proportional, return undefined.
319
+ * If the curve primitive has distance-along-curve strictly proportional to curve fraction, return the scale factor.
320
+ * If distance-along-the-curve is not proportional, return undefined.
288
321
  * * When defined, the scale factor is always the length of the curve.
289
322
  * * This scale factor is typically available for these curve types:
290
323
  * * * All `LineSegment3d`
@@ -299,10 +332,10 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
299
332
  /** Reverse the curve's data so that its fractional stroking moves in the opposite direction. */
300
333
  abstract reverseInPlace(): void;
301
334
  /**
302
- * Compute intersections with a plane.
335
+ * Compute intersections of the curve with a plane.
303
336
  * * The intersections are appended to the result array.
304
- * * The base class implementation emits strokes to an AppendPlaneIntersectionStrokeHandler object, which uses a Newton iteration to get
305
- * high-accuracy intersection points within strokes.
337
+ * * The base class implementation emits strokes to an AppendPlaneIntersectionStrokeHandler object, which uses a
338
+ * Newton iteration to get high-accuracy intersection points within strokes.
306
339
  * * Derived classes should override this default implementation if there are easy analytic solutions.
307
340
  * * Derived classes are free to implement extended intersections (e.g. arc!!!)
308
341
  * @param plane The plane to be intersected.
@@ -314,36 +347,38 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
314
347
  * Examine contents of an array of CurveLocationDetail.
315
348
  * Filter the intersections according to the parameters.
316
349
  * @param allowExtend if false, remove points on the extension.
317
- * @param applySnappedCoordinates if true, change the stored fractions and coordinates to exact end values. Otherwise
318
- * use the exact values only for purpose of updating the curveIntervalRole.
350
+ * @param applySnappedCoordinates if true, change the stored fractions and coordinates to exact end values.
351
+ * Otherwise use the exact values only for purpose of updating the curveIntervalRole.
319
352
  * @param startEndFractionTolerance if nonzero, adjust fraction to 0 or 1 with this tolerance.
320
353
  * @param startEndXYZTolerance if nonzero, adjust to endpoint with this tolerance.
321
354
  * @internal
322
355
  */
323
356
  static snapAndRestrictDetails(details: CurveLocationDetail[], allowExtend?: boolean, applySnappedCoordinates?: boolean, startEndFractionTolerance?: number, startEndXYZTolerance?: number): void;
324
- /** Ask if the curve is within tolerance of a plane.
357
+ /**
358
+ * Ask if the curve is within tolerance of a plane.
325
359
  * @returns Returns true if the curve is completely within tolerance of the plane.
326
360
  */
327
361
  abstract isInPlane(plane: Plane3dByOriginAndUnitNormal): boolean;
328
- /** return the startPoint of the primitive. The default implementation returns fractionToPoint (0.0) */
362
+ /** Return the startPoint of the primitive. The default implementation returns fractionToPoint(0.0) */
329
363
  startPoint(result?: Point3d): Point3d;
330
- /** return the end point of the primitive. The default implementation returns fractionToPoint(1.0) */
364
+ /** Return the end point of the primitive. The default implementation returns fractionToPoint(1.0) */
331
365
  endPoint(result?: Point3d): Point3d;
332
- /** Add strokes to caller-supplied linestring */
366
+ /** Add strokes to caller-supplied linestring (function updates `dest`) */
333
367
  abstract emitStrokes(dest: LineString3d, options?: StrokeOptions): void;
334
- /** Ask the curve to announce points and simple subcurve fragments for stroking.
368
+ /**
369
+ * Ask the curve to announce points and simple subcurve fragments for stroking.
335
370
  * See IStrokeHandler for description of the sequence of the method calls.
336
371
  */
337
372
  abstract emitStrokableParts(dest: IStrokeHandler, options?: StrokeOptions): void;
338
373
  /**
339
- * return the stroke count required for given options.
374
+ * Return the stroke count required for given options.
340
375
  * * This returns a single number
341
376
  * * See computeComponentStrokeCountForOptions to get structured per-component counts and fraction mappings.
342
377
  * @param options StrokeOptions that determine count
343
378
  */
344
379
  abstract computeStrokeCountForOptions(options?: StrokeOptions): number;
345
380
  /**
346
- * attach StrokeCountMap structure to this primitive (and recursively to any children)
381
+ * Attach StrokeCountMap structure to this primitive (and recursively to any children)
347
382
  * * Base class implementation (here) gets the simple count from computeStrokeCountForOptions and attaches it.
348
383
  * * LineString3d, arc3d, BezierCurve3d, BezierCurve3dH accept that default.
349
384
  * * Subdivided primitives (linestring, bspline curve) implement themselves and attach a StrokeCountMap containing the
@@ -351,13 +386,15 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
351
386
  * * For CurvePrimitiveWithDistanceIndex, the top level gets (only) a total count, and each child gets
352
387
  * its own StrokeCountMap with appropriate structure.
353
388
  * @param options StrokeOptions that determine count
354
- * @param parentStrokeMap optional map from parent. Its count, curveLength, and a1 values are increased with count and distance from this primitive.
389
+ * @param parentStrokeMap optional map from parent. Its count, curveLength, and a1 values are increased with count
390
+ * and distance from this primitive.
355
391
  * @return sum of `a0+this.curveLength()`, for use as `a0` of successor in chain.
356
392
  */
357
393
  computeAndAttachRecursiveStrokeCounts(options?: StrokeOptions, parentMap?: StrokeCountMap): void;
358
394
  /**
359
- * * evaluate strokes at fractions indicated in a StrokeCountMap.
360
- * * Base class implementation (here) gets the simple count from computeStrokeCountForOptions and strokes at uniform fractions.
395
+ * Evaluate strokes at fractions indicated in a StrokeCountMap.
396
+ * * Base class implementation (here) gets the simple count from computeStrokeCountForOptions and strokes at
397
+ * uniform fractions.
361
398
  * * LineString3d, arc3d, BezierCurve3d, BezierCurve3dH accept that default.
362
399
  * * Subdivided primitives (linestring, bspline curve) implement themselves and evaluate within components.
363
400
  * * CurvePrimitiveWithDistanceIndex recurses to its children.
@@ -368,7 +405,7 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
368
405
  */
369
406
  addMappedStrokesToLineString3D(map: StrokeCountMap, linestring: LineString3d): number;
370
407
  /**
371
- * final install step to save curveMap in curve. If parentMap is given, update its length, count, and a1 fields
408
+ * Final install step to save curveMap in curve. If parentMap is given, update its length, count, and a1 fields
372
409
  * @param curve curve to receive the annotation
373
410
  * @param map
374
411
  * @param parentMap
@@ -378,28 +415,36 @@ export declare abstract class CurvePrimitive extends GeometryQuery {
378
415
  * Return an array containing only the curve primitives.
379
416
  * * This DEFAULT implementation simply pushes `this` to the collectorArray.
380
417
  * @param collectorArray array to receive primitives (pushed -- the array is not cleared)
381
- * @param smallestPossiblePrimitives if true, a [[CurvePrimitiveWithDistanceIndex]] recurses on its (otherwise hidden) children. If false, it returns only itself.
382
- * @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false, push only the [[LineString3d]].
418
+ * @param smallestPossiblePrimitives if true, a [[CurvePrimitiveWithDistanceIndex]] recurses on its (otherwise hidden)
419
+ * children. If false, it returns only itself.
420
+ * @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false,
421
+ * push only the [[LineString3d]].
383
422
  */
384
423
  collectCurvePrimitivesGo(collectorArray: CurvePrimitive[], _smallestPossiblePrimitives: boolean, _explodeLinestrings?: boolean): void;
385
424
  /**
386
425
  * Return an array containing only the curve primitives.
387
426
  * * This DEFAULT implementation captures the optional collector and calls [[collectCurvePrimitivesGo]].
388
- * @param collectorArray optional array to receive primitives. If present, new primitives are ADDED (without clearing the array.)
389
- * @param smallestPossiblePrimitives if false, CurvePrimitiveWithDistanceIndex returns only itself. If true, it recurses to its (otherwise hidden) children.
427
+ * @param collectorArray optional array to receive primitives. If present, new primitives are ADDED (without
428
+ * clearing the array.)
429
+ * @param smallestPossiblePrimitives if false, CurvePrimitiveWithDistanceIndex returns only itself. If true,
430
+ * it recurses to its (otherwise hidden) children.
390
431
  */
391
432
  collectCurvePrimitives(collectorArray?: CurvePrimitive[], smallestPossiblePrimitives?: boolean, explodeLinestrings?: boolean): CurvePrimitive[];
392
433
  /**
393
434
  * Construct an offset of the instance curve as viewed in the xy-plane (ignoring z).
394
435
  * * No attempt is made to join the offsets of smaller constituent primitives. To construct a fully joined offset
395
- * for an aggregate instance (e.g., LineString3d, CurveChainWithDistanceIndex), use RegionOps.constructCurveXYOffset() instead.
436
+ * for an aggregate instance (e.g., LineString3d, CurveChainWithDistanceIndex), use RegionOps.constructCurveXYOffset()
437
+ * instead.
396
438
  * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
397
439
  */
398
440
  abstract constructOffsetXY(offsetDistanceOrOptions: number | OffsetOptions): CurvePrimitive | CurvePrimitive[] | undefined;
399
- /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
441
+ /**
442
+ * Project instance geometry (via dispatch) onto the line of the given ray, and return the extreme fractional
443
+ * parameters of projection.
400
444
  * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
401
445
  * @param lowHigh optional receiver for output
402
- * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
446
+ * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the
447
+ * end of the ray.
403
448
  */
404
449
  projectedParameterRange(_ray: Vector3d | Ray3d, _lowHigh?: Range1d): Range1d | undefined;
405
450
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CurvePrimitive.d.ts","sourceRoot":"","sources":["../../../src/curve/CurvePrimitive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CurvePrimitive.d.ts","sourceRoot":"","sources":["../../../src/curve/CurvePrimitive.ts"],"names":[],"mappings":"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"}