@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.
- package/lib/cjs/curve/Arc3d.d.ts +70 -86
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +109 -96
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.d.ts +47 -30
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +63 -34
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.d.ts +40 -41
- package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js +31 -35
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.d.ts +137 -92
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js +114 -75
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/GeometryQuery.d.ts +26 -20
- package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
- package/lib/cjs/curve/GeometryQuery.js +11 -9
- package/lib/cjs/curve/GeometryQuery.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.d.ts +34 -25
- package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js +76 -38
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.d.ts +70 -51
- package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineString3d.js +120 -71
- package/lib/cjs/curve/LineString3d.js.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountMap.d.ts +14 -13
- package/lib/cjs/curve/Query/StrokeCountMap.d.ts.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountMap.js +9 -8
- package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
- package/lib/cjs/curve/StrokeOptions.d.ts +29 -21
- package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/cjs/curve/StrokeOptions.js +44 -22
- package/lib/cjs/curve/StrokeOptions.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.d.ts +2 -2
- package/lib/cjs/geometry3d/Matrix3d.js +2 -2
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +70 -86
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +109 -96
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/CurveCollection.d.ts +47 -30
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +63 -34
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.d.ts +40 -41
- package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js +31 -35
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.d.ts +137 -92
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js +114 -75
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/GeometryQuery.d.ts +26 -20
- package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
- package/lib/esm/curve/GeometryQuery.js +11 -9
- package/lib/esm/curve/GeometryQuery.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.d.ts +34 -25
- package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/esm/curve/LineSegment3d.js +76 -38
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.d.ts +70 -51
- package/lib/esm/curve/LineString3d.d.ts.map +1 -1
- package/lib/esm/curve/LineString3d.js +120 -71
- package/lib/esm/curve/LineString3d.js.map +1 -1
- package/lib/esm/curve/Query/StrokeCountMap.d.ts +14 -13
- package/lib/esm/curve/Query/StrokeCountMap.d.ts.map +1 -1
- package/lib/esm/curve/Query/StrokeCountMap.js +9 -8
- package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
- package/lib/esm/curve/StrokeOptions.d.ts +29 -21
- package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/esm/curve/StrokeOptions.js +44 -22
- package/lib/esm/curve/StrokeOptions.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.d.ts +2 -2
- package/lib/esm/geometry3d/Matrix3d.js +2 -2
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- 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
|
-
/**
|
|
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
|
|
31
|
-
*
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
* *
|
|
61
|
-
* *
|
|
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
|
-
*
|
|
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
|
-
*
|
|
84
|
+
* Data attached during stroking for facets.
|
|
76
85
|
*/
|
|
77
86
|
strokeData?: StrokeCountMap;
|
|
78
87
|
/**
|
|
79
|
-
*
|
|
88
|
+
* Data attached in curve cutting.
|
|
80
89
|
* @internal
|
|
81
90
|
*/
|
|
82
91
|
startCut?: CurveLocationDetail;
|
|
83
92
|
/**
|
|
84
|
-
*
|
|
93
|
+
* Data attached in curve cutting.
|
|
85
94
|
* @internal
|
|
86
95
|
*/
|
|
87
96
|
endCut?: CurveLocationDetail;
|
|
88
97
|
/**
|
|
89
|
-
*
|
|
98
|
+
* Data attached by various algorithms (e.g. Region booleans)
|
|
90
99
|
*/
|
|
91
100
|
parent?: any;
|
|
92
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
* *
|
|
101
|
-
* *
|
|
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
|
-
/**
|
|
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
|
|
122
|
-
*
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
133
|
-
*
|
|
134
|
-
* *
|
|
135
|
-
* *
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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
|
|
171
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
185
|
-
*
|
|
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
|
|
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
|
|
206
|
-
*
|
|
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`
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
230
|
-
*
|
|
231
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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
|
-
/**
|
|
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
|
|
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
|
|
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
|
|
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
|
-
/**
|
|
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
|
-
*
|
|
287
|
-
*
|
|
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
|
|
305
|
-
*
|
|
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.
|
|
318
|
-
*
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
362
|
+
/** Return the startPoint of the primitive. The default implementation returns fractionToPoint(0.0) */
|
|
329
363
|
startPoint(result?: Point3d): Point3d;
|
|
330
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
360
|
-
* * Base class implementation (here) gets the simple count from computeStrokeCountForOptions and strokes at
|
|
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
|
-
*
|
|
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)
|
|
382
|
-
*
|
|
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
|
|
389
|
-
*
|
|
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
|
-
*
|
|
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
|
-
/**
|
|
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
|
|
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":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAuB,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,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;AAClE,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,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAqB,mBAAmB,EAAqB,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E
|
|
1
|
+
{"version":3,"file":"CurvePrimitive.d.ts","sourceRoot":"","sources":["../../../src/curve/CurvePrimitive.ts"],"names":[],"mappings":"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"}
|