@itwin/core-geometry 5.3.0-dev.8 → 5.4.0-dev.2
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 +21 -1
- package/lib/cjs/curve/Arc3d.d.ts +15 -1
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +31 -2
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.d.ts +25 -8
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
- package/lib/cjs/curve/CurveFactory.js +51 -55
- package/lib/cjs/curve/CurveFactory.js.map +1 -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 +10 -6
- package/lib/cjs/curve/spiral/ClothoidSeries.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/ClothoidSeries.js +36 -19
- 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 +34 -44
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +47 -53
- 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 +112 -104
- package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.js +143 -117
- package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +71 -53
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +99 -66
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +8 -12
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +11 -13
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/NormalizedTransition.d.ts +36 -29
- package/lib/cjs/curve/spiral/NormalizedTransition.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/NormalizedTransition.js +62 -40
- package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts +13 -18
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +21 -24
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts +41 -27
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +50 -33
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +45 -34
- 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/cjs/geometry3d/GrowableXYArray.d.ts +96 -98
- package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYArray.js +121 -110
- package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +135 -142
- package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.js +165 -160
- package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYCollection.d.ts +51 -34
- package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYCollection.js +16 -6
- package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +78 -77
- package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.js +38 -35
- package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.d.ts +27 -7
- package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.js +30 -9
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +15 -1
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +31 -2
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/CurveFactory.d.ts +25 -8
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
- package/lib/esm/curve/CurveFactory.js +51 -55
- package/lib/esm/curve/CurveFactory.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 +10 -6
- package/lib/esm/curve/spiral/ClothoidSeries.d.ts.map +1 -1
- package/lib/esm/curve/spiral/ClothoidSeries.js +36 -19
- 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 +34 -44
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +47 -53
- 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 +112 -104
- package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.js +143 -117
- package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +71 -53
- package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js +99 -66
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +8 -12
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +11 -13
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/NormalizedTransition.d.ts +36 -29
- package/lib/esm/curve/spiral/NormalizedTransition.d.ts.map +1 -1
- package/lib/esm/curve/spiral/NormalizedTransition.js +62 -40
- package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts +13 -18
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +21 -24
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts +41 -27
- package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js +50 -33
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +45 -34
- 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/lib/esm/geometry3d/GrowableXYArray.d.ts +96 -98
- package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
- package/lib/esm/geometry3d/GrowableXYArray.js +122 -111
- package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.d.ts +135 -142
- package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.js +165 -160
- package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYCollection.d.ts +51 -34
- package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -1
- package/lib/esm/geometry3d/IndexedXYCollection.js +14 -5
- package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +78 -77
- package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.js +38 -35
- package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.d.ts +27 -7
- package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.js +30 -9
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
- package/package.json +3 -3
|
@@ -212,18 +212,38 @@ export declare class PolygonOps {
|
|
|
212
212
|
private static _matrixA;
|
|
213
213
|
private static _matrixB;
|
|
214
214
|
private static _matrixC;
|
|
215
|
-
/**
|
|
215
|
+
/**
|
|
216
|
+
* Compute the area and normal of the polygon, packaged as a vector.
|
|
217
|
+
* * This is just [[areaNormal]] with expanded return type.
|
|
218
|
+
* @param points polygon vertices, closure point optional. Polygon can be in any plane.
|
|
219
|
+
* @param result optional pre-allocated vector to populate and return.
|
|
220
|
+
* @returns polygon normal with magnitude equal to polygon area, or `undefined` if colinear/insufficient points.
|
|
221
|
+
*/
|
|
216
222
|
static areaNormalGo(points: IndexedXYZCollection, result?: Vector3d): Vector3d | undefined;
|
|
217
|
-
/**
|
|
223
|
+
/**
|
|
224
|
+
* Compute the area and normal of the polygon, packaged as a vector.
|
|
225
|
+
* @param points polygon vertices, closure point optional. Polygon can be in any plane.
|
|
226
|
+
* @param result optional pre-allocated vector to populate and return.
|
|
227
|
+
* @returns polygon normal with magnitude equal to polygon area, or zero vector if colinear/insufficient points.
|
|
228
|
+
*/
|
|
218
229
|
static areaNormal(points: Point3d[], result?: Vector3d): Vector3d;
|
|
219
|
-
/**
|
|
220
|
-
*
|
|
221
|
-
*
|
|
230
|
+
/**
|
|
231
|
+
* Compute the area of the polygon.
|
|
232
|
+
* @param points polygon vertices, closure point optional. Polygon can be in any plane.
|
|
233
|
+
* @returns polygon area.
|
|
222
234
|
*/
|
|
223
235
|
static area(points: Point3d[]): number;
|
|
224
|
-
/**
|
|
236
|
+
/**
|
|
237
|
+
* Compute the projected XY area of the polygon.
|
|
238
|
+
* @param points polygon vertices, closure point optional, z-coordinates ignored.
|
|
239
|
+
* @returns xy-projected polygon area.
|
|
240
|
+
*/
|
|
225
241
|
static areaXY(points: Point3d[] | IndexedXYZCollection): number;
|
|
226
|
-
/**
|
|
242
|
+
/**
|
|
243
|
+
* Sum the result of [[areaXY]] for multiple polygons.
|
|
244
|
+
* @param polygons array of polygons, closure point optional for each, z-coordinates ignored.
|
|
245
|
+
* @returns sum of xy-projected polygon areas.
|
|
246
|
+
*/
|
|
227
247
|
static sumAreaXY(polygons: Point3d[][]): number;
|
|
228
248
|
/**
|
|
229
249
|
* Return a [[Ray3d]] with:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolygonOps.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/PolygonOps.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PolygonOps.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/PolygonOps.ts"],"names":[],"mappings":"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"}
|
|
@@ -434,7 +434,13 @@ export class PolygonOps {
|
|
|
434
434
|
static _matrixA = Matrix4d.createIdentity();
|
|
435
435
|
static _matrixB = Matrix4d.createIdentity();
|
|
436
436
|
static _matrixC = Matrix4d.createIdentity();
|
|
437
|
-
/**
|
|
437
|
+
/**
|
|
438
|
+
* Compute the area and normal of the polygon, packaged as a vector.
|
|
439
|
+
* * This is just [[areaNormal]] with expanded return type.
|
|
440
|
+
* @param points polygon vertices, closure point optional. Polygon can be in any plane.
|
|
441
|
+
* @param result optional pre-allocated vector to populate and return.
|
|
442
|
+
* @returns polygon normal with magnitude equal to polygon area, or `undefined` if colinear/insufficient points.
|
|
443
|
+
*/
|
|
438
444
|
static areaNormalGo(points, result) {
|
|
439
445
|
if (!result)
|
|
440
446
|
result = new Vector3d();
|
|
@@ -445,7 +451,7 @@ export class PolygonOps {
|
|
|
445
451
|
points.crossProductIndexIndexIndex(0, 1, 2, result);
|
|
446
452
|
}
|
|
447
453
|
else if (n > 3) {
|
|
448
|
-
// This will work with or without closure
|
|
454
|
+
// Shoelace. This will work with or without closure point: if present, the last vector is 000.
|
|
449
455
|
for (let i = 2; i < n; i++) {
|
|
450
456
|
points.accumulateCrossProductIndexIndexIndex(0, i - 1, i, result);
|
|
451
457
|
}
|
|
@@ -454,23 +460,34 @@ export class PolygonOps {
|
|
|
454
460
|
result.scaleInPlace(0.5);
|
|
455
461
|
return result.isZero ? undefined : result;
|
|
456
462
|
}
|
|
457
|
-
/**
|
|
463
|
+
/**
|
|
464
|
+
* Compute the area and normal of the polygon, packaged as a vector.
|
|
465
|
+
* @param points polygon vertices, closure point optional. Polygon can be in any plane.
|
|
466
|
+
* @param result optional pre-allocated vector to populate and return.
|
|
467
|
+
* @returns polygon normal with magnitude equal to polygon area, or zero vector if colinear/insufficient points.
|
|
468
|
+
*/
|
|
458
469
|
static areaNormal(points, result) {
|
|
459
470
|
if (!result)
|
|
460
471
|
result = Vector3d.create();
|
|
461
472
|
PolygonOps.areaNormalGo(new Point3dArrayCarrier(points), result);
|
|
462
473
|
return result;
|
|
463
474
|
}
|
|
464
|
-
/**
|
|
465
|
-
*
|
|
466
|
-
*
|
|
475
|
+
/**
|
|
476
|
+
* Compute the area of the polygon.
|
|
477
|
+
* @param points polygon vertices, closure point optional. Polygon can be in any plane.
|
|
478
|
+
* @returns polygon area.
|
|
467
479
|
*/
|
|
468
480
|
static area(points) {
|
|
469
481
|
return PolygonOps.areaNormal(points).magnitude();
|
|
470
482
|
}
|
|
471
|
-
/**
|
|
483
|
+
/**
|
|
484
|
+
* Compute the projected XY area of the polygon.
|
|
485
|
+
* @param points polygon vertices, closure point optional, z-coordinates ignored.
|
|
486
|
+
* @returns xy-projected polygon area.
|
|
487
|
+
*/
|
|
472
488
|
static areaXY(points) {
|
|
473
489
|
let area = 0.0;
|
|
490
|
+
// Shoelace algorithm
|
|
474
491
|
if (points instanceof IndexedXYZCollection) {
|
|
475
492
|
if (points.length > 2) {
|
|
476
493
|
const x0 = points.getXAtUncheckedPointIndex(0);
|
|
@@ -478,7 +495,7 @@ export class PolygonOps {
|
|
|
478
495
|
let u1 = points.getXAtUncheckedPointIndex(1) - x0;
|
|
479
496
|
let v1 = points.getYAtUncheckedPointIndex(1) - y0;
|
|
480
497
|
let u2, v2;
|
|
481
|
-
for (let i = 2; i
|
|
498
|
+
for (let i = 2; i < points.length; i++, u1 = u2, v1 = v2) {
|
|
482
499
|
u2 = points.getXAtUncheckedPointIndex(i) - x0;
|
|
483
500
|
v2 = points.getYAtUncheckedPointIndex(i) - y0;
|
|
484
501
|
area += Geometry.crossProductXYXY(u1, v1, u2, v2);
|
|
@@ -491,7 +508,11 @@ export class PolygonOps {
|
|
|
491
508
|
}
|
|
492
509
|
return 0.5 * area;
|
|
493
510
|
}
|
|
494
|
-
/**
|
|
511
|
+
/**
|
|
512
|
+
* Sum the result of [[areaXY]] for multiple polygons.
|
|
513
|
+
* @param polygons array of polygons, closure point optional for each, z-coordinates ignored.
|
|
514
|
+
* @returns sum of xy-projected polygon areas.
|
|
515
|
+
*/
|
|
495
516
|
static sumAreaXY(polygons) {
|
|
496
517
|
let s = 0.0;
|
|
497
518
|
for (const p of polygons)
|