@itwin/core-geometry 3.5.0 → 3.6.0-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/Geometry.d.ts +5 -5
- package/lib/cjs/Geometry.d.ts.map +1 -1
- package/lib/cjs/Geometry.js +15 -9
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.d.ts +3 -7
- package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js +15 -14
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/curve/Arc3d.d.ts +2 -2
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +2 -2
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +9 -5
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -18
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/geometry3d/Angle.d.ts +46 -32
- package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Angle.js +171 -84
- package/lib/cjs/geometry3d/Angle.js.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.d.ts +102 -60
- package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js +191 -106
- package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js +1 -1
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/esm/Geometry.d.ts +5 -5
- package/lib/esm/Geometry.d.ts.map +1 -1
- package/lib/esm/Geometry.js +15 -9
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.d.ts +3 -7
- package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js +15 -14
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +2 -2
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +2 -2
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +9 -5
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -18
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/geometry3d/Angle.d.ts +46 -32
- package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
- package/lib/esm/geometry3d/Angle.js +171 -84
- package/lib/esm/geometry3d/Angle.js.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.d.ts +102 -60
- package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js +191 -106
- package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
- package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/package.json +4 -4
|
@@ -7,14 +7,15 @@ import { GrowableFloat64Array } from "./GrowableFloat64Array";
|
|
|
7
7
|
/**
|
|
8
8
|
* An `AngleSweep` is a pair of angles at start and end of an interval.
|
|
9
9
|
*
|
|
10
|
-
* * For stroking purposes, the "included interval" is all angles numerically reached
|
|
10
|
+
* * For stroking purposes, the "included interval" is all angles numerically reached
|
|
11
|
+
* by theta = start + f*(end-start), where f is between 0 and 1.
|
|
11
12
|
* * This stroking formula is simple numbers -- 2PI shifts are not involved.
|
|
12
13
|
* * 2PI shifts do become important in the reverse mapping of an angle to a fraction.
|
|
13
|
-
* * If
|
|
14
|
-
* * If
|
|
14
|
+
* * If "start < end" the angle proceeds CCW around the unit circle.
|
|
15
|
+
* * If "end < start" the angle proceeds CW around the unit circle.
|
|
15
16
|
* * Angles beyond 360 are fine as endpoints.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
17
|
+
* * (350,370) covers the same unit angles as (-10,10).
|
|
18
|
+
* * (370,350) covers the same unit angles as (10,-10).
|
|
18
19
|
* @public
|
|
19
20
|
*/
|
|
20
21
|
export declare class AngleSweep implements BeJSONFunctions {
|
|
@@ -43,7 +44,7 @@ export declare class AngleSweep implements BeJSONFunctions {
|
|
|
43
44
|
*/
|
|
44
45
|
static create(data?: AngleSweep | Angle): AngleSweep;
|
|
45
46
|
/** (private) constructor with start and end angles in radians.
|
|
46
|
-
*
|
|
47
|
+
* * Use explicitly named static methods to clarify intent and units of inputs:
|
|
47
48
|
*
|
|
48
49
|
* * createStartEndRadians (startRadians:number, endRadians:number)
|
|
49
50
|
* * createStartEndDegrees (startDegrees:number, endDegrees:number)
|
|
@@ -53,7 +54,17 @@ export declare class AngleSweep implements BeJSONFunctions {
|
|
|
53
54
|
* * createStartSweep (startAngle:Angle, sweepAngle:Angle)
|
|
54
55
|
*/
|
|
55
56
|
private constructor();
|
|
56
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* directly set the start and end angles in radians
|
|
59
|
+
* * If the difference between startRadians and endRadians is greater than 360, the function limits the angle sweep to 360.
|
|
60
|
+
* */
|
|
61
|
+
setStartEndRadians(startRadians?: number, endRadians?: number): void;
|
|
62
|
+
/** directly set the start and end angles in degrees */
|
|
63
|
+
setStartEndDegrees(startDegrees?: number, endDegrees?: number): void;
|
|
64
|
+
/**
|
|
65
|
+
* create an AngleSweep from start and end angles given in radians.
|
|
66
|
+
* * If the difference between startRadians and endRadians is greater than 360, the function limits the angle sweep to 360.
|
|
67
|
+
* */
|
|
57
68
|
static createStartEndRadians(startRadians?: number, endRadians?: number, result?: AngleSweep): AngleSweep;
|
|
58
69
|
/** Return the angle obtained by subtracting radians from this angle. */
|
|
59
70
|
cloneMinusRadians(radians: number): AngleSweep;
|
|
@@ -61,31 +72,29 @@ export declare class AngleSweep implements BeJSONFunctions {
|
|
|
61
72
|
static createStartEndDegrees(startDegrees?: number, endDegrees?: number, result?: AngleSweep): AngleSweep;
|
|
62
73
|
/** create an angle sweep from strongly typed start and end angles */
|
|
63
74
|
static createStartEnd(startAngle: Angle, endAngle: Angle, result?: AngleSweep): AngleSweep;
|
|
64
|
-
/** Create an angle sweep with limits given as (strongly typed) angles for start and sweep */
|
|
65
|
-
static createStartSweep(startAngle: Angle, sweepAngle: Angle, result?: AngleSweep): AngleSweep;
|
|
66
|
-
/** Return a sweep with limits interpolated between this and other. */
|
|
67
|
-
interpolate(fraction: number, other: AngleSweep): AngleSweep;
|
|
68
75
|
/** create an AngleSweep from start and end angles given in radians. */
|
|
69
76
|
static createStartSweepRadians(startRadians?: number, sweepRadians?: number, result?: AngleSweep): AngleSweep;
|
|
70
77
|
/** create an AngleSweep from start and sweep given in degrees. */
|
|
71
78
|
static createStartSweepDegrees(startDegrees?: number, sweepDegrees?: number, result?: AngleSweep): AngleSweep;
|
|
72
|
-
/**
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
|
|
79
|
+
/** Create an angle sweep with limits given as (strongly typed) angles for start and sweep */
|
|
80
|
+
static createStartSweep(startAngle: Angle, sweepAngle: Angle, result?: AngleSweep): AngleSweep;
|
|
81
|
+
/** Return a sweep with limits interpolated between this and other. */
|
|
82
|
+
interpolate(fraction: number, other: AngleSweep): AngleSweep;
|
|
76
83
|
/** copy from other AngleSweep. */
|
|
77
84
|
setFrom(other: AngleSweep): void;
|
|
78
85
|
/** create a full circle sweep (CCW). startRadians defaults to 0 */
|
|
79
86
|
static create360(startRadians?: number): AngleSweep;
|
|
80
|
-
/** create a sweep from the south pole to the north pole. */
|
|
87
|
+
/** create a sweep from the south pole to the north pole (-90 to +90). */
|
|
81
88
|
static createFullLatitude(): AngleSweep;
|
|
82
89
|
/** Reverse the start and end angle in place. */
|
|
83
90
|
reverseInPlace(): void;
|
|
84
|
-
/** return a sweep for the "other" part of the
|
|
85
|
-
* @param reverseDirection true to
|
|
91
|
+
/** return a sweep for the "other" part of the circle.
|
|
92
|
+
* @param reverseDirection true to move backwards (CW) from start to end, false to more forwards (CCW) from start to end.
|
|
86
93
|
*/
|
|
87
94
|
cloneComplement(reverseDirection?: boolean, result?: AngleSweep): AngleSweep;
|
|
88
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Restrict start and end angles into the range (-90,+90) in degrees.
|
|
97
|
+
* */
|
|
89
98
|
capLatitudeInPlace(): void;
|
|
90
99
|
/** Ask if the sweep is counterclockwise, i.e. positive sweep */
|
|
91
100
|
get isCCW(): boolean;
|
|
@@ -100,68 +109,99 @@ export declare class AngleSweep implements BeJSONFunctions {
|
|
|
100
109
|
/** Convert fractional position in the sweep to strongly typed Angle object. */
|
|
101
110
|
fractionToAngle(fraction: number): Angle;
|
|
102
111
|
/** return 2PI divided by the sweep radians (i.e. 360 degrees divided by sweep angle).
|
|
103
|
-
* This is the number of fractional intervals required to cover a whole circle.
|
|
112
|
+
* * This is the number of fractional intervals required to cover a whole circle.
|
|
104
113
|
*/
|
|
105
114
|
fractionPeriod(): number;
|
|
106
|
-
/** return the fractionalized position of the angle
|
|
107
|
-
*
|
|
108
|
-
* That is, an angle that is numerically much beyond than the end angle
|
|
109
|
-
* will produce a large fraction and an angle much beyond the start angle
|
|
110
|
-
* will produce a large negative fraction.
|
|
115
|
+
/** return the fractionalized position of the given angle (as Angle) computed without consideration of
|
|
116
|
+
* 2PI period and without consideration of angle sweep direction (CW or CCW).
|
|
111
117
|
*
|
|
118
|
+
* * the start angle is at fraction 0
|
|
119
|
+
* * the end angle is at fraction 1
|
|
120
|
+
* * interior angles are between 0 and 1
|
|
121
|
+
* * negative fraction for angles "before" the start angle if start < end
|
|
122
|
+
* * fraction larger than one for angles "after" the end angle if start < end
|
|
123
|
+
* * fraction larger than one for angles "before" the start angle if start > end
|
|
124
|
+
* * negative fraction for angles "after" the end angle if start > end
|
|
125
|
+
* * does not allow period shift
|
|
112
126
|
*/
|
|
113
127
|
angleToUnboundedFraction(theta: Angle): number;
|
|
114
|
-
/**
|
|
128
|
+
/** return the fractionalized position of the given angle (as radians), computed with consideration of 2PI period.
|
|
115
129
|
*
|
|
130
|
+
* * consider radians0 as `start` angle of the sweep and radians1 as `end` angle of the sweep
|
|
131
|
+
* * fraction is always positive
|
|
116
132
|
* * the start angle is at fraction 0
|
|
117
133
|
* * the end angle is at fraction 1
|
|
118
134
|
* * interior angles are between 0 and 1
|
|
119
135
|
* * all exterior angles are at fractions greater than 1
|
|
120
|
-
* *
|
|
136
|
+
* * allows period shift
|
|
121
137
|
*/
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
*
|
|
130
|
-
*
|
|
138
|
+
static radiansToPositivePeriodicFractionStartEnd(radians: number, radians0: number, radians1: number, zeroSweepDefault?: number): number;
|
|
139
|
+
/** return the fractionalized position of the given angle (as radians), computed with consideration of 2PI period.
|
|
140
|
+
*
|
|
141
|
+
* * fraction is always positive
|
|
142
|
+
* * the start angle is at fraction 0
|
|
143
|
+
* * the end angle is at fraction 1
|
|
144
|
+
* * interior angles are between 0 and 1
|
|
145
|
+
* * all exterior angles are at fractions greater than 1
|
|
146
|
+
* * allows period shift
|
|
131
147
|
*/
|
|
132
148
|
radiansToPositivePeriodicFraction(radians: number, zeroSweepDefault?: number): number;
|
|
133
|
-
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
149
|
+
/** return the fractionalized position of the given angle (as Angle), computed with consideration of 2PI period.
|
|
150
|
+
*
|
|
151
|
+
* * fraction is always positive
|
|
152
|
+
* * the start angle is at fraction 0
|
|
153
|
+
* * the end angle is at fraction 1
|
|
154
|
+
* * interior angles are between 0 and 1
|
|
155
|
+
* * all exterior angles are at fractions greater than 1
|
|
156
|
+
* * allows period shift
|
|
136
157
|
*/
|
|
137
|
-
|
|
138
|
-
/**
|
|
158
|
+
angleToPositivePeriodicFraction(theta: Angle): number;
|
|
159
|
+
/** return the fractionalized position of the given array of angles (as radian), computed with consideration of 2PI period.
|
|
139
160
|
*
|
|
161
|
+
* * fraction is always positive
|
|
140
162
|
* * the start angle is at fraction 0
|
|
141
163
|
* * the end angle is at fraction 1
|
|
142
164
|
* * interior angles are between 0 and 1
|
|
143
|
-
* *
|
|
144
|
-
* *
|
|
145
|
-
* * the periodic jump is at the middle of the "outside" interval
|
|
165
|
+
* * all exterior angles are at fractions greater than 1
|
|
166
|
+
* * allows period shift
|
|
146
167
|
*/
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
*
|
|
168
|
+
radiansArrayToPositivePeriodicFractions(data: GrowableFloat64Array): void;
|
|
169
|
+
/** return the fractionalized position of the given angle (as radian) computed with consideration of
|
|
170
|
+
* 2PI period and with consideration of angle sweep direction (CW or CCW).
|
|
171
|
+
*
|
|
172
|
+
* * the start angle is at fraction 0
|
|
173
|
+
* * the end angle is at fraction 1
|
|
174
|
+
* * interior angles are between 0 and 1
|
|
175
|
+
* * negative fraction for angles "before" the start angle
|
|
176
|
+
* * fraction larger than one for angles "after" the end angle
|
|
177
|
+
* * allows period shift
|
|
150
178
|
*/
|
|
151
179
|
radiansToSignedPeriodicFraction(radians: number): number;
|
|
152
|
-
/**
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
180
|
+
/** return the fractionalized position of the given angle (as Angle) computed with consideration of
|
|
181
|
+
* 2PI period and with consideration of angle sweep direction (CW or CCW).
|
|
182
|
+
*
|
|
183
|
+
* * the start angle is at fraction 0
|
|
184
|
+
* * the end angle is at fraction 1
|
|
185
|
+
* * interior angles are between 0 and 1
|
|
186
|
+
* * negative fraction for angles "before" the start angle
|
|
187
|
+
* * fraction larger than one for angles "after" the end angle
|
|
188
|
+
* * allows period shift
|
|
189
|
+
*/
|
|
190
|
+
angleToSignedPeriodicFraction(theta: Angle): number;
|
|
191
|
+
/** test if the given angle (as radians) is within sweep (between radians0 and radians1) */
|
|
157
192
|
static isRadiansInStartEnd(radians: number, radians0: number, radians1: number, allowPeriodShift?: boolean): boolean;
|
|
193
|
+
/** test if the given angle (as radians) is within sweep */
|
|
194
|
+
isRadiansInSweep(radians: number, allowPeriodShift?: boolean): boolean;
|
|
195
|
+
/** test if the given angle (as Angle) is within the sweep */
|
|
196
|
+
isAngleInSweep(angle: Angle): boolean;
|
|
158
197
|
/** set this AngleSweep from various sources:
|
|
159
198
|
*
|
|
160
199
|
* * if json is undefined, a full-circle sweep is returned.
|
|
161
|
-
* * If json is an AngleSweep object it is cloned
|
|
200
|
+
* * If json is an AngleSweep object, it is cloned
|
|
162
201
|
* * If json is an array of 2 numbers, those numbers are start and end angles in degrees.
|
|
163
202
|
* * If `json.degrees` is an array of 2 numbers, those numbers are start and end angles in degrees.
|
|
164
203
|
* * If `json.radians` is an array of 2 numbers, those numbers are start and end angles in radians.
|
|
204
|
+
* * Otherwise, a full-circle sweep is returned.
|
|
165
205
|
*/
|
|
166
206
|
setFromJSON(json?: any): void;
|
|
167
207
|
/** create an AngleSweep from a json object. */
|
|
@@ -171,16 +211,18 @@ export declare class AngleSweep implements BeJSONFunctions {
|
|
|
171
211
|
* @return {*} {degrees: [startAngleInDegrees, endAngleInDegrees}
|
|
172
212
|
*/
|
|
173
213
|
toJSON(): any;
|
|
174
|
-
/** test if
|
|
214
|
+
/** test if this angle sweep and other angle sweep match with radians tolerance.
|
|
215
|
+
* * Period shifts are allowed.
|
|
216
|
+
*/
|
|
175
217
|
isAlmostEqualAllowPeriodShift(other: AngleSweep): boolean;
|
|
176
|
-
/** test if
|
|
218
|
+
/** test if this angle sweep and other angle sweep match with radians tolerance.
|
|
219
|
+
* * Period shifts are not allowed.
|
|
220
|
+
*/
|
|
177
221
|
isAlmostEqualNoPeriodShift(other: AngleSweep): boolean;
|
|
178
222
|
/** test if start and end angles match with radians tolerance.
|
|
179
|
-
* *
|
|
180
|
-
* *
|
|
181
|
-
*
|
|
182
|
-
* * * isAlmostEqualAllowPeriodShift
|
|
183
|
-
* * * isAlmostEqualRadiansNoPeriodShift
|
|
223
|
+
* * Period shifts are not allowed.
|
|
224
|
+
* * This function is equivalent to isAlmostEqualNoPeriodShift. It is present for consistency with other classes.
|
|
225
|
+
* However, it is recommended to use isAlmostEqualNoPeriodShift which has a clearer name.
|
|
184
226
|
*/
|
|
185
227
|
isAlmostEqual(other: AngleSweep): boolean;
|
|
186
228
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AngleSweep.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/AngleSweep.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAY,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D
|
|
1
|
+
{"version":3,"file":"AngleSweep.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/AngleSweep.ts"],"names":[],"mappings":"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"}
|