@itwin/ecschema-rpcinterface-tests 4.2.0-dev.7 → 4.2.0-dev.9
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/dist/_0062.bundled-tests.js.map +1 -1
- package/lib/dist/bundled-tests.js +255 -127
- package/lib/dist/bundled-tests.js.map +1 -1
- package/lib/dist/core_frontend_lib_esm_ApproximateTerrainHeightsProps_js.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_4_7_node_modules_loaders_gl_draco_di-02c2bd.bundled-tests.js.map +1 -1
- package/package.json +15 -15
|
@@ -74469,6 +74469,7 @@ class ModelChangeMonitor {
|
|
|
74469
74469
|
this.processBuffered();
|
|
74470
74470
|
};
|
|
74471
74471
|
this._removals.push(briefcase.txns.onCommitted.addListener(maybeProcess));
|
|
74472
|
+
this._removals.push(briefcase.txns.onReplayedExternalTxns.addListener(maybeProcess));
|
|
74472
74473
|
this._removals.push(briefcase.txns.onAfterUndoRedo.addListener(maybeProcess));
|
|
74473
74474
|
this._removals.push(briefcase.txns.onChangesPulled.addListener(maybeProcess));
|
|
74474
74475
|
}
|
|
@@ -74800,6 +74801,14 @@ class BriefcaseTxns extends BriefcaseNotificationHandler {
|
|
|
74800
74801
|
* @see [[onCommit]] for the event raised before the operation.
|
|
74801
74802
|
*/
|
|
74802
74803
|
this.onCommitted = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
|
|
74804
|
+
/** Event raised for a read-only briefcase that was opened with the `watchForChanges` flag enabled when changes made by another connection are applied to the briefcase.
|
|
74805
|
+
* @see [[onReplayedExternalTxns]] for the event raised after all such changes have been applied.
|
|
74806
|
+
*/
|
|
74807
|
+
this.onReplayExternalTxns = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
|
|
74808
|
+
/** Event raised for a read-only briefcase that was opened with the `watchForChanges` flag enabled when changes made by another connection are applied to the briefcase.
|
|
74809
|
+
* @see [[onReplayExternalTxns]] for the event raised before the changes are applied.
|
|
74810
|
+
*/
|
|
74811
|
+
this.onReplayedExternalTxns = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
|
|
74803
74812
|
/** Event raised after a changeset has been applied to the briefcase.
|
|
74804
74813
|
* Changesets may be applied as a result of [[BriefcaseConnection.pullChanges]], or by undo/redo operations.
|
|
74805
74814
|
*/
|
|
@@ -74935,6 +74944,14 @@ class BriefcaseTxns extends BriefcaseNotificationHandler {
|
|
|
74935
74944
|
this.onCommitted.raiseEvent(hasPendingTxns, time);
|
|
74936
74945
|
}
|
|
74937
74946
|
/** @internal */
|
|
74947
|
+
notifyReplayExternalTxns() {
|
|
74948
|
+
this.onReplayExternalTxns.raiseEvent();
|
|
74949
|
+
}
|
|
74950
|
+
/** @internal */
|
|
74951
|
+
notifyReplayedExternalTxns() {
|
|
74952
|
+
this.onReplayedExternalTxns.raiseEvent();
|
|
74953
|
+
}
|
|
74954
|
+
/** @internal */
|
|
74938
74955
|
notifyChangesApplied() {
|
|
74939
74956
|
this.onChangesApplied.raiseEvent();
|
|
74940
74957
|
}
|
|
@@ -176956,6 +176973,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
176956
176973
|
/* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
|
|
176957
176974
|
/* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
|
|
176958
176975
|
/* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
|
|
176976
|
+
/* harmony import */ var _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Plane3d */ "../../core/geometry/lib/esm/geometry3d/Plane3d.js");
|
|
176959
176977
|
/* harmony import */ var _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndUnitNormal */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js");
|
|
176960
176978
|
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
176961
176979
|
/* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
|
|
@@ -176964,7 +176982,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
176964
176982
|
/* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
|
|
176965
176983
|
/* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
|
|
176966
176984
|
/* harmony import */ var _ClipUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ClipUtils */ "../../core/geometry/lib/esm/clipping/ClipUtils.js");
|
|
176967
|
-
/* harmony import */ var _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Plane3d */ "../../core/geometry/lib/esm/geometry3d/Plane3d.js");
|
|
176968
176985
|
/*---------------------------------------------------------------------------------------------
|
|
176969
176986
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
176970
176987
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -176986,6 +177003,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
176986
177003
|
* A ClipPlane is a single plane represented as
|
|
176987
177004
|
* * An inward unit normal (u,v,w)
|
|
176988
177005
|
* * A signedDistance
|
|
177006
|
+
* More details can be found at docs/learning/geometry/Clipping.md
|
|
176989
177007
|
*
|
|
176990
177008
|
* Hence
|
|
176991
177009
|
* * The halfspace function evaluation for "point" (x,y,z) is `(x,y,z) DOT (u,v,w) - signedDistance`.
|
|
@@ -177498,8 +177516,9 @@ class ClipPlane extends _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__.Plane3d
|
|
|
177498
177516
|
xyzOut.pushWrap(1);
|
|
177499
177517
|
return xyzOut;
|
|
177500
177518
|
}
|
|
177501
|
-
/**
|
|
177502
|
-
*
|
|
177519
|
+
/**
|
|
177520
|
+
* Implement appendPolygonClip, as defined in interface PolygonClipper.
|
|
177521
|
+
* @param xyz convex polygon. This is not changed.
|
|
177503
177522
|
* @param insideFragments Array to receive "inside" fragments. Each fragment is a GrowableXYZArray grabbed
|
|
177504
177523
|
* from the cache. This is NOT cleared.
|
|
177505
177524
|
* @param outsideFragments Array to receive "outside" fragments. Each fragment is a GrowableXYZArray grabbed
|
|
@@ -178277,22 +178296,28 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
178277
178296
|
/* harmony export */ ClipStepAction: () => (/* binding */ ClipStepAction),
|
|
178278
178297
|
/* harmony export */ ClipUtilities: () => (/* binding */ ClipUtilities)
|
|
178279
178298
|
/* harmony export */ });
|
|
178280
|
-
/* harmony import */ var
|
|
178281
|
-
/* harmony import */ var
|
|
178282
|
-
/* harmony import */ var
|
|
178299
|
+
/* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
178300
|
+
/* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
|
|
178301
|
+
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
178302
|
+
/* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
178303
|
+
/* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
178304
|
+
/* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
178305
|
+
/* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
178306
|
+
/* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
|
|
178283
178307
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
178284
|
-
/* harmony import */ var
|
|
178285
|
-
/* harmony import */ var
|
|
178286
|
-
/* harmony import */ var
|
|
178287
|
-
/* harmony import */ var
|
|
178288
|
-
/* harmony import */ var
|
|
178289
|
-
/* harmony import */ var
|
|
178290
|
-
/* harmony import */ var
|
|
178291
|
-
/* harmony import */ var
|
|
178292
|
-
/* harmony import */ var
|
|
178293
|
-
/* harmony import */ var
|
|
178294
|
-
/* harmony import */ var
|
|
178295
|
-
/* harmony import */ var
|
|
178308
|
+
/* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
|
|
178309
|
+
/* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
|
|
178310
|
+
/* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
|
|
178311
|
+
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
178312
|
+
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
178313
|
+
/* harmony import */ var _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/ReusableObjectCache */ "../../core/geometry/lib/esm/geometry3d/ReusableObjectCache.js");
|
|
178314
|
+
/* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
178315
|
+
/* harmony import */ var _ClipPlane__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
|
|
178316
|
+
/* harmony import */ var _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ClipPrimitive */ "../../core/geometry/lib/esm/clipping/ClipPrimitive.js");
|
|
178317
|
+
/* harmony import */ var _ClipVector__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ClipVector */ "../../core/geometry/lib/esm/clipping/ClipVector.js");
|
|
178318
|
+
/* harmony import */ var _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
|
|
178319
|
+
/* harmony import */ var _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internalContexts/LineStringOffsetClipperContext */ "../../core/geometry/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js");
|
|
178320
|
+
/* harmony import */ var _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./UnionOfConvexClipPlaneSets */ "../../core/geometry/lib/esm/clipping/UnionOfConvexClipPlaneSets.js");
|
|
178296
178321
|
/*---------------------------------------------------------------------------------------------
|
|
178297
178322
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
178298
178323
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -178314,6 +178339,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
178314
178339
|
|
|
178315
178340
|
|
|
178316
178341
|
|
|
178342
|
+
|
|
178343
|
+
|
|
178344
|
+
|
|
178345
|
+
|
|
178346
|
+
|
|
178347
|
+
|
|
178317
178348
|
|
|
178318
178349
|
|
|
178319
178350
|
/**
|
|
@@ -178361,7 +178392,7 @@ var ClipStatus;
|
|
|
178361
178392
|
*/
|
|
178362
178393
|
class ClipUtilities {
|
|
178363
178394
|
/**
|
|
178364
|
-
*
|
|
178395
|
+
* Augment the unsortedFractionsArray with 0 and 1
|
|
178365
178396
|
* * sort
|
|
178366
178397
|
* * test the midpoint of each interval with `clipper.isPointOnOrInside`
|
|
178367
178398
|
* * pass accepted intervals to `announce(f0,f1,curve)`
|
|
@@ -178408,7 +178439,7 @@ class ClipUtilities {
|
|
|
178408
178439
|
return intervals.length > 0;
|
|
178409
178440
|
}
|
|
178410
178441
|
/**
|
|
178411
|
-
* Find portions of the curve that are within the clipper.
|
|
178442
|
+
* Find portions of the curve primitive that are within the clipper.
|
|
178412
178443
|
* Collect them into an array of curve primitives.
|
|
178413
178444
|
*/
|
|
178414
178445
|
static collectClippedCurves(curve, clipper) {
|
|
@@ -178422,6 +178453,75 @@ class ClipUtilities {
|
|
|
178422
178453
|
});
|
|
178423
178454
|
return result;
|
|
178424
178455
|
}
|
|
178456
|
+
/**
|
|
178457
|
+
* Find portions of the planar region that are within the clipper.
|
|
178458
|
+
* Collect them into a single region to return.
|
|
178459
|
+
*/
|
|
178460
|
+
static clipAnyRegion(region, clipper) {
|
|
178461
|
+
let result;
|
|
178462
|
+
// Create "local region" which is the result of rotating region to make
|
|
178463
|
+
// it parallel to the xy-plane and then translating it to the xy-plane.
|
|
178464
|
+
const localToWorld = _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_1__.FrameBuilder.createRightHandedFrame(undefined, region);
|
|
178465
|
+
if (!localToWorld)
|
|
178466
|
+
return result;
|
|
178467
|
+
const worldToLocal = localToWorld?.inverse();
|
|
178468
|
+
if (!worldToLocal)
|
|
178469
|
+
return result;
|
|
178470
|
+
const localRegion = region.cloneTransformed(worldToLocal);
|
|
178471
|
+
if (!localRegion)
|
|
178472
|
+
return result;
|
|
178473
|
+
// We can only clip convex polygons with our clipper machinery, but the input region doesn't have to be
|
|
178474
|
+
// convex or even a polygon. We get around this limitation by using a Boolean operation, which admits
|
|
178475
|
+
// *any* planar regions, albeit in local coordinates. First, we clip a rectangle that covers the input region
|
|
178476
|
+
// (in world coordinates), then we intersect the resulting fragments with the input region in local coordinates.
|
|
178477
|
+
// Finally, we assemble the results into a UnionRegion back in world coordinates.
|
|
178478
|
+
const localRegionRange = ClipUtilities._workRange = localRegion.range();
|
|
178479
|
+
const xLength = localRegionRange.xLength();
|
|
178480
|
+
const yLength = localRegionRange.yLength();
|
|
178481
|
+
const rectangle = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createRectangleXY(localRegionRange.low, xLength, yLength, true);
|
|
178482
|
+
rectangle.tryTransformInPlace(localToWorld);
|
|
178483
|
+
// Clip the rectangle to produce fragment(s) which we can Boolean intersect with the input region.
|
|
178484
|
+
const insideFragments = [];
|
|
178485
|
+
const outsideFragments = [];
|
|
178486
|
+
const cache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
|
|
178487
|
+
clipper.appendPolygonClip?.(rectangle.packedPoints, insideFragments, outsideFragments, cache);
|
|
178488
|
+
if (insideFragments.length === 0)
|
|
178489
|
+
return result;
|
|
178490
|
+
// Create the "clipped region".
|
|
178491
|
+
for (const fragment of insideFragments) {
|
|
178492
|
+
const loop = _curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(fragment);
|
|
178493
|
+
loop.tryTransformInPlace(worldToLocal);
|
|
178494
|
+
const clippedLocalRegion = _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__.RegionOps.regionBooleanXY(localRegion, loop, _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__.RegionBinaryOpType.Intersection);
|
|
178495
|
+
if (clippedLocalRegion) {
|
|
178496
|
+
clippedLocalRegion.tryTransformInPlace(localToWorld);
|
|
178497
|
+
if (!result)
|
|
178498
|
+
result = (clippedLocalRegion instanceof _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__.UnionRegion) ? clippedLocalRegion : _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__.UnionRegion.create(clippedLocalRegion);
|
|
178499
|
+
else if (!result.tryAddChild(clippedLocalRegion))
|
|
178500
|
+
result.children.push(...clippedLocalRegion.children);
|
|
178501
|
+
}
|
|
178502
|
+
}
|
|
178503
|
+
return result;
|
|
178504
|
+
}
|
|
178505
|
+
/**
|
|
178506
|
+
* Find portions of any curve that are within the clipper.
|
|
178507
|
+
* Collect them into an array of any curves.
|
|
178508
|
+
*/
|
|
178509
|
+
static clipAnyCurve(curve, clipper) {
|
|
178510
|
+
if (curve instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_7__.CurvePrimitive)
|
|
178511
|
+
return ClipUtilities.collectClippedCurves(curve, clipper);
|
|
178512
|
+
if (curve.isAnyRegionType) {
|
|
178513
|
+
const ret = ClipUtilities.clipAnyRegion(curve, clipper);
|
|
178514
|
+
return ret ? [ret] : [];
|
|
178515
|
+
}
|
|
178516
|
+
const result = [];
|
|
178517
|
+
if (curve instanceof _curve_Path__WEBPACK_IMPORTED_MODULE_8__.Path || curve instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_9__.BagOfCurves) {
|
|
178518
|
+
for (const child of curve.children) {
|
|
178519
|
+
const partialClip = ClipUtilities.clipAnyCurve(child, clipper);
|
|
178520
|
+
result.push(...partialClip);
|
|
178521
|
+
}
|
|
178522
|
+
}
|
|
178523
|
+
return result;
|
|
178524
|
+
}
|
|
178425
178525
|
/**
|
|
178426
178526
|
* Clip a polygon down to regions defined by each shape of a ClipShape.
|
|
178427
178527
|
* @return An multidimensional array of points, where each array is the boundary of part of the remaining polygon.
|
|
@@ -178460,8 +178560,8 @@ class ClipUtilities {
|
|
|
178460
178560
|
for (const plane of convexSet.planes) {
|
|
178461
178561
|
let numInside = 0, numOutside = 0;
|
|
178462
178562
|
const planeDistance = plane.distance - tolerance;
|
|
178463
|
-
const currPt =
|
|
178464
|
-
const currVec =
|
|
178563
|
+
const currPt = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Point3d.create();
|
|
178564
|
+
const currVec = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Vector3d.create();
|
|
178465
178565
|
for (let i = 0; i < points.length; i++) {
|
|
178466
178566
|
points.getPoint3dAtUncheckedPointIndex(i, currPt);
|
|
178467
178567
|
currVec.setFrom(currPt);
|
|
@@ -178489,15 +178589,15 @@ class ClipUtilities {
|
|
|
178489
178589
|
* @param ignoreInvisiblePlanes if true, do NOT compute a facet for convex set faces marked invisible.
|
|
178490
178590
|
*/
|
|
178491
178591
|
static announceLoopsOfConvexClipPlaneSetIntersectRange(convexSet, range, loopFunction, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
|
|
178492
|
-
const work = new
|
|
178592
|
+
const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
|
|
178493
178593
|
if (includeConvexSetFaces) {
|
|
178494
178594
|
// Clip convexSet planes to the range and to the rest of the convexSet . .
|
|
178495
|
-
if (convexSet instanceof
|
|
178595
|
+
if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet) {
|
|
178496
178596
|
for (const plane of convexSet.planes) {
|
|
178497
178597
|
if (ignoreInvisiblePlanes && plane.invisible)
|
|
178498
178598
|
continue;
|
|
178499
178599
|
const pointsClippedToRange = plane.intersectRange(range, true);
|
|
178500
|
-
const finalPoints = new
|
|
178600
|
+
const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
|
|
178501
178601
|
if (pointsClippedToRange) {
|
|
178502
178602
|
convexSet.polygonClip(pointsClippedToRange, finalPoints, work, plane);
|
|
178503
178603
|
if (finalPoints.length > 0)
|
|
@@ -178520,10 +178620,10 @@ class ClipUtilities {
|
|
|
178520
178620
|
// clip range faces to the convex set . . .
|
|
178521
178621
|
const corners = range.corners();
|
|
178522
178622
|
for (let i = 0; i < 6; i++) {
|
|
178523
|
-
const indices =
|
|
178524
|
-
const finalPoints = new
|
|
178525
|
-
const lineString =
|
|
178526
|
-
if (convexSet instanceof
|
|
178623
|
+
const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.faceCornerIndices(i);
|
|
178624
|
+
const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
|
|
178625
|
+
const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createIndexedPoints(corners, indices);
|
|
178626
|
+
if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet) {
|
|
178527
178627
|
convexSet.polygonClip(lineString.packedPoints, finalPoints, work);
|
|
178528
178628
|
if (finalPoints.length > 0)
|
|
178529
178629
|
loopFunction(finalPoints);
|
|
@@ -178548,18 +178648,18 @@ class ClipUtilities {
|
|
|
178548
178648
|
*/
|
|
178549
178649
|
static loopsOfConvexClipPlaneIntersectionWithRange(allClippers, range, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
|
|
178550
178650
|
const result = [];
|
|
178551
|
-
if (allClippers instanceof
|
|
178651
|
+
if (allClippers instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
|
|
178552
178652
|
for (const clipper of allClippers.convexSets) {
|
|
178553
178653
|
this.announceLoopsOfConvexClipPlaneSetIntersectRange(clipper, range, (points) => {
|
|
178554
178654
|
if (points.length > 0)
|
|
178555
|
-
result.push(
|
|
178655
|
+
result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(points));
|
|
178556
178656
|
}, includeConvexSetFaces, includeRangeFaces, ignoreInvisiblePlanes);
|
|
178557
178657
|
}
|
|
178558
178658
|
}
|
|
178559
|
-
else if (allClippers instanceof
|
|
178659
|
+
else if (allClippers instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet || allClippers instanceof _ClipPlane__WEBPACK_IMPORTED_MODULE_15__.ClipPlane) {
|
|
178560
178660
|
this.announceLoopsOfConvexClipPlaneSetIntersectRange(allClippers, range, (points) => {
|
|
178561
178661
|
if (points.length > 0)
|
|
178562
|
-
result.push(
|
|
178662
|
+
result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(points));
|
|
178563
178663
|
}, includeConvexSetFaces, includeRangeFaces, ignoreInvisiblePlanes);
|
|
178564
178664
|
}
|
|
178565
178665
|
return result;
|
|
@@ -178571,7 +178671,7 @@ class ClipUtilities {
|
|
|
178571
178671
|
* @param range range to intersect
|
|
178572
178672
|
*/
|
|
178573
178673
|
static rangeOfConvexClipPlaneSetIntersectionWithRange(convexSet, range) {
|
|
178574
|
-
const result =
|
|
178674
|
+
const result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
|
|
178575
178675
|
this.announceLoopsOfConvexClipPlaneSetIntersectRange(convexSet, range, (points) => {
|
|
178576
178676
|
if (points.length > 0)
|
|
178577
178677
|
result.extendArray(points);
|
|
@@ -178594,22 +178694,22 @@ class ClipUtilities {
|
|
|
178594
178694
|
static rangeOfClipperIntersectionWithRange(clipper, range, observeInvisibleFlag = true) {
|
|
178595
178695
|
if (clipper === undefined)
|
|
178596
178696
|
return range.clone();
|
|
178597
|
-
if (clipper instanceof
|
|
178697
|
+
if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet)
|
|
178598
178698
|
return this.rangeOfConvexClipPlaneSetIntersectionWithRange(clipper, range);
|
|
178599
|
-
if (clipper instanceof
|
|
178600
|
-
const rangeUnion =
|
|
178699
|
+
if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
|
|
178700
|
+
const rangeUnion = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
|
|
178601
178701
|
for (const c of clipper.convexSets) {
|
|
178602
178702
|
const rangeC = this.rangeOfConvexClipPlaneSetIntersectionWithRange(c, range);
|
|
178603
178703
|
rangeUnion.extendRange(rangeC);
|
|
178604
178704
|
}
|
|
178605
178705
|
return rangeUnion;
|
|
178606
178706
|
}
|
|
178607
|
-
if (clipper instanceof
|
|
178707
|
+
if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__.ClipPrimitive) {
|
|
178608
178708
|
if (observeInvisibleFlag && clipper.invisible)
|
|
178609
178709
|
return range.clone();
|
|
178610
178710
|
return this.rangeOfClipperIntersectionWithRange(clipper.fetchClipPlanesRef(), range);
|
|
178611
178711
|
}
|
|
178612
|
-
if (clipper instanceof
|
|
178712
|
+
if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_17__.ClipVector) {
|
|
178613
178713
|
const rangeIntersection = range.clone();
|
|
178614
178714
|
for (const c of clipper.clips) {
|
|
178615
178715
|
if (observeInvisibleFlag && c.invisible) {
|
|
@@ -178641,21 +178741,21 @@ class ClipUtilities {
|
|
|
178641
178741
|
static doesClipperIntersectRange(clipper, range, observeInvisibleFlag = true) {
|
|
178642
178742
|
if (clipper === undefined)
|
|
178643
178743
|
return true;
|
|
178644
|
-
if (clipper instanceof
|
|
178744
|
+
if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet)
|
|
178645
178745
|
return this.doesConvexClipPlaneSetIntersectRange(clipper, range);
|
|
178646
|
-
if (clipper instanceof
|
|
178746
|
+
if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
|
|
178647
178747
|
for (const c of clipper.convexSets) {
|
|
178648
178748
|
if (this.doesConvexClipPlaneSetIntersectRange(c, range))
|
|
178649
178749
|
return true;
|
|
178650
178750
|
}
|
|
178651
178751
|
return false;
|
|
178652
178752
|
}
|
|
178653
|
-
if (clipper instanceof
|
|
178753
|
+
if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__.ClipPrimitive) {
|
|
178654
178754
|
if (observeInvisibleFlag && clipper.invisible) // um is there an easy way to detect range-completely-inside?
|
|
178655
178755
|
return true;
|
|
178656
178756
|
return this.doesClipperIntersectRange(clipper.fetchClipPlanesRef(), range);
|
|
178657
178757
|
}
|
|
178658
|
-
if (clipper instanceof
|
|
178758
|
+
if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_17__.ClipVector) {
|
|
178659
178759
|
const rangeIntersection = range.clone();
|
|
178660
178760
|
for (const c of clipper.clips) {
|
|
178661
178761
|
if (observeInvisibleFlag && c.invisible) {
|
|
@@ -178680,7 +178780,7 @@ class ClipUtilities {
|
|
|
178680
178780
|
* @param ignoreInvisiblePlanes if true, do NOT compute a facet for convex set faces marked invisible.
|
|
178681
178781
|
*/
|
|
178682
178782
|
static doesConvexClipPlaneSetIntersectRange(convexSet, range, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
|
|
178683
|
-
const work = new
|
|
178783
|
+
const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
|
|
178684
178784
|
if (includeConvexSetFaces) {
|
|
178685
178785
|
// Clip convexSet planes to the range and to the rest of the convexSet . .
|
|
178686
178786
|
for (const plane of convexSet.planes) {
|
|
@@ -178688,7 +178788,7 @@ class ClipUtilities {
|
|
|
178688
178788
|
continue;
|
|
178689
178789
|
const pointsClippedToRange = plane.intersectRange(range, true);
|
|
178690
178790
|
if (pointsClippedToRange) {
|
|
178691
|
-
const finalPoints = new
|
|
178791
|
+
const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
|
|
178692
178792
|
convexSet.polygonClip(pointsClippedToRange, finalPoints, work, plane);
|
|
178693
178793
|
if (finalPoints.length > 0)
|
|
178694
178794
|
return true;
|
|
@@ -178699,9 +178799,9 @@ class ClipUtilities {
|
|
|
178699
178799
|
// clip range faces to the convex set . . .
|
|
178700
178800
|
const corners = range.corners();
|
|
178701
178801
|
for (let i = 0; i < 6; i++) {
|
|
178702
|
-
const indices =
|
|
178703
|
-
const finalPoints = new
|
|
178704
|
-
const lineString =
|
|
178802
|
+
const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.faceCornerIndices(i);
|
|
178803
|
+
const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
|
|
178804
|
+
const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createIndexedPoints(corners, indices);
|
|
178705
178805
|
convexSet.polygonClip(lineString.packedPoints, finalPoints, work);
|
|
178706
178806
|
if (finalPoints.length > 0)
|
|
178707
178807
|
return true;
|
|
@@ -178730,10 +178830,10 @@ class ClipUtilities {
|
|
|
178730
178830
|
}
|
|
178731
178831
|
// convert range0 into a clipper in local1 coordinates, then intersect with range1
|
|
178732
178832
|
const local0ToLocal1 = worldToLocal1.multiplyTransformTransform(local0ToWorld, worldToLocal1);
|
|
178733
|
-
const builder =
|
|
178833
|
+
const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_18__.PolyfaceBuilder.create();
|
|
178734
178834
|
builder.addTransformedRangeMesh(local0ToLocal1, range0);
|
|
178735
178835
|
const mesh0 = builder.claimPolyface();
|
|
178736
|
-
const clipper = ClipUtilities._workClipper =
|
|
178836
|
+
const clipper = ClipUtilities._workClipper = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet.createConvexPolyface(mesh0, ClipUtilities._workClipper).clipper;
|
|
178737
178837
|
return ClipUtilities.doesClipperIntersectRange(clipper, myRange1);
|
|
178738
178838
|
}
|
|
178739
178839
|
/**
|
|
@@ -178785,9 +178885,9 @@ class ClipUtilities {
|
|
|
178785
178885
|
*/
|
|
178786
178886
|
static createXYOffsetClipFromLineString(points, leftOffset, rightOffset, z0, z1) {
|
|
178787
178887
|
if (Array.isArray(points)) {
|
|
178788
|
-
return
|
|
178888
|
+
return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__.LineStringOffsetClipperContext.createClipBetweenOffsets(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_20__.Point3dArrayCarrier(points), leftOffset, rightOffset, z0, z1);
|
|
178789
178889
|
}
|
|
178790
|
-
return
|
|
178890
|
+
return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__.LineStringOffsetClipperContext.createClipBetweenOffsets(points, leftOffset, rightOffset, z0, z1);
|
|
178791
178891
|
}
|
|
178792
178892
|
/** If data.length >= minLength threshold, push it to destination; if smaller drop it back to the cache. */
|
|
178793
178893
|
static captureOrDrop(data, minLength, destination, cache) {
|
|
@@ -178977,7 +179077,7 @@ class ClipUtilities {
|
|
|
178977
179077
|
*/
|
|
178978
179078
|
static doPolygonClipSequence(xyz, clippers, acceptedIn, acceptedOut, finalCandidates, inAction, outAction, finalFragmentAction, arrayCache) {
|
|
178979
179079
|
if (arrayCache === undefined)
|
|
178980
|
-
arrayCache = new
|
|
179080
|
+
arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
|
|
178981
179081
|
let candidates = [arrayCache.grabAndFill(xyz)];
|
|
178982
179082
|
let nextCandidates = [];
|
|
178983
179083
|
const intermediateIn = [];
|
|
@@ -179014,7 +179114,7 @@ class ClipUtilities {
|
|
|
179014
179114
|
/** Pass polygon `xyz` through a sequence of PolygonClip steps with "parity" rules */
|
|
179015
179115
|
static doPolygonClipParitySequence(xyz, clippers, acceptedIn, acceptedOut, arrayCache) {
|
|
179016
179116
|
if (arrayCache === undefined)
|
|
179017
|
-
arrayCache = new
|
|
179117
|
+
arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
|
|
179018
179118
|
let candidatesOut = [arrayCache.grabAndFill(xyz)];
|
|
179019
179119
|
let candidatesIn = [];
|
|
179020
179120
|
let nextCandidatesIn = [];
|
|
@@ -179066,22 +179166,22 @@ class ClipUtilities {
|
|
|
179066
179166
|
*/
|
|
179067
179167
|
static createComplementaryClips(clipper) {
|
|
179068
179168
|
const planes = clipper.planes;
|
|
179069
|
-
const interval =
|
|
179169
|
+
const interval = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range1d.createNull();
|
|
179070
179170
|
const n = planes.length;
|
|
179071
179171
|
const newClippers = [];
|
|
179072
179172
|
for (const p of planes) {
|
|
179073
|
-
const outerSet =
|
|
179173
|
+
const outerSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet.createEmpty();
|
|
179074
179174
|
outerSet.addPlaneToConvexSet(p.cloneNegated());
|
|
179075
179175
|
newClippers.push(outerSet);
|
|
179076
179176
|
}
|
|
179077
179177
|
for (let i = 0; i < n; i++) {
|
|
179078
179178
|
for (let j = i + 1; j < n; j++) {
|
|
179079
|
-
const ray =
|
|
179179
|
+
const ray = _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_21__.CurveFactory.planePlaneIntersectionRay(planes[i], planes[j]);
|
|
179080
179180
|
if (ray) {
|
|
179081
179181
|
if (clipper.hasIntersectionWithRay(ray, interval)) {
|
|
179082
179182
|
// the normal-to-normal vector is bisector (or close to bisector?)
|
|
179083
179183
|
const newNormal = planes[j].inwardNormalRef.minus(planes[i].inwardNormalRef);
|
|
179084
|
-
const plane1 =
|
|
179184
|
+
const plane1 = _ClipPlane__WEBPACK_IMPORTED_MODULE_15__.ClipPlane.createNormalAndPoint(newNormal, ray.origin);
|
|
179085
179185
|
if (plane1) {
|
|
179086
179186
|
const plane2 = plane1.cloneNegated();
|
|
179087
179187
|
newClippers[i].addPlaneToConvexSet(plane1);
|
|
@@ -179091,10 +179191,10 @@ class ClipUtilities {
|
|
|
179091
179191
|
}
|
|
179092
179192
|
}
|
|
179093
179193
|
}
|
|
179094
|
-
return
|
|
179194
|
+
return _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets.createConvexSets(newClippers);
|
|
179095
179195
|
}
|
|
179096
179196
|
}
|
|
179097
|
-
ClipUtilities._selectIntervals01TestPoint =
|
|
179197
|
+
ClipUtilities._selectIntervals01TestPoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Point3d.create();
|
|
179098
179198
|
|
|
179099
179199
|
function moveFragments(fragments, destination, arrayCache) {
|
|
179100
179200
|
if (destination === undefined)
|
|
@@ -179754,6 +179854,7 @@ class ConvexClipPlaneSet {
|
|
|
179754
179854
|
* Create a convex clip plane set that clips to `x0 <= x <= x1` and `y0 <= y <= y1`.
|
|
179755
179855
|
* * Note that there is no test for the usual ordering `x0 <= x1` or `y0 <= y1`.
|
|
179756
179856
|
* * if the usual ordering is violated, the convex set is an empty set.
|
|
179857
|
+
* * More details can be found at docs/learning/geometry/Clipping.md
|
|
179757
179858
|
*/
|
|
179758
179859
|
static createXYBox(x0, y0, x1, y1, result) {
|
|
179759
179860
|
result = result ? result : new ConvexClipPlaneSet();
|
|
@@ -180199,7 +180300,7 @@ class ConvexClipPlaneSet {
|
|
|
180199
180300
|
* valid clip in a parity sense.
|
|
180200
180301
|
* * The containingPlane parameter allows callers within ConvexClipPlane set to bypass planes known to contain
|
|
180201
180302
|
* the polygon.
|
|
180202
|
-
* @param input
|
|
180303
|
+
* @param input polygon, usually convex.
|
|
180203
180304
|
* @param output output polygon
|
|
180204
180305
|
* @param work work array.
|
|
180205
180306
|
* @param containingPlane if this plane is found in the convex set, it is NOT applied.
|
|
@@ -180332,7 +180433,7 @@ class ConvexClipPlaneSet {
|
|
|
180332
180433
|
}
|
|
180333
180434
|
/**
|
|
180334
180435
|
* Implement appendPolygonClip, as defined in interface PolygonClipper.
|
|
180335
|
-
* @param xyz
|
|
180436
|
+
* @param xyz convex polygon. This is not changed.
|
|
180336
180437
|
* @param insideFragments Array to receive "inside" fragments. Each fragment is a GrowableXYZArray grabbed from
|
|
180337
180438
|
* the cache. This is NOT cleared.
|
|
180338
180439
|
* @param outsideFragments Array to receive "outside" fragments. Each fragment is a GrowableXYZArray grabbed from
|
|
@@ -180709,8 +180810,8 @@ class UnionOfConvexClipPlaneSets {
|
|
|
180709
180810
|
}
|
|
180710
180811
|
}
|
|
180711
180812
|
/**
|
|
180712
|
-
*
|
|
180713
|
-
* @param xyz
|
|
180813
|
+
* Implement appendPolygonClip, as defined in interface PolygonClipper.
|
|
180814
|
+
* @param xyz convex polygon. This is not changed.
|
|
180714
180815
|
* @param insideFragments Array to receive "inside" fragments. Each fragment is a GrowableXYZArray grabbed from
|
|
180715
180816
|
* the cache. This is NOT cleared.
|
|
180716
180817
|
* @param outsideFragments Array to receive "outside" fragments. Each fragment is a GrowableXYZArray grabbed from
|
|
@@ -182742,7 +182843,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
182742
182843
|
|
|
182743
182844
|
|
|
182744
182845
|
|
|
182745
|
-
/**
|
|
182846
|
+
/**
|
|
182847
|
+
* A Coordinate is a Point3d with supporting methods from the GeometryQuery abstraction.
|
|
182746
182848
|
* @public
|
|
182747
182849
|
*/
|
|
182748
182850
|
class CoordinateXYZ extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.GeometryQuery {
|
|
@@ -182765,9 +182867,9 @@ class CoordinateXYZ extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geometry
|
|
|
182765
182867
|
static createXYZ(x = 0, y = 0, z = 0) {
|
|
182766
182868
|
return new CoordinateXYZ(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(x, y, z));
|
|
182767
182869
|
}
|
|
182768
|
-
/**
|
|
182870
|
+
/** Return the range of the point */
|
|
182769
182871
|
range() { return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range3d.create(this._xyz); }
|
|
182770
|
-
/**
|
|
182872
|
+
/** Extend `rangeToExtend` to include this point (optionally transformed) */
|
|
182771
182873
|
extendRange(rangeToExtend, transform) {
|
|
182772
182874
|
if (transform)
|
|
182773
182875
|
rangeToExtend.extendTransformedXYZ(transform, this._xyz.x, this._xyz.y, this._xyz.z);
|
|
@@ -182779,31 +182881,30 @@ class CoordinateXYZ extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geometry
|
|
|
182779
182881
|
transform.multiplyPoint3d(this._xyz, this._xyz);
|
|
182780
182882
|
return true;
|
|
182781
182883
|
}
|
|
182782
|
-
/**
|
|
182783
|
-
*/
|
|
182884
|
+
/** Return a transformed clone */
|
|
182784
182885
|
cloneTransformed(transform) {
|
|
182785
182886
|
const result = new CoordinateXYZ(this._xyz.clone());
|
|
182786
182887
|
result.tryTransformInPlace(transform);
|
|
182787
182888
|
return result;
|
|
182788
182889
|
}
|
|
182789
|
-
/**
|
|
182890
|
+
/** Return a clone */
|
|
182790
182891
|
clone() {
|
|
182791
182892
|
return new CoordinateXYZ(this._xyz.clone());
|
|
182792
182893
|
}
|
|
182793
|
-
/**
|
|
182794
|
-
*
|
|
182795
|
-
* *
|
|
182894
|
+
/**
|
|
182895
|
+
* Return GeometryQuery children for recursive queries.
|
|
182896
|
+
* * Leaf classes do not need to implement.
|
|
182796
182897
|
*/
|
|
182797
|
-
/**
|
|
182898
|
+
/** Test if (other instanceof Coordinate). */
|
|
182798
182899
|
isSameGeometryClass(other) {
|
|
182799
182900
|
return other instanceof CoordinateXYZ;
|
|
182800
182901
|
}
|
|
182801
|
-
/**
|
|
182802
|
-
*
|
|
182902
|
+
/**
|
|
182903
|
+
* Test for exact structure and nearly identical geometry.
|
|
182803
182904
|
* * Leaf classes must implement !!!
|
|
182804
|
-
* *
|
|
182805
|
-
* *
|
|
182806
|
-
* *
|
|
182905
|
+
* * Base class implementation recurses through children.
|
|
182906
|
+
* * Base implementation is complete for classes with children and no properties.
|
|
182907
|
+
* * Classes with both children and properties must implement for properties, call super for children.
|
|
182807
182908
|
*/
|
|
182808
182909
|
isAlmostEqual(other) {
|
|
182809
182910
|
return (other instanceof CoordinateXYZ) && this._xyz.isAlmostEqual(other._xyz);
|
|
@@ -183871,7 +183972,7 @@ class CurveChain extends CurveCollection {
|
|
|
183871
183972
|
/**
|
|
183872
183973
|
* Return the index where target is found in the array of children.
|
|
183873
183974
|
* @param alsoSearchProxies whether to also check proxy curves of the children
|
|
183874
|
-
|
|
183975
|
+
*/
|
|
183875
183976
|
childIndex(target, alsoSearchProxies) {
|
|
183876
183977
|
for (let i = 0; i < this._curves.length; i++) {
|
|
183877
183978
|
if (this._curves[i] === target)
|
|
@@ -184213,7 +184314,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
184213
184314
|
resetGeometry(geometryB) {
|
|
184214
184315
|
this.setGeometryB(geometryB);
|
|
184215
184316
|
}
|
|
184216
|
-
/**
|
|
184317
|
+
/** returns true if `fraction` is in [0,1] within tolerance */
|
|
184217
184318
|
acceptFraction(fraction, fractionTol = 1.0e-12) {
|
|
184218
184319
|
if (fraction < -fractionTol)
|
|
184219
184320
|
return false;
|
|
@@ -184255,8 +184356,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
184255
184356
|
cpB, fractionB0, fractionB1, reversed, intervalDetails) {
|
|
184256
184357
|
let globalFractionA, globalFractionB;
|
|
184257
184358
|
let globalFractionA1, globalFractionB1;
|
|
184258
|
-
const isInterval =
|
|
184259
|
-
intervalDetails.detailA.hasFraction1 &&
|
|
184359
|
+
const isInterval = intervalDetails !== undefined &&
|
|
184360
|
+
intervalDetails.detailA.hasFraction1 &&
|
|
184361
|
+
intervalDetails.detailB.hasFraction1;
|
|
184260
184362
|
if (isInterval) {
|
|
184261
184363
|
globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
|
|
184262
184364
|
globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
|
|
@@ -184390,8 +184492,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
184390
184492
|
* @param a1 end point of line a
|
|
184391
184493
|
* @param b0 start point of line b
|
|
184392
184494
|
* @param b1 end point of line b
|
|
184393
|
-
* @param result point to receive fractional coordinates of intersection. result.x is fraction on line a.
|
|
184394
|
-
*
|
|
184495
|
+
* @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y
|
|
184496
|
+
* is fraction on line b.
|
|
184395
184497
|
*/
|
|
184396
184498
|
static segmentSegmentBoundedApproach(a0, a1, b0, b1, minDistanceSquared) {
|
|
184397
184499
|
const ux = a1.x - a0.x;
|
|
@@ -184429,6 +184531,17 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
184429
184531
|
closestApproach = this.updatePointToSegmentDistance(1, a1, b0, b1, -_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(vx, vy, e10x, e10y) / vv, minDistanceSquared, closestApproach);
|
|
184430
184532
|
return closestApproach;
|
|
184431
184533
|
}
|
|
184534
|
+
/**
|
|
184535
|
+
* Return fractions of close approach within minDistance between two line segments( a0,a1) and (b0, b1)
|
|
184536
|
+
* * minDistance is assumed positive
|
|
184537
|
+
* Return the fractional (not xy) coordinates in result.x, result.y
|
|
184538
|
+
* @param a0 start point of line a
|
|
184539
|
+
* @param a1 end point of line a
|
|
184540
|
+
* @param b0 start point of line b
|
|
184541
|
+
* @param b1 end point of line b
|
|
184542
|
+
* @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y
|
|
184543
|
+
* is fraction on line b.
|
|
184544
|
+
*/
|
|
184432
184545
|
testAndRecordFractionalPairApproach(cpA, fA0, fA1, testProjectionOnA, cpB, fB0, fB1, testProjectionOnB, reversed) {
|
|
184433
184546
|
const pointA0 = cpA.fractionToPoint(fA0);
|
|
184434
184547
|
const pointA1 = cpA.fractionToPoint(fA1);
|
|
@@ -185017,7 +185130,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
185017
185130
|
let globalFractionA, globalFractionB;
|
|
185018
185131
|
let globalFractionA1, globalFractionB1;
|
|
185019
185132
|
const isInterval = intervalDetails !== undefined &&
|
|
185020
|
-
intervalDetails.detailA.hasFraction1 &&
|
|
185133
|
+
intervalDetails.detailA.hasFraction1 &&
|
|
185134
|
+
intervalDetails.detailB.hasFraction1;
|
|
185021
185135
|
if (isInterval) {
|
|
185022
185136
|
globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
|
|
185023
185137
|
globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
|
|
@@ -185091,8 +185205,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
185091
185205
|
this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
|
|
185092
185206
|
}
|
|
185093
185207
|
else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
|
|
185094
|
-
if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance)
|
|
185095
|
-
|
|
185208
|
+
if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance) &&
|
|
185209
|
+
this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
|
|
185096
185210
|
this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
|
|
185097
185211
|
}
|
|
185098
185212
|
}
|
|
@@ -185135,8 +185249,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
185135
185249
|
}
|
|
185136
185250
|
}
|
|
185137
185251
|
// Caller accesses data from a linestring or segment and passes it here.
|
|
185138
|
-
// (The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
|
|
185139
|
-
// allow all combinations to be passed in)
|
|
185252
|
+
// (The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
|
|
185253
|
+
// The fraction and extend parameters allow all combinations to be passed in)
|
|
185140
185254
|
dispatchSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
|
|
185141
185255
|
// Arc: X = C + cU + sV
|
|
185142
185256
|
// Line: contains points A0,A1
|
|
@@ -185161,7 +185275,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
185161
185275
|
const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
|
|
185162
185276
|
const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
|
|
185163
185277
|
const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
|
|
185164
|
-
if (lineFraction !== undefined &&
|
|
185278
|
+
if (lineFraction !== undefined &&
|
|
185279
|
+
this.acceptFraction(extendA0, lineFraction, extendA1) &&
|
|
185165
185280
|
this.acceptFraction(extendB0, arcFraction, extendB1)) {
|
|
185166
185281
|
this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
|
|
185167
185282
|
}
|
|
@@ -185188,8 +185303,9 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
185188
185303
|
const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
|
|
185189
185304
|
const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
|
|
185190
185305
|
const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
|
|
185191
|
-
if (lineFraction !== undefined &&
|
|
185192
|
-
|
|
185306
|
+
if (lineFraction !== undefined &&
|
|
185307
|
+
this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol) &&
|
|
185308
|
+
this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
|
|
185193
185309
|
this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
|
|
185194
185310
|
}
|
|
185195
185311
|
}
|
|
@@ -185514,8 +185630,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
185514
185630
|
const curvePoint = detail.point;
|
|
185515
185631
|
const curvePointH = this.projectPoint(curvePoint);
|
|
185516
185632
|
const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
|
|
185517
|
-
if (lineFraction !== undefined &&
|
|
185518
|
-
this.acceptFraction(extendA0, lineFraction, extendA1) &&
|
|
185633
|
+
if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1) &&
|
|
185519
185634
|
this.acceptFraction(extendB, fractionB, extendB)) {
|
|
185520
185635
|
this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
|
|
185521
185636
|
}
|
|
@@ -191118,7 +191233,7 @@ class Path extends _CurveCollection__WEBPACK_IMPORTED_MODULE_0__.CurveChain {
|
|
|
191118
191233
|
curve.emitStrokes(strokes, options);
|
|
191119
191234
|
return Path.create(strokes);
|
|
191120
191235
|
}
|
|
191121
|
-
/** Return the boundary type (1) of a corresponding
|
|
191236
|
+
/** Return the boundary type (1) of a corresponding MicroStation CurveVector */
|
|
191122
191237
|
dgnBoundaryType() {
|
|
191123
191238
|
return 1;
|
|
191124
191239
|
}
|
|
@@ -194812,7 +194927,7 @@ class UnionRegion extends _CurveCollection__WEBPACK_IMPORTED_MODULE_0__.CurveCol
|
|
|
194812
194927
|
* * Returns false if the `AnyCurve` child is not a region type.
|
|
194813
194928
|
*/
|
|
194814
194929
|
tryAddChild(child) {
|
|
194815
|
-
if (child && child instanceof _ParityRegion__WEBPACK_IMPORTED_MODULE_1__.ParityRegion || child instanceof _Loop__WEBPACK_IMPORTED_MODULE_2__.Loop) {
|
|
194930
|
+
if (child && (child instanceof _ParityRegion__WEBPACK_IMPORTED_MODULE_1__.ParityRegion || child instanceof _Loop__WEBPACK_IMPORTED_MODULE_2__.Loop)) {
|
|
194816
194931
|
this._children.push(child);
|
|
194817
194932
|
return true;
|
|
194818
194933
|
}
|
|
@@ -202844,7 +202959,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
202844
202959
|
|
|
202845
202960
|
|
|
202846
202961
|
|
|
202847
|
-
/* eslint-disable @typescript-eslint/naming-convention, no-empty */
|
|
202848
202962
|
|
|
202849
202963
|
|
|
202850
202964
|
|
|
@@ -202852,6 +202966,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
202852
202966
|
|
|
202853
202967
|
|
|
202854
202968
|
|
|
202969
|
+
/* eslint-disable @typescript-eslint/naming-convention, no-empty */
|
|
202855
202970
|
/**
|
|
202856
202971
|
* Helper class to accumulate points and vectors until there is enough data to define a coordinate system.
|
|
202857
202972
|
*
|
|
@@ -202859,10 +202974,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
202859
202974
|
* * create the FrameBuilder and make calls to announcePoint and announceVector.
|
|
202860
202975
|
* * the frame will be fully determined by an origin and two vectors.
|
|
202861
202976
|
* * the first call to announcePoint will set the origin.
|
|
202862
|
-
* *
|
|
202863
|
-
* *
|
|
202977
|
+
* * additional calls to announcePoint will produce announceVector call with the vector from the origin.
|
|
202978
|
+
* * after each announcement, call getValidatedFrame(false)
|
|
202864
202979
|
* * getValidatedFrame will succeed when it has two independent vectors.
|
|
202865
|
-
* *
|
|
202980
|
+
* * To build a left handed frame,
|
|
202866
202981
|
* * an origin and 3 independent vectors are required.
|
|
202867
202982
|
* * announce as above, but query with getValidatedFrame (true).
|
|
202868
202983
|
* * this will use the third vector to select right or left handed frame.
|
|
@@ -202877,11 +202992,18 @@ class FrameBuilder {
|
|
|
202877
202992
|
}
|
|
202878
202993
|
return false;
|
|
202879
202994
|
}
|
|
202880
|
-
/**
|
|
202881
|
-
clear() {
|
|
202882
|
-
|
|
202883
|
-
|
|
202884
|
-
|
|
202995
|
+
/** Clear all accumulated point and vector data */
|
|
202996
|
+
clear() {
|
|
202997
|
+
this._origin = undefined;
|
|
202998
|
+
this._vector0 = undefined;
|
|
202999
|
+
this._vector1 = undefined;
|
|
203000
|
+
this._vector2 = undefined;
|
|
203001
|
+
}
|
|
203002
|
+
constructor() {
|
|
203003
|
+
this.clear();
|
|
203004
|
+
}
|
|
203005
|
+
/**
|
|
203006
|
+
* Try to assemble the data into a non-singular transform.
|
|
202885
203007
|
* * If allowLeftHanded is false, vector0 and vector1 determine a right handed coordinate system.
|
|
202886
203008
|
* * if allowLeftHanded is true, the z vector of the right handed system can be flipped to agree with vector2 direction.
|
|
202887
203009
|
*/
|
|
@@ -202916,8 +203038,11 @@ class FrameBuilder {
|
|
|
202916
203038
|
}
|
|
202917
203039
|
}
|
|
202918
203040
|
/** Ask if there is a defined origin for the evolving frame */
|
|
202919
|
-
get hasOrigin() {
|
|
202920
|
-
|
|
203041
|
+
get hasOrigin() {
|
|
203042
|
+
return this._origin !== undefined;
|
|
203043
|
+
}
|
|
203044
|
+
/**
|
|
203045
|
+
* Return the number of vectors saved. Because the save process checks numerics, this should be the rank of the system.
|
|
202921
203046
|
*/
|
|
202922
203047
|
savedVectorCount() {
|
|
202923
203048
|
if (!this._vector0)
|
|
@@ -202928,7 +203053,9 @@ class FrameBuilder {
|
|
|
202928
203053
|
return 2;
|
|
202929
203054
|
return 3;
|
|
202930
203055
|
}
|
|
202931
|
-
/**
|
|
203056
|
+
/**
|
|
203057
|
+
* Announce a new point. If this point is different from the origin, also compute and announce the vector from the origin.
|
|
203058
|
+
*/
|
|
202932
203059
|
announcePoint(point) {
|
|
202933
203060
|
if (!this._origin) {
|
|
202934
203061
|
this._origin = point.clone();
|
|
@@ -202939,7 +203066,7 @@ class FrameBuilder {
|
|
|
202939
203066
|
return this.savedVectorCount();
|
|
202940
203067
|
return this.announceVector(this._origin.vectorTo(point));
|
|
202941
203068
|
}
|
|
202942
|
-
/**
|
|
203069
|
+
/** Announce a new vector. */
|
|
202943
203070
|
announceVector(vector) {
|
|
202944
203071
|
if (vector.isAlmostZero)
|
|
202945
203072
|
return this.savedVectorCount();
|
|
@@ -202966,8 +203093,9 @@ class FrameBuilder {
|
|
|
202966
203093
|
// fall through if prior vectors are all there -- no need for the new one.
|
|
202967
203094
|
return 3;
|
|
202968
203095
|
}
|
|
202969
|
-
/**
|
|
202970
|
-
*
|
|
203096
|
+
/**
|
|
203097
|
+
* Inspect the content of the data. Announce points and vectors. Return when savedVectorCount becomes sufficient
|
|
203098
|
+
* for a coordinate system.
|
|
202971
203099
|
*/
|
|
202972
203100
|
announce(data) {
|
|
202973
203101
|
if (this.savedVectorCount() > 1)
|
|
@@ -203048,11 +203176,11 @@ class FrameBuilder {
|
|
|
203048
203176
|
}
|
|
203049
203177
|
}
|
|
203050
203178
|
}
|
|
203051
|
-
/**
|
|
203052
|
-
*
|
|
203053
|
-
* *
|
|
203054
|
-
* *
|
|
203055
|
-
* *
|
|
203179
|
+
/**
|
|
203180
|
+
* Create a localToWorld frame for the given data.
|
|
203181
|
+
* * origin is at first point.
|
|
203182
|
+
* * x axis in direction of first nonzero vector present or implied by the input.
|
|
203183
|
+
* * y axis is perpendicular to x and contains (in positive side) the next vector present or implied by the input.
|
|
203056
203184
|
*/
|
|
203057
203185
|
static createRightHandedFrame(defaultUpVector, ...params) {
|
|
203058
203186
|
const builder = new FrameBuilder();
|
|
@@ -203087,10 +203215,11 @@ class FrameBuilder {
|
|
|
203087
203215
|
}
|
|
203088
203216
|
return undefined;
|
|
203089
203217
|
}
|
|
203090
|
-
/**
|
|
203218
|
+
/**
|
|
203219
|
+
* Create a transform containing points or vectors in the given data.
|
|
203091
203220
|
* * The xy columns of the transform contain the first points or vectors of the data.
|
|
203092
203221
|
* * The z column is perpendicular to that xy plane.
|
|
203093
|
-
* * The calculation favors the first points found.
|
|
203222
|
+
* * The calculation favors the first points found. It does not try to get a "best" plane.
|
|
203094
203223
|
*/
|
|
203095
203224
|
static createRightHandedLocalToWorld(...params) {
|
|
203096
203225
|
const builder = new FrameBuilder();
|
|
@@ -203103,10 +203232,9 @@ class FrameBuilder {
|
|
|
203103
203232
|
return undefined;
|
|
203104
203233
|
}
|
|
203105
203234
|
/**
|
|
203106
|
-
*
|
|
203107
|
-
*
|
|
203108
|
-
*
|
|
203109
|
-
* point most distant from that line.
|
|
203235
|
+
* Try to create a frame whose xy plane is through points.
|
|
203236
|
+
* * If 3 or more distinct points are present, the x axis is from the first point to the most distant, and y
|
|
203237
|
+
* direction is toward the point most distant from that line.
|
|
203110
203238
|
* @param points array of points
|
|
203111
203239
|
*/
|
|
203112
203240
|
static createFrameToDistantPoints(points) {
|
|
@@ -203123,10 +203251,10 @@ class FrameBuilder {
|
|
|
203123
203251
|
return undefined;
|
|
203124
203252
|
}
|
|
203125
203253
|
/**
|
|
203126
|
-
*
|
|
203254
|
+
* Try to create a frame whose xy plane is through points, with the points appearing CCW in the local frame.
|
|
203127
203255
|
*
|
|
203128
|
-
* *
|
|
203129
|
-
* point most distant from that line.
|
|
203256
|
+
* * If 3 or more distinct points are present, the x axis is from the first point to the most distant, and y
|
|
203257
|
+
* direction is toward the point most distant from that line.
|
|
203130
203258
|
* @param points array of points
|
|
203131
203259
|
*/
|
|
203132
203260
|
static createFrameWithCCWPolygon(points) {
|
|
@@ -287359,7 +287487,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
|
|
|
287359
287487
|
/***/ ((module) => {
|
|
287360
287488
|
|
|
287361
287489
|
"use strict";
|
|
287362
|
-
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.2.0-dev.
|
|
287490
|
+
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.2.0-dev.9","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.2.0-dev.9","@itwin/core-bentley":"workspace:^4.2.0-dev.9","@itwin/core-common":"workspace:^4.2.0-dev.9","@itwin/core-geometry":"workspace:^4.2.0-dev.9","@itwin/core-orbitgt":"workspace:^4.2.0-dev.9","@itwin/core-quantity":"workspace:^4.2.0-dev.9"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"18.16.1","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.1.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
|
|
287363
287491
|
|
|
287364
287492
|
/***/ })
|
|
287365
287493
|
|