@itwin/core-geometry 5.3.0-dev.17 → 5.3.0-dev.18
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/CHANGELOG.md +6 -1
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.d.ts +10 -13
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js +23 -22
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/ClothoidSeries.d.ts +5 -5
- package/lib/cjs/curve/spiral/ClothoidSeries.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/ClothoidSeries.js +28 -16
- package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/cjs/curve/spiral/CubicEvaluator.d.ts +7 -6
- package/lib/cjs/curve/spiral/CubicEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/CubicEvaluator.js +29 -14
- package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts +30 -40
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +43 -49
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts +2 -2
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js +17 -7
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +103 -95
- package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.js +132 -106
- package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +70 -52
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +97 -65
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +7 -11
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +10 -12
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/NormalizedTransition.d.ts +29 -24
- package/lib/cjs/curve/spiral/NormalizedTransition.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/NormalizedTransition.js +53 -35
- package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts +12 -17
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +20 -23
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts +25 -23
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +34 -29
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +43 -33
- package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js +56 -38
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts +27 -21
- package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js +23 -18
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts +10 -13
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +23 -22
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/ClothoidSeries.d.ts +5 -5
- package/lib/esm/curve/spiral/ClothoidSeries.d.ts.map +1 -1
- package/lib/esm/curve/spiral/ClothoidSeries.js +28 -16
- package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/esm/curve/spiral/CubicEvaluator.d.ts +7 -6
- package/lib/esm/curve/spiral/CubicEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/CubicEvaluator.js +29 -14
- package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts +30 -40
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +43 -49
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts +2 -2
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +17 -7
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +103 -95
- package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.js +132 -106
- package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +70 -52
- package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js +97 -65
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +7 -11
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +10 -12
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/NormalizedTransition.d.ts +29 -24
- package/lib/esm/curve/spiral/NormalizedTransition.d.ts.map +1 -1
- package/lib/esm/curve/spiral/NormalizedTransition.js +53 -35
- package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts +12 -17
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +20 -23
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts +25 -23
- package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js +34 -29
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +43 -33
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.js +56 -38
- package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts +27 -21
- package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/XYCurveEvaluator.js +23 -18
- package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/package.json +3 -3
|
@@ -12,10 +12,10 @@ import { TransitionConditionalProperties } from "./TransitionConditionalProperti
|
|
|
12
12
|
import { TransitionSpiral3d } from "./TransitionSpiral3d";
|
|
13
13
|
import { XYCurveEvaluator } from "./XYCurveEvaluator";
|
|
14
14
|
/**
|
|
15
|
-
* DirectSpiral3d acts like a TransitionSpiral3d for serialization purposes, but implements spiral types that have
|
|
16
|
-
* for IntegratedSpiral3d.
|
|
15
|
+
* DirectSpiral3d acts like a TransitionSpiral3d for serialization purposes, but implements spiral types that have
|
|
16
|
+
* "direct" xy calculations without the integrations required for IntegratedSpiral3d.
|
|
17
17
|
* * Each DirectSpiral3d carries an XYCurveEvaluator to give it specialized behavior.
|
|
18
|
-
* * Direct spirals that flow through serialization to native imodel02 are
|
|
18
|
+
* * Direct spirals that flow through serialization to native imodel02 are created with these static methods:
|
|
19
19
|
* * createArema
|
|
20
20
|
* * createJapaneseCubic
|
|
21
21
|
* * createAustralianRail
|
|
@@ -28,16 +28,18 @@ import { XYCurveEvaluator } from "./XYCurveEvaluator";
|
|
|
28
28
|
* @public
|
|
29
29
|
*/
|
|
30
30
|
export declare class DirectSpiral3d extends TransitionSpiral3d {
|
|
31
|
-
/** String name for schema properties */
|
|
31
|
+
/** String name for schema properties. */
|
|
32
32
|
readonly curvePrimitiveType = "transitionSpiral";
|
|
33
|
-
/**
|
|
33
|
+
/** Stroked approximation of entire spiral. This is AFTER the localToWorld transform. */
|
|
34
34
|
private _globalStrokes;
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
37
|
-
* *
|
|
35
|
+
/**
|
|
36
|
+
* Stroked approximation of active spiral. This is AFTER the localToWorld transform.
|
|
37
|
+
* * Same count as global; possibly overly fine, but it gives some consistency between same clothoid constructed as
|
|
38
|
+
* partial versus complete.
|
|
39
|
+
* * If no trimming, this points to the same place as the _globalStrokes. DO NOT double transform.
|
|
38
40
|
*/
|
|
39
41
|
private _activeStrokes?;
|
|
40
|
-
/** Return the internal stroked form of the (possibly partial) spiral
|
|
42
|
+
/** Return the internal stroked form of the (possibly partial) spiral. */
|
|
41
43
|
get activeStrokes(): LineString3d;
|
|
42
44
|
private _nominalL1;
|
|
43
45
|
private _nominalR1;
|
|
@@ -48,7 +50,8 @@ export declare class DirectSpiral3d extends TransitionSpiral3d {
|
|
|
48
50
|
get nominalL1(): number;
|
|
49
51
|
/** Return the nominal end curvature */
|
|
50
52
|
get nominalCurvature1(): number;
|
|
51
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* Return the low level evaluator.
|
|
52
55
|
* @internal
|
|
53
56
|
*/
|
|
54
57
|
get evaluator(): XYCurveEvaluator;
|
|
@@ -56,70 +59,73 @@ export declare class DirectSpiral3d extends TransitionSpiral3d {
|
|
|
56
59
|
/**
|
|
57
60
|
* Compute stroke data in an interval.
|
|
58
61
|
* @param strokes strokes to clear and refill.
|
|
59
|
-
* @param
|
|
60
|
-
* @param
|
|
62
|
+
* @param fractionA start fraction.
|
|
63
|
+
* @param fractionB end fraction.
|
|
64
|
+
* @param numInterval number of intervals.
|
|
65
|
+
* @param applyLocalToWorld if true, apply the localToWorld transform.
|
|
61
66
|
*/
|
|
62
67
|
private computeStrokes;
|
|
63
|
-
/** Recompute strokes */
|
|
68
|
+
/** Recompute strokes. */
|
|
64
69
|
refreshComputedProperties(): void;
|
|
65
70
|
/**
|
|
66
71
|
* Create a spiral object which uses numXTerm terms from the clothoid X series and numYTerm from the clothoid Y series.
|
|
67
|
-
* @param
|
|
72
|
+
* @param spiralType type of spiral.
|
|
73
|
+
* @param localToWorld placement frame. Inflection point is at origin, initial direction is along x axis.
|
|
74
|
+
* @param numXTerm number of terms to use from X series
|
|
68
75
|
* @param numYTerm number of terms to use from Y series
|
|
69
|
-
* @param
|
|
76
|
+
* @param originalProperties (optional) transition conditional properties.
|
|
70
77
|
* @param nominalL1 design distance from inflection to end point.
|
|
71
78
|
* @param nominalR1 design radius at end point.
|
|
72
|
-
* @param activeInterval active interval (as fractions of nominalL1
|
|
79
|
+
* @param activeInterval (optional) active interval (as fractions of nominalL1)
|
|
73
80
|
*/
|
|
74
81
|
static createTruncatedClothoid(spiralType: string, localToWorld: Transform, numXTerm: number, numYTerm: number, originalProperties: TransitionConditionalProperties | undefined, nominalL1: number, nominalR1: number, activeInterval: Segment1d | undefined): DirectSpiral3d | undefined;
|
|
75
82
|
/**
|
|
76
|
-
* Create
|
|
83
|
+
* Create a Japanese spiral clothoid approximation.
|
|
77
84
|
* * X is 1 terms of the clothoid series as a function of nominal distance along.
|
|
78
|
-
* * Y is 1 terms
|
|
79
|
-
* * Remark: This is identical to the ChineseCubic
|
|
80
|
-
* @param localToWorld axes with inflection at origin, tangent along x axis
|
|
85
|
+
* * Y is 1 terms of the clothoid series as a function of nominal distance along.
|
|
86
|
+
* * Remark: This is identical to the ChineseCubic.
|
|
87
|
+
* @param localToWorld axes with inflection at origin, tangent along x axis.
|
|
81
88
|
* @param nominalL1 nominal length as used in series LR terms.
|
|
82
|
-
* @param nominalR1 nominal final radius as used in series LR terms
|
|
89
|
+
* @param nominalR1 nominal final radius as used in series LR terms.
|
|
83
90
|
* @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along
|
|
84
91
|
*/
|
|
85
92
|
static createJapaneseCubic(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
|
|
86
93
|
/**
|
|
87
94
|
* Create a czech cubic.
|
|
88
|
-
* This is y= m*x^3 with
|
|
89
|
-
* * x any point on the x axis
|
|
90
|
-
* * `fraction` along the spiral goes to `x = fraction * L
|
|
91
|
-
* * m is gamma / (6RL)
|
|
95
|
+
* This is y = m*x^3 with
|
|
96
|
+
* * x any point on the x axis.
|
|
97
|
+
* * `fraction` along the spiral goes to `x = fraction * L`.
|
|
98
|
+
* * m is gamma / (6RL).
|
|
92
99
|
* * 1/(6RL) is the leading term of the sine series.
|
|
93
|
-
* * `gamma = 2R/sqrt
|
|
100
|
+
* * `gamma = 2R/sqrt(4RR-LL)` pushes y up a little bit to simulate the lost series terms.
|
|
94
101
|
* @param localToWorld
|
|
95
|
-
* @param nominalLx nominal length along x axis
|
|
102
|
+
* @param nominalLx nominal length along x axis.
|
|
96
103
|
* @param nominalR1
|
|
97
104
|
* @param activeInterval
|
|
98
105
|
*/
|
|
99
106
|
static createCzechCubic(localToWorld: Transform, nominalLx: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
|
|
100
107
|
/**
|
|
101
108
|
* Create an italian spiral
|
|
102
|
-
* This is y= m*x^3 with
|
|
103
|
-
* * x any point on the x axis
|
|
104
|
-
* * `fraction` along the spiral goes to `x = fraction * L
|
|
105
|
-
* * m is gamma / (6RL)
|
|
109
|
+
* This is y = m*x^3 with
|
|
110
|
+
* * x any point on the x axis.
|
|
111
|
+
* * `fraction` along the spiral goes to `x = fraction * L`.
|
|
112
|
+
* * m is gamma / (6RL).
|
|
106
113
|
* * 1/(6RL) is the leading term of the sine series.
|
|
107
|
-
* * `gamma = 2R/sqrt
|
|
108
|
-
* * L in gamma and m is the
|
|
114
|
+
* * `gamma = 2R/sqrt(4RR-LL)` pushes y up a little bit to simulate the lost series terms.
|
|
109
115
|
* @param localToWorld
|
|
110
|
-
* @param nominalL1 nominal length along the spiral
|
|
116
|
+
* @param nominalL1 nominal length along the spiral.
|
|
111
117
|
* @param nominalR1
|
|
112
118
|
* @param activeInterval
|
|
113
119
|
*/
|
|
114
120
|
static createItalian(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
|
|
115
121
|
/**
|
|
116
122
|
* Create an MX Cubic whose nominal length is close to along the curve.
|
|
117
|
-
* This is y= m*x^3 with
|
|
118
|
-
* * m is 1/ (6RL1)
|
|
123
|
+
* This is y = m*x^3 with
|
|
124
|
+
* * m is 1/ (6RL1).
|
|
119
125
|
* * 1/(6RL) is the leading term of the sine series.
|
|
120
|
-
* * L1 is an along-the-x-axis distance that is slightly LESS THAN the nominal length
|
|
121
|
-
* * x is axis position that is slightly LESS than nominal distance along
|
|
122
|
-
* * L1, x use the approximation
|
|
126
|
+
* * L1 is an along-the-x-axis distance that is slightly LESS THAN the nominal length.
|
|
127
|
+
* * x is axis position that is slightly LESS than nominal distance along.
|
|
128
|
+
* * L1, x use the approximation `x = s * ( 1 - s^4/ (40 R R L L))
|
|
123
129
|
* @param localToWorld
|
|
124
130
|
* @param nominalL1
|
|
125
131
|
* @param nominalR1
|
|
@@ -129,20 +135,20 @@ export declare class DirectSpiral3d extends TransitionSpiral3d {
|
|
|
129
135
|
/**
|
|
130
136
|
* Create a polish cubic
|
|
131
137
|
* This is y= m*x^3 with
|
|
132
|
-
* * m is 1/ (6RL)
|
|
138
|
+
* * m is 1/ (6RL).
|
|
133
139
|
* * 1/(6RL) is the leading term of the sine series.
|
|
134
|
-
* * L is nominal length
|
|
140
|
+
* * L is nominal length.
|
|
135
141
|
* * R is nominal end radius.
|
|
136
|
-
* * x ranges up to the x axis distance for which the polish distance series produces f(x)=L
|
|
142
|
+
* * x ranges up to the x axis distance for which the polish distance series produces f(x) = L.
|
|
137
143
|
* * The support class PolishCubicEvaluator has static methods for the distance series and its inversion.
|
|
138
144
|
*/
|
|
139
145
|
static createPolishCubic(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
|
|
140
146
|
/**
|
|
141
147
|
* Create an AustralianRailCorp spiral
|
|
142
148
|
* This is y= m*x^3 with
|
|
143
|
-
* * x any point on the x axis
|
|
144
|
-
* * `fraction` along the spiral goes to `x = fraction * L
|
|
145
|
-
* * m is gamma / (6RL)
|
|
149
|
+
* * x any point on the x axis.
|
|
150
|
+
* * `fraction` along the spiral goes to `x = fraction * L`.
|
|
151
|
+
* * m is gamma / (6RL).
|
|
146
152
|
* * 1/(6RL) is the leading term of the sine series.
|
|
147
153
|
* * `gamma = 2R/sqrt (4RR-LL)` pushes y up a little bit to simulate the lost series terms.
|
|
148
154
|
* @param localToWorld
|
|
@@ -154,105 +160,107 @@ export declare class DirectSpiral3d extends TransitionSpiral3d {
|
|
|
154
160
|
static createDirectHalfCosine(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
|
|
155
161
|
/**
|
|
156
162
|
* Create an Arema spiral clothoid approximation
|
|
157
|
-
* * X is 2 terms of the clothoid series as a function of nominal distance along
|
|
158
|
-
* * Y is 2 terms f the clothoid series as a function of nominal distance along
|
|
159
|
-
* * Remark: This is identical to the ChineseCubic
|
|
160
|
-
* @param localToWorld axes with inflection at origin, tangent along x axis
|
|
163
|
+
* * X is 2 terms of the clothoid series as a function of nominal distance along.
|
|
164
|
+
* * Y is 2 terms f the clothoid series as a function of nominal distance along.
|
|
165
|
+
* * Remark: This is identical to the ChineseCubic.
|
|
166
|
+
* @param localToWorld axes with inflection at origin, tangent along x axis.
|
|
161
167
|
* @param nominalL1 nominal length as used in series LR terms.
|
|
162
|
-
* @param nominalR1 nominal final radius as used in series LR terms
|
|
163
|
-
* @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along
|
|
168
|
+
* @param nominalR1 nominal final radius as used in series LR terms.
|
|
169
|
+
* @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along.
|
|
164
170
|
*/
|
|
165
171
|
static createArema(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
|
|
166
172
|
/**
|
|
167
173
|
* Create a Chinese clothoid approximation
|
|
168
|
-
* * X is 2 terms of the clothoid series as a function of nominal distance along
|
|
169
|
-
* * Y is 2 terms f the clothoid series as a function of nominal distance along
|
|
170
|
-
* * Remark: This is identical to the Arema spiral
|
|
171
|
-
* @param localToWorld axes with inflection at origin, tangent along x axis
|
|
174
|
+
* * X is 2 terms of the clothoid series as a function of nominal distance along.
|
|
175
|
+
* * Y is 2 terms f the clothoid series as a function of nominal distance along.
|
|
176
|
+
* * Remark: This is identical to the Arema spiral.
|
|
177
|
+
* @param localToWorld axes with inflection at origin, tangent along x axis.
|
|
172
178
|
* @param nominalL1 nominal length as used in series LR terms.
|
|
173
|
-
* @param nominalR1 nominal final radius as used in series LR terms
|
|
174
|
-
* @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along
|
|
179
|
+
* @param nominalR1 nominal final radius as used in series LR terms.
|
|
180
|
+
* @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along.
|
|
175
181
|
*/
|
|
176
182
|
static createChineseCubic(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
|
|
177
183
|
/**
|
|
178
184
|
* Create a Western Australian direct spiral.
|
|
179
|
-
* * X is 2 terms of the clothoid series as a function of distance along
|
|
180
|
-
* * Y is 1 term (cubic in nominal distance along)
|
|
181
|
-
* @param localToWorld axes with inflection at origin, tangent along x axis
|
|
185
|
+
* * X is 2 terms of the clothoid series as a function of distance along.
|
|
186
|
+
* * Y is 1 term (cubic in nominal distance along).
|
|
187
|
+
* @param localToWorld axes with inflection at origin, tangent along x axis.
|
|
182
188
|
* @param nominalL1 nominal length as used in series LR terms.
|
|
183
|
-
* @param nominalR1 nominal final radius as used in series LR terms
|
|
184
|
-
* @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along
|
|
189
|
+
* @param nominalR1 nominal final radius as used in series LR terms.
|
|
190
|
+
* @param activeInterval fractional interval with (0, nominalL1) range for nominal distance along.
|
|
185
191
|
*/
|
|
186
192
|
static createWesternAustralian(localToWorld: Transform, nominalL1: number, nominalR1: number, activeInterval?: Segment1d): DirectSpiral3d | undefined;
|
|
187
193
|
/**
|
|
188
194
|
* Create (if possible) a DirectSpiral3d, applying various strict conditions appropriate to the spiral type.
|
|
189
|
-
* The parameter list includes extraneous values in order to directly match IntegratedSpiral3d.create, which has
|
|
190
|
-
*
|
|
191
|
-
* * IMPORTANT RESTRICTIONS
|
|
195
|
+
* The parameter list includes extraneous values in order to directly match IntegratedSpiral3d.create, which has
|
|
196
|
+
* greater flexibility about mixtures of values.
|
|
197
|
+
* * IMPORTANT RESTRICTIONS:
|
|
192
198
|
* * Direct spirals must have the inflection at the origin of their coordinate system, aligned with the x axis.
|
|
193
|
-
* * hence bearing0 = 0
|
|
194
|
-
* * hence radius0 = 0
|
|
195
|
-
* * bearing1 is ignored
|
|
199
|
+
* * hence bearing0 = 0.
|
|
200
|
+
* * hence radius0 = 0.
|
|
201
|
+
* * bearing1 is ignored.
|
|
196
202
|
* * radius1 must be given.
|
|
197
203
|
* * arcLength must be given,
|
|
198
|
-
* @param spiralType one of the types in `
|
|
199
|
-
* @param radius0 radius (or 0 for tangent to line) at start.
|
|
204
|
+
* @param spiralType one of the types in `DirectSpiralTypeName`
|
|
205
|
+
* @param radius0 radius (or 0 for tangent to line) at start. Must be ZERO or UNDEFINED
|
|
200
206
|
* @param radius1 radius (or 0 for tangent to line) at end.
|
|
201
|
-
* @param bearing0 bearing, measured CCW from x axis at start.
|
|
202
|
-
* @param bearing1 bearing, measured CCW from x axis at end.
|
|
203
|
-
* @param fractionInterval optional fractional interval for an "active" portion of the curve.
|
|
204
|
-
*
|
|
207
|
+
* @param bearing0 bearing, measured CCW from x axis at start. Must be ZERO or UNDEFINED
|
|
208
|
+
* @param bearing1 bearing, measured CCW from x axis at end. IGNORED.
|
|
209
|
+
* @param fractionInterval (optional) fractional interval for an "active" portion of the curve. If omitted, the
|
|
210
|
+
* full [0,1] is used.
|
|
211
|
+
* @param localToWorld placement transform.
|
|
205
212
|
*/
|
|
206
213
|
static createFromLengthAndRadius(spiralType: string, radius0: number | undefined, radius1: number | undefined, bearing0: Angle | undefined, _bearing1: Angle | undefined, arcLength: number | undefined, activeInterval: undefined | Segment1d, localToWorld: Transform): TransitionSpiral3d | undefined;
|
|
207
|
-
/** Deep clone of this spiral */
|
|
214
|
+
/** Deep clone of this spiral. */
|
|
208
215
|
clone(): DirectSpiral3d;
|
|
209
|
-
/**
|
|
216
|
+
/** Apply `transform` to this spiral's local to world transform. */
|
|
210
217
|
tryTransformInPlace(transformA: Transform): boolean;
|
|
211
218
|
/** Return the spiral start point. */
|
|
212
219
|
startPoint(result?: Point3d): Point3d;
|
|
213
|
-
/**
|
|
220
|
+
/** Return the spiral end point. */
|
|
214
221
|
endPoint(result?: Point3d): Point3d;
|
|
215
|
-
/**
|
|
222
|
+
/** Test if the local to world transform places the spiral xy plane into `plane`. */
|
|
216
223
|
isInPlane(plane: Plane3dByOriginAndUnitNormal): boolean;
|
|
217
|
-
/**
|
|
224
|
+
/**
|
|
225
|
+
* Return quick length of the spiral.
|
|
218
226
|
* The tangent vector of a true clothoid is length 1 everywhere, so simple proportion of nominalL1 is a good approximation.
|
|
219
227
|
*/
|
|
220
228
|
quickLength(): number;
|
|
221
|
-
/** Return length of the spiral.
|
|
222
|
-
* * True length is stored at back of uvParams . . .
|
|
223
|
-
*/
|
|
224
229
|
/** Test if `other` is an instance of `TransitionSpiral3d` */
|
|
225
230
|
isSameGeometryClass(other: any): boolean;
|
|
226
|
-
/**
|
|
227
|
-
*
|
|
231
|
+
/**
|
|
232
|
+
* Add strokes from this spiral to `dest`.
|
|
233
|
+
* * Line strings will usually stroke as just their points.
|
|
228
234
|
* * If maxEdgeLength is given, this will sub-stroke within the linestring -- not what we want.
|
|
229
235
|
*/
|
|
230
236
|
emitStrokes(dest: LineString3d, options?: StrokeOptions): void;
|
|
231
|
-
/**
|
|
237
|
+
/** Emit stroke fragments to `dest` handler. */
|
|
232
238
|
emitStrokableParts(dest: IStrokeHandler, options?: StrokeOptions): void;
|
|
233
239
|
/**
|
|
234
|
-
*
|
|
235
|
-
* @param options StrokeOptions that determine count
|
|
240
|
+
* Return the stroke count required for given options.
|
|
241
|
+
* @param options StrokeOptions that determine count.
|
|
236
242
|
*/
|
|
237
243
|
computeStrokeCountForOptions(options?: StrokeOptions): number;
|
|
238
|
-
/**
|
|
239
|
-
*
|
|
244
|
+
/**
|
|
245
|
+
* Reverse the active interval and active strokes.
|
|
246
|
+
* * Primary defining data remains unchanged.
|
|
240
247
|
*/
|
|
241
248
|
reverseInPlace(): void;
|
|
242
249
|
/** Evaluate curve point with respect to fraction. */
|
|
243
250
|
fractionToPoint(activeFraction: number, result?: Point3d): Point3d;
|
|
244
251
|
/** Evaluate curve point and derivative with respect to fraction. */
|
|
245
252
|
fractionToPointAndDerivative(activeFraction: number, result?: Ray3d): Ray3d;
|
|
246
|
-
/**
|
|
247
|
-
*
|
|
248
|
-
* * origin at fractional position along the curve
|
|
249
|
-
* * vectorU is the first derivative, i.e. tangent vector with length equal to the rate of change with respect to
|
|
253
|
+
/**
|
|
254
|
+
* Return a plane with
|
|
255
|
+
* * origin at fractional position along the curve.
|
|
256
|
+
* * vectorU is the first derivative, i.e. tangent vector with length equal to the rate of change with respect to
|
|
257
|
+
* the fraction.
|
|
250
258
|
* * vectorV is the second derivative, i.e.derivative of vectorU.
|
|
251
259
|
*/
|
|
252
260
|
fractionToPointAnd2Derivatives(activeFraction: number, result?: Plane3dByOriginAndVectors): Plane3dByOriginAndVectors | undefined;
|
|
253
|
-
/** Second step of double dispatch:
|
|
261
|
+
/** Second step of double dispatch: call `handler.handleTransitionSpiral(this)`. */
|
|
254
262
|
dispatchToGeometryHandler(handler: GeometryHandler): any;
|
|
255
|
-
/**
|
|
263
|
+
/** Compare various coordinate quantities. */
|
|
256
264
|
isAlmostEqual(other: any): boolean;
|
|
257
265
|
}
|
|
258
266
|
//# sourceMappingURL=DirectSpiral3d.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectSpiral3d.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/DirectSpiral3d.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;;;;;;;;;;EAeE;AACF,qBAAa,cAAe,SAAQ,kBAAkB;
|
|
1
|
+
{"version":3,"file":"DirectSpiral3d.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/DirectSpiral3d.ts"],"names":[],"mappings":"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"}
|