@itwin/core-geometry 4.9.0-dev.23 → 4.9.0-dev.24
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 +16 -7
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +49 -15
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts +3 -2
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +3 -2
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +16 -7
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +49 -15
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.d.ts +3 -2
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +3 -2
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/package.json +3 -3
package/lib/cjs/curve/Arc3d.d.ts
CHANGED
|
@@ -166,6 +166,7 @@ export declare class Arc3d extends CurvePrimitive implements BeJSONFunctions {
|
|
|
166
166
|
private static _workPointC;
|
|
167
167
|
private static _workVectorU;
|
|
168
168
|
private static _workVectorV;
|
|
169
|
+
private static _workVectorW;
|
|
169
170
|
/** Read property for (clone of) center */
|
|
170
171
|
get center(): Point3d;
|
|
171
172
|
/** Read property for (clone of) vector0 */
|
|
@@ -238,27 +239,35 @@ export declare class Arc3d extends CurvePrimitive implements BeJSONFunctions {
|
|
|
238
239
|
* @param center arc center
|
|
239
240
|
* @param vector0 vector to 0 degrees (commonly major axis)
|
|
240
241
|
* @param vector90 vector to 90 degree point (commonly minor axis)
|
|
241
|
-
* @param sweep sweep limits
|
|
242
|
+
* @param sweep sweep limits (default full sweep)
|
|
242
243
|
* @param result optional preallocated result
|
|
243
244
|
*/
|
|
244
245
|
static create(center: Point3d | undefined, vector0: Vector3d, vector90: Vector3d, sweep?: AngleSweep, result?: Arc3d): Arc3d;
|
|
245
246
|
/**
|
|
246
|
-
* Create an arc from three points on the ellipse: two points on an axis and one in between.
|
|
247
|
+
* Create an elliptical arc from three points on the ellipse: two points on an axis and one in between.
|
|
247
248
|
* @param point0 start of arc, on an axis
|
|
248
249
|
* @param point1 point on arc somewhere between `point0` and `point2`
|
|
249
250
|
* @param point2 point on arc directly opposite `point0`
|
|
250
251
|
* @param sweep angular sweep, measured from `point0` in the direction of `point1`.
|
|
251
|
-
* For a
|
|
252
|
+
* For a half-ellipse from `point0` to `point2` passing through `point1`, pass `AngleSweep.createStartEndDegrees(0,180)`.
|
|
252
253
|
* Default value is full sweep to create the entire ellipse.
|
|
253
254
|
* @param result optional preallocated result
|
|
254
255
|
* @returns elliptical arc, or undefined if construction impossible.
|
|
255
256
|
*/
|
|
256
257
|
static createStartMiddleEnd(point0: XYAndZ, point1: XYAndZ, point2: XYAndZ, sweep?: AngleSweep, result?: Arc3d): Arc3d | undefined;
|
|
257
258
|
/**
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
259
|
+
* Create a circular arc defined by start point, tangent at start point, and end point.
|
|
260
|
+
* If tangent is parallel to line segment from start to end, return the line segment.
|
|
261
|
+
*/
|
|
261
262
|
static createCircularStartTangentEnd(start: Point3d, tangentAtStart: Vector3d, end: Point3d, result?: Arc3d): Arc3d | LineSegment3d;
|
|
263
|
+
/**
|
|
264
|
+
* Create a circular arc defined by start and end points and radius.
|
|
265
|
+
* @param start start point of the arc
|
|
266
|
+
* @param end end point of the arc
|
|
267
|
+
* @param helper a third point near the arc in its plane, or a vector in the direction of the arc normal
|
|
268
|
+
* @returns the constructed arc, or undefined if desired arc cannot be constructed
|
|
269
|
+
*/
|
|
270
|
+
static createCircularStartEndRadius(start: Point3d, end: Point3d, radius: number, helper: Point3d | Vector3d): Arc3d | undefined;
|
|
262
271
|
/**
|
|
263
272
|
* Return a clone of this arc, projected to given z value.
|
|
264
273
|
* * If `z` is omitted, the clone is at the z of the center.
|
|
@@ -446,7 +455,7 @@ export declare class Arc3d extends CurvePrimitive implements BeJSONFunctions {
|
|
|
446
455
|
* @internal
|
|
447
456
|
*/
|
|
448
457
|
getPlaneAltitudeSineCosinePolynomial(plane: PlaneAltitudeEvaluator, result?: SineCosinePolynomial): SineCosinePolynomial;
|
|
449
|
-
/** Create a new arc which is a unit circle centered at the origin. */
|
|
458
|
+
/** Create a new arc which is a unit circle in the xy-plane centered at the origin. */
|
|
450
459
|
static createUnitCircle(): Arc3d;
|
|
451
460
|
/**
|
|
452
461
|
* Create a new arc which is parallel to the xy plane, with given center and radius and optional angle sweep.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Arc3d.d.ts","sourceRoot":"","sources":["../../../src/curve/Arc3d.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Arc3d.d.ts","sourceRoot":"","sources":["../../../src/curve/Arc3d.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/curve/Arc3d.js
CHANGED
|
@@ -281,7 +281,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
281
281
|
* @param center arc center
|
|
282
282
|
* @param vector0 vector to 0 degrees (commonly major axis)
|
|
283
283
|
* @param vector90 vector to 90 degree point (commonly minor axis)
|
|
284
|
-
* @param sweep sweep limits
|
|
284
|
+
* @param sweep sweep limits (default full sweep)
|
|
285
285
|
* @param result optional preallocated result
|
|
286
286
|
*/
|
|
287
287
|
static create(center, vector0, vector90, sweep, result) {
|
|
@@ -290,12 +290,12 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
290
290
|
return Arc3d.createRefs(center !== undefined ? center.clone() : Point3dVector3d_1.Point3d.create(0, 0, 0), matrix, sweep ? sweep.clone() : AngleSweep_1.AngleSweep.create360(), result);
|
|
291
291
|
}
|
|
292
292
|
/**
|
|
293
|
-
* Create an arc from three points on the ellipse: two points on an axis and one in between.
|
|
293
|
+
* Create an elliptical arc from three points on the ellipse: two points on an axis and one in between.
|
|
294
294
|
* @param point0 start of arc, on an axis
|
|
295
295
|
* @param point1 point on arc somewhere between `point0` and `point2`
|
|
296
296
|
* @param point2 point on arc directly opposite `point0`
|
|
297
297
|
* @param sweep angular sweep, measured from `point0` in the direction of `point1`.
|
|
298
|
-
* For a
|
|
298
|
+
* For a half-ellipse from `point0` to `point2` passing through `point1`, pass `AngleSweep.createStartEndDegrees(0,180)`.
|
|
299
299
|
* Default value is full sweep to create the entire ellipse.
|
|
300
300
|
* @param result optional preallocated result
|
|
301
301
|
* @returns elliptical arc, or undefined if construction impossible.
|
|
@@ -319,9 +319,9 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
319
319
|
return Arc3d.create(center, vector0, vector90, sweep, result);
|
|
320
320
|
}
|
|
321
321
|
/**
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
322
|
+
* Create a circular arc defined by start point, tangent at start point, and end point.
|
|
323
|
+
* If tangent is parallel to line segment from start to end, return the line segment.
|
|
324
|
+
*/
|
|
325
325
|
static createCircularStartTangentEnd(start, tangentAtStart, end, result) {
|
|
326
326
|
// To find the circle passing through start and end with tangentAtStart at start:
|
|
327
327
|
// - find line 1: the perpendicular bisector of the line from start to end.
|
|
@@ -347,6 +347,39 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
347
347
|
}
|
|
348
348
|
return LineSegment3d_1.LineSegment3d.create(start, end);
|
|
349
349
|
}
|
|
350
|
+
/**
|
|
351
|
+
* Create a circular arc defined by start and end points and radius.
|
|
352
|
+
* @param start start point of the arc
|
|
353
|
+
* @param end end point of the arc
|
|
354
|
+
* @param helper a third point near the arc in its plane, or a vector in the direction of the arc normal
|
|
355
|
+
* @returns the constructed arc, or undefined if desired arc cannot be constructed
|
|
356
|
+
*/
|
|
357
|
+
static createCircularStartEndRadius(start, end, radius, helper) {
|
|
358
|
+
// Construct a line segment from start to end. It is a chord of the circle,
|
|
359
|
+
// so the circle center is on its perpendicular bisector.
|
|
360
|
+
const semiChordLen2 = 0.25 * start.distanceSquared(end);
|
|
361
|
+
const radius2 = radius * radius;
|
|
362
|
+
if (radius2 < semiChordLen2)
|
|
363
|
+
return undefined;
|
|
364
|
+
const height = Math.sqrt(radius2 - semiChordLen2); // Pythagoras gives us distance from chord to center
|
|
365
|
+
const normal = Point3dVector3d_1.Vector3d.createZero(this._workVectorU);
|
|
366
|
+
const vecToCenter = Point3dVector3d_1.Vector3d.createZero(this._workVectorV);
|
|
367
|
+
// the helper gives us the circle normal
|
|
368
|
+
if (helper instanceof Point3dVector3d_1.Point3d)
|
|
369
|
+
start.crossProductToPoints(helper, end, normal);
|
|
370
|
+
else
|
|
371
|
+
normal.setFrom(helper);
|
|
372
|
+
// the normal and chord direction give us the side of the chord on which the center resides
|
|
373
|
+
if (!normal.normalizeInPlace() || !normal.crossProductStartEnd(start, end, vecToCenter).scaleToLength(height, vecToCenter))
|
|
374
|
+
return undefined;
|
|
375
|
+
const center = Point3dVector3d_1.Point3d.createZero();
|
|
376
|
+
start.interpolate(0.5, end, center).addInPlace(vecToCenter);
|
|
377
|
+
const vector0 = Point3dVector3d_1.Vector3d.createStartEnd(center, start, this._workVectorW);
|
|
378
|
+
const endVector = Point3dVector3d_1.Vector3d.createStartEnd(center, end, this._workVectorV); // reuse static
|
|
379
|
+
const sweep = AngleSweep_1.AngleSweep.create(vector0.signedAngleTo(endVector, normal));
|
|
380
|
+
const vector90 = normal.crossProduct(vector0, this._workVectorV); // has length radius (reuse static)
|
|
381
|
+
return Arc3d.createRefs(center, Matrix3d_1.Matrix3d.createColumns(vector0, vector90, normal), sweep);
|
|
382
|
+
}
|
|
350
383
|
/**
|
|
351
384
|
* Return a clone of this arc, projected to given z value.
|
|
352
385
|
* * If `z` is omitted, the clone is at the z of the center.
|
|
@@ -822,7 +855,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
822
855
|
result.set(plane.altitude(this._center), plane.velocityXYZ(this._matrix.coffs[0], this._matrix.coffs[3], this._matrix.coffs[6]), plane.velocityXYZ(this._matrix.coffs[1], this._matrix.coffs[4], this._matrix.coffs[7]));
|
|
823
856
|
return result;
|
|
824
857
|
}
|
|
825
|
-
/** Create a new arc which is a unit circle centered at the origin. */
|
|
858
|
+
/** Create a new arc which is a unit circle in the xy-plane centered at the origin. */
|
|
826
859
|
static createUnitCircle() {
|
|
827
860
|
return Arc3d.createRefs(Point3dVector3d_1.Point3d.create(0, 0, 0), Matrix3d_1.Matrix3d.createIdentity(), AngleSweep_1.AngleSweep.create360());
|
|
828
861
|
}
|
|
@@ -833,7 +866,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
833
866
|
* @param sweep sweep limits. defaults to full circle.
|
|
834
867
|
*/
|
|
835
868
|
static createXY(center, radius, sweep = AngleSweep_1.AngleSweep.create360()) {
|
|
836
|
-
return new Arc3d(center.clone(), Matrix3d_1.Matrix3d.createScale(radius, radius, 1.0), sweep);
|
|
869
|
+
return new Arc3d(center.clone(), Matrix3d_1.Matrix3d.createScale(radius, radius, 1.0), sweep.clone());
|
|
837
870
|
}
|
|
838
871
|
/**
|
|
839
872
|
* Create a new arc which is parallel to the xy plane, with given center and x,y radii, and optional angle sweep
|
|
@@ -843,7 +876,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
843
876
|
* @param sweep angle sweep
|
|
844
877
|
*/
|
|
845
878
|
static createXYEllipse(center, radiusA, radiusB, sweep = AngleSweep_1.AngleSweep.create360()) {
|
|
846
|
-
return new Arc3d(center.clone(), Matrix3d_1.Matrix3d.createScale(radiusA, radiusB, 1.0), sweep);
|
|
879
|
+
return new Arc3d(center.clone(), Matrix3d_1.Matrix3d.createScale(radiusA, radiusB, 1.0), sweep.clone());
|
|
847
880
|
}
|
|
848
881
|
/**
|
|
849
882
|
* Replace the arc's 0 and 90 degree vectors.
|
|
@@ -860,7 +893,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
860
893
|
const vector90A = this._matrix.multiplyXY(-angleData.s, angleData.c);
|
|
861
894
|
const axes = Matrix3d_1.Matrix3d.createRigidFromColumns(vector0A, vector90A, Geometry_1.AxisOrder.XYZ);
|
|
862
895
|
return {
|
|
863
|
-
center: this._center,
|
|
896
|
+
center: this._center.clone(),
|
|
864
897
|
axes: (axes ? axes : Matrix3d_1.Matrix3d.createIdentity()),
|
|
865
898
|
r0: vector0A.magnitude(),
|
|
866
899
|
r90: vector90A.magnitude(),
|
|
@@ -870,10 +903,10 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
870
903
|
/** Return the arc definition with center, two vectors, and angle sweep; */
|
|
871
904
|
toVectors() {
|
|
872
905
|
return {
|
|
873
|
-
center: this.center,
|
|
906
|
+
center: this.center.clone(),
|
|
874
907
|
vector0: this._matrix.columnX(),
|
|
875
908
|
vector90: this._matrix.columnY(),
|
|
876
|
-
sweep: this.sweep,
|
|
909
|
+
sweep: this.sweep.clone(),
|
|
877
910
|
};
|
|
878
911
|
}
|
|
879
912
|
/** Return the arc definition with center, two vectors, and angle sweep, optionally transformed. */
|
|
@@ -882,13 +915,13 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
882
915
|
center: transform.multiplyPoint3d(this._center),
|
|
883
916
|
vector0: transform.multiplyVector(this._matrix.columnX()),
|
|
884
917
|
vector90: transform.multiplyVector(this._matrix.columnY()),
|
|
885
|
-
sweep: this.sweep,
|
|
918
|
+
sweep: this.sweep.clone(),
|
|
886
919
|
}
|
|
887
920
|
: {
|
|
888
921
|
center: this._center.clone(),
|
|
889
922
|
vector0: this._matrix.columnX(),
|
|
890
923
|
vector90: this._matrix.columnY(),
|
|
891
|
-
sweep: this.sweep,
|
|
924
|
+
sweep: this.sweep.clone(),
|
|
892
925
|
};
|
|
893
926
|
}
|
|
894
927
|
/** Return the arc definition with center, two vectors, and angle sweep, transformed to 4d points. */
|
|
@@ -897,7 +930,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
897
930
|
center: matrix.multiplyPoint3d(this._center, 1.0),
|
|
898
931
|
vector0: matrix.multiplyPoint3d(this._matrix.columnX(), 0.0),
|
|
899
932
|
vector90: matrix.multiplyPoint3d(this._matrix.columnY(), 0.0),
|
|
900
|
-
sweep: this.sweep,
|
|
933
|
+
sweep: this.sweep.clone(),
|
|
901
934
|
};
|
|
902
935
|
}
|
|
903
936
|
/**
|
|
@@ -1158,6 +1191,7 @@ Arc3d._workPointB = Point3dVector3d_1.Point3d.create();
|
|
|
1158
1191
|
Arc3d._workPointC = Point3dVector3d_1.Point3d.create();
|
|
1159
1192
|
Arc3d._workVectorU = Point3dVector3d_1.Vector3d.create();
|
|
1160
1193
|
Arc3d._workVectorV = Point3dVector3d_1.Vector3d.create();
|
|
1194
|
+
Arc3d._workVectorW = Point3dVector3d_1.Vector3d.create();
|
|
1161
1195
|
// !! misspelled Gauss in the published static !! Declare it ok.
|
|
1162
1196
|
// cspell::word Guass
|
|
1163
1197
|
/** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep) */
|