@itwin/ecschema-rpcinterface-tests 5.1.0-dev.10 → 5.1.0-dev.12
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/backend/BackendInit.js.map +1 -1
- package/lib/common/Settings.js +4 -4
- package/lib/common/Settings.js.map +1 -1
- package/lib/common/SideChannels.js.map +1 -1
- package/lib/dist/_bea9.bundled-tests.js.map +1 -1
- package/lib/dist/bundled-tests.js +252 -186
- 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_cross-fetch_4_0_0_node_modules_cross-fetch_dist_browser-24291b.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_1_6_node_modules_loaders_gl_draco_di-0642a6.bundled-tests.js.map +1 -1
- package/lib/frontend/SchemaRpcInterface.test.js.map +1 -1
- package/lib/frontend/setup/IModelSession.js.map +1 -1
- package/lib/frontend/setup/TestContext.js.map +1 -1
- package/package.json +16 -16
|
@@ -64635,34 +64635,44 @@ class ECClass extends _SchemaItem__WEBPACK_IMPORTED_MODULE_9__.SchemaItem {
|
|
|
64635
64635
|
* @param name The name of the property to retrieve.
|
|
64636
64636
|
* @param excludeInherited If true, excludes inherited properties from the results. Defaults to false.
|
|
64637
64637
|
*/
|
|
64638
|
-
async getProperty(name, excludeInherited
|
|
64638
|
+
async getProperty(name, excludeInherited) {
|
|
64639
|
+
const upperKey = name.toUpperCase();
|
|
64640
|
+
let property;
|
|
64639
64641
|
if (this._properties) {
|
|
64640
|
-
|
|
64641
|
-
|
|
64642
|
-
if (property)
|
|
64642
|
+
property = this._properties.get(upperKey);
|
|
64643
|
+
if (property) {
|
|
64643
64644
|
return property;
|
|
64645
|
+
}
|
|
64644
64646
|
}
|
|
64645
64647
|
if (excludeInherited) {
|
|
64646
64648
|
return undefined;
|
|
64647
64649
|
}
|
|
64648
|
-
|
|
64650
|
+
if (!this._mergedPropertyCache) {
|
|
64651
|
+
this._mergedPropertyCache = await this.buildPropertyCache();
|
|
64652
|
+
}
|
|
64653
|
+
return this._mergedPropertyCache.get(upperKey);
|
|
64649
64654
|
}
|
|
64650
64655
|
/**
|
|
64651
64656
|
* Searches, case-insensitive, for a local ECProperty with the name provided.
|
|
64652
64657
|
* @param name The name of the property to retrieve.
|
|
64653
64658
|
* @param excludeInherited If true, excludes inherited properties from the results. Defaults to false.
|
|
64654
64659
|
*/
|
|
64655
|
-
getPropertySync(name, excludeInherited
|
|
64660
|
+
getPropertySync(name, excludeInherited) {
|
|
64661
|
+
const upperKey = name.toUpperCase();
|
|
64662
|
+
let property;
|
|
64656
64663
|
if (this._properties) {
|
|
64657
|
-
|
|
64658
|
-
|
|
64659
|
-
if (property)
|
|
64664
|
+
property = this._properties.get(upperKey);
|
|
64665
|
+
if (property) {
|
|
64660
64666
|
return property;
|
|
64667
|
+
}
|
|
64661
64668
|
}
|
|
64662
64669
|
if (excludeInherited) {
|
|
64663
64670
|
return undefined;
|
|
64664
64671
|
}
|
|
64665
|
-
|
|
64672
|
+
if (!this._mergedPropertyCache) {
|
|
64673
|
+
this._mergedPropertyCache = this.buildPropertyCacheSync();
|
|
64674
|
+
}
|
|
64675
|
+
return this._mergedPropertyCache.get(upperKey);
|
|
64666
64676
|
}
|
|
64667
64677
|
/**
|
|
64668
64678
|
* Searches the base class, if one exists, for the property with the name provided.
|
|
@@ -64994,69 +65004,51 @@ class ECClass extends _SchemaItem__WEBPACK_IMPORTED_MODULE_9__.SchemaItem {
|
|
|
64994
65004
|
}
|
|
64995
65005
|
/**
|
|
64996
65006
|
*
|
|
64997
|
-
* @param
|
|
64998
|
-
* @
|
|
64999
|
-
* @param propertiesToMerge
|
|
65000
|
-
* @param overwriteExisting
|
|
65007
|
+
* @param cache
|
|
65008
|
+
* @returns
|
|
65001
65009
|
*
|
|
65002
65010
|
* @internal
|
|
65003
65011
|
*/
|
|
65004
|
-
|
|
65005
|
-
|
|
65006
|
-
|
|
65007
|
-
|
|
65008
|
-
|
|
65009
|
-
if (
|
|
65010
|
-
|
|
65012
|
+
async buildPropertyCache() {
|
|
65013
|
+
const cache = new Map();
|
|
65014
|
+
const baseClass = await this.baseClass;
|
|
65015
|
+
if (baseClass) {
|
|
65016
|
+
for (const property of await baseClass.getProperties()) {
|
|
65017
|
+
if (!cache.has(property.name.toUpperCase())) {
|
|
65018
|
+
cache.set(property.name.toUpperCase(), property);
|
|
65011
65019
|
}
|
|
65012
65020
|
}
|
|
65013
|
-
else {
|
|
65014
|
-
existingValues.set(upperCaseName, target.length);
|
|
65015
|
-
target.push(property);
|
|
65016
|
-
}
|
|
65017
|
-
}
|
|
65018
|
-
}
|
|
65019
|
-
/**
|
|
65020
|
-
*
|
|
65021
|
-
* @param result
|
|
65022
|
-
* @param existingValues
|
|
65023
|
-
* @returns
|
|
65024
|
-
*
|
|
65025
|
-
* @internal
|
|
65026
|
-
*/
|
|
65027
|
-
async buildPropertyCache(result, existingValues) {
|
|
65028
|
-
if (!existingValues) {
|
|
65029
|
-
existingValues = new Map();
|
|
65030
65021
|
}
|
|
65031
|
-
if (this.
|
|
65032
|
-
|
|
65033
|
-
|
|
65034
|
-
|
|
65035
|
-
}
|
|
65022
|
+
if (this._properties) {
|
|
65023
|
+
this._properties.forEach(property => {
|
|
65024
|
+
cache.set(property.name.toUpperCase(), property);
|
|
65025
|
+
});
|
|
65036
65026
|
}
|
|
65037
|
-
|
|
65038
|
-
return;
|
|
65039
|
-
ECClass.mergeProperties(result, existingValues, [...this._properties.values()], true);
|
|
65027
|
+
return cache;
|
|
65040
65028
|
}
|
|
65041
65029
|
/**
|
|
65042
65030
|
*
|
|
65043
|
-
* @param
|
|
65044
|
-
* @param existingValues
|
|
65031
|
+
* @param cache
|
|
65045
65032
|
* @returns
|
|
65046
65033
|
*
|
|
65047
65034
|
* @internal
|
|
65048
65035
|
*/
|
|
65049
|
-
buildPropertyCacheSync(
|
|
65050
|
-
|
|
65051
|
-
existingValues = new Map();
|
|
65052
|
-
}
|
|
65036
|
+
buildPropertyCacheSync() {
|
|
65037
|
+
const cache = new Map();
|
|
65053
65038
|
const baseClass = this.getBaseClassSync();
|
|
65054
65039
|
if (baseClass) {
|
|
65055
|
-
|
|
65040
|
+
for (const property of baseClass.getPropertiesSync()) {
|
|
65041
|
+
if (!cache.has(property.name.toUpperCase())) {
|
|
65042
|
+
cache.set(property.name.toUpperCase(), property);
|
|
65043
|
+
}
|
|
65044
|
+
}
|
|
65056
65045
|
}
|
|
65057
|
-
if (
|
|
65058
|
-
|
|
65059
|
-
|
|
65046
|
+
if (this._properties) {
|
|
65047
|
+
this._properties.forEach(property => {
|
|
65048
|
+
cache.set(property.name.toUpperCase(), property);
|
|
65049
|
+
});
|
|
65050
|
+
}
|
|
65051
|
+
return cache;
|
|
65060
65052
|
}
|
|
65061
65053
|
/**
|
|
65062
65054
|
* Clears all caches on this object. This is called implicitly for this class,
|
|
@@ -65077,10 +65069,9 @@ class ECClass extends _SchemaItem__WEBPACK_IMPORTED_MODULE_9__.SchemaItem {
|
|
|
65077
65069
|
return this._properties && this._properties.size > 0 ? this._properties.values() : [];
|
|
65078
65070
|
}
|
|
65079
65071
|
if (!this._mergedPropertyCache) {
|
|
65080
|
-
this._mergedPropertyCache =
|
|
65081
|
-
this.buildPropertyCacheSync(this._mergedPropertyCache, undefined);
|
|
65072
|
+
this._mergedPropertyCache = this.buildPropertyCacheSync();
|
|
65082
65073
|
}
|
|
65083
|
-
return this._mergedPropertyCache;
|
|
65074
|
+
return this._mergedPropertyCache.values();
|
|
65084
65075
|
}
|
|
65085
65076
|
/**
|
|
65086
65077
|
* Quick way to check whether this class has any local properties without having to use the iterable
|
|
@@ -65701,44 +65692,64 @@ class EntityClass extends _Class__WEBPACK_IMPORTED_MODULE_4__.ECClass {
|
|
|
65701
65692
|
}
|
|
65702
65693
|
/**
|
|
65703
65694
|
*
|
|
65704
|
-
* @param
|
|
65705
|
-
* @
|
|
65695
|
+
* @param cache
|
|
65696
|
+
* @returns
|
|
65697
|
+
*
|
|
65706
65698
|
* @internal
|
|
65707
65699
|
*/
|
|
65708
|
-
async buildPropertyCache(
|
|
65709
|
-
|
|
65710
|
-
existingValues = new Map();
|
|
65711
|
-
}
|
|
65700
|
+
async buildPropertyCache() {
|
|
65701
|
+
const cache = new Map();
|
|
65712
65702
|
const baseClass = await this.baseClass;
|
|
65713
65703
|
if (baseClass) {
|
|
65714
|
-
|
|
65704
|
+
for (const property of await baseClass.getProperties()) {
|
|
65705
|
+
if (!cache.has(property.name.toUpperCase()))
|
|
65706
|
+
cache.set(property.name.toUpperCase(), property);
|
|
65707
|
+
}
|
|
65715
65708
|
}
|
|
65716
65709
|
for (const mixin of this.mixins) {
|
|
65717
|
-
const
|
|
65718
|
-
|
|
65710
|
+
const mixinObj = await mixin;
|
|
65711
|
+
const mixinProps = mixinObj.getPropertiesSync();
|
|
65712
|
+
for (const property of mixinProps) {
|
|
65713
|
+
if (!cache.has(property.name.toUpperCase()))
|
|
65714
|
+
cache.set(property.name.toUpperCase(), property);
|
|
65715
|
+
}
|
|
65716
|
+
}
|
|
65717
|
+
const localProps = await this.getProperties(true);
|
|
65718
|
+
if (localProps) {
|
|
65719
|
+
for (const property of localProps) {
|
|
65720
|
+
cache.set(property.name.toUpperCase(), property);
|
|
65721
|
+
}
|
|
65719
65722
|
}
|
|
65720
|
-
|
|
65721
|
-
_Class__WEBPACK_IMPORTED_MODULE_4__.ECClass.mergeProperties(result, existingValues, localProps, true);
|
|
65723
|
+
return cache;
|
|
65722
65724
|
}
|
|
65723
65725
|
/**
|
|
65724
65726
|
*
|
|
65725
|
-
* @param
|
|
65726
|
-
* @param existingValues
|
|
65727
|
+
* @param cache
|
|
65727
65728
|
* @internal
|
|
65728
65729
|
*/
|
|
65729
|
-
buildPropertyCacheSync(
|
|
65730
|
-
|
|
65731
|
-
existingValues = new Map();
|
|
65732
|
-
}
|
|
65730
|
+
buildPropertyCacheSync() {
|
|
65731
|
+
const cache = new Map();
|
|
65733
65732
|
const baseClass = this.getBaseClassSync();
|
|
65734
65733
|
if (baseClass) {
|
|
65735
|
-
|
|
65734
|
+
Array.from(baseClass.getPropertiesSync()).forEach((property) => {
|
|
65735
|
+
if (!cache.has(property.name.toUpperCase()))
|
|
65736
|
+
cache.set(property.name.toUpperCase(), property);
|
|
65737
|
+
});
|
|
65736
65738
|
}
|
|
65737
65739
|
for (const mixin of this.getMixinsSync()) {
|
|
65738
|
-
|
|
65740
|
+
const mixinProps = mixin.getPropertiesSync();
|
|
65741
|
+
for (const property of mixinProps) {
|
|
65742
|
+
if (!cache.has(property.name.toUpperCase()))
|
|
65743
|
+
cache.set(property.name.toUpperCase(), property);
|
|
65744
|
+
}
|
|
65739
65745
|
}
|
|
65740
65746
|
const localProps = this.getPropertiesSync(true);
|
|
65741
|
-
|
|
65747
|
+
if (localProps) {
|
|
65748
|
+
Array.from(localProps).forEach(property => {
|
|
65749
|
+
cache.set(property.name.toUpperCase(), property);
|
|
65750
|
+
});
|
|
65751
|
+
}
|
|
65752
|
+
return cache;
|
|
65742
65753
|
}
|
|
65743
65754
|
/**
|
|
65744
65755
|
*
|
|
@@ -89385,8 +89396,18 @@ class ViewAttachments {
|
|
|
89385
89396
|
get isEmpty() {
|
|
89386
89397
|
return 0 === this._attachments.length;
|
|
89387
89398
|
}
|
|
89388
|
-
|
|
89389
|
-
return this._attachments.every((x) =>
|
|
89399
|
+
areAllTileTreesLoaded(displayedExtents) {
|
|
89400
|
+
return this._attachments.every((x) => {
|
|
89401
|
+
const placement = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Placement2d.fromJSON(x.viewAttachmentProps.placement);
|
|
89402
|
+
const attachmentRange = placement.calculateRange();
|
|
89403
|
+
if (!attachmentRange.intersectsRangeXY(displayedExtents))
|
|
89404
|
+
return true;
|
|
89405
|
+
return x.areAllTileTreesLoaded;
|
|
89406
|
+
});
|
|
89407
|
+
}
|
|
89408
|
+
/** Strictly for testing purposes */
|
|
89409
|
+
areAllAttachmentsLoaded() {
|
|
89410
|
+
return this._attachments.every((attachment) => attachment.areAllTileTreesLoaded);
|
|
89390
89411
|
}
|
|
89391
89412
|
discloseTileTrees(trees) {
|
|
89392
89413
|
for (const attachment of this._attachments)
|
|
@@ -89565,7 +89586,19 @@ class SheetViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_12__.ViewState2
|
|
|
89565
89586
|
this._attachments = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this._attachments);
|
|
89566
89587
|
}
|
|
89567
89588
|
get areAllTileTreesLoaded() {
|
|
89568
|
-
|
|
89589
|
+
let displayedExtents = this._viewedExtents;
|
|
89590
|
+
const frustum = this.calculateFrustum();
|
|
89591
|
+
if (frustum) {
|
|
89592
|
+
displayedExtents = frustum.toRange();
|
|
89593
|
+
}
|
|
89594
|
+
return super.areAllTileTreesLoaded && (!this._attachments || this._attachments.areAllTileTreesLoaded(displayedExtents));
|
|
89595
|
+
}
|
|
89596
|
+
/** @internal Strictly for testing */
|
|
89597
|
+
areAllAttachmentsLoaded() {
|
|
89598
|
+
if (this._attachments) {
|
|
89599
|
+
return this._attachments.areAllAttachmentsLoaded();
|
|
89600
|
+
}
|
|
89601
|
+
return true;
|
|
89569
89602
|
}
|
|
89570
89603
|
/** Create a sheet border decoration graphic. */
|
|
89571
89604
|
createBorder(width, height, context) {
|
|
@@ -184930,7 +184963,8 @@ class BSpline2dNd extends _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geom
|
|
|
184930
184963
|
knots;
|
|
184931
184964
|
/** flat array of coordinate data, blocked by poleDimension and row */
|
|
184932
184965
|
coffs;
|
|
184933
|
-
/**
|
|
184966
|
+
/**
|
|
184967
|
+
* Number of components per pole.
|
|
184934
184968
|
* * 3 for conventional xyz surface
|
|
184935
184969
|
* * 4 for weighted (wx, wy, wz, w) surface.
|
|
184936
184970
|
*/
|
|
@@ -204061,7 +204095,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
204061
204095
|
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
204062
204096
|
/* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
|
|
204063
204097
|
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
204064
|
-
/* harmony import */ var
|
|
204098
|
+
/* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
204065
204099
|
/* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
204066
204100
|
/*---------------------------------------------------------------------------------------------
|
|
204067
204101
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
@@ -204138,49 +204172,31 @@ class RegionMomentsXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
|
|
|
204138
204172
|
this._activeMomentData = undefined;
|
|
204139
204173
|
return momentData;
|
|
204140
204174
|
}
|
|
204141
|
-
|
|
204142
|
-
|
|
204143
|
-
|
|
204144
|
-
|
|
204145
|
-
|
|
204146
|
-
|
|
204147
|
-
|
|
204148
|
-
const childMoments = this.handleLoop(child);
|
|
204175
|
+
handleAnyRegion(region) {
|
|
204176
|
+
const summedMoments = _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_3__.MomentData.create();
|
|
204177
|
+
// guarantee there is no overlapping children
|
|
204178
|
+
const merged = _RegionOps__WEBPACK_IMPORTED_MODULE_4__.RegionOps.regionBooleanXY(region, undefined, _RegionOps__WEBPACK_IMPORTED_MODULE_4__.RegionBinaryOpType.Union);
|
|
204179
|
+
if (merged) {
|
|
204180
|
+
for (const child of merged.children) {
|
|
204181
|
+
const childMoments = child.dispatchToGeometryHandler(this);
|
|
204149
204182
|
if (childMoments) {
|
|
204150
|
-
|
|
204151
|
-
|
|
204152
|
-
if (q > maxAbsArea) {
|
|
204153
|
-
maxAbsArea = q;
|
|
204154
|
-
largestChildMoments = childMoments;
|
|
204155
|
-
}
|
|
204183
|
+
const sign0 = childMoments.signFactor(1.0);
|
|
204184
|
+
summedMoments.accumulateProducts(childMoments, sign0);
|
|
204156
204185
|
}
|
|
204157
204186
|
}
|
|
204158
204187
|
}
|
|
204159
|
-
|
|
204160
|
-
|
|
204161
|
-
const sign0 = largestChildMoments.signFactor(1.0);
|
|
204162
|
-
summedMoments.accumulateProducts(largestChildMoments, sign0);
|
|
204163
|
-
for (const childMoments of allChildMoments) {
|
|
204164
|
-
if (childMoments !== largestChildMoments) {
|
|
204165
|
-
const sign1 = childMoments.signFactor(-1.0);
|
|
204166
|
-
summedMoments.accumulateProducts(childMoments, sign1);
|
|
204167
|
-
}
|
|
204168
|
-
}
|
|
204169
|
-
return summedMoments;
|
|
204188
|
+
else {
|
|
204189
|
+
return undefined;
|
|
204170
204190
|
}
|
|
204171
|
-
return
|
|
204191
|
+
return summedMoments;
|
|
204192
|
+
}
|
|
204193
|
+
/** Accumulate integrals from origin to the components of the parity region. */
|
|
204194
|
+
handleParityRegion(region) {
|
|
204195
|
+
return this.handleAnyRegion(region);
|
|
204172
204196
|
}
|
|
204173
204197
|
/** Accumulate integrals from origin to the components of the union region. */
|
|
204174
204198
|
handleUnionRegion(region) {
|
|
204175
|
-
|
|
204176
|
-
for (const child of region.children) {
|
|
204177
|
-
const childMoments = child.dispatchToGeometryHandler(this);
|
|
204178
|
-
if (childMoments) {
|
|
204179
|
-
const sign0 = childMoments.signFactor(1.0);
|
|
204180
|
-
summedMoments.accumulateProducts(childMoments, sign0);
|
|
204181
|
-
}
|
|
204182
|
-
}
|
|
204183
|
-
return summedMoments;
|
|
204199
|
+
return this.handleAnyRegion(region);
|
|
204184
204200
|
}
|
|
204185
204201
|
_strokeOptions;
|
|
204186
204202
|
getStrokeOptions() {
|
|
@@ -204238,9 +204254,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
204238
204254
|
/* harmony import */ var _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry3d/IndexedXYZCollection */ "../../core/geometry/lib/esm/geometry3d/IndexedXYZCollection.js");
|
|
204239
204255
|
/* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
|
|
204240
204256
|
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
204241
|
-
/* harmony import */ var
|
|
204257
|
+
/* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
|
|
204242
204258
|
/* harmony import */ var _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../geometry3d/PolylineCompressionByEdgeOffset */ "../../core/geometry/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js");
|
|
204243
|
-
/* harmony import */ var
|
|
204259
|
+
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
204244
204260
|
/* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
|
|
204245
204261
|
/* harmony import */ var _geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../geometry3d/SortablePolygon */ "../../core/geometry/lib/esm/geometry3d/SortablePolygon.js");
|
|
204246
204262
|
/* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
|
|
@@ -204248,16 +204264,17 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
204248
204264
|
/* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
204249
204265
|
/* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
|
|
204250
204266
|
/* harmony import */ var _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../topology/HalfEdgeGraphSearch */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphSearch.js");
|
|
204251
|
-
/* harmony import */ var
|
|
204267
|
+
/* harmony import */ var _topology_Merging__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../topology/Merging */ "../../core/geometry/lib/esm/topology/Merging.js");
|
|
204252
204268
|
/* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
|
|
204253
204269
|
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
204254
|
-
/* harmony import */ var
|
|
204270
|
+
/* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
204255
204271
|
/* harmony import */ var _CurveOps__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
|
|
204256
204272
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
204257
204273
|
/* harmony import */ var _CurveWireMomentsXYZ__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CurveWireMomentsXYZ */ "../../core/geometry/lib/esm/curve/CurveWireMomentsXYZ.js");
|
|
204258
|
-
/* harmony import */ var
|
|
204274
|
+
/* harmony import */ var _GeometryQuery__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
|
|
204259
204275
|
/* harmony import */ var _internalContexts_ChainCollectorContext__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./internalContexts/ChainCollectorContext */ "../../core/geometry/lib/esm/curve/internalContexts/ChainCollectorContext.js");
|
|
204260
204276
|
/* harmony import */ var _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internalContexts/PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
|
|
204277
|
+
/* harmony import */ var _internalContexts_TransferWithSplitArcs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./internalContexts/TransferWithSplitArcs */ "../../core/geometry/lib/esm/curve/internalContexts/TransferWithSplitArcs.js");
|
|
204261
204278
|
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
204262
204279
|
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
204263
204280
|
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
@@ -204313,6 +204330,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
204313
204330
|
|
|
204314
204331
|
|
|
204315
204332
|
|
|
204333
|
+
|
|
204316
204334
|
|
|
204317
204335
|
|
|
204318
204336
|
/**
|
|
@@ -204562,8 +204580,8 @@ class RegionOps {
|
|
|
204562
204580
|
* to connect interior loops to exterior loops.
|
|
204563
204581
|
*/
|
|
204564
204582
|
static regionBooleanXY(loopsA, loopsB, operation, mergeTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
|
|
204565
|
-
// Always return UnionRegion for now
|
|
204566
|
-
//
|
|
204583
|
+
// Always return UnionRegion for now, but keep return type as AnyRegion.
|
|
204584
|
+
// In the future, we might return the *simplest* region type.
|
|
204567
204585
|
const result = _UnionRegion__WEBPACK_IMPORTED_MODULE_13__.UnionRegion.create();
|
|
204568
204586
|
const context = _RegionOpsClassificationSweeps__WEBPACK_IMPORTED_MODULE_12__.RegionBooleanContext.create(_RegionOpsClassificationSweeps__WEBPACK_IMPORTED_MODULE_12__.RegionGroupOpType.Union, _RegionOpsClassificationSweeps__WEBPACK_IMPORTED_MODULE_12__.RegionGroupOpType.Union);
|
|
204569
204587
|
context.addMembers(loopsA, loopsB);
|
|
@@ -204907,7 +204925,7 @@ class RegionOps {
|
|
|
204907
204925
|
* SignedLoops object.
|
|
204908
204926
|
* @param curvesAndRegions Any collection of curves. Each Loop/ParityRegion/UnionRegion contributes its curve
|
|
204909
204927
|
* primitives.
|
|
204910
|
-
* @param tolerance optional distance tolerance for coincidence
|
|
204928
|
+
* @param tolerance optional distance tolerance for coincidence.
|
|
204911
204929
|
* @returns array of [[SignedLoops]], each entry of which describes the faces in a single connected component:
|
|
204912
204930
|
* * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
|
|
204913
204931
|
* positive area and counterclockwise orientation.
|
|
@@ -204917,10 +204935,11 @@ class RegionOps {
|
|
|
204917
204935
|
* to the edge and a constituent curve in each.
|
|
204918
204936
|
*/
|
|
204919
204937
|
static constructAllXYRegionLoops(curvesAndRegions, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
|
|
204920
|
-
|
|
204938
|
+
let primitives = RegionOps.collectCurvePrimitives(curvesAndRegions, undefined, true, true);
|
|
204939
|
+
primitives = _internalContexts_TransferWithSplitArcs__WEBPACK_IMPORTED_MODULE_33__.TransferWithSplitArcs.clone(_CurveCollection__WEBPACK_IMPORTED_MODULE_24__.BagOfCurves.create(...primitives)).children;
|
|
204921
204940
|
const range = this.curveArrayRange(primitives);
|
|
204922
204941
|
const areaTol = this.computeXYAreaTolerance(range, tolerance);
|
|
204923
|
-
const intersections =
|
|
204942
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_34__.CurveCurve.allIntersectionsAmongPrimitivesXY(primitives, tolerance);
|
|
204924
204943
|
const graph = _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_14__.PlanarSubdivision.assembleHalfEdgeGraph(primitives, intersections, tolerance);
|
|
204925
204944
|
return _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_14__.PlanarSubdivision.collectSignedLoopSetsInHalfEdgeGraph(graph, areaTol);
|
|
204926
204945
|
}
|
|
@@ -204978,12 +204997,12 @@ class RegionOps {
|
|
|
204978
204997
|
* @param worldToLocal transform to apply to data before computing its range
|
|
204979
204998
|
*/
|
|
204980
204999
|
static curveArrayRange(data, worldToLocal) {
|
|
204981
|
-
const range =
|
|
204982
|
-
if (data instanceof
|
|
205000
|
+
const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_35__.Range3d.create();
|
|
205001
|
+
if (data instanceof _GeometryQuery__WEBPACK_IMPORTED_MODULE_36__.GeometryQuery)
|
|
204983
205002
|
data.extendRange(range, worldToLocal);
|
|
204984
205003
|
else if (Array.isArray(data)) {
|
|
204985
205004
|
for (const c of data) {
|
|
204986
|
-
if (c instanceof
|
|
205005
|
+
if (c instanceof _GeometryQuery__WEBPACK_IMPORTED_MODULE_36__.GeometryQuery)
|
|
204987
205006
|
c.extendRange(range, worldToLocal);
|
|
204988
205007
|
else if (c instanceof _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Point3d)
|
|
204989
205008
|
range.extendPoint(c, worldToLocal);
|
|
@@ -205019,7 +205038,7 @@ class RegionOps {
|
|
|
205019
205038
|
for (const polygon of polygons)
|
|
205020
205039
|
writablePolygons.push(_geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_17__.GrowableXYZArray.create(polygon));
|
|
205021
205040
|
}
|
|
205022
|
-
const sortedPolygons =
|
|
205041
|
+
const sortedPolygons = _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_37__.PolygonOps.sortOuterAndHoleLoopsXY(writablePolygons);
|
|
205023
205042
|
if (sortedPolygons.length === 1) { // below requires exactly one outer loop!
|
|
205024
205043
|
if (graph = _topology_Triangulation__WEBPACK_IMPORTED_MODULE_10__.Triangulator.createTriangulatedGraphFromLoops(sortedPolygons[0]))
|
|
205025
205044
|
_topology_Triangulation__WEBPACK_IMPORTED_MODULE_10__.Triangulator.flipTriangles(graph);
|
|
@@ -205104,7 +205123,7 @@ class RegionOps {
|
|
|
205104
205123
|
if (!graph)
|
|
205105
205124
|
return undefined;
|
|
205106
205125
|
if (options?.maximizeConvexFacets)
|
|
205107
|
-
|
|
205126
|
+
_topology_Merging__WEBPACK_IMPORTED_MODULE_38__.HalfEdgeGraphOps.expandConvexFaces(graph);
|
|
205108
205127
|
return _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_11__.PolyfaceBuilder.graphToPolyface(graph, options);
|
|
205109
205128
|
}
|
|
205110
205129
|
/**
|
|
@@ -205118,7 +205137,7 @@ class RegionOps {
|
|
|
205118
205137
|
if (!graph)
|
|
205119
205138
|
return undefined;
|
|
205120
205139
|
if (maximize)
|
|
205121
|
-
|
|
205140
|
+
_topology_Merging__WEBPACK_IMPORTED_MODULE_38__.HalfEdgeGraphOps.expandConvexFaces(graph);
|
|
205122
205141
|
const convexPolygons = [];
|
|
205123
205142
|
graph.announceFaceLoops((_graph, seed) => {
|
|
205124
205143
|
if (!seed.isMaskSet(_topology_Graph__WEBPACK_IMPORTED_MODULE_16__.HalfEdgeMask.EXTERIOR))
|
|
@@ -205172,24 +205191,25 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
205172
205191
|
/* harmony export */ RegionOpsFaceToFaceSearch: () => (/* binding */ RegionOpsFaceToFaceSearch)
|
|
205173
205192
|
/* harmony export */ });
|
|
205174
205193
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
205175
|
-
/* harmony import */ var
|
|
205194
|
+
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
205176
205195
|
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
205177
|
-
/* harmony import */ var
|
|
205196
|
+
/* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
|
|
205178
205197
|
/* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
|
|
205179
205198
|
/* harmony import */ var _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../topology/HalfEdgeGraphSearch */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphSearch.js");
|
|
205180
205199
|
/* harmony import */ var _topology_Merging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../topology/Merging */ "../../core/geometry/lib/esm/topology/Merging.js");
|
|
205181
205200
|
/* harmony import */ var _topology_RegularizeFace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../topology/RegularizeFace */ "../../core/geometry/lib/esm/topology/RegularizeFace.js");
|
|
205182
|
-
/* harmony import */ var
|
|
205183
|
-
/* harmony import */ var
|
|
205184
|
-
/* harmony import */ var
|
|
205201
|
+
/* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
205202
|
+
/* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
205203
|
+
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
205185
205204
|
/* harmony import */ var _GeometryQuery__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
|
|
205186
|
-
/* harmony import */ var
|
|
205187
|
-
/* harmony import */ var
|
|
205205
|
+
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
205206
|
+
/* harmony import */ var _internalContexts_TransferWithSplitArcs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./internalContexts/TransferWithSplitArcs */ "../../core/geometry/lib/esm/curve/internalContexts/TransferWithSplitArcs.js");
|
|
205207
|
+
/* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
205188
205208
|
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
205189
205209
|
/* harmony import */ var _ParityRegion__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
|
|
205190
|
-
/* harmony import */ var
|
|
205210
|
+
/* harmony import */ var _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Query/PlanarSubdivision */ "../../core/geometry/lib/esm/curve/Query/PlanarSubdivision.js");
|
|
205191
205211
|
/* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
205192
|
-
/* harmony import */ var
|
|
205212
|
+
/* harmony import */ var _UnionRegion__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
|
|
205193
205213
|
/*---------------------------------------------------------------------------------------------
|
|
205194
205214
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
205195
205215
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -205216,6 +205236,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
205216
205236
|
|
|
205217
205237
|
|
|
205218
205238
|
|
|
205239
|
+
|
|
205219
205240
|
/**
|
|
205220
205241
|
* base class for callbacks during region sweeps.
|
|
205221
205242
|
* * At start of a component, `startComponent(node)` is called announcing a representative node on the outermost face.
|
|
@@ -205532,8 +205553,7 @@ class RegionGroup {
|
|
|
205532
205553
|
}
|
|
205533
205554
|
return range;
|
|
205534
205555
|
}
|
|
205535
|
-
/** Ask if the current _numIn count qualifies as an "in" for this operation type.
|
|
205536
|
-
*/
|
|
205556
|
+
/** Ask if the current _numIn count qualifies as an "in" for this operation type. */
|
|
205537
205557
|
getInOut() {
|
|
205538
205558
|
// UNION is true if one or more members are IN
|
|
205539
205559
|
if (this.groupOpType === RegionGroupOpType.Union)
|
|
@@ -205549,11 +205569,12 @@ class RegionGroup {
|
|
|
205549
205569
|
// push new members into the group.
|
|
205550
205570
|
addMember(data, allowLineSegment = false) {
|
|
205551
205571
|
if (data instanceof _Loop__WEBPACK_IMPORTED_MODULE_8__.Loop || data instanceof _ParityRegion__WEBPACK_IMPORTED_MODULE_9__.ParityRegion) {
|
|
205552
|
-
|
|
205572
|
+
let cleanerData = data.clone();
|
|
205553
205573
|
_RegionOps__WEBPACK_IMPORTED_MODULE_1__.RegionOps.consolidateAdjacentPrimitives(cleanerData);
|
|
205574
|
+
cleanerData = _internalContexts_TransferWithSplitArcs__WEBPACK_IMPORTED_MODULE_10__.TransferWithSplitArcs.clone(cleanerData);
|
|
205554
205575
|
this.members.push(new RegionGroupMember(cleanerData, this));
|
|
205555
205576
|
}
|
|
205556
|
-
else if (data instanceof
|
|
205577
|
+
else if (data instanceof _UnionRegion__WEBPACK_IMPORTED_MODULE_11__.UnionRegion) {
|
|
205557
205578
|
for (const child of data.children) {
|
|
205558
205579
|
this.addMember(child);
|
|
205559
205580
|
}
|
|
@@ -205563,7 +205584,7 @@ class RegionGroup {
|
|
|
205563
205584
|
this.addMember(item);
|
|
205564
205585
|
}
|
|
205565
205586
|
}
|
|
205566
|
-
else if (allowLineSegment && data instanceof
|
|
205587
|
+
else if (allowLineSegment && data instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d) {
|
|
205567
205588
|
this.members.push(new RegionGroupMember(data, this));
|
|
205568
205589
|
}
|
|
205569
205590
|
}
|
|
@@ -205580,22 +205601,22 @@ class RegionGroup {
|
|
|
205580
205601
|
/**
|
|
205581
205602
|
* A `RegionBooleanContext` carries structure and operations for binary operations between two sets of regions.
|
|
205582
205603
|
* * In the binary operation OP (union, intersection, parity, difference), the left and right operands
|
|
205583
|
-
*
|
|
205604
|
+
* are each a composite union, difference, or parity among multiple inputs, i.e.,
|
|
205584
205605
|
* * (operationA among Ai) OP (operationB among Bi)
|
|
205585
205606
|
* * where the Ai are one set of regions, being combined by operationA
|
|
205586
|
-
* * and the Bi are the another set of regions, being combined by operationB
|
|
205587
|
-
* * Each group of Ai and Bi is a `RegionGroup
|
|
205607
|
+
* * and the Bi are the another set of regions, being combined by operationB.
|
|
205608
|
+
* * Each group of Ai and Bi is a `RegionGroup`.
|
|
205588
205609
|
* * This is an extremely delicate structure.
|
|
205589
205610
|
* * Members are public because of the unique variety of queries, but should only be used for queries.
|
|
205590
205611
|
* * The graph and curves in the booleans are connected by an extended pointer chain:
|
|
205591
|
-
* * (HalfEdge in Graph).edgeTag points to a CurveLocationDetail
|
|
205592
|
-
* * (CurveLocationDetail).curve points to a curve
|
|
205593
|
-
* * (Curve).parent points to RegionGroupMember
|
|
205594
|
-
* * (RegionGroupMember) points to RegionGroup
|
|
205595
|
-
* * (RegionGroup) points to RegionBooleanBinaryContext
|
|
205596
|
-
* * So
|
|
205597
|
-
* * the chain leads to a parity count in the RegionGroupMember
|
|
205598
|
-
* * that can change the number of members active in the RegionGroup
|
|
205612
|
+
* * (HalfEdge in Graph).edgeTag points to a CurveLocationDetail.
|
|
205613
|
+
* * (CurveLocationDetail).curve points to a curve.
|
|
205614
|
+
* * (Curve).parent points to RegionGroupMember.
|
|
205615
|
+
* * (RegionGroupMember) points to RegionGroup.
|
|
205616
|
+
* * (RegionGroup) points to RegionBooleanBinaryContext.
|
|
205617
|
+
* * So when a graph sweep crosses an edge
|
|
205618
|
+
* * the chain leads to a parity count in the RegionGroupMember.
|
|
205619
|
+
* * that can change the number of members active in the RegionGroup.
|
|
205599
205620
|
* * which can change the state of the context.
|
|
205600
205621
|
* @internal
|
|
205601
205622
|
*/
|
|
@@ -205610,7 +205631,7 @@ class RegionBooleanContext {
|
|
|
205610
205631
|
this.groupA = new RegionGroup(this, groupTypeA);
|
|
205611
205632
|
this.groupB = new RegionGroup(this, groupTypeB);
|
|
205612
205633
|
this.extraGeometry = new RegionGroup(this, RegionGroupOpType.NonBounding);
|
|
205613
|
-
this.binaryOp = _RegionOps__WEBPACK_IMPORTED_MODULE_1__.RegionBinaryOpType.Union; //
|
|
205634
|
+
this.binaryOp = _RegionOps__WEBPACK_IMPORTED_MODULE_1__.RegionBinaryOpType.Union; // revised in runClassificationSweep
|
|
205614
205635
|
}
|
|
205615
205636
|
/**
|
|
205616
205637
|
* Create a context with both A and B groups empty.
|
|
@@ -205629,7 +205650,7 @@ class RegionBooleanContext {
|
|
|
205629
205650
|
this.addConnectives();
|
|
205630
205651
|
}
|
|
205631
205652
|
_workSegment;
|
|
205632
|
-
static _bridgeDirection =
|
|
205653
|
+
static _bridgeDirection = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_13__.Vector3d.createNormalized(1.0, -0.12328974132467); // magic unit direction to minimize vertex hits
|
|
205633
205654
|
/**
|
|
205634
205655
|
* The sweep operations require access to all geometry by edge crossings and face walk.
|
|
205635
205656
|
* If input loops are non-overlapping, there may be disconnected islands not reachable.
|
|
@@ -205644,7 +205665,7 @@ class RegionBooleanContext {
|
|
|
205644
205665
|
const rangeAB = rangeA.union(rangeB);
|
|
205645
205666
|
const areaTol = _RegionOps__WEBPACK_IMPORTED_MODULE_1__.RegionOps.computeXYAreaTolerance(rangeAB);
|
|
205646
205667
|
let margin = 0.1;
|
|
205647
|
-
this._workSegment =
|
|
205668
|
+
this._workSegment = _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_14__.PlaneAltitudeRangeContext.findExtremePointsInDirection(rangeAB.corners(), RegionBooleanContext._bridgeDirection, this._workSegment);
|
|
205648
205669
|
if (this._workSegment)
|
|
205649
205670
|
margin *= this._workSegment.point0Ref.distanceXY(this._workSegment.point1Ref); // how much further to extend each bridge ray
|
|
205650
205671
|
const maxPoints = [];
|
|
@@ -205652,7 +205673,7 @@ class RegionBooleanContext {
|
|
|
205652
205673
|
const area = _RegionOps__WEBPACK_IMPORTED_MODULE_1__.RegionOps.computeXYArea(region);
|
|
205653
205674
|
if (area === undefined || Math.abs(area) < areaTol)
|
|
205654
205675
|
return; // avoid bridging trivial faces
|
|
205655
|
-
this._workSegment =
|
|
205676
|
+
this._workSegment = _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_14__.PlaneAltitudeRangeContext.findExtremePointsInDirection(region, RegionBooleanContext._bridgeDirection, this._workSegment);
|
|
205656
205677
|
if (this._workSegment)
|
|
205657
205678
|
maxPoints.push(this._workSegment.point1Ref);
|
|
205658
205679
|
};
|
|
@@ -205667,17 +205688,17 @@ class RegionBooleanContext {
|
|
|
205667
205688
|
}
|
|
205668
205689
|
}
|
|
205669
205690
|
}
|
|
205670
|
-
const ray =
|
|
205691
|
+
const ray = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_15__.Ray3d.createZero();
|
|
205671
205692
|
for (const p of maxPoints) {
|
|
205672
|
-
// Make a line from
|
|
205673
|
-
//
|
|
205674
|
-
//
|
|
205675
|
-
// If p came from some inner loop this will
|
|
205676
|
-
//
|
|
205677
|
-
//
|
|
205678
|
-
const bridgeLength = margin +
|
|
205679
|
-
const outside =
|
|
205680
|
-
const bridgeLine =
|
|
205693
|
+
// Make a line from
|
|
205694
|
+
// 1) exactly the max point of the loops to
|
|
205695
|
+
// 2) a point clearly outside the big range
|
|
205696
|
+
// If p came from some inner loop this will
|
|
205697
|
+
// 1) create a bridge from the inner loop through any containing loops (always)
|
|
205698
|
+
// 2) avoid crossing any containing loop at a vertex. (with high probability, but not absolutely always)
|
|
205699
|
+
const bridgeLength = margin + _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_15__.Ray3d.create(p, RegionBooleanContext._bridgeDirection, ray).intersectionWithRange3d(rangeAB).high;
|
|
205700
|
+
const outside = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_13__.Point3d.createAdd2Scaled(p, 1.0, RegionBooleanContext._bridgeDirection, bridgeLength);
|
|
205701
|
+
const bridgeLine = _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d.createXYXY(p.x, p.y, outside.x, outside.y);
|
|
205681
205702
|
this.extraGeometry.addMember(bridgeLine, true);
|
|
205682
205703
|
}
|
|
205683
205704
|
}
|
|
@@ -205691,7 +205712,7 @@ class RegionBooleanContext {
|
|
|
205691
205712
|
*/
|
|
205692
205713
|
annotateAndMergeCurvesInGraph(mergeTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_7__.Geometry.smallMetricDistance) {
|
|
205693
205714
|
const allPrimitives = [];
|
|
205694
|
-
// ASSUME loops have fine-grained types
|
|
205715
|
+
// ASSUME loops have fine-grained types (no linestrings)
|
|
205695
205716
|
for (const group of [this.groupA, this.groupB, this.extraGeometry]) {
|
|
205696
205717
|
for (const member of group.members) {
|
|
205697
205718
|
let k = allPrimitives.length;
|
|
@@ -205702,9 +205723,8 @@ class RegionBooleanContext {
|
|
|
205702
205723
|
}
|
|
205703
205724
|
}
|
|
205704
205725
|
}
|
|
205705
|
-
|
|
205706
|
-
const
|
|
205707
|
-
const graph = _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_16__.PlanarSubdivision.assembleHalfEdgeGraph(allPrimitives, intersections, mergeTolerance);
|
|
205726
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_16__.CurveCurve.allIntersectionsAmongPrimitivesXY(allPrimitives, mergeTolerance);
|
|
205727
|
+
const graph = _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_17__.PlanarSubdivision.assembleHalfEdgeGraph(allPrimitives, intersections, mergeTolerance);
|
|
205708
205728
|
this.graph = graph;
|
|
205709
205729
|
this.faceAreaFunction = faceAreaFromCurvedEdgeData;
|
|
205710
205730
|
}
|
|
@@ -205795,7 +205815,7 @@ class RegionBooleanContext {
|
|
|
205795
205815
|
const data = node.edgeTag;
|
|
205796
205816
|
if (data instanceof RegionGroupMember)
|
|
205797
205817
|
return updateRegionGroupMemberState(data);
|
|
205798
|
-
if (data instanceof
|
|
205818
|
+
if (data instanceof _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_18__.CurveLocationDetail) {
|
|
205799
205819
|
// We trust that the caller has linked from the graph node to a curve which has a RegionGroupMember as its parent.
|
|
205800
205820
|
const member = data.curve.parent;
|
|
205801
205821
|
if (member instanceof RegionGroupMember)
|
|
@@ -205850,10 +205870,10 @@ function areaUnderPartialCurveXY(detail, xyStart, xyEnd, referencePoint) {
|
|
|
205850
205870
|
}
|
|
205851
205871
|
let areaToChord = 0.0;
|
|
205852
205872
|
if (detail && detail.curve && detail.hasFraction1) {
|
|
205853
|
-
if (detail.curve instanceof
|
|
205873
|
+
if (detail.curve instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d) {
|
|
205854
205874
|
// ah .. nothing to do for a line segment
|
|
205855
205875
|
}
|
|
205856
|
-
else if (detail.curve instanceof
|
|
205876
|
+
else if (detail.curve instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_19__.Arc3d) {
|
|
205857
205877
|
areaToChord = detail.curve.areaToChordXY(detail.fraction, detail.fraction1);
|
|
205858
205878
|
}
|
|
205859
205879
|
}
|
|
@@ -212522,6 +212542,52 @@ class SumLengthsContext extends _CurveProcessor__WEBPACK_IMPORTED_MODULE_0__.Rec
|
|
|
212522
212542
|
}
|
|
212523
212543
|
|
|
212524
212544
|
|
|
212545
|
+
/***/ }),
|
|
212546
|
+
|
|
212547
|
+
/***/ "../../core/geometry/lib/esm/curve/internalContexts/TransferWithSplitArcs.js":
|
|
212548
|
+
/*!***********************************************************************************!*\
|
|
212549
|
+
!*** ../../core/geometry/lib/esm/curve/internalContexts/TransferWithSplitArcs.js ***!
|
|
212550
|
+
\***********************************************************************************/
|
|
212551
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
212552
|
+
|
|
212553
|
+
"use strict";
|
|
212554
|
+
__webpack_require__.r(__webpack_exports__);
|
|
212555
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
212556
|
+
/* harmony export */ TransferWithSplitArcs: () => (/* binding */ TransferWithSplitArcs)
|
|
212557
|
+
/* harmony export */ });
|
|
212558
|
+
/* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
212559
|
+
/* harmony import */ var _CloneCurvesContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CloneCurvesContext */ "../../core/geometry/lib/esm/curve/internalContexts/CloneCurvesContext.js");
|
|
212560
|
+
/*---------------------------------------------------------------------------------------------
|
|
212561
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
212562
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
212563
|
+
*--------------------------------------------------------------------------------------------*/
|
|
212564
|
+
/** @packageDocumentation
|
|
212565
|
+
* @module Curve
|
|
212566
|
+
*/
|
|
212567
|
+
|
|
212568
|
+
|
|
212569
|
+
/**
|
|
212570
|
+
* Algorithmic class for shallow-copying a CurveCollection with each full-sweep arc replaced by two half-sweep arcs.
|
|
212571
|
+
* * Often useful for building graphs from loops.
|
|
212572
|
+
* @internal
|
|
212573
|
+
*/
|
|
212574
|
+
class TransferWithSplitArcs extends _CloneCurvesContext__WEBPACK_IMPORTED_MODULE_0__.CloneCurvesContext {
|
|
212575
|
+
constructor() {
|
|
212576
|
+
super(undefined);
|
|
212577
|
+
}
|
|
212578
|
+
doClone(primitive) {
|
|
212579
|
+
if (primitive instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_1__.Arc3d && primitive.sweep.isFullCircle) // replace full arc with two half arcs
|
|
212580
|
+
return [primitive.clonePartialCurve(0.0, 0.5), primitive.clonePartialCurve(0.5, 1)];
|
|
212581
|
+
return primitive;
|
|
212582
|
+
}
|
|
212583
|
+
static clone(target) {
|
|
212584
|
+
const context = new TransferWithSplitArcs();
|
|
212585
|
+
target.announceToCurveProcessor(context);
|
|
212586
|
+
return context._result;
|
|
212587
|
+
}
|
|
212588
|
+
}
|
|
212589
|
+
|
|
212590
|
+
|
|
212525
212591
|
/***/ }),
|
|
212526
212592
|
|
|
212527
212593
|
/***/ "../../core/geometry/lib/esm/curve/internalContexts/TransformInPlaceContext.js":
|
|
@@ -299643,10 +299709,10 @@ class Settings {
|
|
|
299643
299709
|
});
|
|
299644
299710
|
}
|
|
299645
299711
|
toString() {
|
|
299646
|
-
return `Configurations:
|
|
299647
|
-
oidc client id: ${this.oidcClientId},
|
|
299648
|
-
oidc scopes: ${this.oidcScopes},
|
|
299649
|
-
applicationId: ${this.gprid},
|
|
299712
|
+
return `Configurations:
|
|
299713
|
+
oidc client id: ${this.oidcClientId},
|
|
299714
|
+
oidc scopes: ${this.oidcScopes},
|
|
299715
|
+
applicationId: ${this.gprid},
|
|
299650
299716
|
log level: ${this.logLevel}`;
|
|
299651
299717
|
}
|
|
299652
299718
|
}
|
|
@@ -312476,7 +312542,7 @@ var loadLanguages = instance.loadLanguages;
|
|
|
312476
312542
|
/***/ ((module) => {
|
|
312477
312543
|
|
|
312478
312544
|
"use strict";
|
|
312479
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.1.0-dev.
|
|
312545
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.1.0-dev.12","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 ES2022 --outDir lib/esm","clean":"rimraf -g 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 --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 --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","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:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//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/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/eslint-plugin":"5.0.0-dev.1","@types/chai-as-promised":"^7","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^6.0.1","source-map-loader":"^5.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^3.0.6","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//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.2.4","@itwin/object-storage-core":"^2.3.0","@itwin/core-i18n":"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"}}');
|
|
312480
312546
|
|
|
312481
312547
|
/***/ })
|
|
312482
312548
|
|