@itwin/rpcinterface-full-stack-tests 5.9.0-dev.15 → 5.9.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 +378 -437
- package/lib/dist/bundled-tests.js.map +1 -1
- package/package.json +14 -14
|
@@ -65718,7 +65718,7 @@ class DbQueryError extends _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Bent
|
|
|
65718
65718
|
this.request = request;
|
|
65719
65719
|
}
|
|
65720
65720
|
static throwIfError(response, request) {
|
|
65721
|
-
if (response.status >= DbResponseStatus.Error) {
|
|
65721
|
+
if (response.status >= (DbResponseStatus.Error)) {
|
|
65722
65722
|
throw new DbQueryError(response, request);
|
|
65723
65723
|
}
|
|
65724
65724
|
if (response.status === DbResponseStatus.Cancel) {
|
|
@@ -71630,12 +71630,11 @@ var HiddenLine;
|
|
|
71630
71630
|
*/
|
|
71631
71631
|
width;
|
|
71632
71632
|
constructor(json, hidden) {
|
|
71633
|
-
if (_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.JsonUtils.isEmptyObjectOrUndefined(json)) {
|
|
71633
|
+
if (!json || _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.JsonUtils.isEmptyObjectOrUndefined(json)) {
|
|
71634
71634
|
if (hidden)
|
|
71635
71635
|
this.pattern = _LinePixels__WEBPACK_IMPORTED_MODULE_2__.LinePixels.HiddenLine;
|
|
71636
71636
|
return;
|
|
71637
71637
|
}
|
|
71638
|
-
json = json; // per JsonUtils.isEmptyObjectOrUndefined()
|
|
71639
71638
|
if (undefined !== json.color && false !== json.ovrColor)
|
|
71640
71639
|
this.color = _ColorDef__WEBPACK_IMPORTED_MODULE_1__.ColorDef.fromJSON(json.color);
|
|
71641
71640
|
if (undefined !== json.pattern) {
|
|
@@ -102352,7 +102351,7 @@ var XmlSerializationUtils;
|
|
|
102352
102351
|
async function writePrimitiveProperty(propertyClass, propertyValue, propertyElement) {
|
|
102353
102352
|
let primitiveType;
|
|
102354
102353
|
if (propertyClass.isEnumeration()) {
|
|
102355
|
-
const enumeration = await propertyClass.enumeration;
|
|
102354
|
+
const enumeration = await (propertyClass).enumeration;
|
|
102356
102355
|
if (!enumeration)
|
|
102357
102356
|
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.ECSchemaError(_Exception__WEBPACK_IMPORTED_MODULE_1__.ECSchemaStatus.ClassNotFound, `The enumeration on property class '${propertyClass.fullName}' could not be found in the current schema context.`);
|
|
102358
102357
|
if (enumeration.type === undefined)
|
|
@@ -104806,7 +104805,7 @@ class IncrementalSchemaLocater {
|
|
|
104806
104805
|
* @returns The SchemaProps object.
|
|
104807
104806
|
*/
|
|
104808
104807
|
async createSchemaProps(schemaKey, schemaContext) {
|
|
104809
|
-
const schemaInfo = await schemaContext.getSchemaInfo(schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Latest);
|
|
104808
|
+
const schemaInfo = await schemaContext.getSchemaInfo(schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Latest); // eslint-disable-line @typescript-eslint/no-unnecessary-type-assertion
|
|
104810
104809
|
if (!schemaInfo)
|
|
104811
104810
|
throw new Error(`Schema ${schemaKey.name} could not be found.`);
|
|
104812
104811
|
const schemaReferences = [];
|
|
@@ -129664,41 +129663,77 @@ var PerModelCategoryVisibility;
|
|
|
129664
129663
|
}
|
|
129665
129664
|
PerModelCategoryVisibility.createOverrides = createOverrides;
|
|
129666
129665
|
})(PerModelCategoryVisibility || (PerModelCategoryVisibility = {}));
|
|
129667
|
-
class PerModelCategoryVisibilityOverride {
|
|
129668
|
-
modelId;
|
|
129669
|
-
categoryId;
|
|
129670
|
-
visible;
|
|
129671
|
-
constructor(modelId, categoryId, visible) {
|
|
129672
|
-
this.modelId = modelId;
|
|
129673
|
-
this.categoryId = categoryId;
|
|
129674
|
-
this.visible = visible;
|
|
129675
|
-
}
|
|
129676
|
-
reset(modelId, categoryId, visible) {
|
|
129677
|
-
this.modelId = modelId;
|
|
129678
|
-
this.categoryId = categoryId;
|
|
129679
|
-
this.visible = visible;
|
|
129680
|
-
}
|
|
129681
|
-
}
|
|
129682
|
-
function compareCategoryOverrides(lhs, rhs) {
|
|
129683
|
-
const cmp = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.compareStrings)(lhs.modelId, rhs.modelId);
|
|
129684
|
-
return 0 === cmp ? (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.compareStrings)(lhs.categoryId, rhs.categoryId) : cmp;
|
|
129685
|
-
}
|
|
129686
129666
|
/** The Viewport-specific implementation of PerModelCategoryVisibility.Overrides. */
|
|
129687
|
-
class PerModelCategoryVisibilityOverrides
|
|
129688
|
-
|
|
129667
|
+
class PerModelCategoryVisibilityOverrides {
|
|
129668
|
+
_map = new Map();
|
|
129669
|
+
/** Flat set of all override entries, providing O(1) iteration via [Symbol.iterator]. Kept in sync with `_map`. */
|
|
129670
|
+
_set = new Set();
|
|
129689
129671
|
_vp;
|
|
129690
129672
|
constructor(vp) {
|
|
129691
|
-
super(compareCategoryOverrides);
|
|
129692
129673
|
this._vp = vp;
|
|
129693
129674
|
}
|
|
129675
|
+
[Symbol.iterator]() {
|
|
129676
|
+
return this._set[Symbol.iterator]();
|
|
129677
|
+
}
|
|
129694
129678
|
getOverride(modelId, categoryId) {
|
|
129695
|
-
this.
|
|
129696
|
-
const ovr = this.findEqual(this._scratch);
|
|
129679
|
+
const ovr = this._map.get(modelId)?.get(categoryId);
|
|
129697
129680
|
if (undefined !== ovr)
|
|
129698
129681
|
return ovr.visible ? PerModelCategoryVisibility.Override.Show : PerModelCategoryVisibility.Override.Hide;
|
|
129699
129682
|
else
|
|
129700
129683
|
return PerModelCategoryVisibility.Override.None;
|
|
129701
129684
|
}
|
|
129685
|
+
getModelEntry({ modelId, override }) {
|
|
129686
|
+
let modelEntry = this._map.get(modelId);
|
|
129687
|
+
if (modelEntry) {
|
|
129688
|
+
return modelEntry;
|
|
129689
|
+
}
|
|
129690
|
+
if (override === PerModelCategoryVisibility.Override.None) {
|
|
129691
|
+
return undefined;
|
|
129692
|
+
}
|
|
129693
|
+
modelEntry = new Map();
|
|
129694
|
+
this._map.set(modelId, modelEntry);
|
|
129695
|
+
return modelEntry;
|
|
129696
|
+
}
|
|
129697
|
+
addOrRemoveOverrideEntry({ modelEntry, categoryId, modelId, override }) {
|
|
129698
|
+
const overrideEntry = modelEntry.get(categoryId);
|
|
129699
|
+
if (override === PerModelCategoryVisibility.Override.None) {
|
|
129700
|
+
if (overrideEntry === undefined) {
|
|
129701
|
+
return false;
|
|
129702
|
+
}
|
|
129703
|
+
this._set.delete(overrideEntry);
|
|
129704
|
+
modelEntry.delete(categoryId);
|
|
129705
|
+
return true;
|
|
129706
|
+
}
|
|
129707
|
+
const visible = override === PerModelCategoryVisibility.Override.Show;
|
|
129708
|
+
if (overrideEntry === undefined) {
|
|
129709
|
+
const ovr = { modelId, categoryId, visible };
|
|
129710
|
+
modelEntry.set(categoryId, ovr);
|
|
129711
|
+
this._set.add(ovr);
|
|
129712
|
+
return true;
|
|
129713
|
+
}
|
|
129714
|
+
if (overrideEntry.visible !== visible) {
|
|
129715
|
+
overrideEntry.visible = visible;
|
|
129716
|
+
return true;
|
|
129717
|
+
}
|
|
129718
|
+
return false;
|
|
129719
|
+
}
|
|
129720
|
+
applyOverride(modelId, categoryIds, override, catIdsToLoad) {
|
|
129721
|
+
const modelEntry = this.getModelEntry({ modelId, override });
|
|
129722
|
+
let changed = false;
|
|
129723
|
+
if (!modelEntry)
|
|
129724
|
+
return changed;
|
|
129725
|
+
for (const categoryId of categoryIds) {
|
|
129726
|
+
if (this.addOrRemoveOverrideEntry({ modelEntry, categoryId, modelId, override })) {
|
|
129727
|
+
changed = true;
|
|
129728
|
+
if (catIdsToLoad && override !== PerModelCategoryVisibility.Override.None)
|
|
129729
|
+
catIdsToLoad.push(categoryId);
|
|
129730
|
+
}
|
|
129731
|
+
}
|
|
129732
|
+
if (modelEntry.size === 0) {
|
|
129733
|
+
this._map.delete(modelId);
|
|
129734
|
+
}
|
|
129735
|
+
return changed;
|
|
129736
|
+
}
|
|
129702
129737
|
/**
|
|
129703
129738
|
* set the overrides for multiple perModelCategoryVisibility props, loading categoryIds from the iModel if necessary.
|
|
129704
129739
|
* @see [[PerModelCategoryVisibility]]
|
|
@@ -129713,19 +129748,11 @@ class PerModelCategoryVisibilityOverrides extends _itwin_core_bentley__WEBPACK_I
|
|
|
129713
129748
|
const catIdsToLoad = [];
|
|
129714
129749
|
const iModelToUse = iModel ? iModel : this._vp.iModel;
|
|
129715
129750
|
for (const override of perModelCategoryVisibility) {
|
|
129716
|
-
const modelId = override.modelId;
|
|
129717
129751
|
// The caller may pass a single categoryId as a string, if we don't convert this to an array we will iterate
|
|
129718
129752
|
// over each individual character of that string, which is not the desired behavior.
|
|
129719
129753
|
const categoryIds = typeof override.categoryIds === "string" ? [override.categoryIds] : override.categoryIds;
|
|
129720
|
-
|
|
129721
|
-
|
|
129722
|
-
if (this.findAndUpdateOverrideInArray(modelId, categoryId, visOverride)) {
|
|
129723
|
-
anyChanged = true;
|
|
129724
|
-
if (PerModelCategoryVisibility.Override.None !== visOverride) {
|
|
129725
|
-
catIdsToLoad.push(categoryId);
|
|
129726
|
-
}
|
|
129727
|
-
}
|
|
129728
|
-
}
|
|
129754
|
+
if (this.applyOverride(override.modelId, categoryIds, override.visOverride, catIdsToLoad))
|
|
129755
|
+
anyChanged = true;
|
|
129729
129756
|
}
|
|
129730
129757
|
if (anyChanged) {
|
|
129731
129758
|
this._vp.setViewedCategoriesPerModelChanged();
|
|
@@ -129733,44 +129760,17 @@ class PerModelCategoryVisibilityOverrides extends _itwin_core_bentley__WEBPACK_I
|
|
|
129733
129760
|
this._vp.subcategories.push(iModelToUse.subcategories, catIdsToLoad, () => this._vp.setViewedCategoriesPerModelChanged());
|
|
129734
129761
|
}
|
|
129735
129762
|
}
|
|
129736
|
-
return;
|
|
129737
|
-
}
|
|
129738
|
-
/** Find and update the override in the array of overrides. If override not found, adds it to the array.
|
|
129739
|
-
* If the array was changed, returns true. */
|
|
129740
|
-
findAndUpdateOverrideInArray(modelId, categoryId, override) {
|
|
129741
|
-
const ovr = this._scratch;
|
|
129742
|
-
ovr.reset(modelId, categoryId, false);
|
|
129743
|
-
let changed = false;
|
|
129744
|
-
const index = this.indexOf(ovr);
|
|
129745
|
-
if (-1 === index) {
|
|
129746
|
-
if (PerModelCategoryVisibility.Override.None !== override) {
|
|
129747
|
-
this.insert(new PerModelCategoryVisibilityOverride(modelId, categoryId, PerModelCategoryVisibility.Override.Show === override));
|
|
129748
|
-
changed = true;
|
|
129749
|
-
}
|
|
129750
|
-
}
|
|
129751
|
-
else {
|
|
129752
|
-
if (PerModelCategoryVisibility.Override.None === override) {
|
|
129753
|
-
this._array.splice(index, 1);
|
|
129754
|
-
changed = true;
|
|
129755
|
-
}
|
|
129756
|
-
else if (this._array[index].visible !== (PerModelCategoryVisibility.Override.Show === override)) {
|
|
129757
|
-
this._array[index].visible = (PerModelCategoryVisibility.Override.Show === override);
|
|
129758
|
-
changed = true;
|
|
129759
|
-
}
|
|
129760
|
-
}
|
|
129761
|
-
return changed;
|
|
129762
129763
|
}
|
|
129763
129764
|
setOverride(modelIds, categoryIds, override) {
|
|
129765
|
+
const categoryIdIterable = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(categoryIds);
|
|
129764
129766
|
let changed = false;
|
|
129765
129767
|
for (const modelId of _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(modelIds)) {
|
|
129766
|
-
|
|
129767
|
-
|
|
129768
|
-
changed = true;
|
|
129769
|
-
}
|
|
129768
|
+
if (this.applyOverride(modelId, categoryIdIterable, override))
|
|
129769
|
+
changed = true;
|
|
129770
129770
|
}
|
|
129771
129771
|
if (changed) {
|
|
129772
129772
|
this._vp.setViewedCategoriesPerModelChanged();
|
|
129773
|
-
if (PerModelCategoryVisibility.Override.None
|
|
129773
|
+
if (override !== PerModelCategoryVisibility.Override.None) {
|
|
129774
129774
|
// Ensure subcategories loaded.
|
|
129775
129775
|
this._vp.subcategories.push(this._vp.iModel.subcategories, categoryIds, () => this._vp.setViewedCategoriesPerModelChanged());
|
|
129776
129776
|
}
|
|
@@ -129778,30 +129778,32 @@ class PerModelCategoryVisibilityOverrides extends _itwin_core_bentley__WEBPACK_I
|
|
|
129778
129778
|
}
|
|
129779
129779
|
clearOverrides(modelIds) {
|
|
129780
129780
|
if (undefined === modelIds) {
|
|
129781
|
-
if (
|
|
129782
|
-
this.clear();
|
|
129781
|
+
if (this._map.size > 0) {
|
|
129782
|
+
this._map.clear();
|
|
129783
|
+
this._set.clear();
|
|
129783
129784
|
this._vp.setViewedCategoriesPerModelChanged();
|
|
129784
129785
|
}
|
|
129785
129786
|
return;
|
|
129786
129787
|
}
|
|
129787
|
-
|
|
129788
|
-
|
|
129789
|
-
|
|
129790
|
-
|
|
129791
|
-
|
|
129792
|
-
this._array.splice(i, 1);
|
|
129793
|
-
this._vp.setViewedCategoriesPerModelChanged();
|
|
129794
|
-
removed = true;
|
|
129795
|
-
break;
|
|
129796
|
-
}
|
|
129788
|
+
let changed = false;
|
|
129789
|
+
for (const modelId of _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(modelIds)) {
|
|
129790
|
+
const modelEntry = this._map.get(modelId);
|
|
129791
|
+
if (!modelEntry) {
|
|
129792
|
+
continue;
|
|
129797
129793
|
}
|
|
129798
|
-
|
|
129799
|
-
|
|
129794
|
+
changed = true;
|
|
129795
|
+
for (const overrideEntry of modelEntry.values()) {
|
|
129796
|
+
this._set.delete(overrideEntry);
|
|
129797
|
+
}
|
|
129798
|
+
this._map.delete(modelId);
|
|
129799
|
+
}
|
|
129800
|
+
if (changed) {
|
|
129801
|
+
this._vp.setViewedCategoriesPerModelChanged();
|
|
129800
129802
|
}
|
|
129801
129803
|
}
|
|
129802
129804
|
addOverrides(fs, ovrs) {
|
|
129803
129805
|
const cache = this._vp.iModel.subcategories;
|
|
129804
|
-
for (const ovr of this.
|
|
129806
|
+
for (const ovr of this._set) {
|
|
129805
129807
|
const subcats = cache.getSubCategories(ovr.categoryId);
|
|
129806
129808
|
if (undefined === subcats)
|
|
129807
129809
|
continue;
|
|
@@ -129811,7 +129813,6 @@ class PerModelCategoryVisibilityOverrides extends _itwin_core_bentley__WEBPACK_I
|
|
|
129811
129813
|
/* if (!this._vp.view.viewsModel(ovr.modelId))
|
|
129812
129814
|
continue; */
|
|
129813
129815
|
// ###TODO: Avoid recomputing upper and lower portions of modelId if modelId repeated.
|
|
129814
|
-
// (Array is sorted first by modelId).
|
|
129815
129816
|
// Also avoid computing if no effective overrides.
|
|
129816
129817
|
const modelLo = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.getLowerUint32(ovr.modelId);
|
|
129817
129818
|
const modelHi = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.getUpperUint32(ovr.modelId);
|
|
@@ -248405,7 +248406,9 @@ class Loop extends _CurveCollection__WEBPACK_IMPORTED_MODULE_0__.CurveChain {
|
|
|
248405
248406
|
}
|
|
248406
248407
|
/** Create a new `Loop` with no children */
|
|
248407
248408
|
cloneEmptyPeer() {
|
|
248408
|
-
|
|
248409
|
+
const emptyClone = new Loop();
|
|
248410
|
+
emptyClone.isInner = this.isInner;
|
|
248411
|
+
return emptyClone;
|
|
248409
248412
|
}
|
|
248410
248413
|
/** Second step of double dispatch: call `handler.handleLoop(this)` */
|
|
248411
248414
|
dispatchToGeometryHandler(handler) {
|
|
@@ -254240,25 +254243,25 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
254240
254243
|
/* harmony export */ CurveCurveCloseApproachXY: () => (/* binding */ CurveCurveCloseApproachXY)
|
|
254241
254244
|
/* harmony export */ });
|
|
254242
254245
|
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
254243
|
-
/* harmony import */ var
|
|
254246
|
+
/* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
|
|
254244
254247
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
254245
254248
|
/* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
|
|
254246
254249
|
/* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
|
|
254247
254250
|
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
254248
|
-
/* harmony import */ var
|
|
254251
|
+
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
254249
254252
|
/* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
|
|
254250
254253
|
/* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
|
|
254251
254254
|
/* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
|
|
254252
254255
|
/* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
254253
|
-
/* harmony import */ var
|
|
254254
|
-
/* harmony import */ var
|
|
254255
|
-
/* harmony import */ var
|
|
254256
|
+
/* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
|
|
254257
|
+
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
254258
|
+
/* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
254256
254259
|
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
254257
254260
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
254258
|
-
/* harmony import */ var
|
|
254259
|
-
/* harmony import */ var
|
|
254261
|
+
/* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
254262
|
+
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
254260
254263
|
/* harmony import */ var _ProxyCurve__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
|
|
254261
|
-
/* harmony import */ var
|
|
254264
|
+
/* harmony import */ var _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
|
|
254262
254265
|
/*---------------------------------------------------------------------------------------------
|
|
254263
254266
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
254264
254267
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -254692,32 +254695,6 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
254692
254695
|
// 2) perpendicular line between 2 arcs (includes intersections)
|
|
254693
254696
|
this.allPerpendicularsArcArcBounded(cpA, cpB, reversed);
|
|
254694
254697
|
}
|
|
254695
|
-
/** Low level dispatch of arc with (beziers of) a bspline curve */
|
|
254696
|
-
dispatchArcBsplineCurve3d(cpA, cpB, reversed) {
|
|
254697
|
-
const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
|
|
254698
|
-
cpB.emitStrokes(ls);
|
|
254699
|
-
this.computeArcLineString(cpA, ls, reversed);
|
|
254700
|
-
}
|
|
254701
|
-
/** Low level dispatch of (beziers of) a bspline curve with (beziers of) a bspline curve */
|
|
254702
|
-
dispatchBSplineCurve3dBSplineCurve3d(bcurveA, bcurveB, reversed) {
|
|
254703
|
-
const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
|
|
254704
|
-
bcurveA.emitStrokes(lsA);
|
|
254705
|
-
const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
|
|
254706
|
-
bcurveB.emitStrokes(lsB);
|
|
254707
|
-
this.computeLineStringLineString(lsA, lsB, reversed);
|
|
254708
|
-
}
|
|
254709
|
-
/** Low level dispatch of linestring with (beziers of) a bspline curve */
|
|
254710
|
-
dispatchLineStringBSplineCurve(lsA, curveB, reversed) {
|
|
254711
|
-
const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
|
|
254712
|
-
curveB.emitStrokes(lsB);
|
|
254713
|
-
this.computeLineStringLineString(lsA, lsB, reversed);
|
|
254714
|
-
}
|
|
254715
|
-
/** Low level dispatch of segment with (beziers of) a bspline curve */
|
|
254716
|
-
dispatchSegmentBsplineCurve(segA, curveB, reversed) {
|
|
254717
|
-
const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
|
|
254718
|
-
curveB.emitStrokes(lsB);
|
|
254719
|
-
this.computeSegmentLineString(segA, lsB, reversed);
|
|
254720
|
-
}
|
|
254721
254698
|
/** Detail computation for segment approaching linestring. */
|
|
254722
254699
|
computeSegmentLineString(segA, lsB, reversed) {
|
|
254723
254700
|
const numB = lsB.numPoints();
|
|
@@ -254745,7 +254722,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
254745
254722
|
const v0 = CurveCurveCloseApproachXY._workPointBB0;
|
|
254746
254723
|
const v1 = CurveCurveCloseApproachXY._workPointBB1;
|
|
254747
254724
|
// 1. record intersections
|
|
254748
|
-
const intersections =
|
|
254725
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_11__.CurveCurve.intersectionXYPairs(arcA, false, lsB, false, this._xyTolerance);
|
|
254749
254726
|
for (const intersection of intersections)
|
|
254750
254727
|
this.testAndRecordPair(intersection, reversed);
|
|
254751
254728
|
// 2. record linestring interior vertex projections onto arc
|
|
@@ -254803,7 +254780,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
254803
254780
|
return;
|
|
254804
254781
|
let bitB0;
|
|
254805
254782
|
let bitB1;
|
|
254806
|
-
const rangeA1 =
|
|
254783
|
+
const rangeA1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_12__.Range3d.createNull();
|
|
254807
254784
|
const pointA0 = CurveCurveCloseApproachXY._workPointAA0;
|
|
254808
254785
|
const pointA1 = CurveCurveCloseApproachXY._workPointAA1;
|
|
254809
254786
|
const pointB0 = CurveCurveCloseApproachXY._workPointBB0;
|
|
@@ -254845,7 +254822,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
254845
254822
|
/** Low level dispatch of curve collection. */
|
|
254846
254823
|
dispatchCurveCollection(geomA, geomAHandler) {
|
|
254847
254824
|
const geomB = this._geometryB; // save
|
|
254848
|
-
if (!geomB || !geomB.children || !(geomB instanceof
|
|
254825
|
+
if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection))
|
|
254849
254826
|
return;
|
|
254850
254827
|
for (const child of geomB.children) {
|
|
254851
254828
|
this.resetGeometry(child);
|
|
@@ -254855,9 +254832,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
254855
254832
|
}
|
|
254856
254833
|
/** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
|
|
254857
254834
|
dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
|
|
254858
|
-
if (!this._geometryB || !(this._geometryB instanceof
|
|
254835
|
+
if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex))
|
|
254859
254836
|
return;
|
|
254860
|
-
if (geomA instanceof
|
|
254837
|
+
if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex)
|
|
254861
254838
|
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "call handleCurveChainWithDistanceIndex(geomA) instead");
|
|
254862
254839
|
const saveResults = this.grabPairedResults();
|
|
254863
254840
|
const geomB = this._geometryB;
|
|
@@ -254868,133 +254845,36 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
254868
254845
|
this.resetGeometry(geomB);
|
|
254869
254846
|
const childResults = this._results.extractArray();
|
|
254870
254847
|
childResults.forEach((pair) => {
|
|
254871
|
-
|
|
254848
|
+
_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex.convertChildDetailToChainDetailSingle(pair, undefined, geomB);
|
|
254872
254849
|
this._results.insert(pair);
|
|
254873
254850
|
});
|
|
254874
254851
|
saveResults.forEach((pair) => this._results.insert(pair));
|
|
254875
254852
|
}
|
|
254876
|
-
/**
|
|
254877
|
-
|
|
254878
|
-
|
|
254879
|
-
const segmentB = this._geometryB;
|
|
254880
|
-
this.computeSegmentSegment(segmentA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, segmentB, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, false);
|
|
254881
|
-
}
|
|
254882
|
-
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d) {
|
|
254883
|
-
this.computeSegmentLineString(segmentA, this._geometryB, false);
|
|
254884
|
-
}
|
|
254885
|
-
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
|
|
254886
|
-
this.computeSegmentArc(segmentA, this._geometryB, false);
|
|
254887
|
-
}
|
|
254888
|
-
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
|
|
254889
|
-
this.dispatchSegmentBsplineCurve(segmentA, this._geometryB, false);
|
|
254890
|
-
}
|
|
254891
|
-
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_18__.TransitionSpiral3d) {
|
|
254892
|
-
this.dispatchCurveSpiral(segmentA, this._geometryB, false);
|
|
254893
|
-
}
|
|
254894
|
-
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
254895
|
-
this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
|
|
254896
|
-
}
|
|
254897
|
-
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
|
|
254898
|
-
this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
|
|
254899
|
-
}
|
|
254900
|
-
return undefined;
|
|
254901
|
-
}
|
|
254902
|
-
/** Double dispatch handler for strongly typed linestring. */
|
|
254903
|
-
handleLineString3d(lsA) {
|
|
254904
|
-
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
|
|
254905
|
-
this.computeSegmentLineString(this._geometryB, lsA, true);
|
|
254906
|
-
}
|
|
254907
|
-
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d) {
|
|
254908
|
-
this.computeLineStringLineString(lsA, this._geometryB, false);
|
|
254909
|
-
}
|
|
254910
|
-
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
|
|
254911
|
-
this.computeArcLineString(this._geometryB, lsA, true);
|
|
254912
|
-
}
|
|
254913
|
-
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
|
|
254914
|
-
this.dispatchLineStringBSplineCurve(lsA, this._geometryB, false);
|
|
254915
|
-
}
|
|
254916
|
-
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_18__.TransitionSpiral3d) {
|
|
254917
|
-
this.dispatchCurveSpiral(lsA, this._geometryB, false);
|
|
254918
|
-
}
|
|
254919
|
-
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
254920
|
-
this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
|
|
254921
|
-
}
|
|
254922
|
-
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
|
|
254923
|
-
this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
|
|
254924
|
-
}
|
|
254925
|
-
return undefined;
|
|
254926
|
-
}
|
|
254927
|
-
/** Double dispatch handler for strongly typed arc. */
|
|
254928
|
-
handleArc3d(arcA) {
|
|
254929
|
-
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
|
|
254930
|
-
this.computeSegmentArc(this._geometryB, arcA, true);
|
|
254931
|
-
}
|
|
254932
|
-
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d) {
|
|
254933
|
-
this.computeArcLineString(arcA, this._geometryB, false);
|
|
254934
|
-
}
|
|
254935
|
-
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
|
|
254936
|
-
this.dispatchArcArc(arcA, this._geometryB, false);
|
|
254937
|
-
}
|
|
254938
|
-
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
|
|
254939
|
-
this.dispatchArcBsplineCurve3d(arcA, this._geometryB, false);
|
|
254940
|
-
}
|
|
254941
|
-
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_18__.TransitionSpiral3d) {
|
|
254942
|
-
this.dispatchCurveSpiral(arcA, this._geometryB, false);
|
|
254943
|
-
}
|
|
254944
|
-
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
254945
|
-
this.dispatchCurveCollection(arcA, this.handleArc3d.bind(this));
|
|
254946
|
-
}
|
|
254947
|
-
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
|
|
254948
|
-
this.dispatchCurveChainWithDistanceIndex(arcA, this.handleArc3d.bind(this));
|
|
254949
|
-
}
|
|
254950
|
-
return undefined;
|
|
254951
|
-
}
|
|
254952
|
-
/** Double dispatch handler for strongly typed bspline curve. */
|
|
254953
|
-
handleBSplineCurve3d(curveA) {
|
|
254954
|
-
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
|
|
254955
|
-
this.dispatchSegmentBsplineCurve(this._geometryB, curveA, true);
|
|
254956
|
-
}
|
|
254957
|
-
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d) {
|
|
254958
|
-
this.dispatchLineStringBSplineCurve(this._geometryB, curveA, true);
|
|
254959
|
-
}
|
|
254960
|
-
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
|
|
254961
|
-
this.dispatchArcBsplineCurve3d(this._geometryB, curveA, true);
|
|
254962
|
-
}
|
|
254963
|
-
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3dBase) {
|
|
254964
|
-
this.dispatchBSplineCurve3dBSplineCurve3d(curveA, this._geometryB, false);
|
|
254965
|
-
}
|
|
254966
|
-
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_18__.TransitionSpiral3d) {
|
|
254967
|
-
this.dispatchCurveSpiral(curveA, this._geometryB, false);
|
|
254968
|
-
}
|
|
254969
|
-
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
254970
|
-
this.dispatchCurveCollection(curveA, this.handleBSplineCurve3d.bind(this));
|
|
254971
|
-
}
|
|
254972
|
-
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
|
|
254973
|
-
this.dispatchCurveChainWithDistanceIndex(curveA, this.handleBSplineCurve3d.bind(this));
|
|
254974
|
-
}
|
|
254975
|
-
return undefined;
|
|
254853
|
+
/** Specifies whether the curve needs to be stroked for close approach computation. */
|
|
254854
|
+
needsStroking(curve) {
|
|
254855
|
+
return curve instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__.BSplineCurve3dBase || curve instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_16__.TransitionSpiral3d;
|
|
254976
254856
|
}
|
|
254977
254857
|
/**
|
|
254978
|
-
* Process seeds for xy close approach between
|
|
254858
|
+
* Process seeds for xy close approach between one curve and another curve to be stroked.
|
|
254979
254859
|
* * Refine each result via Newton iteration. If it doesn't converge, remove it.
|
|
254980
|
-
* @param seeds
|
|
254981
|
-
* @param curveA
|
|
254982
|
-
* @param
|
|
254983
|
-
* @param reversed whether `
|
|
254860
|
+
* @param seeds the initial seed results to refine.
|
|
254861
|
+
* @param curveA curve to find its XY close approach with curveB.
|
|
254862
|
+
* @param curveB the other curve to be stroked.
|
|
254863
|
+
* @param reversed whether `curveB` data is in `detailA` of each recorded pair, and `curveA` data in `detailB`.
|
|
254984
254864
|
*/
|
|
254985
|
-
|
|
254986
|
-
const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.CurveCurveCloseApproachXYRRtoRRD(curveA,
|
|
254865
|
+
refineStrokedResultsByNewton(seeds, curveA, curveB, reversed = false) {
|
|
254866
|
+
const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.CurveCurveCloseApproachXYRRtoRRD(curveA, curveB);
|
|
254987
254867
|
const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.Newton2dUnboundedWithDerivative(xyMatchingFunction, 50, this._newtonTolerance); // seen: 47
|
|
254988
254868
|
for (const seed of seeds) {
|
|
254989
254869
|
const detailA = reversed ? seed.detailB : seed.detailA;
|
|
254990
254870
|
const detailB = reversed ? seed.detailA : seed.detailB;
|
|
254991
|
-
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(detailB.curve instanceof
|
|
254992
|
-
newtonSearcher.setUV(detailA.fraction, detailB.fraction); // use linestring fraction as
|
|
254871
|
+
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(detailB.curve instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d, "Caller has discretized the curve");
|
|
254872
|
+
newtonSearcher.setUV(detailA.fraction, detailB.fraction); // use the linestring fraction as initial curveB fraction (ASSUME it's close enough)
|
|
254993
254873
|
if (newtonSearcher.runIterations()) {
|
|
254994
254874
|
const fractionA = newtonSearcher.getU();
|
|
254995
254875
|
const fractionB = newtonSearcher.getV();
|
|
254996
254876
|
if (this.acceptFraction(fractionA) && this.acceptFraction(fractionB))
|
|
254997
|
-
this.testAndRecordPointPair(curveA, fractionA, undefined,
|
|
254877
|
+
this.testAndRecordPointPair(curveA, fractionA, undefined, curveB, fractionB, undefined, reversed);
|
|
254998
254878
|
} // ignore failure to converge
|
|
254999
254879
|
}
|
|
255000
254880
|
}
|
|
@@ -255006,7 +254886,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
255006
254886
|
* @param result object to receive appended stroke points; if omitted, a new object is created, populated, and returned.
|
|
255007
254887
|
*/
|
|
255008
254888
|
strokeCurve(curve, options, result) {
|
|
255009
|
-
const ls = result ? result :
|
|
254889
|
+
const ls = result ? result : _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d.create();
|
|
255010
254890
|
curve.emitStrokes(ls, options);
|
|
255011
254891
|
return ls;
|
|
255012
254892
|
}
|
|
@@ -255030,40 +254910,120 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
255030
254910
|
return discreteResults;
|
|
255031
254911
|
}
|
|
255032
254912
|
/**
|
|
255033
|
-
* Compute the XY close approach of a curve and
|
|
255034
|
-
* @param curveA curve to find its close approach with
|
|
255035
|
-
* @param
|
|
255036
|
-
* @param reversed whether `
|
|
254913
|
+
* Compute the XY close approach of a curve and another curve to be stroked.
|
|
254914
|
+
* @param curveA curve to find its XY close approach with curveB.
|
|
254915
|
+
* @param curveB the other curve to be stroked.
|
|
254916
|
+
* @param reversed whether `curveB` data will be recorded in `detailA` of each result, and `curveA` data in `detailB`.
|
|
255037
254917
|
*/
|
|
255038
|
-
|
|
254918
|
+
dispatchCurveStrokedCurve(curveA, curveB, reversed) {
|
|
255039
254919
|
// explicit search for intersections (Newton converges too slowly on DirectSpiral3d tangent intersections)
|
|
255040
|
-
const intersections =
|
|
254920
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_11__.CurveCurve.intersectionXYPairs(curveA, false, curveB, false, this._xyTolerance);
|
|
255041
254921
|
for (const intersection of intersections)
|
|
255042
254922
|
this.testAndRecordPair(intersection, reversed);
|
|
255043
254923
|
// append seeds computed by solving the discretized spiral close approach problem, then refine the seeds via Newton
|
|
255044
254924
|
let cpA = curveA;
|
|
255045
|
-
if (curveA
|
|
254925
|
+
if (this.needsStroking(curveA))
|
|
255046
254926
|
cpA = this.strokeCurve(curveA);
|
|
255047
|
-
const cpB = this.strokeCurve(
|
|
254927
|
+
const cpB = this.strokeCurve(curveB);
|
|
255048
254928
|
const seeds = this.computeDiscreteCloseApproachResults(cpA, cpB, reversed);
|
|
255049
|
-
this.
|
|
255050
|
-
if (curveA instanceof
|
|
254929
|
+
this.refineStrokedResultsByNewton(seeds, curveA, curveB, reversed);
|
|
254930
|
+
if (curveA instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) { // explicitly test corners (where Newton converges too slowly)
|
|
255051
254931
|
const fStep = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.safeDivideFraction(1.0, curveA.numEdges(), 0);
|
|
255052
254932
|
const v0 = CurveCurveCloseApproachXY._workPointBB0;
|
|
255053
254933
|
for (let i = 1; i < curveA.numEdges(); ++i)
|
|
255054
|
-
this.testAndRecordProjection(curveA, i * fStep, curveA.pointAtUnchecked(i, v0),
|
|
254934
|
+
this.testAndRecordProjection(curveA, i * fStep, curveA.pointAtUnchecked(i, v0), curveB, reversed);
|
|
254935
|
+
}
|
|
254936
|
+
this.testAndRecordEndPointApproaches(curveA, curveB, reversed);
|
|
254937
|
+
}
|
|
254938
|
+
/** Double dispatch handler for strongly typed segment. */
|
|
254939
|
+
handleLineSegment3d(segmentA) {
|
|
254940
|
+
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
|
|
254941
|
+
const segmentB = this._geometryB;
|
|
254942
|
+
this.computeSegmentSegment(segmentA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, segmentB, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, false);
|
|
254943
|
+
}
|
|
254944
|
+
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
|
|
254945
|
+
this.computeSegmentLineString(segmentA, this._geometryB, false);
|
|
254946
|
+
}
|
|
254947
|
+
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
|
|
254948
|
+
this.computeSegmentArc(segmentA, this._geometryB, false);
|
|
254949
|
+
}
|
|
254950
|
+
else if (this.needsStroking(this._geometryB)) {
|
|
254951
|
+
this.dispatchCurveStrokedCurve(segmentA, this._geometryB, false);
|
|
254952
|
+
}
|
|
254953
|
+
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
|
|
254954
|
+
this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
|
|
254955
|
+
}
|
|
254956
|
+
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
|
|
254957
|
+
this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
|
|
254958
|
+
}
|
|
254959
|
+
return undefined;
|
|
254960
|
+
}
|
|
254961
|
+
/** Double dispatch handler for strongly typed linestring. */
|
|
254962
|
+
handleLineString3d(lsA) {
|
|
254963
|
+
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
|
|
254964
|
+
this.computeSegmentLineString(this._geometryB, lsA, true);
|
|
254965
|
+
}
|
|
254966
|
+
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
|
|
254967
|
+
this.computeLineStringLineString(lsA, this._geometryB, false);
|
|
255055
254968
|
}
|
|
255056
|
-
this.
|
|
254969
|
+
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
|
|
254970
|
+
this.computeArcLineString(this._geometryB, lsA, true);
|
|
254971
|
+
}
|
|
254972
|
+
else if (this.needsStroking(this._geometryB)) {
|
|
254973
|
+
this.dispatchCurveStrokedCurve(lsA, this._geometryB, false);
|
|
254974
|
+
}
|
|
254975
|
+
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
|
|
254976
|
+
this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
|
|
254977
|
+
}
|
|
254978
|
+
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
|
|
254979
|
+
this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
|
|
254980
|
+
}
|
|
254981
|
+
return undefined;
|
|
254982
|
+
}
|
|
254983
|
+
/** Double dispatch handler for strongly typed arc. */
|
|
254984
|
+
handleArc3d(arcA) {
|
|
254985
|
+
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
|
|
254986
|
+
this.computeSegmentArc(this._geometryB, arcA, true);
|
|
254987
|
+
}
|
|
254988
|
+
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
|
|
254989
|
+
this.computeArcLineString(arcA, this._geometryB, false);
|
|
254990
|
+
}
|
|
254991
|
+
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
|
|
254992
|
+
this.dispatchArcArc(arcA, this._geometryB, false);
|
|
254993
|
+
}
|
|
254994
|
+
else if (this.needsStroking(this._geometryB)) {
|
|
254995
|
+
this.dispatchCurveStrokedCurve(arcA, this._geometryB, false);
|
|
254996
|
+
}
|
|
254997
|
+
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
|
|
254998
|
+
this.dispatchCurveCollection(arcA, this.handleArc3d.bind(this));
|
|
254999
|
+
}
|
|
255000
|
+
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
|
|
255001
|
+
this.dispatchCurveChainWithDistanceIndex(arcA, this.handleArc3d.bind(this));
|
|
255002
|
+
}
|
|
255003
|
+
return undefined;
|
|
255004
|
+
}
|
|
255005
|
+
/** Double dispatch handler for strongly typed bspline curve. */
|
|
255006
|
+
handleBSplineCurve3d(curveA) {
|
|
255007
|
+
if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
|
|
255008
|
+
this.dispatchCurveChainWithDistanceIndex(curveA, this.handleBSplineCurve3d.bind(this));
|
|
255009
|
+
}
|
|
255010
|
+
else if (this._geometryB instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_19__.CurvePrimitive) {
|
|
255011
|
+
this.dispatchCurveStrokedCurve(this._geometryB, curveA, true);
|
|
255012
|
+
}
|
|
255013
|
+
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
|
|
255014
|
+
this.dispatchCurveCollection(curveA, this.handleBSplineCurve3d.bind(this));
|
|
255015
|
+
}
|
|
255016
|
+
return undefined;
|
|
255057
255017
|
}
|
|
255058
255018
|
/** Double dispatch handler for strongly typed spiral curve. */
|
|
255059
255019
|
handleTransitionSpiral(spiral) {
|
|
255060
|
-
if (this._geometryB instanceof
|
|
255020
|
+
if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
|
|
255061
255021
|
this.dispatchCurveChainWithDistanceIndex(spiral, this.handleTransitionSpiral.bind(this));
|
|
255062
255022
|
}
|
|
255063
255023
|
else if (this._geometryB instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_19__.CurvePrimitive) {
|
|
255064
|
-
this.
|
|
255024
|
+
this.dispatchCurveStrokedCurve(this._geometryB, spiral, true);
|
|
255065
255025
|
}
|
|
255066
|
-
else if (this._geometryB instanceof
|
|
255026
|
+
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
|
|
255067
255027
|
this.dispatchCurveCollection(spiral, this.handleTransitionSpiral.bind(this));
|
|
255068
255028
|
}
|
|
255069
255029
|
return undefined;
|
|
@@ -255074,25 +255034,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
255074
255034
|
// if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
|
|
255075
255035
|
const childResults = this._results.extractArray();
|
|
255076
255036
|
childResults.forEach((pair) => {
|
|
255077
|
-
|
|
255037
|
+
_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex.convertChildDetailToChainDetailSingle(pair, chain, undefined);
|
|
255078
255038
|
this._results.insert(pair);
|
|
255079
255039
|
});
|
|
255080
255040
|
}
|
|
255081
255041
|
/** Double dispatch handler for strongly typed homogeneous bspline curve .. */
|
|
255082
255042
|
handleBSplineCurve3dH(_curve) {
|
|
255083
|
-
|
|
255084
|
-
//NEEDS WORK -- make "dispatch" methods tolerant of both 3d and 3dH.
|
|
255085
|
-
// "easy" if both present BezierCurve3dH span loaders
|
|
255086
|
-
if (this._geometryB instanceof LineSegment3d) {
|
|
255087
|
-
this.dispatchSegmentBsplineCurve(
|
|
255088
|
-
this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB,
|
|
255089
|
-
curve, this._extendA, true);
|
|
255090
|
-
} else if (this._geometryB instanceof LineString3d) {
|
|
255091
|
-
this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
|
|
255092
|
-
} else if (this._geometryB instanceof Arc3d) {
|
|
255093
|
-
this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
|
|
255094
|
-
}
|
|
255095
|
-
*/
|
|
255043
|
+
// NEEDS WORK -- make "dispatch" methods tolerant of both 3d and 3dH
|
|
255096
255044
|
return undefined;
|
|
255097
255045
|
}
|
|
255098
255046
|
}
|
|
@@ -255112,7 +255060,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
255112
255060
|
/* harmony export */ CurveCurveIntersectXY: () => (/* binding */ CurveCurveIntersectXY)
|
|
255113
255061
|
/* harmony export */ });
|
|
255114
255062
|
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
255115
|
-
/* harmony import */ var
|
|
255063
|
+
/* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
|
|
255116
255064
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
255117
255065
|
/* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
|
|
255118
255066
|
/* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
|
|
@@ -255124,18 +255072,18 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
255124
255072
|
/* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
|
|
255125
255073
|
/* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
|
|
255126
255074
|
/* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
|
|
255127
|
-
/* harmony import */ var
|
|
255075
|
+
/* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
255128
255076
|
/* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
|
|
255129
255077
|
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
255130
|
-
/* harmony import */ var
|
|
255078
|
+
/* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
255131
255079
|
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
255132
255080
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
255133
|
-
/* harmony import */ var
|
|
255134
|
-
/* harmony import */ var
|
|
255081
|
+
/* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
255082
|
+
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
255135
255083
|
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
255136
255084
|
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
255137
255085
|
/* harmony import */ var _ProxyCurve__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
|
|
255138
|
-
/* harmony import */ var
|
|
255086
|
+
/* harmony import */ var _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
|
|
255139
255087
|
/*---------------------------------------------------------------------------------------------
|
|
255140
255088
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
255141
255089
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -255290,7 +255238,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
255290
255238
|
* @param fractionB1 end of the subcurve of cpB
|
|
255291
255239
|
* @param reversed whether to reverse the details in the recorded intersection pair
|
|
255292
255240
|
* @param intervalDetails optional data for a coincident segment intersection
|
|
255293
|
-
* @param fractionTol relative tolerance for comparing fractions to avoid duplicating the last intersection. Defaults
|
|
255241
|
+
* @param fractionTol relative tolerance for comparing fractions to avoid duplicating the last intersection. Defaults
|
|
255242
|
+
* to [[Geometry.smallAngleRadians]].
|
|
255294
255243
|
*/
|
|
255295
255244
|
recordPointWithLocalFractions(localFractionA, cpA, fractionA0, fractionA1, localFractionB, cpB, fractionB0, fractionB1, reversed, intervalDetails, fractionTol) {
|
|
255296
255245
|
let globalFractionA, globalFractionB;
|
|
@@ -255717,9 +255666,9 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
255717
255666
|
bezierA.fractionToPoint4d(f1, this._xyzwA1);
|
|
255718
255667
|
_geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_2__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
|
|
255719
255668
|
bezierB.poleProductsXYZW(univariateBezierB.coffs, this._xyzwPlane.x, this._xyzwPlane.y, this._xyzwPlane.z, this._xyzwPlane.w);
|
|
255720
|
-
let errors = 0;
|
|
255721
255669
|
const roots = univariateBezierB.roots(0.0, true);
|
|
255722
255670
|
if (roots) {
|
|
255671
|
+
const strictTolerance = this._coincidentGeometryContext.tolerance * 0.0001;
|
|
255723
255672
|
for (const r of roots) {
|
|
255724
255673
|
let bezierBFraction = r;
|
|
255725
255674
|
bezierB.fractionToPoint4d(bezierBFraction, this._xyzwB);
|
|
@@ -255731,15 +255680,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
255731
255680
|
const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_13__.CurveCurveIntersectionXYRRToRRD(bezierA, bezierB);
|
|
255732
255681
|
const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_13__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
|
|
255733
255682
|
newtonSearcher.setUV(bezierAFraction, bezierBFraction);
|
|
255734
|
-
|
|
255735
|
-
|
|
255736
|
-
|
|
255737
|
-
}
|
|
255683
|
+
let converged = newtonSearcher.runIterations();
|
|
255684
|
+
bezierAFraction = newtonSearcher.getU();
|
|
255685
|
+
bezierBFraction = newtonSearcher.getV();
|
|
255738
255686
|
const bcurveAFraction = bezierA.fractionToParentFraction(bezierAFraction);
|
|
255739
255687
|
const bcurveBFraction = bezierB.fractionToParentFraction(bezierBFraction);
|
|
255740
|
-
if (false) {}
|
|
255741
255688
|
if (this.acceptFraction(false, bcurveAFraction, false) && this.acceptFraction(false, bcurveBFraction, false)) {
|
|
255742
|
-
|
|
255689
|
+
const pointA = bezierA.fractionToPoint(bezierAFraction, CurveCurveIntersectXY._workPointA0);
|
|
255690
|
+
const pointB = bezierB.fractionToPoint(bezierBFraction, CurveCurveIntersectXY._workPointB0);
|
|
255691
|
+
if (!converged) { // Newton may have found close points even if it didn't converge parametrically
|
|
255692
|
+
converged = pointA.isAlmostEqualXY(pointB, strictTolerance); // we can afford to be choosy
|
|
255693
|
+
}
|
|
255694
|
+
if (converged)
|
|
255695
|
+
this.recordPointWithLocalFractions(bcurveAFraction, bcurveA, 0, 1, bcurveBFraction, bcurveB, 0, 1, reversed);
|
|
255743
255696
|
}
|
|
255744
255697
|
}
|
|
255745
255698
|
}
|
|
@@ -255968,137 +255921,6 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
255968
255921
|
this.resetGeometryB(geomB); // restore
|
|
255969
255922
|
this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
|
|
255970
255923
|
}
|
|
255971
|
-
/**
|
|
255972
|
-
* Invoke dispatch on each child of `g` as "geometryA".
|
|
255973
|
-
* * If `g` is a `Path` or `Loop`, adjust extension flags for geometryA accordingly.
|
|
255974
|
-
*/
|
|
255975
|
-
handleChildren(g) {
|
|
255976
|
-
const children = g.children;
|
|
255977
|
-
if (!children)
|
|
255978
|
-
return;
|
|
255979
|
-
const saveExtendA0 = this._extendA0;
|
|
255980
|
-
const saveExtendA1 = this._extendA1;
|
|
255981
|
-
for (let i = 0; i < children.length; i++) {
|
|
255982
|
-
let extendA0 = saveExtendA0;
|
|
255983
|
-
let extendA1 = saveExtendA1;
|
|
255984
|
-
if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_15__.Path && children.length > 1) {
|
|
255985
|
-
if (i === 0)
|
|
255986
|
-
extendA1 = false; // first child can only extend from start
|
|
255987
|
-
else if (i === children.length - 1)
|
|
255988
|
-
extendA0 = false; // last child can only extend from end
|
|
255989
|
-
else
|
|
255990
|
-
extendA0 = extendA1 = false; // middle children cannot extend
|
|
255991
|
-
}
|
|
255992
|
-
else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_16__.Loop) {
|
|
255993
|
-
extendA0 = extendA1 = false; // Loops cannot extend
|
|
255994
|
-
}
|
|
255995
|
-
this.resetGeometryA(extendA0, extendA1);
|
|
255996
|
-
children[i].dispatchToGeometryHandler(this);
|
|
255997
|
-
}
|
|
255998
|
-
this.resetGeometryA(saveExtendA0, saveExtendA1);
|
|
255999
|
-
}
|
|
256000
|
-
/** Double dispatch handler for strongly typed segment. */
|
|
256001
|
-
handleLineSegment3d(segmentA) {
|
|
256002
|
-
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
|
|
256003
|
-
const segmentB = this._geometryB;
|
|
256004
|
-
this.dispatchSegmentSegment(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, segmentB, this._extendB0, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, this._extendB1, false);
|
|
256005
|
-
}
|
|
256006
|
-
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d) {
|
|
256007
|
-
this.computeSegmentLineString(segmentA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256008
|
-
}
|
|
256009
|
-
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_20__.Arc3d) {
|
|
256010
|
-
this.dispatchSegmentArc(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256011
|
-
}
|
|
256012
|
-
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_21__.BSplineCurve3d) {
|
|
256013
|
-
this.dispatchSegmentBsplineCurve(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256014
|
-
}
|
|
256015
|
-
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__.TransitionSpiral3d) {
|
|
256016
|
-
this.dispatchCurveSpiral(segmentA, this._extendA0, this._extendA1, this._geometryB, false);
|
|
256017
|
-
}
|
|
256018
|
-
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
256019
|
-
this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
|
|
256020
|
-
}
|
|
256021
|
-
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
|
|
256022
|
-
this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
|
|
256023
|
-
}
|
|
256024
|
-
return undefined;
|
|
256025
|
-
}
|
|
256026
|
-
/** Double dispatch handler for strongly typed linestring. */
|
|
256027
|
-
handleLineString3d(lsA) {
|
|
256028
|
-
if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d) {
|
|
256029
|
-
const lsB = this._geometryB;
|
|
256030
|
-
this.computeLineStringLineString(lsA, this._extendA0, this._extendA1, lsB, this._extendB0, this._extendB1, false);
|
|
256031
|
-
}
|
|
256032
|
-
else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
|
|
256033
|
-
this.computeSegmentLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
|
|
256034
|
-
}
|
|
256035
|
-
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_20__.Arc3d) {
|
|
256036
|
-
this.computeArcLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
|
|
256037
|
-
}
|
|
256038
|
-
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_21__.BSplineCurve3d) {
|
|
256039
|
-
this.dispatchLineStringBSplineCurve(lsA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256040
|
-
}
|
|
256041
|
-
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__.TransitionSpiral3d) {
|
|
256042
|
-
this.dispatchCurveSpiral(lsA, this._extendA0, this._extendA1, this._geometryB, false);
|
|
256043
|
-
}
|
|
256044
|
-
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
256045
|
-
this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
|
|
256046
|
-
}
|
|
256047
|
-
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
|
|
256048
|
-
this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
|
|
256049
|
-
}
|
|
256050
|
-
return undefined;
|
|
256051
|
-
}
|
|
256052
|
-
/** Double dispatch handler for strongly typed arc. */
|
|
256053
|
-
handleArc3d(arcA) {
|
|
256054
|
-
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
|
|
256055
|
-
this.dispatchSegmentArc(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, arcA, this._extendA0, this._extendA1, true);
|
|
256056
|
-
}
|
|
256057
|
-
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d) {
|
|
256058
|
-
this.computeArcLineString(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256059
|
-
}
|
|
256060
|
-
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_20__.Arc3d) {
|
|
256061
|
-
this.dispatchArcArc(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256062
|
-
}
|
|
256063
|
-
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_21__.BSplineCurve3d) {
|
|
256064
|
-
this.dispatchArcBsplineCurve3d(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256065
|
-
}
|
|
256066
|
-
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__.TransitionSpiral3d) {
|
|
256067
|
-
this.dispatchCurveSpiral(arcA, this._extendA0, this._extendA1, this._geometryB, false);
|
|
256068
|
-
}
|
|
256069
|
-
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
256070
|
-
this.dispatchCurveCollection(arcA, this.handleArc3d.bind(this));
|
|
256071
|
-
}
|
|
256072
|
-
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
|
|
256073
|
-
this.dispatchCurveChainWithDistanceIndex(arcA, this.handleArc3d.bind(this));
|
|
256074
|
-
}
|
|
256075
|
-
return undefined;
|
|
256076
|
-
}
|
|
256077
|
-
/** Double dispatch handler for strongly typed bspline curve. */
|
|
256078
|
-
handleBSplineCurve3d(curveA) {
|
|
256079
|
-
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
|
|
256080
|
-
this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
|
|
256081
|
-
}
|
|
256082
|
-
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d) {
|
|
256083
|
-
this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
|
|
256084
|
-
}
|
|
256085
|
-
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_20__.Arc3d) {
|
|
256086
|
-
this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
|
|
256087
|
-
}
|
|
256088
|
-
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_21__.BSplineCurve3dBase) {
|
|
256089
|
-
this.dispatchBSplineCurve3dBSplineCurve3d(curveA, this._geometryB, false);
|
|
256090
|
-
}
|
|
256091
|
-
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__.TransitionSpiral3d) {
|
|
256092
|
-
this.dispatchCurveSpiral(curveA, this._extendA0, this._extendA1, this._geometryB, false);
|
|
256093
|
-
}
|
|
256094
|
-
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
256095
|
-
this.dispatchCurveCollection(curveA, this.handleBSplineCurve3d.bind(this));
|
|
256096
|
-
}
|
|
256097
|
-
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
|
|
256098
|
-
this.dispatchCurveChainWithDistanceIndex(curveA, this.handleBSplineCurve3d.bind(this));
|
|
256099
|
-
}
|
|
256100
|
-
return undefined;
|
|
256101
|
-
}
|
|
256102
255924
|
/**
|
|
256103
255925
|
* Process tail of `this._results` for xy-intersections between the curve and spiral.
|
|
256104
255926
|
* * Refine each result via Newton iteration. If it doesn't converge, remove it.
|
|
@@ -256129,7 +255951,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
256129
255951
|
const pair = this._results[i];
|
|
256130
255952
|
const detailA = reversed ? pair.detailB : pair.detailA;
|
|
256131
255953
|
const detailB = reversed ? pair.detailA : pair.detailB;
|
|
256132
|
-
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(detailB.curve instanceof
|
|
255954
|
+
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(detailB.curve instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d, "Caller has discretized the spiral");
|
|
256133
255955
|
const extendA0 = reversed ? this._extendB0 : this._extendA0;
|
|
256134
255956
|
const extendA1 = reversed ? this._extendB1 : this._extendA1;
|
|
256135
255957
|
newtonSearcher.setUV(detailA.fraction, detailB.fraction); // use linestring fraction as spiral param; it generally yields a closer point than fractional length!
|
|
@@ -256155,7 +255977,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
256155
255977
|
* @param result object to receive appended stroke points; if omitted, a new object is created, populated, and returned.
|
|
256156
255978
|
*/
|
|
256157
255979
|
strokeCurve(curve, options, result) {
|
|
256158
|
-
const ls = result ? result :
|
|
255980
|
+
const ls = result ? result : _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d.create();
|
|
256159
255981
|
curve.emitStrokes(ls, options);
|
|
256160
255982
|
return ls;
|
|
256161
255983
|
}
|
|
@@ -256173,7 +255995,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
256173
255995
|
if (spiral0.closestPoint(midPoint, false, detail))
|
|
256174
255996
|
maxError = detail.a;
|
|
256175
255997
|
}
|
|
256176
|
-
if (spiral1 && spiral1 instanceof
|
|
255998
|
+
if (spiral1 && spiral1 instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d && ls1 && ls1 instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d) {
|
|
256177
255999
|
const maxError1 = this.computeMaxSpiralStrokeError(spiral1, ls1);
|
|
256178
256000
|
if (maxError1 > maxError)
|
|
256179
256001
|
maxError = maxError1;
|
|
@@ -256209,7 +256031,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
256209
256031
|
*/
|
|
256210
256032
|
appendDiscreteCloseApproachResults(curveA, lsB, maxDistance, reversed) {
|
|
256211
256033
|
const i0 = this._results.length;
|
|
256212
|
-
const closeApproachPairs =
|
|
256034
|
+
const closeApproachPairs = _CurveCurve__WEBPACK_IMPORTED_MODULE_20__.CurveCurve.closeApproachProjectedXYPairs(reversed ? lsB : curveA, reversed ? curveA : lsB, maxDistance);
|
|
256213
256035
|
closeApproachPairs.sort((p0, p1) => p0.detailA.a - p1.detailA.a);
|
|
256214
256036
|
this._results.push(...closeApproachPairs);
|
|
256215
256037
|
return this._results.length - i0;
|
|
@@ -256225,7 +256047,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
256225
256047
|
*/
|
|
256226
256048
|
dispatchCurveSpiral(curveA, extendA0, extendA1, spiralB, reversed) {
|
|
256227
256049
|
let cpA = curveA;
|
|
256228
|
-
if (curveA instanceof
|
|
256050
|
+
if (curveA instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d) {
|
|
256229
256051
|
cpA = this.strokeCurve(curveA);
|
|
256230
256052
|
extendA0 = extendA1 = false;
|
|
256231
256053
|
}
|
|
@@ -256237,6 +256059,137 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
256237
256059
|
this.appendDiscreteCloseApproachResults(cpA, cpB, maxError, reversed); // seeds for finding tangent intersections
|
|
256238
256060
|
this.refineSpiralResultsByNewton(curveA, spiralB, index0, reversed);
|
|
256239
256061
|
}
|
|
256062
|
+
/**
|
|
256063
|
+
* Invoke dispatch on each child of `g` as "geometryA".
|
|
256064
|
+
* * If `g` is a `Path` or `Loop`, adjust extension flags for geometryA accordingly.
|
|
256065
|
+
*/
|
|
256066
|
+
handleChildren(g) {
|
|
256067
|
+
const children = g.children;
|
|
256068
|
+
if (!children)
|
|
256069
|
+
return;
|
|
256070
|
+
const saveExtendA0 = this._extendA0;
|
|
256071
|
+
const saveExtendA1 = this._extendA1;
|
|
256072
|
+
for (let i = 0; i < children.length; i++) {
|
|
256073
|
+
let extendA0 = saveExtendA0;
|
|
256074
|
+
let extendA1 = saveExtendA1;
|
|
256075
|
+
if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_15__.Path && children.length > 1) {
|
|
256076
|
+
if (i === 0)
|
|
256077
|
+
extendA1 = false; // first child can only extend from start
|
|
256078
|
+
else if (i === children.length - 1)
|
|
256079
|
+
extendA0 = false; // last child can only extend from end
|
|
256080
|
+
else
|
|
256081
|
+
extendA0 = extendA1 = false; // middle children cannot extend
|
|
256082
|
+
}
|
|
256083
|
+
else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_16__.Loop) {
|
|
256084
|
+
extendA0 = extendA1 = false; // Loops cannot extend
|
|
256085
|
+
}
|
|
256086
|
+
this.resetGeometryA(extendA0, extendA1);
|
|
256087
|
+
children[i].dispatchToGeometryHandler(this);
|
|
256088
|
+
}
|
|
256089
|
+
this.resetGeometryA(saveExtendA0, saveExtendA1);
|
|
256090
|
+
}
|
|
256091
|
+
/** Double dispatch handler for strongly typed segment. */
|
|
256092
|
+
handleLineSegment3d(segmentA) {
|
|
256093
|
+
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_21__.LineSegment3d) {
|
|
256094
|
+
const segmentB = this._geometryB;
|
|
256095
|
+
this.dispatchSegmentSegment(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, segmentB, this._extendB0, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, this._extendB1, false);
|
|
256096
|
+
}
|
|
256097
|
+
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d) {
|
|
256098
|
+
this.computeSegmentLineString(segmentA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256099
|
+
}
|
|
256100
|
+
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_22__.Arc3d) {
|
|
256101
|
+
this.dispatchSegmentArc(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256102
|
+
}
|
|
256103
|
+
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_23__.BSplineCurve3d) {
|
|
256104
|
+
this.dispatchSegmentBsplineCurve(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256105
|
+
}
|
|
256106
|
+
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d) {
|
|
256107
|
+
this.dispatchCurveSpiral(segmentA, this._extendA0, this._extendA1, this._geometryB, false);
|
|
256108
|
+
}
|
|
256109
|
+
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
256110
|
+
this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
|
|
256111
|
+
}
|
|
256112
|
+
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
|
|
256113
|
+
this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
|
|
256114
|
+
}
|
|
256115
|
+
return undefined;
|
|
256116
|
+
}
|
|
256117
|
+
/** Double dispatch handler for strongly typed linestring. */
|
|
256118
|
+
handleLineString3d(lsA) {
|
|
256119
|
+
if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d) {
|
|
256120
|
+
const lsB = this._geometryB;
|
|
256121
|
+
this.computeLineStringLineString(lsA, this._extendA0, this._extendA1, lsB, this._extendB0, this._extendB1, false);
|
|
256122
|
+
}
|
|
256123
|
+
else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_21__.LineSegment3d) {
|
|
256124
|
+
this.computeSegmentLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
|
|
256125
|
+
}
|
|
256126
|
+
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_22__.Arc3d) {
|
|
256127
|
+
this.computeArcLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
|
|
256128
|
+
}
|
|
256129
|
+
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_23__.BSplineCurve3d) {
|
|
256130
|
+
this.dispatchLineStringBSplineCurve(lsA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256131
|
+
}
|
|
256132
|
+
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d) {
|
|
256133
|
+
this.dispatchCurveSpiral(lsA, this._extendA0, this._extendA1, this._geometryB, false);
|
|
256134
|
+
}
|
|
256135
|
+
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
256136
|
+
this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
|
|
256137
|
+
}
|
|
256138
|
+
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
|
|
256139
|
+
this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
|
|
256140
|
+
}
|
|
256141
|
+
return undefined;
|
|
256142
|
+
}
|
|
256143
|
+
/** Double dispatch handler for strongly typed arc. */
|
|
256144
|
+
handleArc3d(arcA) {
|
|
256145
|
+
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_21__.LineSegment3d) {
|
|
256146
|
+
this.dispatchSegmentArc(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, arcA, this._extendA0, this._extendA1, true);
|
|
256147
|
+
}
|
|
256148
|
+
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d) {
|
|
256149
|
+
this.computeArcLineString(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256150
|
+
}
|
|
256151
|
+
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_22__.Arc3d) {
|
|
256152
|
+
this.dispatchArcArc(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256153
|
+
}
|
|
256154
|
+
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_23__.BSplineCurve3d) {
|
|
256155
|
+
this.dispatchArcBsplineCurve3d(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
256156
|
+
}
|
|
256157
|
+
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d) {
|
|
256158
|
+
this.dispatchCurveSpiral(arcA, this._extendA0, this._extendA1, this._geometryB, false);
|
|
256159
|
+
}
|
|
256160
|
+
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
256161
|
+
this.dispatchCurveCollection(arcA, this.handleArc3d.bind(this));
|
|
256162
|
+
}
|
|
256163
|
+
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
|
|
256164
|
+
this.dispatchCurveChainWithDistanceIndex(arcA, this.handleArc3d.bind(this));
|
|
256165
|
+
}
|
|
256166
|
+
return undefined;
|
|
256167
|
+
}
|
|
256168
|
+
/** Double dispatch handler for strongly typed bspline curve. */
|
|
256169
|
+
handleBSplineCurve3d(curveA) {
|
|
256170
|
+
if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_21__.LineSegment3d) {
|
|
256171
|
+
this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
|
|
256172
|
+
}
|
|
256173
|
+
else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d) {
|
|
256174
|
+
this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
|
|
256175
|
+
}
|
|
256176
|
+
else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_22__.Arc3d) {
|
|
256177
|
+
this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
|
|
256178
|
+
}
|
|
256179
|
+
else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_23__.BSplineCurve3dBase) {
|
|
256180
|
+
this.dispatchBSplineCurve3dBSplineCurve3d(curveA, this._geometryB, false);
|
|
256181
|
+
}
|
|
256182
|
+
else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d) {
|
|
256183
|
+
this.dispatchCurveSpiral(curveA, this._extendA0, this._extendA1, this._geometryB, false);
|
|
256184
|
+
}
|
|
256185
|
+
else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
|
|
256186
|
+
this.dispatchCurveCollection(curveA, this.handleBSplineCurve3d.bind(this));
|
|
256187
|
+
}
|
|
256188
|
+
else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
|
|
256189
|
+
this.dispatchCurveChainWithDistanceIndex(curveA, this.handleBSplineCurve3d.bind(this));
|
|
256190
|
+
}
|
|
256191
|
+
return undefined;
|
|
256192
|
+
}
|
|
256240
256193
|
/** Double dispatch handler for strongly typed spiral curve. */
|
|
256241
256194
|
handleTransitionSpiral(spiral) {
|
|
256242
256195
|
if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
|
|
@@ -256258,19 +256211,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
|
|
|
256258
256211
|
}
|
|
256259
256212
|
/** Double dispatch handler for strongly typed homogeneous bspline curve. */
|
|
256260
256213
|
handleBSplineCurve3dH(_curve) {
|
|
256261
|
-
/*
|
|
256262
256214
|
// NEEDS WORK -- make "dispatch" methods tolerant of both 3d and 3dH .
|
|
256263
256215
|
// "easy" if both present BezierCurve3dH span loaders
|
|
256264
|
-
if (this._geometryB instanceof LineSegment3d) {
|
|
256265
|
-
this.dispatchSegmentBsplineCurve(
|
|
256266
|
-
this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB,
|
|
256267
|
-
curve, this._extendA, true);
|
|
256268
|
-
} else if (this._geometryB instanceof LineString3d) {
|
|
256269
|
-
this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
|
|
256270
|
-
} else if (this._geometryB instanceof Arc3d) {
|
|
256271
|
-
this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
|
|
256272
|
-
}
|
|
256273
|
-
*/
|
|
256274
256216
|
return undefined;
|
|
256275
256217
|
}
|
|
256276
256218
|
}
|
|
@@ -279548,9 +279490,8 @@ class Point4dArray {
|
|
|
279548
279490
|
* @return packed weighted point array
|
|
279549
279491
|
*/
|
|
279550
279492
|
static packPointsAndWeightsToFloat64Array(data, weights, result) {
|
|
279551
|
-
let points;
|
|
279552
279493
|
if (Array.isArray(data) && data[0] instanceof _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d) {
|
|
279553
|
-
points = data;
|
|
279494
|
+
const points = data;
|
|
279554
279495
|
if (points.length !== weights.length)
|
|
279555
279496
|
return undefined;
|
|
279556
279497
|
const numValues = 4 * points.length;
|
|
@@ -279564,18 +279505,18 @@ class Point4dArray {
|
|
|
279564
279505
|
}
|
|
279565
279506
|
return result;
|
|
279566
279507
|
}
|
|
279567
|
-
|
|
279508
|
+
const numericData = data;
|
|
279568
279509
|
const numPoints = weights.length;
|
|
279569
|
-
if (
|
|
279510
|
+
if (numericData.length !== 3 * numPoints)
|
|
279570
279511
|
return undefined;
|
|
279571
279512
|
const numValues1 = 4 * numPoints;
|
|
279572
279513
|
if (!result || result.length < numValues1)
|
|
279573
279514
|
result = new Float64Array(numValues1);
|
|
279574
279515
|
for (let i = 0, k = 0; k < numPoints; k++) {
|
|
279575
279516
|
const k0 = 3 * k;
|
|
279576
|
-
result[i++] =
|
|
279577
|
-
result[i++] =
|
|
279578
|
-
result[i++] =
|
|
279517
|
+
result[i++] = numericData[k0];
|
|
279518
|
+
result[i++] = numericData[k0 + 1];
|
|
279519
|
+
result[i++] = numericData[k0 + 2];
|
|
279579
279520
|
result[i++] = weights[k];
|
|
279580
279521
|
}
|
|
279581
279522
|
return result;
|
|
@@ -350004,7 +349945,7 @@ class TestContext {
|
|
|
350004
349945
|
this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
|
|
350005
349946
|
const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
|
|
350006
349947
|
await core_frontend_1.NoRenderApp.startup({
|
|
350007
|
-
applicationVersion: "5.9.0-dev.
|
|
349948
|
+
applicationVersion: "5.9.0-dev.16",
|
|
350008
349949
|
applicationId: this.settings.gprid,
|
|
350009
349950
|
authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.serviceAuthToken),
|
|
350010
349951
|
hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
|
|
@@ -377279,7 +377220,7 @@ var loadLanguages = instance.loadLanguages;
|
|
|
377279
377220
|
/***/ ((module) => {
|
|
377280
377221
|
|
|
377281
377222
|
"use strict";
|
|
377282
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.9.0-dev.
|
|
377223
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.9.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 && npm run -s copy:draco","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","copy:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./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 && npm run -s extract","extract":"betools extract --fileExt=ts --extractFrom=./src/test/example-code --recursive --out=../../generated-docs/extract","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","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","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":{"@bentley/aec-units-schema":"^1.0.3","@bentley/formats-schema":"^1.0.0","@bentley/units-schema":"^1.0.9","@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/object-storage-core":"^3.0.4","@itwin/eslint-plugin":"^6.0.0","@types/chai-as-promised":"^7","@types/draco3d":"^1.4.10","@types/sinon":"^17.0.2","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.31.0","glob":"^10.5.0","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","source-map-loader":"^5.0.0","typescript":"~5.6.2","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/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"~4.3.4","@loaders.gl/draco":"~4.3.4","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
|
|
377283
377224
|
|
|
377284
377225
|
/***/ }),
|
|
377285
377226
|
|