@itwin/rpcinterface-full-stack-tests 4.3.0-dev.14 → 4.3.0-dev.16
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/bundled-tests.js +202 -92
- 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_14_node_modules_loaders_gl_draco_d-aa4ff5.bundled-tests.js.map +1 -1
- package/package.json +13 -13
|
@@ -79170,8 +79170,11 @@ class SectionAttachmentInfo {
|
|
|
79170
79170
|
displaySpatialView: this._displaySpatialView,
|
|
79171
79171
|
};
|
|
79172
79172
|
}
|
|
79173
|
-
clone() {
|
|
79174
|
-
|
|
79173
|
+
clone(iModel) {
|
|
79174
|
+
let spatialView = this._spatialView;
|
|
79175
|
+
if (spatialView instanceof _ViewState__WEBPACK_IMPORTED_MODULE_14__.ViewState3d)
|
|
79176
|
+
spatialView = spatialView.clone(iModel);
|
|
79177
|
+
return new SectionAttachmentInfo(spatialView, this._drawingToSpatialTransform, this._displaySpatialView);
|
|
79175
79178
|
}
|
|
79176
79179
|
preload(options) {
|
|
79177
79180
|
if (!this.wantDisplayed)
|
|
@@ -79365,7 +79368,7 @@ class DrawingViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_14__.ViewStat
|
|
|
79365
79368
|
if (categories instanceof DrawingViewState) {
|
|
79366
79369
|
this._viewedExtents = categories._viewedExtents.clone();
|
|
79367
79370
|
this._modelLimits = { ...categories._modelLimits };
|
|
79368
|
-
this._attachmentInfo = categories._attachmentInfo.clone();
|
|
79371
|
+
this._attachmentInfo = categories._attachmentInfo.clone(iModel);
|
|
79369
79372
|
}
|
|
79370
79373
|
else {
|
|
79371
79374
|
this._viewedExtents = extents;
|
|
@@ -87851,6 +87854,7 @@ class SheetBorder {
|
|
|
87851
87854
|
* SheetViewState.load(). The Attachments object is created in SheetViewState.attachToViewport and disposed of in SheetViewState.detachFromViewport.
|
|
87852
87855
|
*/
|
|
87853
87856
|
class ViewAttachmentsInfo {
|
|
87857
|
+
get attachments() { return this._attachments; }
|
|
87854
87858
|
constructor(attachments) {
|
|
87855
87859
|
this._attachments = attachments;
|
|
87856
87860
|
}
|
|
@@ -87874,9 +87878,19 @@ class ViewAttachmentsInfo {
|
|
|
87874
87878
|
toJSON() {
|
|
87875
87879
|
return this.isLoaded ? this._props.map((x) => x.id) : [...this._ids];
|
|
87876
87880
|
}
|
|
87877
|
-
clone() {
|
|
87878
|
-
|
|
87879
|
-
|
|
87881
|
+
clone(iModel) {
|
|
87882
|
+
let attachments = this._attachments;
|
|
87883
|
+
if (this.isLoaded) {
|
|
87884
|
+
// Need to clone the attached ViewStates.
|
|
87885
|
+
attachments = attachments.map((attachment) => {
|
|
87886
|
+
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(typeof attachment !== "string");
|
|
87887
|
+
return {
|
|
87888
|
+
...attachment,
|
|
87889
|
+
attachedView: attachment.attachedView.clone(iModel),
|
|
87890
|
+
};
|
|
87891
|
+
});
|
|
87892
|
+
}
|
|
87893
|
+
return new ViewAttachmentsInfo(attachments);
|
|
87880
87894
|
}
|
|
87881
87895
|
preload(options) {
|
|
87882
87896
|
if (this.isLoaded)
|
|
@@ -88039,7 +88053,16 @@ class SheetViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_13__.ViewState2
|
|
|
88039
88053
|
}
|
|
88040
88054
|
/** Strictly for testing. @internal */
|
|
88041
88055
|
get viewAttachmentProps() {
|
|
88042
|
-
return this._attachmentsInfo.viewAttachmentProps
|
|
88056
|
+
return this._attachmentsInfo.viewAttachmentProps.map((x) => {
|
|
88057
|
+
return {
|
|
88058
|
+
...x,
|
|
88059
|
+
attachedView: undefined,
|
|
88060
|
+
};
|
|
88061
|
+
});
|
|
88062
|
+
}
|
|
88063
|
+
/** Strictly for testing. @internal */
|
|
88064
|
+
get viewAttachmentInfos() {
|
|
88065
|
+
return this._attachmentsInfo.attachments;
|
|
88043
88066
|
}
|
|
88044
88067
|
/** Strictly for testing. @internal */
|
|
88045
88068
|
get attachments() {
|
|
@@ -88054,7 +88077,7 @@ class SheetViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_13__.ViewState2
|
|
|
88054
88077
|
if (categories instanceof SheetViewState) {
|
|
88055
88078
|
// we are coming from clone...
|
|
88056
88079
|
this.sheetSize = categories.sheetSize.clone();
|
|
88057
|
-
this._attachmentsInfo = categories._attachmentsInfo.clone();
|
|
88080
|
+
this._attachmentsInfo = categories._attachmentsInfo.clone(iModel);
|
|
88058
88081
|
this._viewedExtents = categories._viewedExtents.clone();
|
|
88059
88082
|
}
|
|
88060
88083
|
else {
|
|
@@ -88657,6 +88680,7 @@ class SpatialViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_6__.ViewState
|
|
|
88657
88680
|
this.registerModelSelectorListeners();
|
|
88658
88681
|
this.onViewedModelsChanged.raiseEvent();
|
|
88659
88682
|
}
|
|
88683
|
+
this.markModelSelectorChanged();
|
|
88660
88684
|
}
|
|
88661
88685
|
/** Create a new *blank* SpatialViewState. The returned SpatialViewState will nave non-persistent empty [[CategorySelectorState]] and [[ModelSelectorState]],
|
|
88662
88686
|
* and a non-persistent [[DisplayStyle3dState]] with default values for all of its components. Generally after creating a blank SpatialViewState,
|
|
@@ -151029,7 +151053,7 @@ class ArcGisUtilities {
|
|
|
151029
151053
|
// and return information needed to initiate the authentification process... the end-user
|
|
151030
151054
|
// will have to provide his credentials before we can fully validate this source.
|
|
151031
151055
|
if (json.error.code === ArcGisErrorCode.TokenRequired) {
|
|
151032
|
-
return { status: _internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.RequireAuth };
|
|
151056
|
+
return (userName || password) ? { status: _internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidCredentials } : { status: _internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.RequireAuth };
|
|
151033
151057
|
}
|
|
151034
151058
|
else if (json.error.code === ArcGisErrorCode.InvalidCredentials)
|
|
151035
151059
|
return { status: _internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidCredentials };
|
|
@@ -181300,28 +181324,31 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
181300
181324
|
/* harmony export */ ClipStepAction: () => (/* binding */ ClipStepAction),
|
|
181301
181325
|
/* harmony export */ ClipUtilities: () => (/* binding */ ClipUtilities)
|
|
181302
181326
|
/* harmony export */ });
|
|
181303
|
-
/* harmony import */ var
|
|
181304
|
-
/* harmony import */ var
|
|
181305
|
-
/* harmony import */ var
|
|
181306
|
-
/* harmony import */ var
|
|
181307
|
-
/* harmony import */ var
|
|
181308
|
-
/* harmony import */ var
|
|
181309
|
-
/* harmony import */ var
|
|
181310
|
-
/* harmony import */ var
|
|
181311
|
-
/* harmony import */ var
|
|
181312
|
-
/* harmony import */ var
|
|
181313
|
-
/* harmony import */ var
|
|
181314
|
-
/* harmony import */ var
|
|
181315
|
-
/* harmony import */ var
|
|
181316
|
-
/* harmony import */ var
|
|
181317
|
-
/* harmony import */ var
|
|
181318
|
-
/* harmony import */ var
|
|
181319
|
-
/* harmony import */ var
|
|
181320
|
-
/* harmony import */ var
|
|
181321
|
-
/* harmony import */ var
|
|
181322
|
-
/* harmony import */ var
|
|
181323
|
-
/* harmony import */ var
|
|
181324
|
-
/* harmony import */ var
|
|
181327
|
+
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
181328
|
+
/* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
181329
|
+
/* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
|
|
181330
|
+
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
181331
|
+
/* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
181332
|
+
/* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
181333
|
+
/* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
181334
|
+
/* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
181335
|
+
/* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
181336
|
+
/* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
|
|
181337
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
181338
|
+
/* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
|
|
181339
|
+
/* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
|
|
181340
|
+
/* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
|
|
181341
|
+
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
181342
|
+
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
181343
|
+
/* harmony import */ var _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/ReusableObjectCache */ "../../core/geometry/lib/esm/geometry3d/ReusableObjectCache.js");
|
|
181344
|
+
/* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
|
|
181345
|
+
/* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
181346
|
+
/* harmony import */ var _ClipPlane__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
|
|
181347
|
+
/* harmony import */ var _ClipPrimitive__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ClipPrimitive */ "../../core/geometry/lib/esm/clipping/ClipPrimitive.js");
|
|
181348
|
+
/* harmony import */ var _ClipVector__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ClipVector */ "../../core/geometry/lib/esm/clipping/ClipVector.js");
|
|
181349
|
+
/* harmony import */ var _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
|
|
181350
|
+
/* harmony import */ var _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./internalContexts/LineStringOffsetClipperContext */ "../../core/geometry/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js");
|
|
181351
|
+
/* harmony import */ var _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./UnionOfConvexClipPlaneSets */ "../../core/geometry/lib/esm/clipping/UnionOfConvexClipPlaneSets.js");
|
|
181325
181352
|
/*---------------------------------------------------------------------------------------------
|
|
181326
181353
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
181327
181354
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -181347,6 +181374,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
181347
181374
|
|
|
181348
181375
|
|
|
181349
181376
|
|
|
181377
|
+
|
|
181378
|
+
|
|
181379
|
+
|
|
181350
181380
|
|
|
181351
181381
|
|
|
181352
181382
|
|
|
@@ -181412,7 +181442,7 @@ class ClipUtilities {
|
|
|
181412
181442
|
const n = unsortedFractions.length;
|
|
181413
181443
|
for (let i = 1; i < n; i++) {
|
|
181414
181444
|
f1 = unsortedFractions.atUncheckedIndex(i);
|
|
181415
|
-
if (f1 > f0 +
|
|
181445
|
+
if (f1 > f0 + _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallFraction) {
|
|
181416
181446
|
fMid = 0.5 * (f0 + f1);
|
|
181417
181447
|
if (fMid >= 0.0 && fMid <= 1.0) {
|
|
181418
181448
|
curve.fractionToPoint(fMid, testPoint);
|
|
@@ -181469,7 +181499,7 @@ class ClipUtilities {
|
|
|
181469
181499
|
let result;
|
|
181470
181500
|
// Create "local region" which is the result of rotating region to make
|
|
181471
181501
|
// it parallel to the xy-plane and then translating it to the xy-plane.
|
|
181472
|
-
const localToWorld = ClipUtilities._workTransform =
|
|
181502
|
+
const localToWorld = ClipUtilities._workTransform = _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_2__.FrameBuilder.createRightHandedFrame(undefined, region, ClipUtilities._workTransform);
|
|
181473
181503
|
if (!localToWorld)
|
|
181474
181504
|
return result;
|
|
181475
181505
|
const worldToLocal = localToWorld?.inverse();
|
|
@@ -181486,24 +181516,24 @@ class ClipUtilities {
|
|
|
181486
181516
|
const localRegionRange = ClipUtilities._workRange = localRegion.range();
|
|
181487
181517
|
const xLength = localRegionRange.xLength();
|
|
181488
181518
|
const yLength = localRegionRange.yLength();
|
|
181489
|
-
const rectangle =
|
|
181519
|
+
const rectangle = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__.LineString3d.createRectangleXY(localRegionRange.low, xLength, yLength, true);
|
|
181490
181520
|
rectangle.tryTransformInPlace(localToWorld);
|
|
181491
181521
|
// Clip the rectangle to produce fragment(s) which we can Boolean intersect with the input region.
|
|
181492
181522
|
const insideFragments = [];
|
|
181493
181523
|
const outsideFragments = [];
|
|
181494
|
-
const cache = new
|
|
181524
|
+
const cache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_4__.GrowableXYZArrayCache();
|
|
181495
181525
|
clipper.appendPolygonClip?.(rectangle.packedPoints, insideFragments, outsideFragments, cache);
|
|
181496
181526
|
if (insideFragments.length === 0)
|
|
181497
181527
|
return result;
|
|
181498
181528
|
// Create the "clipped region".
|
|
181499
181529
|
for (const fragment of insideFragments) {
|
|
181500
|
-
const loop =
|
|
181530
|
+
const loop = _curve_Loop__WEBPACK_IMPORTED_MODULE_5__.Loop.createPolygon(fragment);
|
|
181501
181531
|
loop.tryTransformInPlace(worldToLocal);
|
|
181502
|
-
const clippedLocalRegion =
|
|
181532
|
+
const clippedLocalRegion = _curve_RegionOps__WEBPACK_IMPORTED_MODULE_6__.RegionOps.regionBooleanXY(localRegion, loop, _curve_RegionOps__WEBPACK_IMPORTED_MODULE_6__.RegionBinaryOpType.Intersection);
|
|
181503
181533
|
if (clippedLocalRegion) {
|
|
181504
181534
|
clippedLocalRegion.tryTransformInPlace(localToWorld);
|
|
181505
181535
|
if (!result)
|
|
181506
|
-
result = (clippedLocalRegion instanceof
|
|
181536
|
+
result = (clippedLocalRegion instanceof _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_7__.UnionRegion) ? clippedLocalRegion : _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_7__.UnionRegion.create(clippedLocalRegion);
|
|
181507
181537
|
else if (!result.tryAddChild(clippedLocalRegion))
|
|
181508
181538
|
result.children.push(...clippedLocalRegion.children);
|
|
181509
181539
|
}
|
|
@@ -181517,14 +181547,14 @@ class ClipUtilities {
|
|
|
181517
181547
|
* @return array of clipped components of the input curve or region that lie inside the clipper
|
|
181518
181548
|
*/
|
|
181519
181549
|
static clipAnyCurve(curve, clipper) {
|
|
181520
|
-
if (curve instanceof
|
|
181550
|
+
if (curve instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_8__.CurvePrimitive)
|
|
181521
181551
|
return ClipUtilities.collectClippedCurves(curve, clipper);
|
|
181522
181552
|
if (curve.isAnyRegion()) {
|
|
181523
181553
|
const ret = ClipUtilities.clipAnyRegion(curve, clipper);
|
|
181524
181554
|
return ret ? [ret] : [];
|
|
181525
181555
|
}
|
|
181526
181556
|
const result = [];
|
|
181527
|
-
if (curve instanceof
|
|
181557
|
+
if (curve instanceof _curve_Path__WEBPACK_IMPORTED_MODULE_9__.Path || curve instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_10__.BagOfCurves) {
|
|
181528
181558
|
for (const child of curve.children) {
|
|
181529
181559
|
const partialClip = ClipUtilities.clipAnyCurve(child, clipper);
|
|
181530
181560
|
result.push(...partialClip);
|
|
@@ -181570,8 +181600,8 @@ class ClipUtilities {
|
|
|
181570
181600
|
for (const plane of convexSet.planes) {
|
|
181571
181601
|
let numInside = 0, numOutside = 0;
|
|
181572
181602
|
const planeDistance = plane.distance - tolerance;
|
|
181573
|
-
const currPt =
|
|
181574
|
-
const currVec =
|
|
181603
|
+
const currPt = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_11__.Point3d.create();
|
|
181604
|
+
const currVec = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_11__.Vector3d.create();
|
|
181575
181605
|
for (let i = 0; i < points.length; i++) {
|
|
181576
181606
|
points.getPoint3dAtUncheckedPointIndex(i, currPt);
|
|
181577
181607
|
currVec.setFrom(currPt);
|
|
@@ -181599,15 +181629,15 @@ class ClipUtilities {
|
|
|
181599
181629
|
* @param ignoreInvisiblePlanes if true, do NOT compute a facet for convex set faces marked invisible.
|
|
181600
181630
|
*/
|
|
181601
181631
|
static announceLoopsOfConvexClipPlaneSetIntersectRange(convexSet, range, loopFunction, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
|
|
181602
|
-
const work = new
|
|
181632
|
+
const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
|
|
181603
181633
|
if (includeConvexSetFaces) {
|
|
181604
181634
|
// Clip convexSet planes to the range and to the rest of the convexSet . .
|
|
181605
|
-
if (convexSet instanceof
|
|
181635
|
+
if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet) {
|
|
181606
181636
|
for (const plane of convexSet.planes) {
|
|
181607
181637
|
if (ignoreInvisiblePlanes && plane.invisible)
|
|
181608
181638
|
continue;
|
|
181609
181639
|
const pointsClippedToRange = plane.intersectRange(range, true);
|
|
181610
|
-
const finalPoints = new
|
|
181640
|
+
const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
|
|
181611
181641
|
if (pointsClippedToRange) {
|
|
181612
181642
|
convexSet.polygonClip(pointsClippedToRange, finalPoints, work, plane);
|
|
181613
181643
|
if (finalPoints.length > 0)
|
|
@@ -181630,10 +181660,10 @@ class ClipUtilities {
|
|
|
181630
181660
|
// clip range faces to the convex set . . .
|
|
181631
181661
|
const corners = range.corners();
|
|
181632
181662
|
for (let i = 0; i < 6; i++) {
|
|
181633
|
-
const indices =
|
|
181634
|
-
const finalPoints = new
|
|
181635
|
-
const lineString =
|
|
181636
|
-
if (convexSet instanceof
|
|
181663
|
+
const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.faceCornerIndices(i);
|
|
181664
|
+
const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
|
|
181665
|
+
const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__.LineString3d.createIndexedPoints(corners, indices);
|
|
181666
|
+
if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet) {
|
|
181637
181667
|
convexSet.polygonClip(lineString.packedPoints, finalPoints, work);
|
|
181638
181668
|
if (finalPoints.length > 0)
|
|
181639
181669
|
loopFunction(finalPoints);
|
|
@@ -181658,18 +181688,18 @@ class ClipUtilities {
|
|
|
181658
181688
|
*/
|
|
181659
181689
|
static loopsOfConvexClipPlaneIntersectionWithRange(allClippers, range, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
|
|
181660
181690
|
const result = [];
|
|
181661
|
-
if (allClippers instanceof
|
|
181691
|
+
if (allClippers instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_15__.UnionOfConvexClipPlaneSets) {
|
|
181662
181692
|
for (const clipper of allClippers.convexSets) {
|
|
181663
181693
|
this.announceLoopsOfConvexClipPlaneSetIntersectRange(clipper, range, (points) => {
|
|
181664
181694
|
if (points.length > 0)
|
|
181665
|
-
result.push(
|
|
181695
|
+
result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_5__.Loop.createPolygon(points));
|
|
181666
181696
|
}, includeConvexSetFaces, includeRangeFaces, ignoreInvisiblePlanes);
|
|
181667
181697
|
}
|
|
181668
181698
|
}
|
|
181669
|
-
else if (allClippers instanceof
|
|
181699
|
+
else if (allClippers instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet || allClippers instanceof _ClipPlane__WEBPACK_IMPORTED_MODULE_16__.ClipPlane) {
|
|
181670
181700
|
this.announceLoopsOfConvexClipPlaneSetIntersectRange(allClippers, range, (points) => {
|
|
181671
181701
|
if (points.length > 0)
|
|
181672
|
-
result.push(
|
|
181702
|
+
result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_5__.Loop.createPolygon(points));
|
|
181673
181703
|
}, includeConvexSetFaces, includeRangeFaces, ignoreInvisiblePlanes);
|
|
181674
181704
|
}
|
|
181675
181705
|
return result;
|
|
@@ -181681,7 +181711,7 @@ class ClipUtilities {
|
|
|
181681
181711
|
* @param range range to intersect
|
|
181682
181712
|
*/
|
|
181683
181713
|
static rangeOfConvexClipPlaneSetIntersectionWithRange(convexSet, range) {
|
|
181684
|
-
const result =
|
|
181714
|
+
const result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.createNull();
|
|
181685
181715
|
this.announceLoopsOfConvexClipPlaneSetIntersectRange(convexSet, range, (points) => {
|
|
181686
181716
|
if (points.length > 0)
|
|
181687
181717
|
result.extendArray(points);
|
|
@@ -181704,22 +181734,22 @@ class ClipUtilities {
|
|
|
181704
181734
|
static rangeOfClipperIntersectionWithRange(clipper, range, observeInvisibleFlag = true) {
|
|
181705
181735
|
if (clipper === undefined)
|
|
181706
181736
|
return range.clone();
|
|
181707
|
-
if (clipper instanceof
|
|
181737
|
+
if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet)
|
|
181708
181738
|
return this.rangeOfConvexClipPlaneSetIntersectionWithRange(clipper, range);
|
|
181709
|
-
if (clipper instanceof
|
|
181710
|
-
const rangeUnion =
|
|
181739
|
+
if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_15__.UnionOfConvexClipPlaneSets) {
|
|
181740
|
+
const rangeUnion = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.createNull();
|
|
181711
181741
|
for (const c of clipper.convexSets) {
|
|
181712
181742
|
const rangeC = this.rangeOfConvexClipPlaneSetIntersectionWithRange(c, range);
|
|
181713
181743
|
rangeUnion.extendRange(rangeC);
|
|
181714
181744
|
}
|
|
181715
181745
|
return rangeUnion;
|
|
181716
181746
|
}
|
|
181717
|
-
if (clipper instanceof
|
|
181747
|
+
if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_17__.ClipPrimitive) {
|
|
181718
181748
|
if (observeInvisibleFlag && clipper.invisible)
|
|
181719
181749
|
return range.clone();
|
|
181720
181750
|
return this.rangeOfClipperIntersectionWithRange(clipper.fetchClipPlanesRef(), range);
|
|
181721
181751
|
}
|
|
181722
|
-
if (clipper instanceof
|
|
181752
|
+
if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_18__.ClipVector) {
|
|
181723
181753
|
const rangeIntersection = range.clone();
|
|
181724
181754
|
for (const c of clipper.clips) {
|
|
181725
181755
|
if (observeInvisibleFlag && c.invisible) {
|
|
@@ -181751,21 +181781,21 @@ class ClipUtilities {
|
|
|
181751
181781
|
static doesClipperIntersectRange(clipper, range, observeInvisibleFlag = true) {
|
|
181752
181782
|
if (clipper === undefined)
|
|
181753
181783
|
return true;
|
|
181754
|
-
if (clipper instanceof
|
|
181784
|
+
if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet)
|
|
181755
181785
|
return this.doesConvexClipPlaneSetIntersectRange(clipper, range);
|
|
181756
|
-
if (clipper instanceof
|
|
181786
|
+
if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_15__.UnionOfConvexClipPlaneSets) {
|
|
181757
181787
|
for (const c of clipper.convexSets) {
|
|
181758
181788
|
if (this.doesConvexClipPlaneSetIntersectRange(c, range))
|
|
181759
181789
|
return true;
|
|
181760
181790
|
}
|
|
181761
181791
|
return false;
|
|
181762
181792
|
}
|
|
181763
|
-
if (clipper instanceof
|
|
181793
|
+
if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_17__.ClipPrimitive) {
|
|
181764
181794
|
if (observeInvisibleFlag && clipper.invisible) // um is there an easy way to detect range-completely-inside?
|
|
181765
181795
|
return true;
|
|
181766
181796
|
return this.doesClipperIntersectRange(clipper.fetchClipPlanesRef(), range);
|
|
181767
181797
|
}
|
|
181768
|
-
if (clipper instanceof
|
|
181798
|
+
if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_18__.ClipVector) {
|
|
181769
181799
|
const rangeIntersection = range.clone();
|
|
181770
181800
|
for (const c of clipper.clips) {
|
|
181771
181801
|
if (observeInvisibleFlag && c.invisible) {
|
|
@@ -181790,7 +181820,7 @@ class ClipUtilities {
|
|
|
181790
181820
|
* @param ignoreInvisiblePlanes if true, do NOT compute a facet for convex set faces marked invisible.
|
|
181791
181821
|
*/
|
|
181792
181822
|
static doesConvexClipPlaneSetIntersectRange(convexSet, range, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
|
|
181793
|
-
const work = new
|
|
181823
|
+
const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
|
|
181794
181824
|
if (includeConvexSetFaces) {
|
|
181795
181825
|
// Clip convexSet planes to the range and to the rest of the convexSet . .
|
|
181796
181826
|
for (const plane of convexSet.planes) {
|
|
@@ -181798,7 +181828,7 @@ class ClipUtilities {
|
|
|
181798
181828
|
continue;
|
|
181799
181829
|
const pointsClippedToRange = plane.intersectRange(range, true);
|
|
181800
181830
|
if (pointsClippedToRange) {
|
|
181801
|
-
const finalPoints = new
|
|
181831
|
+
const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
|
|
181802
181832
|
convexSet.polygonClip(pointsClippedToRange, finalPoints, work, plane);
|
|
181803
181833
|
if (finalPoints.length > 0)
|
|
181804
181834
|
return true;
|
|
@@ -181809,9 +181839,9 @@ class ClipUtilities {
|
|
|
181809
181839
|
// clip range faces to the convex set . . .
|
|
181810
181840
|
const corners = range.corners();
|
|
181811
181841
|
for (let i = 0; i < 6; i++) {
|
|
181812
|
-
const indices =
|
|
181813
|
-
const finalPoints = new
|
|
181814
|
-
const lineString =
|
|
181842
|
+
const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.faceCornerIndices(i);
|
|
181843
|
+
const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
|
|
181844
|
+
const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__.LineString3d.createIndexedPoints(corners, indices);
|
|
181815
181845
|
convexSet.polygonClip(lineString.packedPoints, finalPoints, work);
|
|
181816
181846
|
if (finalPoints.length > 0)
|
|
181817
181847
|
return true;
|
|
@@ -181819,32 +181849,110 @@ class ClipUtilities {
|
|
|
181819
181849
|
}
|
|
181820
181850
|
return false;
|
|
181821
181851
|
}
|
|
181852
|
+
/**
|
|
181853
|
+
* Create a clipper from the transformed range.
|
|
181854
|
+
* @param range input range to create clipper from
|
|
181855
|
+
* @param transform how to transform the range (NOTE: applied to the range faces without swelling the range volume)
|
|
181856
|
+
* @param degeneratePoints optionally populated with the 1 or 2 points defining the transformed range if it is degenerate (all points colinear/coincident); otherwise untouched
|
|
181857
|
+
* @returns newly constructed clipper. If no clip planes could be computed, fill `degeneratePoints` and return undefined.
|
|
181858
|
+
*/
|
|
181859
|
+
static createClipperFromTransformedRange3d(range, transform, degeneratePoints) {
|
|
181860
|
+
if (!transform)
|
|
181861
|
+
transform = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_19__.Transform.createIdentity();
|
|
181862
|
+
const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_20__.PolyfaceBuilder.create();
|
|
181863
|
+
builder.addTransformedRangeMesh(transform, range);
|
|
181864
|
+
const mesh = builder.claimPolyface();
|
|
181865
|
+
const clipper = this._workClipper = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet.createConvexPolyface(mesh, this._workClipper).clipper;
|
|
181866
|
+
if (clipper.planes.length > 0)
|
|
181867
|
+
return clipper;
|
|
181868
|
+
// no faces found in the compressed mesh
|
|
181869
|
+
if (degeneratePoints) {
|
|
181870
|
+
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(mesh.data.point.length <= 2);
|
|
181871
|
+
for (let i = 0; i < 2; ++i) {
|
|
181872
|
+
const point = mesh.data.point.getPoint3dAtCheckedPointIndex(i);
|
|
181873
|
+
if (point)
|
|
181874
|
+
degeneratePoints.push(point);
|
|
181875
|
+
}
|
|
181876
|
+
}
|
|
181877
|
+
return undefined;
|
|
181878
|
+
}
|
|
181879
|
+
/**
|
|
181880
|
+
* Handle pathological cases of range-range intersection, where one of the ranges defines no area or volume (is a line segment or single point).
|
|
181881
|
+
* @param range local range to intersect with the point/segment
|
|
181882
|
+
* @param points isolated local point, or local segment's start and end
|
|
181883
|
+
* @param localToWorld optional transform for output range
|
|
181884
|
+
* @param intersection optional range of the intersection, in world coordinates, or null range if no intersection.
|
|
181885
|
+
* @returns whether the point/segment intersects the range
|
|
181886
|
+
*/
|
|
181887
|
+
static rangeIntersectPointOrSegment(range, points, localToWorld, intersection) {
|
|
181888
|
+
const announceInterval = intersection ?
|
|
181889
|
+
(f0, f1, cp) => {
|
|
181890
|
+
intersection.extendPoint(cp.fractionToPoint(f0), localToWorld);
|
|
181891
|
+
intersection.extendPoint(cp.fractionToPoint(f1), localToWorld);
|
|
181892
|
+
} : undefined;
|
|
181893
|
+
let hasIntersection = false;
|
|
181894
|
+
if (points.length > 1) {
|
|
181895
|
+
const segment = _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_21__.LineSegment3d.createCapture(points[0], points[1]);
|
|
181896
|
+
const clipper = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet.createRange3dPlanes(range);
|
|
181897
|
+
hasIntersection = segment.announceClipIntervals(clipper, announceInterval);
|
|
181898
|
+
}
|
|
181899
|
+
else if (points.length > 0) {
|
|
181900
|
+
hasIntersection = range.containsPoint(points[0]);
|
|
181901
|
+
if (hasIntersection && intersection)
|
|
181902
|
+
intersection.extendPoint(points[0], localToWorld);
|
|
181903
|
+
}
|
|
181904
|
+
return hasIntersection;
|
|
181905
|
+
}
|
|
181822
181906
|
/**
|
|
181823
181907
|
* Test for intersection of two ranges in different local coordinates.
|
|
181824
181908
|
* * Useful for clash detection of elements in iModels, using their stored (tight) local ranges and placement transforms.
|
|
181825
|
-
* @param range0 range in local coordinates
|
|
181826
|
-
* @param local0ToWorld placement transform for first
|
|
181827
|
-
* @param range1 range in local coordinates
|
|
181828
|
-
* @param local1ToWorld placement transform for second
|
|
181909
|
+
* @param range0 first range in local coordinates
|
|
181910
|
+
* @param local0ToWorld placement transform for first range
|
|
181911
|
+
* @param range1 second range in local coordinates
|
|
181912
|
+
* @param local1ToWorld placement transform for second range. Assumed to be invertible.
|
|
181829
181913
|
* @param range1Margin optional signed local distance to expand/contract the second range before intersection. Positive expands.
|
|
181830
181914
|
* @return whether the local ranges are adjacent or intersect. Also returns false if local1ToWorld is singular.
|
|
181831
181915
|
*/
|
|
181832
181916
|
static doLocalRangesIntersect(range0, local0ToWorld, range1, local1ToWorld, range1Margin) {
|
|
181833
|
-
const worldToLocal1 =
|
|
181917
|
+
const worldToLocal1 = this._workTransform = local1ToWorld.inverse(this._workTransform);
|
|
181834
181918
|
if (!worldToLocal1)
|
|
181835
181919
|
return false;
|
|
181836
181920
|
let myRange1 = range1;
|
|
181837
181921
|
if (range1Margin) {
|
|
181838
|
-
myRange1 =
|
|
181922
|
+
myRange1 = this._workRange = range1.clone(this._workRange);
|
|
181839
181923
|
myRange1.expandInPlace(range1Margin);
|
|
181840
181924
|
}
|
|
181925
|
+
const degeneratePoints = [];
|
|
181926
|
+
const local0ToLocal1 = worldToLocal1.multiplyTransformTransform(local0ToWorld, worldToLocal1);
|
|
181841
181927
|
// convert range0 into a clipper in local1 coordinates, then intersect with range1
|
|
181928
|
+
const clipper = this.createClipperFromTransformedRange3d(range0, local0ToLocal1, degeneratePoints);
|
|
181929
|
+
if (clipper)
|
|
181930
|
+
return this.doesClipperIntersectRange(clipper, myRange1);
|
|
181931
|
+
return this.rangeIntersectPointOrSegment(myRange1, degeneratePoints, local1ToWorld);
|
|
181932
|
+
}
|
|
181933
|
+
/**
|
|
181934
|
+
* Compute the range of the intersection between two local (e.g., element-aligned) ranges.
|
|
181935
|
+
* @param range0 first range in local coordinates
|
|
181936
|
+
* @param local0ToWorld placement transform for first range
|
|
181937
|
+
* @param range1 second range in local coordinates
|
|
181938
|
+
* @param local1ToWorld placement transform for second range. Assumed to be invertible.
|
|
181939
|
+
* @param result optional pre-allocated range to fill and return
|
|
181940
|
+
* @return range of the intersection (aligned to world axes). Returns null range if local1ToWorld is singular.
|
|
181941
|
+
*/
|
|
181942
|
+
static rangeOfIntersectionOfLocalRanges(range0, local0ToWorld, range1, local1ToWorld, result) {
|
|
181943
|
+
const myResult = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.createNull(result);
|
|
181944
|
+
const worldToLocal1 = this._workTransform = local1ToWorld.inverse(this._workTransform);
|
|
181945
|
+
if (!worldToLocal1)
|
|
181946
|
+
return myResult;
|
|
181947
|
+
const degeneratePoints = [];
|
|
181842
181948
|
const local0ToLocal1 = worldToLocal1.multiplyTransformTransform(local0ToWorld, worldToLocal1);
|
|
181843
|
-
|
|
181844
|
-
|
|
181845
|
-
|
|
181846
|
-
|
|
181847
|
-
|
|
181949
|
+
// convert range0 into a clipper in local1 coordinates, then intersect with range1
|
|
181950
|
+
const clipper = this.createClipperFromTransformedRange3d(range0, local0ToLocal1, degeneratePoints);
|
|
181951
|
+
if (clipper)
|
|
181952
|
+
this.announceLoopsOfConvexClipPlaneSetIntersectRange(clipper, range1, (loopPoints) => { loopPoints.extendRange(myResult, local1ToWorld); });
|
|
181953
|
+
else
|
|
181954
|
+
this.rangeIntersectPointOrSegment(range1, degeneratePoints, local1ToWorld, myResult);
|
|
181955
|
+
return myResult;
|
|
181848
181956
|
}
|
|
181849
181957
|
/**
|
|
181850
181958
|
* Test if `obj` is a `Clipper` object.
|
|
@@ -181895,9 +182003,9 @@ class ClipUtilities {
|
|
|
181895
182003
|
*/
|
|
181896
182004
|
static createXYOffsetClipFromLineString(points, leftOffset, rightOffset, z0, z1) {
|
|
181897
182005
|
if (Array.isArray(points)) {
|
|
181898
|
-
return
|
|
182006
|
+
return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_22__.LineStringOffsetClipperContext.createClipBetweenOffsets(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_23__.Point3dArrayCarrier(points), leftOffset, rightOffset, z0, z1);
|
|
181899
182007
|
}
|
|
181900
|
-
return
|
|
182008
|
+
return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_22__.LineStringOffsetClipperContext.createClipBetweenOffsets(points, leftOffset, rightOffset, z0, z1);
|
|
181901
182009
|
}
|
|
181902
182010
|
/** If data.length >= minLength threshold, push it to destination; if smaller drop it back to the cache. */
|
|
181903
182011
|
static captureOrDrop(data, minLength, destination, cache) {
|
|
@@ -182087,7 +182195,7 @@ class ClipUtilities {
|
|
|
182087
182195
|
*/
|
|
182088
182196
|
static doPolygonClipSequence(xyz, clippers, acceptedIn, acceptedOut, finalCandidates, inAction, outAction, finalFragmentAction, arrayCache) {
|
|
182089
182197
|
if (arrayCache === undefined)
|
|
182090
|
-
arrayCache = new
|
|
182198
|
+
arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_4__.GrowableXYZArrayCache();
|
|
182091
182199
|
let candidates = [arrayCache.grabAndFill(xyz)];
|
|
182092
182200
|
let nextCandidates = [];
|
|
182093
182201
|
const intermediateIn = [];
|
|
@@ -182124,7 +182232,7 @@ class ClipUtilities {
|
|
|
182124
182232
|
/** Pass polygon `xyz` through a sequence of PolygonClip steps with "parity" rules */
|
|
182125
182233
|
static doPolygonClipParitySequence(xyz, clippers, acceptedIn, acceptedOut, arrayCache) {
|
|
182126
182234
|
if (arrayCache === undefined)
|
|
182127
|
-
arrayCache = new
|
|
182235
|
+
arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_4__.GrowableXYZArrayCache();
|
|
182128
182236
|
let candidatesOut = [arrayCache.grabAndFill(xyz)];
|
|
182129
182237
|
let candidatesIn = [];
|
|
182130
182238
|
let nextCandidatesIn = [];
|
|
@@ -182176,22 +182284,22 @@ class ClipUtilities {
|
|
|
182176
182284
|
*/
|
|
182177
182285
|
static createComplementaryClips(clipper) {
|
|
182178
182286
|
const planes = clipper.planes;
|
|
182179
|
-
const interval =
|
|
182287
|
+
const interval = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range1d.createNull();
|
|
182180
182288
|
const n = planes.length;
|
|
182181
182289
|
const newClippers = [];
|
|
182182
182290
|
for (const p of planes) {
|
|
182183
|
-
const outerSet =
|
|
182291
|
+
const outerSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet.createEmpty();
|
|
182184
182292
|
outerSet.addPlaneToConvexSet(p.cloneNegated());
|
|
182185
182293
|
newClippers.push(outerSet);
|
|
182186
182294
|
}
|
|
182187
182295
|
for (let i = 0; i < n; i++) {
|
|
182188
182296
|
for (let j = i + 1; j < n; j++) {
|
|
182189
|
-
const ray =
|
|
182297
|
+
const ray = _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_24__.CurveFactory.planePlaneIntersectionRay(planes[i], planes[j]);
|
|
182190
182298
|
if (ray) {
|
|
182191
182299
|
if (clipper.hasIntersectionWithRay(ray, interval)) {
|
|
182192
182300
|
// the normal-to-normal vector is bisector (or close to bisector?)
|
|
182193
182301
|
const newNormal = planes[j].inwardNormalRef.minus(planes[i].inwardNormalRef);
|
|
182194
|
-
const plane1 =
|
|
182302
|
+
const plane1 = _ClipPlane__WEBPACK_IMPORTED_MODULE_16__.ClipPlane.createNormalAndPoint(newNormal, ray.origin);
|
|
182195
182303
|
if (plane1) {
|
|
182196
182304
|
const plane2 = plane1.cloneNegated();
|
|
182197
182305
|
newClippers[i].addPlaneToConvexSet(plane1);
|
|
@@ -182201,10 +182309,10 @@ class ClipUtilities {
|
|
|
182201
182309
|
}
|
|
182202
182310
|
}
|
|
182203
182311
|
}
|
|
182204
|
-
return
|
|
182312
|
+
return _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_15__.UnionOfConvexClipPlaneSets.createConvexSets(newClippers);
|
|
182205
182313
|
}
|
|
182206
182314
|
}
|
|
182207
|
-
ClipUtilities._selectIntervals01TestPoint =
|
|
182315
|
+
ClipUtilities._selectIntervals01TestPoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_11__.Point3d.create();
|
|
182208
182316
|
|
|
182209
182317
|
function moveFragments(fragments, destination, arrayCache) {
|
|
182210
182318
|
if (destination === undefined)
|
|
@@ -228762,7 +228870,8 @@ class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {
|
|
|
228762
228870
|
computeStep() {
|
|
228763
228871
|
if (this._func.evaluate(this._currentUV.x, this._currentUV.y)) {
|
|
228764
228872
|
const fA = this._func.currentF;
|
|
228765
|
-
if (
|
|
228873
|
+
if ( // Given X_{n+1} = X_n - dX = X_n - JInv(X_n) F(X_n), we solve J(X_n) dX = F(X_n) for dX:
|
|
228874
|
+
_Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.linearSystem2d(fA.vectorU.x, fA.vectorV.x, fA.vectorU.y, fA.vectorV.y, fA.origin.x, fA.origin.y, this._currentStep))
|
|
228766
228875
|
return true;
|
|
228767
228876
|
}
|
|
228768
228877
|
return false;
|
|
@@ -234447,6 +234556,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
|
|
|
234447
234556
|
this.addTransformedRangeMesh(transform, _geometry3d_Range__WEBPACK_IMPORTED_MODULE_6__.Range3d.createXYZXYZ(0, 0, 0, 1, 1, 1));
|
|
234448
234557
|
}
|
|
234449
234558
|
/** Add facets for a transformed range box.
|
|
234559
|
+
* * For best results, the transformed range corners should define a nonzero volume or area.
|
|
234450
234560
|
* @param transform applied to the range points before adding to the polyface
|
|
234451
234561
|
* @param range sides become 6 quad polyface facets
|
|
234452
234562
|
* @param faceSelector for each face in the order of BoxTopology.cornerIndexCCW, faceSelector[i]===false skips that facet.
|
|
@@ -281680,7 +281790,7 @@ class TestContext {
|
|
|
281680
281790
|
this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
|
|
281681
281791
|
const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
|
|
281682
281792
|
await core_frontend_1.NoRenderApp.startup({
|
|
281683
|
-
applicationVersion: "4.3.0-dev.
|
|
281793
|
+
applicationVersion: "4.3.0-dev.16",
|
|
281684
281794
|
applicationId: this.settings.gprid,
|
|
281685
281795
|
authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
|
|
281686
281796
|
hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
|
|
@@ -301088,7 +301198,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
|
|
|
301088
301198
|
/***/ ((module) => {
|
|
301089
301199
|
|
|
301090
301200
|
"use strict";
|
|
301091
|
-
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.0-dev.
|
|
301201
|
+
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.0-dev.16","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.3.0-dev.16","@itwin/core-bentley":"workspace:^4.3.0-dev.16","@itwin/core-common":"workspace:^4.3.0-dev.16","@itwin/core-geometry":"workspace:^4.3.0-dev.16","@itwin/core-orbitgt":"workspace:^4.3.0-dev.16","@itwin/core-quantity":"workspace:^4.3.0-dev.16"},"//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.3.10","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","typemoq":"^2.1.0","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"}}');
|
|
301092
301202
|
|
|
301093
301203
|
/***/ }),
|
|
301094
301204
|
|