@itwin/ecschema-rpcinterface-tests 4.1.0-dev.68 → 4.1.0-dev.69
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/_05e2.bundled-tests.js.map +1 -1
- package/lib/dist/bundled-tests.js +1384 -1222
- package/lib/dist/bundled-tests.js.map +1 -1
- package/lib/dist/core_frontend_lib_esm_ApproximateTerrainHeightsProps_js.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_4_4_node_modules_loaders_gl_draco_di-6aa0d4.bundled-tests.js.map +1 -1
- package/package.json +17 -23
|
@@ -24503,7 +24503,7 @@ class Logger {
|
|
|
24503
24503
|
* @param log The logger output function to use - defaults to Logger.logError
|
|
24504
24504
|
* @param metaData Optional data for the message
|
|
24505
24505
|
*/
|
|
24506
|
-
static logException(category, err, log = Logger.logError) {
|
|
24506
|
+
static logException(category, err, log = (_category, message) => Logger.logError(_category, message)) {
|
|
24507
24507
|
log(category, Logger.getExceptionMessage(err), () => {
|
|
24508
24508
|
return { ..._BentleyError__WEBPACK_IMPORTED_MODULE_0__.BentleyError.getErrorMetadata(err), exceptionType: err.constructor.name };
|
|
24509
24509
|
});
|
|
@@ -26558,10 +26558,10 @@ class Tracing {
|
|
|
26558
26558
|
static enableOpenTelemetry(tracer, api) {
|
|
26559
26559
|
Tracing._tracer = tracer;
|
|
26560
26560
|
Tracing._openTelemetry = api;
|
|
26561
|
-
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace = Tracing.withOpenTelemetry(_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace);
|
|
26562
|
-
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logInfo = Tracing.withOpenTelemetry(_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logInfo);
|
|
26563
|
-
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning = Tracing.withOpenTelemetry(_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning);
|
|
26564
|
-
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logError = Tracing.withOpenTelemetry(_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logError);
|
|
26561
|
+
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace = (category, message, metaData) => Tracing.withOpenTelemetry(() => _Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace(category, message, metaData));
|
|
26562
|
+
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logInfo = (category, message, metaData) => Tracing.withOpenTelemetry(() => _Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logInfo(category, message, metaData));
|
|
26563
|
+
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning = (category, message, metaData) => Tracing.withOpenTelemetry(() => _Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(category, message, metaData));
|
|
26564
|
+
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logError = (category, message, metaData) => Tracing.withOpenTelemetry(() => _Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(category, message, metaData));
|
|
26565
26565
|
}
|
|
26566
26566
|
static withOpenTelemetry(base, isError = false) {
|
|
26567
26567
|
return (category, message, metaData) => {
|
|
@@ -32599,9 +32599,9 @@ class PropertyMetaData {
|
|
|
32599
32599
|
case PrimitiveTypeCode.String:
|
|
32600
32600
|
return jsonObj; // this works even for arrays or strings that are JSON because the parsed JSON is already the right type
|
|
32601
32601
|
case PrimitiveTypeCode.Point2d:
|
|
32602
|
-
return this.createValueOrArray(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.fromJSON, jsonObj);
|
|
32602
|
+
return this.createValueOrArray((obj) => _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.fromJSON(obj), jsonObj);
|
|
32603
32603
|
case PrimitiveTypeCode.Point3d:
|
|
32604
|
-
return this.createValueOrArray(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON, jsonObj);
|
|
32604
|
+
return this.createValueOrArray((obj) => _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON(obj), jsonObj);
|
|
32605
32605
|
}
|
|
32606
32606
|
}
|
|
32607
32607
|
if (this.isNavigation)
|
|
@@ -55043,7 +55043,7 @@ class RpcMarshaling {
|
|
|
55043
55043
|
}
|
|
55044
55044
|
marshalingTarget = serialized;
|
|
55045
55045
|
chunkThreshold = protocol ? protocol.transferChunkThreshold : 0;
|
|
55046
|
-
serialized.objects = JSON.stringify(value, WireFormat.marshal);
|
|
55046
|
+
serialized.objects = JSON.stringify(value, (_key, _value) => WireFormat.marshal(_key, _value));
|
|
55047
55047
|
marshalingTarget = undefined;
|
|
55048
55048
|
chunkThreshold = 0;
|
|
55049
55049
|
return serialized;
|
|
@@ -55057,7 +55057,7 @@ class RpcMarshaling {
|
|
|
55057
55057
|
chunkThreshold = protocol ? protocol.transferChunkThreshold : 0;
|
|
55058
55058
|
let result;
|
|
55059
55059
|
try {
|
|
55060
|
-
result = JSON.parse(value.objects, WireFormat.unmarshal);
|
|
55060
|
+
result = JSON.parse(value.objects, (_key, _value) => WireFormat.unmarshal(_key, _value));
|
|
55061
55061
|
}
|
|
55062
55062
|
catch (error) {
|
|
55063
55063
|
if (error instanceof SyntaxError)
|
|
@@ -57222,7 +57222,7 @@ class WebAppRpcProtocol extends _core_RpcProtocol__WEBPACK_IMPORTED_MODULE_3__.R
|
|
|
57222
57222
|
/** The RPC request class for this protocol. */
|
|
57223
57223
|
this.requestType = _WebAppRpcRequest__WEBPACK_IMPORTED_MODULE_6__.WebAppRpcRequest;
|
|
57224
57224
|
this.supportsStatusCategory = true;
|
|
57225
|
-
this.events.addListener(_WebAppRpcLogging__WEBPACK_IMPORTED_MODULE_5__.WebAppRpcLogging.logProtocolEvent);
|
|
57225
|
+
this.events.addListener(async (event, object) => _WebAppRpcLogging__WEBPACK_IMPORTED_MODULE_5__.WebAppRpcLogging.logProtocolEvent(event, object));
|
|
57226
57226
|
}
|
|
57227
57227
|
}
|
|
57228
57228
|
|
|
@@ -63749,13 +63749,13 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
63749
63749
|
const key = new SchemaKey_1.SchemaItemKey(targetClass, new SchemaKey_1.SchemaKey(schemaName));
|
|
63750
63750
|
if (SchemaItem_1.SchemaItem.equalByKey(this, key))
|
|
63751
63751
|
return true;
|
|
63752
|
-
return this.traverseBaseClasses(SchemaItem_1.SchemaItem.equalByKey, key);
|
|
63752
|
+
return this.traverseBaseClasses((thisSchemaItem, thatSchemaItemOrKey) => SchemaItem_1.SchemaItem.equalByKey(thisSchemaItem, thatSchemaItemOrKey), key);
|
|
63753
63753
|
}
|
|
63754
63754
|
else {
|
|
63755
63755
|
(0, core_bentley_1.assert)(ECClass.isECClass(targetClass), "Expected targetClass to be of type ECClass");
|
|
63756
63756
|
if (SchemaItem_1.SchemaItem.equalByKey(this, targetClass))
|
|
63757
63757
|
return true;
|
|
63758
|
-
return this.traverseBaseClasses(SchemaItem_1.SchemaItem.equalByKey, targetClass);
|
|
63758
|
+
return this.traverseBaseClasses((thisSchemaItem, thatSchemaItemOrKey) => SchemaItem_1.SchemaItem.equalByKey(thisSchemaItem, thatSchemaItemOrKey), targetClass);
|
|
63759
63759
|
}
|
|
63760
63760
|
}
|
|
63761
63761
|
/**
|
|
@@ -63765,7 +63765,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
63765
63765
|
isSync(targetClass) {
|
|
63766
63766
|
if (SchemaItem_1.SchemaItem.equalByKey(this, targetClass))
|
|
63767
63767
|
return true;
|
|
63768
|
-
return this.traverseBaseClassesSync(SchemaItem_1.SchemaItem.equalByKey, targetClass);
|
|
63768
|
+
return this.traverseBaseClassesSync((thisSchemaItem, thatSchemaItemOrKey) => SchemaItem_1.SchemaItem.equalByKey(thisSchemaItem, thatSchemaItemOrKey), targetClass);
|
|
63769
63769
|
}
|
|
63770
63770
|
/**
|
|
63771
63771
|
* @internal
|
|
@@ -79943,7 +79943,7 @@ class IModelApp {
|
|
|
79943
79943
|
* @note As of 4.x, iTwin.js requires WebGL 2. If the client does not support WebGL 2, the `status` field of the returned compatibility info will be [WebGLRenderCompatibilityStatus.CannotCreateContext]($webgl-compatibility).
|
|
79944
79944
|
*/
|
|
79945
79945
|
static queryRenderCompatibility() {
|
|
79946
|
-
return (0,_itwin_webgl_compatibility__WEBPACK_IMPORTED_MODULE_5__.queryRenderCompatibility)(true, _render_webgl_System__WEBPACK_IMPORTED_MODULE_21__.System.createContext);
|
|
79946
|
+
return (0,_itwin_webgl_compatibility__WEBPACK_IMPORTED_MODULE_5__.queryRenderCompatibility)(true, (canvas, useWebGL2, inputContextAttributes) => _render_webgl_System__WEBPACK_IMPORTED_MODULE_21__.System.createContext(canvas, useWebGL2, inputContextAttributes));
|
|
79947
79947
|
}
|
|
79948
79948
|
/**
|
|
79949
79949
|
* This method must be called before any other `@itwin/core-frontend` methods are used.
|
|
@@ -80030,7 +80030,7 @@ class IModelApp {
|
|
|
80030
80030
|
this.onBeforeShutdown.clear();
|
|
80031
80031
|
if (false) {}
|
|
80032
80032
|
this._wantEventLoop = false;
|
|
80033
|
-
window.removeEventListener("resize", IModelApp.requestNextAnimation);
|
|
80033
|
+
window.removeEventListener("resize", () => IModelApp.requestNextAnimation());
|
|
80034
80034
|
this.clearIntervalAnimation();
|
|
80035
80035
|
[this.toolAdmin, this.viewManager, this.tileAdmin].forEach((sys) => sys.onShutDown());
|
|
80036
80036
|
this.tools.shutdown();
|
|
@@ -80067,7 +80067,7 @@ class IModelApp {
|
|
|
80067
80067
|
return;
|
|
80068
80068
|
if (!IModelApp._animationRequested) {
|
|
80069
80069
|
IModelApp._animationRequested = true;
|
|
80070
|
-
requestAnimationFrame(IModelApp.eventLoop);
|
|
80070
|
+
requestAnimationFrame(() => IModelApp.eventLoop());
|
|
80071
80071
|
}
|
|
80072
80072
|
}
|
|
80073
80073
|
/** @internal */
|
|
@@ -80089,7 +80089,7 @@ class IModelApp {
|
|
|
80089
80089
|
static startEventLoop() {
|
|
80090
80090
|
if (!IModelApp._wantEventLoop) {
|
|
80091
80091
|
IModelApp._wantEventLoop = true;
|
|
80092
|
-
window.addEventListener("resize", IModelApp.requestNextAnimation);
|
|
80092
|
+
window.addEventListener("resize", () => IModelApp.requestNextAnimation());
|
|
80093
80093
|
IModelApp.requestIntervalAnimation();
|
|
80094
80094
|
IModelApp.requestNextAnimation();
|
|
80095
80095
|
}
|
|
@@ -80112,7 +80112,7 @@ class IModelApp {
|
|
|
80112
80112
|
_tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_33__.ToolAdmin.exceptionHandler(exception); // eslint-disable-line @typescript-eslint/no-floating-promises
|
|
80113
80113
|
IModelApp._wantEventLoop = false;
|
|
80114
80114
|
IModelApp._animationRequested = true; // unrecoverable after exception, don't request any further frames.
|
|
80115
|
-
window.removeEventListener("resize", IModelApp.requestNextAnimation);
|
|
80115
|
+
window.removeEventListener("resize", () => IModelApp.requestNextAnimation());
|
|
80116
80116
|
}
|
|
80117
80117
|
}
|
|
80118
80118
|
/** Get the user's access token for this IModelApp, or a blank string if none is available.
|
|
@@ -123225,7 +123225,7 @@ class IdMap {
|
|
|
123225
123225
|
/** Mapping of textures by their key values. */
|
|
123226
123226
|
this.textures = new Map();
|
|
123227
123227
|
/** Mapping of textures using gradient symbology. */
|
|
123228
|
-
this.gradients = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Dictionary(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Gradient.Symb.compareSymb);
|
|
123228
|
+
this.gradients = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Dictionary((lhs, rhs) => _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Gradient.Symb.compareSymb(lhs, rhs));
|
|
123229
123229
|
/** Pending promises to create a texture from an ImageSource. This prevents us from decoding the same ImageSource multiple times */
|
|
123230
123230
|
this.texturesFromImageSources = new Map();
|
|
123231
123231
|
this._iModel = iModel;
|
|
@@ -138117,7 +138117,7 @@ class GltfReader {
|
|
|
138117
138117
|
}
|
|
138118
138118
|
}
|
|
138119
138119
|
const uvs = draco.attributes.TEXCOORD_0?.value;
|
|
138120
|
-
if (uvs && (uvs.length
|
|
138120
|
+
if (uvs && (uvs.length % 2) === 0)
|
|
138121
138121
|
for (let i = 0; i < uvs.length; i += 2)
|
|
138122
138122
|
mesh.uvParams.push(new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d(uvs[i], uvs[i + 1]));
|
|
138123
138123
|
const batchIds = draco.attributes._BATCHID?.value;
|
|
@@ -170743,7 +170743,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
170743
170743
|
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
170744
170744
|
/* harmony import */ var _curve_internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../curve/internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
|
|
170745
170745
|
/* harmony import */ var _curve_internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../curve/internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
170746
|
-
/* harmony import */ var
|
|
170746
|
+
/* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
170747
170747
|
/* harmony import */ var _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../curve/Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
|
|
170748
170748
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
170749
170749
|
/* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
|
|
@@ -171054,7 +171054,7 @@ class BSplineCurve3dBase extends _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_
|
|
|
171054
171054
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
171055
171055
|
*/
|
|
171056
171056
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
171057
|
-
const options =
|
|
171057
|
+
const options = _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
171058
171058
|
const handler = new _curve_internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_10__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
|
|
171059
171059
|
this.emitStrokableParts(handler, options.strokeOptions);
|
|
171060
171060
|
return handler.claimResult();
|
|
@@ -173359,7 +173359,7 @@ class BSplineSurface3dH extends BSpline2dNd {
|
|
|
173359
173359
|
/** Return a simple array of the control points. */
|
|
173360
173360
|
copyPoints4d() { return _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_6__.Point4dArray.unpackToPoint4dArray(this.coffs); }
|
|
173361
173361
|
/** Return a simple array of the control points. */
|
|
173362
|
-
copyPointsAndWeights(points, weights, formatter = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create) {
|
|
173362
|
+
copyPointsAndWeights(points, weights, formatter = (x, y, z) => _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(x, y, z)) {
|
|
173363
173363
|
_geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_6__.Point4dArray.unpackFloat64ArrayToPointsAndWeights(this.coffs, points, weights, formatter);
|
|
173364
173364
|
}
|
|
173365
173365
|
/** unpack from xyzw xyzw ... to packed xyz, optionally unweighted
|
|
@@ -174570,7 +174570,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
174570
174570
|
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
174571
174571
|
/* harmony import */ var _curve_internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../curve/internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
|
|
174572
174572
|
/* harmony import */ var _curve_internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
174573
|
-
/* harmony import */ var
|
|
174573
|
+
/* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
174574
174574
|
/* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
174575
174575
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
174576
174576
|
/* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
|
|
@@ -174786,7 +174786,7 @@ class BezierCurveBase extends _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__
|
|
|
174786
174786
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
174787
174787
|
*/
|
|
174788
174788
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
174789
|
-
const options =
|
|
174789
|
+
const options = _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_7__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
174790
174790
|
const handler = new _curve_internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_8__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
|
|
174791
174791
|
this.emitStrokableParts(handler, options.strokeOptions);
|
|
174792
174792
|
return handler.claimResult();
|
|
@@ -180617,161 +180617,160 @@ class LineStringOffsetClipperContext {
|
|
|
180617
180617
|
"use strict";
|
|
180618
180618
|
__webpack_require__.r(__webpack_exports__);
|
|
180619
180619
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
180620
|
-
/* harmony export */ AbstractNewtonIterator: () => (/* reexport safe */
|
|
180621
|
-
/* harmony export */ AkimaCurve3d: () => (/* reexport safe */
|
|
180622
|
-
/* harmony export */ AkimaCurve3dOptions: () => (/* reexport safe */
|
|
180623
|
-
/* harmony export */ AnalyticRoots: () => (/* reexport safe */
|
|
180620
|
+
/* harmony export */ AbstractNewtonIterator: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.AbstractNewtonIterator),
|
|
180621
|
+
/* harmony export */ AkimaCurve3d: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_100__.AkimaCurve3d),
|
|
180622
|
+
/* harmony export */ AkimaCurve3dOptions: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_100__.AkimaCurve3dOptions),
|
|
180623
|
+
/* harmony export */ AnalyticRoots: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.AnalyticRoots),
|
|
180624
180624
|
/* harmony export */ Angle: () => (/* reexport safe */ _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__.Angle),
|
|
180625
180625
|
/* harmony export */ AngleSweep: () => (/* reexport safe */ _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep),
|
|
180626
|
-
/* harmony export */ AnnotatedLineString3d: () => (/* reexport safe */
|
|
180627
|
-
/* harmony export */ Arc3d: () => (/* reexport safe */
|
|
180628
|
-
/* harmony export */ AuxChannel: () => (/* reexport safe */
|
|
180629
|
-
/* harmony export */ AuxChannelData: () => (/* reexport safe */
|
|
180630
|
-
/* harmony export */ AuxChannelDataType: () => (/* reexport safe */
|
|
180631
|
-
/* harmony export */ AxisIndex: () => (/* reexport safe */
|
|
180632
|
-
/* harmony export */ AxisOrder: () => (/* reexport safe */
|
|
180633
|
-
/* harmony export */ AxisScaleSelect: () => (/* reexport safe */
|
|
180634
|
-
/* harmony export */ BSpline1dNd: () => (/* reexport safe */
|
|
180635
|
-
/* harmony export */ BSpline2dNd: () => (/* reexport safe */
|
|
180636
|
-
/* harmony export */ BSplineCurve3d: () => (/* reexport safe */
|
|
180637
|
-
/* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */
|
|
180638
|
-
/* harmony export */ BSplineCurve3dH: () => (/* reexport safe */
|
|
180639
|
-
/* harmony export */ BSplineCurveOps: () => (/* reexport safe */
|
|
180640
|
-
/* harmony export */ BSplineSurface3d: () => (/* reexport safe */
|
|
180641
|
-
/* harmony export */ BSplineSurface3dH: () => (/* reexport safe */
|
|
180642
|
-
/* harmony export */ BSplineWrapMode: () => (/* reexport safe */
|
|
180643
|
-
/* harmony export */ BagOfCurves: () => (/* reexport safe */
|
|
180626
|
+
/* harmony export */ AnnotatedLineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_76__.AnnotatedLineString3d),
|
|
180627
|
+
/* harmony export */ Arc3d: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__.Arc3d),
|
|
180628
|
+
/* harmony export */ AuxChannel: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__.AuxChannel),
|
|
180629
|
+
/* harmony export */ AuxChannelData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__.AuxChannelData),
|
|
180630
|
+
/* harmony export */ AuxChannelDataType: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__.AuxChannelDataType),
|
|
180631
|
+
/* harmony export */ AxisIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisIndex),
|
|
180632
|
+
/* harmony export */ AxisOrder: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisOrder),
|
|
180633
|
+
/* harmony export */ AxisScaleSelect: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisScaleSelect),
|
|
180634
|
+
/* harmony export */ BSpline1dNd: () => (/* reexport safe */ _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_107__.BSpline1dNd),
|
|
180635
|
+
/* harmony export */ BSpline2dNd: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.BSpline2dNd),
|
|
180636
|
+
/* harmony export */ BSplineCurve3d: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_105__.BSplineCurve3d),
|
|
180637
|
+
/* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_105__.BSplineCurve3dBase),
|
|
180638
|
+
/* harmony export */ BSplineCurve3dH: () => (/* reexport safe */ _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_108__.BSplineCurve3dH),
|
|
180639
|
+
/* harmony export */ BSplineCurveOps: () => (/* reexport safe */ _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_106__.BSplineCurveOps),
|
|
180640
|
+
/* harmony export */ BSplineSurface3d: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.BSplineSurface3d),
|
|
180641
|
+
/* harmony export */ BSplineSurface3dH: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.BSplineSurface3dH),
|
|
180642
|
+
/* harmony export */ BSplineWrapMode: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_111__.BSplineWrapMode),
|
|
180643
|
+
/* harmony export */ BagOfCurves: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.BagOfCurves),
|
|
180644
180644
|
/* harmony export */ BarycentricTriangle: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.BarycentricTriangle),
|
|
180645
|
-
/* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */
|
|
180646
|
-
/* harmony export */ Bezier1dNd: () => (/* reexport safe */
|
|
180647
|
-
/* harmony export */ BezierBezierIntersectionXYRRToRRD: () => (/* reexport safe */
|
|
180648
|
-
/* harmony export */ BezierCoffs: () => (/* reexport safe */
|
|
180649
|
-
/* harmony export */ BezierCurve3d: () => (/* reexport safe */
|
|
180650
|
-
/* harmony export */ BezierCurve3dH: () => (/* reexport safe */
|
|
180651
|
-
/* harmony export */ BezierCurveBase: () => (/* reexport safe */
|
|
180652
|
-
/* harmony export */ BezierPolynomialAlgebra: () => (/* reexport safe */
|
|
180645
|
+
/* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__.BentleyGeometryFlatBuffer),
|
|
180646
|
+
/* harmony export */ Bezier1dNd: () => (/* reexport safe */ _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_101__.Bezier1dNd),
|
|
180647
|
+
/* harmony export */ BezierBezierIntersectionXYRRToRRD: () => (/* reexport safe */ _curve_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_67__.BezierBezierIntersectionXYRRToRRD),
|
|
180648
|
+
/* harmony export */ BezierCoffs: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierCoffs),
|
|
180649
|
+
/* harmony export */ BezierCurve3d: () => (/* reexport safe */ _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_103__.BezierCurve3d),
|
|
180650
|
+
/* harmony export */ BezierCurve3dH: () => (/* reexport safe */ _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_104__.BezierCurve3dH),
|
|
180651
|
+
/* harmony export */ BezierCurveBase: () => (/* reexport safe */ _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_102__.BezierCurveBase),
|
|
180652
|
+
/* harmony export */ BezierPolynomialAlgebra: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierPolynomialAlgebra),
|
|
180653
180653
|
/* harmony export */ BilinearPatch: () => (/* reexport safe */ _geometry3d_BilinearPatch__WEBPACK_IMPORTED_MODULE_4__.BilinearPatch),
|
|
180654
|
-
/* harmony export */ BilinearPolynomial: () => (/* reexport safe */
|
|
180655
|
-
/* harmony export */ BooleanClipFactory: () => (/* reexport safe */
|
|
180656
|
-
/* harmony export */ Box: () => (/* reexport safe */
|
|
180657
|
-
/* harmony export */ BoxTopology: () => (/* reexport safe */
|
|
180658
|
-
/* harmony export */ ClipMaskXYZRangePlanes: () => (/* reexport safe */
|
|
180659
|
-
/* harmony export */ ClipPlane: () => (/* reexport safe */
|
|
180660
|
-
/* harmony export */ ClipPlaneContainment: () => (/* reexport safe */
|
|
180661
|
-
/* harmony export */ ClipPrimitive: () => (/* reexport safe */
|
|
180662
|
-
/* harmony export */ ClipShape: () => (/* reexport safe */
|
|
180663
|
-
/* harmony export */ ClipStatus: () => (/* reexport safe */
|
|
180664
|
-
/* harmony export */ ClipStepAction: () => (/* reexport safe */
|
|
180665
|
-
/* harmony export */ ClipUtilities: () => (/* reexport safe */
|
|
180666
|
-
/* harmony export */ ClipVector: () => (/* reexport safe */
|
|
180667
|
-
/* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */
|
|
180668
|
-
/* harmony export */ ClusterableArray: () => (/* reexport safe */
|
|
180669
|
-
/* harmony export */ Complex: () => (/* reexport safe */
|
|
180670
|
-
/* harmony export */ Cone: () => (/* reexport safe */
|
|
180671
|
-
/* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */
|
|
180672
|
-
/* harmony export */ Constant: () => (/* reexport safe */
|
|
180673
|
-
/* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */
|
|
180674
|
-
/* harmony export */ ConvexClipPlaneSet: () => (/* reexport safe */
|
|
180675
|
-
/* harmony export */ ConvexFacetLocationDetail: () => (/* reexport safe */
|
|
180676
|
-
/* harmony export */ ConvexPolygon2d: () => (/* reexport safe */
|
|
180677
|
-
/* harmony export */ CoordinateXYZ: () => (/* reexport safe */
|
|
180678
|
-
/* harmony export */ CurveChain: () => (/* reexport safe */
|
|
180679
|
-
/* harmony export */
|
|
180680
|
-
/* harmony export */
|
|
180681
|
-
/* harmony export */
|
|
180682
|
-
/* harmony export */
|
|
180683
|
-
/* harmony export */
|
|
180684
|
-
/* harmony export */
|
|
180685
|
-
/* harmony export */
|
|
180686
|
-
/* harmony export */
|
|
180687
|
-
/* harmony export */
|
|
180688
|
-
/* harmony export */
|
|
180689
|
-
/* harmony export */
|
|
180690
|
-
/* harmony export */
|
|
180691
|
-
/* harmony export */
|
|
180692
|
-
/* harmony export */
|
|
180693
|
-
/* harmony export */ CurvePrimitive: () => (/* reexport safe */
|
|
180694
|
-
/* harmony export */ CurveSearchStatus: () => (/* reexport safe */
|
|
180654
|
+
/* harmony export */ BilinearPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.BilinearPolynomial),
|
|
180655
|
+
/* harmony export */ BooleanClipFactory: () => (/* reexport safe */ _clipping_BooleanClipFactory__WEBPACK_IMPORTED_MODULE_38__.BooleanClipFactory),
|
|
180656
|
+
/* harmony export */ Box: () => (/* reexport safe */ _solid_Box__WEBPACK_IMPORTED_MODULE_91__.Box),
|
|
180657
|
+
/* harmony export */ BoxTopology: () => (/* reexport safe */ _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_113__.BoxTopology),
|
|
180658
|
+
/* harmony export */ ClipMaskXYZRangePlanes: () => (/* reexport safe */ _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__.ClipMaskXYZRangePlanes),
|
|
180659
|
+
/* harmony export */ ClipPlane: () => (/* reexport safe */ _clipping_ClipPlane__WEBPACK_IMPORTED_MODULE_39__.ClipPlane),
|
|
180660
|
+
/* harmony export */ ClipPlaneContainment: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipPlaneContainment),
|
|
180661
|
+
/* harmony export */ ClipPrimitive: () => (/* reexport safe */ _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__.ClipPrimitive),
|
|
180662
|
+
/* harmony export */ ClipShape: () => (/* reexport safe */ _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__.ClipShape),
|
|
180663
|
+
/* harmony export */ ClipStatus: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipStatus),
|
|
180664
|
+
/* harmony export */ ClipStepAction: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipStepAction),
|
|
180665
|
+
/* harmony export */ ClipUtilities: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipUtilities),
|
|
180666
|
+
/* harmony export */ ClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.ClipVector),
|
|
180667
|
+
/* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.ClippedPolyfaceBuilders),
|
|
180668
|
+
/* harmony export */ ClusterableArray: () => (/* reexport safe */ _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__.ClusterableArray),
|
|
180669
|
+
/* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__.Complex),
|
|
180670
|
+
/* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_92__.Cone),
|
|
180671
|
+
/* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.ConsolidateAdjacentCurvePrimitivesOptions),
|
|
180672
|
+
/* harmony export */ Constant: () => (/* reexport safe */ _Constant__WEBPACK_IMPORTED_MODULE_37__.Constant),
|
|
180673
|
+
/* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__.ConstructCurveBetweenCurves),
|
|
180674
|
+
/* harmony export */ ConvexClipPlaneSet: () => (/* reexport safe */ _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_40__.ConvexClipPlaneSet),
|
|
180675
|
+
/* harmony export */ ConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__.ConvexFacetLocationDetail),
|
|
180676
|
+
/* harmony export */ ConvexPolygon2d: () => (/* reexport safe */ _numerics_ConvexPolygon2d__WEBPACK_IMPORTED_MODULE_45__.ConvexPolygon2d),
|
|
180677
|
+
/* harmony export */ CoordinateXYZ: () => (/* reexport safe */ _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_62__.CoordinateXYZ),
|
|
180678
|
+
/* harmony export */ CurveChain: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.CurveChain),
|
|
180679
|
+
/* harmony export */ CurveChainWithDistanceIndex: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__.CurveChainWithDistanceIndex),
|
|
180680
|
+
/* harmony export */ CurveCollection: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.CurveCollection),
|
|
180681
|
+
/* harmony export */ CurveCurve: () => (/* reexport safe */ _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_66__.CurveCurve),
|
|
180682
|
+
/* harmony export */ CurveCurveApproachType: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveCurveApproachType),
|
|
180683
|
+
/* harmony export */ CurveCurveIntersectXY: () => (/* reexport safe */ _curve_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_67__.CurveCurveIntersectXY),
|
|
180684
|
+
/* harmony export */ CurveCurveIntersectXYZ: () => (/* reexport safe */ _curve_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_68__.CurveCurveIntersectXYZ),
|
|
180685
|
+
/* harmony export */ CurveExtendMode: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__.CurveExtendMode),
|
|
180686
|
+
/* harmony export */ CurveExtendOptions: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__.CurveExtendOptions),
|
|
180687
|
+
/* harmony export */ CurveFactory: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_70__.CurveFactory),
|
|
180688
|
+
/* harmony export */ CurveIntervalRole: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveIntervalRole),
|
|
180689
|
+
/* harmony export */ CurveLocationDetail: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveLocationDetail),
|
|
180690
|
+
/* harmony export */ CurveLocationDetailArrayPair: () => (/* reexport safe */ _curve_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetailArrayPair),
|
|
180691
|
+
/* harmony export */ CurveLocationDetailPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveLocationDetailPair),
|
|
180692
|
+
/* harmony export */ CurveOps: () => (/* reexport safe */ _curve_CurveOps__WEBPACK_IMPORTED_MODULE_71__.CurveOps),
|
|
180693
|
+
/* harmony export */ CurvePrimitive: () => (/* reexport safe */ _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_72__.CurvePrimitive),
|
|
180694
|
+
/* harmony export */ CurveSearchStatus: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveSearchStatus),
|
|
180695
180695
|
/* harmony export */ CutLoop: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoop),
|
|
180696
180696
|
/* harmony export */ CutLoopMergeContext: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoopMergeContext),
|
|
180697
|
-
/* harmony export */ DeepCompare: () => (/* reexport safe */
|
|
180698
|
-
/* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */
|
|
180699
|
-
/* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */
|
|
180700
|
-
/* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */
|
|
180701
|
-
/* harmony export */ DirectSpiral3d: () => (/* reexport safe */
|
|
180702
|
-
/* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */
|
|
180697
|
+
/* harmony export */ DeepCompare: () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__.DeepCompare),
|
|
180698
|
+
/* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree2PowerPolynomial),
|
|
180699
|
+
/* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree3PowerPolynomial),
|
|
180700
|
+
/* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree4PowerPolynomial),
|
|
180701
|
+
/* harmony export */ DirectSpiral3d: () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_88__.DirectSpiral3d),
|
|
180702
|
+
/* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.DuplicateFacetClusterSelector),
|
|
180703
180703
|
/* harmony export */ Ellipsoid: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.Ellipsoid),
|
|
180704
180704
|
/* harmony export */ EllipsoidPatch: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.EllipsoidPatch),
|
|
180705
|
-
/* harmony export */ FacetFaceData: () => (/* reexport safe */
|
|
180706
|
-
/* harmony export */ FacetIntersectOptions: () => (/* reexport safe */
|
|
180705
|
+
/* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_114__.FacetFaceData),
|
|
180706
|
+
/* harmony export */ FacetIntersectOptions: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__.FacetIntersectOptions),
|
|
180707
180707
|
/* harmony export */ FrameBuilder: () => (/* reexport safe */ _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_6__.FrameBuilder),
|
|
180708
|
-
/* harmony export */ GaussMapper: () => (/* reexport safe */
|
|
180708
|
+
/* harmony export */ GaussMapper: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__.GaussMapper),
|
|
180709
180709
|
/* harmony export */ GeodesicPathPoint: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathPoint),
|
|
180710
180710
|
/* harmony export */ GeodesicPathSolver: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathSolver),
|
|
180711
|
-
/* harmony export */ Geometry: () => (/* reexport safe */
|
|
180711
|
+
/* harmony export */ Geometry: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.Geometry),
|
|
180712
180712
|
/* harmony export */ GeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.GeometryHandler),
|
|
180713
|
-
/* harmony export */ GeometryQuery: () => (/* reexport safe */
|
|
180713
|
+
/* harmony export */ GeometryQuery: () => (/* reexport safe */ _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_74__.GeometryQuery),
|
|
180714
180714
|
/* harmony export */ GrowableBlockedArray: () => (/* reexport safe */ _geometry3d_GrowableBlockedArray__WEBPACK_IMPORTED_MODULE_9__.GrowableBlockedArray),
|
|
180715
180715
|
/* harmony export */ GrowableFloat64Array: () => (/* reexport safe */ _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_10__.GrowableFloat64Array),
|
|
180716
180716
|
/* harmony export */ GrowableXYArray: () => (/* reexport safe */ _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYArray),
|
|
180717
180717
|
/* harmony export */ GrowableXYZArray: () => (/* reexport safe */ _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray),
|
|
180718
|
-
/* harmony export */ HalfEdge: () => (/* reexport safe */
|
|
180719
|
-
/* harmony export */ HalfEdgeGraph: () => (/* reexport safe */
|
|
180720
|
-
/* harmony export */ HalfEdgeMask: () => (/* reexport safe */
|
|
180721
|
-
/* harmony export */ IModelJson: () => (/* reexport safe */
|
|
180722
|
-
/* harmony export */ ImplicitLineXY: () => (/* reexport safe */
|
|
180718
|
+
/* harmony export */ HalfEdge: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdge),
|
|
180719
|
+
/* harmony export */ HalfEdgeGraph: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeGraph),
|
|
180720
|
+
/* harmony export */ HalfEdgeMask: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeMask),
|
|
180721
|
+
/* harmony export */ IModelJson: () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__.IModelJson),
|
|
180722
|
+
/* harmony export */ ImplicitLineXY: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.ImplicitLineXY),
|
|
180723
180723
|
/* harmony export */ IndexedCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedCollectionInterval),
|
|
180724
|
-
/* harmony export */ IndexedPolyface: () => (/* reexport safe */
|
|
180725
|
-
/* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */
|
|
180726
|
-
/* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */
|
|
180724
|
+
/* harmony export */ IndexedPolyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_115__.IndexedPolyface),
|
|
180725
|
+
/* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_117__.IndexedPolyfaceSubsetVisitor),
|
|
180726
|
+
/* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_117__.IndexedPolyfaceVisitor),
|
|
180727
180727
|
/* harmony export */ IndexedReadWriteXYZCollection: () => (/* reexport safe */ _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_15__.IndexedReadWriteXYZCollection),
|
|
180728
180728
|
/* harmony export */ IndexedXYCollection: () => (/* reexport safe */ _geometry3d_IndexedXYCollection__WEBPACK_IMPORTED_MODULE_14__.IndexedXYCollection),
|
|
180729
180729
|
/* harmony export */ IndexedXYZCollection: () => (/* reexport safe */ _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_15__.IndexedXYZCollection),
|
|
180730
180730
|
/* harmony export */ IndexedXYZCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedXYZCollectionInterval),
|
|
180731
180731
|
/* harmony export */ IndexedXYZCollectionPolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.IndexedXYZCollectionPolygonOps),
|
|
180732
|
-
/* harmony export */ IntegratedSpiral3d: () => (/* reexport safe */
|
|
180733
|
-
/* harmony export */ InterpolationCurve3d: () => (/* reexport safe */
|
|
180734
|
-
/* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */
|
|
180732
|
+
/* harmony export */ IntegratedSpiral3d: () => (/* reexport safe */ _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_87__.IntegratedSpiral3d),
|
|
180733
|
+
/* harmony export */ InterpolationCurve3d: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_110__.InterpolationCurve3d),
|
|
180734
|
+
/* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_110__.InterpolationCurve3dOptions),
|
|
180735
180735
|
/* harmony export */ InverseMatrixState: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.InverseMatrixState),
|
|
180736
|
-
/* harmony export */ JointOptions: () => (/* reexport safe */
|
|
180737
|
-
/* harmony export */ KnotVector: () => (/* reexport safe */
|
|
180738
|
-
/* harmony export */ LineSegment3d: () => (/* reexport safe */
|
|
180739
|
-
/* harmony export */ LineString3d: () => (/* reexport safe */
|
|
180740
|
-
/* harmony export */ LinearSweep: () => (/* reexport safe */
|
|
180736
|
+
/* harmony export */ JointOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_78__.JointOptions),
|
|
180737
|
+
/* harmony export */ KnotVector: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_111__.KnotVector),
|
|
180738
|
+
/* harmony export */ LineSegment3d: () => (/* reexport safe */ _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_75__.LineSegment3d),
|
|
180739
|
+
/* harmony export */ LineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_76__.LineString3d),
|
|
180740
|
+
/* harmony export */ LinearSweep: () => (/* reexport safe */ _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_93__.LinearSweep),
|
|
180741
180741
|
/* harmony export */ LongitudeLatitudeNumber: () => (/* reexport safe */ _geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_2__.LongitudeLatitudeNumber),
|
|
180742
|
-
/* harmony export */ Loop: () => (/* reexport safe */
|
|
180743
|
-
/* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */
|
|
180744
|
-
/* harmony export */ Map4d: () => (/* reexport safe */
|
|
180742
|
+
/* harmony export */ Loop: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_77__.Loop),
|
|
180743
|
+
/* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_77__.LoopCurveLoopCurve),
|
|
180744
|
+
/* harmony export */ Map4d: () => (/* reexport safe */ _geometry4d_Map4d__WEBPACK_IMPORTED_MODULE_49__.Map4d),
|
|
180745
180745
|
/* harmony export */ Matrix3d: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.Matrix3d),
|
|
180746
|
-
/* harmony export */ Matrix4d: () => (/* reexport safe */
|
|
180747
|
-
/* harmony export */ MiteredSweepOutputSelect: () => (/* reexport safe */
|
|
180748
|
-
/* harmony export */ MomentData: () => (/* reexport safe */
|
|
180749
|
-
/* harmony export */
|
|
180750
|
-
/* harmony export */
|
|
180751
|
-
/* harmony export */
|
|
180752
|
-
/* harmony export */
|
|
180753
|
-
/* harmony export */
|
|
180754
|
-
/* harmony export */
|
|
180755
|
-
/* harmony export */
|
|
180756
|
-
/* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.NonConvexFacetLocationDetail),
|
|
180746
|
+
/* harmony export */ Matrix4d: () => (/* reexport safe */ _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_48__.Matrix4d),
|
|
180747
|
+
/* harmony export */ MiteredSweepOutputSelect: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_70__.MiteredSweepOutputSelect),
|
|
180748
|
+
/* harmony export */ MomentData: () => (/* reexport safe */ _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_50__.MomentData),
|
|
180749
|
+
/* harmony export */ Newton1dUnbounded: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton1dUnbounded),
|
|
180750
|
+
/* harmony export */ Newton1dUnboundedApproximateDerivative: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton1dUnboundedApproximateDerivative),
|
|
180751
|
+
/* harmony export */ Newton2dUnboundedWithDerivative: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton2dUnboundedWithDerivative),
|
|
180752
|
+
/* harmony export */ NewtonEvaluatorRRtoRRD: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRRtoRRD),
|
|
180753
|
+
/* harmony export */ NewtonEvaluatorRtoR: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRtoR),
|
|
180754
|
+
/* harmony export */ NewtonEvaluatorRtoRD: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRtoRD),
|
|
180755
|
+
/* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__.NonConvexFacetLocationDetail),
|
|
180757
180756
|
/* harmony export */ NullGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.NullGeometryHandler),
|
|
180758
180757
|
/* harmony export */ NumberArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.NumberArray),
|
|
180759
|
-
/* harmony export */ OffsetMeshOptions: () => (/* reexport safe */
|
|
180760
|
-
/* harmony export */ OffsetOptions: () => (/* reexport safe */
|
|
180761
|
-
/* harmony export */ Order2Bezier: () => (/* reexport safe */
|
|
180762
|
-
/* harmony export */ Order3Bezier: () => (/* reexport safe */
|
|
180763
|
-
/* harmony export */ Order4Bezier: () => (/* reexport safe */
|
|
180764
|
-
/* harmony export */ Order5Bezier: () => (/* reexport safe */
|
|
180758
|
+
/* harmony export */ OffsetMeshOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.OffsetMeshOptions),
|
|
180759
|
+
/* harmony export */ OffsetOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_78__.OffsetOptions),
|
|
180760
|
+
/* harmony export */ Order2Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order2Bezier),
|
|
180761
|
+
/* harmony export */ Order3Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order3Bezier),
|
|
180762
|
+
/* harmony export */ Order4Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order4Bezier),
|
|
180763
|
+
/* harmony export */ Order5Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order5Bezier),
|
|
180765
180764
|
/* harmony export */ OrderedRotationAngles: () => (/* reexport safe */ _geometry3d_OrderedRotationAngles__WEBPACK_IMPORTED_MODULE_17__.OrderedRotationAngles),
|
|
180766
180765
|
/* harmony export */ PackedMatrix3dOps: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.PackedMatrix3dOps),
|
|
180767
|
-
/* harmony export */ ParityRegion: () => (/* reexport safe */
|
|
180768
|
-
/* harmony export */ PascalCoefficients: () => (/* reexport safe */
|
|
180769
|
-
/* harmony export */ Path: () => (/* reexport safe */
|
|
180770
|
-
/* harmony export */ PathFragment: () => (/* reexport safe */
|
|
180766
|
+
/* harmony export */ ParityRegion: () => (/* reexport safe */ _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_79__.ParityRegion),
|
|
180767
|
+
/* harmony export */ PascalCoefficients: () => (/* reexport safe */ _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_55__.PascalCoefficients),
|
|
180768
|
+
/* harmony export */ Path: () => (/* reexport safe */ _curve_Path__WEBPACK_IMPORTED_MODULE_80__.Path),
|
|
180769
|
+
/* harmony export */ PathFragment: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__.PathFragment),
|
|
180771
180770
|
/* harmony export */ Plane3d: () => (/* reexport safe */ _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_18__.Plane3d),
|
|
180772
180771
|
/* harmony export */ Plane3dByOriginAndUnitNormal: () => (/* reexport safe */ _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_19__.Plane3dByOriginAndUnitNormal),
|
|
180773
180772
|
/* harmony export */ Plane3dByOriginAndVectors: () => (/* reexport safe */ _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_20__.Plane3dByOriginAndVectors),
|
|
180774
|
-
/* harmony export */ PlaneByOriginAndVectors4d: () => (/* reexport safe */
|
|
180773
|
+
/* harmony export */ PlaneByOriginAndVectors4d: () => (/* reexport safe */ _geometry4d_PlaneByOriginAndVectors4d__WEBPACK_IMPORTED_MODULE_46__.PlaneByOriginAndVectors4d),
|
|
180775
180774
|
/* harmony export */ Point2d: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.Point2d),
|
|
180776
180775
|
/* harmony export */ Point2dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Point2dArray),
|
|
180777
180776
|
/* harmony export */ Point2dArrayCarrier: () => (/* reexport safe */ _geometry3d_Point2dArrayCarrier__WEBPACK_IMPORTED_MODULE_21__.Point2dArrayCarrier),
|
|
@@ -180779,81 +180778,80 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
180779
180778
|
/* harmony export */ Point3dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Point3dArray),
|
|
180780
180779
|
/* harmony export */ Point3dArrayCarrier: () => (/* reexport safe */ _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_25__.Point3dArrayCarrier),
|
|
180781
180780
|
/* harmony export */ Point3dArrayPolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.Point3dArrayPolygonOps),
|
|
180782
|
-
/* harmony export */ Point4d: () => (/* reexport safe */
|
|
180781
|
+
/* harmony export */ Point4d: () => (/* reexport safe */ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_47__.Point4d),
|
|
180783
180782
|
/* harmony export */ Point4dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Point4dArray),
|
|
180784
|
-
/* harmony export */ PointString3d: () => (/* reexport safe */
|
|
180785
|
-
/* harmony export */ Polyface: () => (/* reexport safe */
|
|
180786
|
-
/* harmony export */ PolyfaceAuxData: () => (/* reexport safe */
|
|
180787
|
-
/* harmony export */ PolyfaceBuilder: () => (/* reexport safe */
|
|
180788
|
-
/* harmony export */ PolyfaceClip: () => (/* reexport safe */
|
|
180789
|
-
/* harmony export */ PolyfaceData: () => (/* reexport safe */
|
|
180790
|
-
/* harmony export */ PolyfaceQuery: () => (/* reexport safe */
|
|
180791
|
-
/* harmony export */ PolygonLocation: () => (/* reexport safe */
|
|
180783
|
+
/* harmony export */ PointString3d: () => (/* reexport safe */ _curve_PointString3d__WEBPACK_IMPORTED_MODULE_83__.PointString3d),
|
|
180784
|
+
/* harmony export */ Polyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_115__.Polyface),
|
|
180785
|
+
/* harmony export */ PolyfaceAuxData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__.PolyfaceAuxData),
|
|
180786
|
+
/* harmony export */ PolyfaceBuilder: () => (/* reexport safe */ _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__.PolyfaceBuilder),
|
|
180787
|
+
/* harmony export */ PolyfaceClip: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.PolyfaceClip),
|
|
180788
|
+
/* harmony export */ PolyfaceData: () => (/* reexport safe */ _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__.PolyfaceData),
|
|
180789
|
+
/* harmony export */ PolyfaceQuery: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.PolyfaceQuery),
|
|
180790
|
+
/* harmony export */ PolygonLocation: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.PolygonLocation),
|
|
180792
180791
|
/* harmony export */ PolygonLocationDetail: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonLocationDetail),
|
|
180793
180792
|
/* harmony export */ PolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonOps),
|
|
180794
|
-
/* harmony export */ PolygonWireOffsetContext: () => (/* reexport safe */ _curve_internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_80__.PolygonWireOffsetContext),
|
|
180795
180793
|
/* harmony export */ PolylineOps: () => (/* reexport safe */ _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_26__.PolylineOps),
|
|
180796
|
-
/* harmony export */ PowerPolynomial: () => (/* reexport safe */
|
|
180797
|
-
/* harmony export */ ProxyCurve: () => (/* reexport safe */
|
|
180798
|
-
/* harmony export */ Quadrature: () => (/* reexport safe */
|
|
180794
|
+
/* harmony export */ PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.PowerPolynomial),
|
|
180795
|
+
/* harmony export */ ProxyCurve: () => (/* reexport safe */ _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_84__.ProxyCurve),
|
|
180796
|
+
/* harmony export */ Quadrature: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__.Quadrature),
|
|
180799
180797
|
/* harmony export */ Range1d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range1d),
|
|
180800
|
-
/* harmony export */ Range1dArray: () => (/* reexport safe */
|
|
180798
|
+
/* harmony export */ Range1dArray: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__.Range1dArray),
|
|
180801
180799
|
/* harmony export */ Range2d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range2d),
|
|
180802
180800
|
/* harmony export */ Range3d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d),
|
|
180803
180801
|
/* harmony export */ RangeBase: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.RangeBase),
|
|
180804
|
-
/* harmony export */ Ray2d: () => (/* reexport safe */
|
|
180805
|
-
/* harmony export */ Ray3d: () => (/* reexport safe */
|
|
180802
|
+
/* harmony export */ Ray2d: () => (/* reexport safe */ _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_29__.Ray2d),
|
|
180803
|
+
/* harmony export */ Ray3d: () => (/* reexport safe */ _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_30__.Ray3d),
|
|
180806
180804
|
/* harmony export */ RecurseToCurvesGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.RecurseToCurvesGeometryHandler),
|
|
180807
|
-
/* harmony export */ RecursiveCurveProcessor: () => (/* reexport safe */
|
|
180808
|
-
/* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */
|
|
180809
|
-
/* harmony export */ RegionBinaryOpType: () => (/* reexport safe */
|
|
180810
|
-
/* harmony export */ RegionMomentsXY: () => (/* reexport safe */
|
|
180811
|
-
/* harmony export */ RegionOps: () => (/* reexport safe */
|
|
180812
|
-
/* harmony export */ RotationalSweep: () => (/* reexport safe */
|
|
180813
|
-
/* harmony export */ RuledSweep: () => (/* reexport safe */
|
|
180814
|
-
/* harmony export */ Sample: () => (/* reexport safe */
|
|
180815
|
-
/* harmony export */ Segment1d: () => (/* reexport safe */
|
|
180816
|
-
/* harmony export */ SimpleNewton: () => (/* reexport safe */
|
|
180817
|
-
/* harmony export */ SineCosinePolynomial: () => (/* reexport safe */
|
|
180818
|
-
/* harmony export */ SmallSystem: () => (/* reexport safe */
|
|
180805
|
+
/* harmony export */ RecursiveCurveProcessor: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_73__.RecursiveCurveProcessor),
|
|
180806
|
+
/* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_73__.RecursiveCurveProcessorWithStack),
|
|
180807
|
+
/* harmony export */ RegionBinaryOpType: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_82__.RegionBinaryOpType),
|
|
180808
|
+
/* harmony export */ RegionMomentsXY: () => (/* reexport safe */ _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_81__.RegionMomentsXY),
|
|
180809
|
+
/* harmony export */ RegionOps: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_82__.RegionOps),
|
|
180810
|
+
/* harmony export */ RotationalSweep: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_94__.RotationalSweep),
|
|
180811
|
+
/* harmony export */ RuledSweep: () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_95__.RuledSweep),
|
|
180812
|
+
/* harmony export */ Sample: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.Sample),
|
|
180813
|
+
/* harmony export */ Segment1d: () => (/* reexport safe */ _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_31__.Segment1d),
|
|
180814
|
+
/* harmony export */ SimpleNewton: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.SimpleNewton),
|
|
180815
|
+
/* harmony export */ SineCosinePolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SineCosinePolynomial),
|
|
180816
|
+
/* harmony export */ SmallSystem: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SmallSystem),
|
|
180819
180817
|
/* harmony export */ SmoothTransformBetweenFrusta: () => (/* reexport safe */ _geometry3d_FrustumAnimation__WEBPACK_IMPORTED_MODULE_7__.SmoothTransformBetweenFrusta),
|
|
180820
|
-
/* harmony export */ SolidPrimitive: () => (/* reexport safe */
|
|
180821
|
-
/* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */
|
|
180822
|
-
/* harmony export */ Sphere: () => (/* reexport safe */
|
|
180823
|
-
/* harmony export */ SphereImplicit: () => (/* reexport safe */
|
|
180824
|
-
/* harmony export */ StandardViewIndex: () => (/* reexport safe */
|
|
180825
|
-
/* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */
|
|
180826
|
-
/* harmony export */ StringifiedClipVector: () => (/* reexport safe */
|
|
180827
|
-
/* harmony export */ StrokeCountMap: () => (/* reexport safe */
|
|
180828
|
-
/* harmony export */ StrokeOptions: () => (/* reexport safe */
|
|
180829
|
-
/* harmony export */ SweepContour: () => (/* reexport safe */
|
|
180830
|
-
/* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */
|
|
180831
|
-
/* harmony export */ TaggedNumericConstants: () => (/* reexport safe */
|
|
180832
|
-
/* harmony export */ TaggedNumericData: () => (/* reexport safe */
|
|
180833
|
-
/* harmony export */ TorusImplicit: () => (/* reexport safe */
|
|
180834
|
-
/* harmony export */ TorusPipe: () => (/* reexport safe */
|
|
180835
|
-
/* harmony export */ Transform: () => (/* reexport safe */
|
|
180836
|
-
/* harmony export */ TransitionSpiral3d: () => (/* reexport safe */
|
|
180837
|
-
/* harmony export */ TriDiagonalSystem: () => (/* reexport safe */
|
|
180818
|
+
/* harmony export */ SolidPrimitive: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_96__.SolidPrimitive),
|
|
180819
|
+
/* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__.SpacePolygonTriangulation),
|
|
180820
|
+
/* harmony export */ Sphere: () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_97__.Sphere),
|
|
180821
|
+
/* harmony export */ SphereImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SphereImplicit),
|
|
180822
|
+
/* harmony export */ StandardViewIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.StandardViewIndex),
|
|
180823
|
+
/* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.SteppedIndexFunctionFactory),
|
|
180824
|
+
/* harmony export */ StringifiedClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.StringifiedClipVector),
|
|
180825
|
+
/* harmony export */ StrokeCountMap: () => (/* reexport safe */ _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_90__.StrokeCountMap),
|
|
180826
|
+
/* harmony export */ StrokeOptions: () => (/* reexport safe */ _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_85__.StrokeOptions),
|
|
180827
|
+
/* harmony export */ SweepContour: () => (/* reexport safe */ _solid_SweepContour__WEBPACK_IMPORTED_MODULE_98__.SweepContour),
|
|
180828
|
+
/* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.SweepLineStringToFacetsOptions),
|
|
180829
|
+
/* harmony export */ TaggedNumericConstants: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericConstants),
|
|
180830
|
+
/* harmony export */ TaggedNumericData: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericData),
|
|
180831
|
+
/* harmony export */ TorusImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TorusImplicit),
|
|
180832
|
+
/* harmony export */ TorusPipe: () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_99__.TorusPipe),
|
|
180833
|
+
/* harmony export */ Transform: () => (/* reexport safe */ _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_32__.Transform),
|
|
180834
|
+
/* harmony export */ TransitionSpiral3d: () => (/* reexport safe */ _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_86__.TransitionSpiral3d),
|
|
180835
|
+
/* harmony export */ TriDiagonalSystem: () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__.TriDiagonalSystem),
|
|
180838
180836
|
/* harmony export */ TriangleLocationDetail: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.TriangleLocationDetail),
|
|
180839
|
-
/* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */
|
|
180840
|
-
/* harmony export */ Triangulator: () => (/* reexport safe */
|
|
180841
|
-
/* harmony export */ TrigPolynomial: () => (/* reexport safe */
|
|
180842
|
-
/* harmony export */ UVSelect: () => (/* reexport safe */
|
|
180843
|
-
/* harmony export */ UVSurfaceOps: () => (/* reexport safe */
|
|
180844
|
-
/* harmony export */ UnionOfConvexClipPlaneSets: () => (/* reexport safe */
|
|
180845
|
-
/* harmony export */ UnionRegion: () => (/* reexport safe */
|
|
180846
|
-
/* harmony export */ UnivariateBezier: () => (/* reexport safe */
|
|
180837
|
+
/* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__.TriangularFacetLocationDetail),
|
|
180838
|
+
/* harmony export */ Triangulator: () => (/* reexport safe */ _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__.Triangulator),
|
|
180839
|
+
/* harmony export */ TrigPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TrigPolynomial),
|
|
180840
|
+
/* harmony export */ UVSelect: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.UVSelect),
|
|
180841
|
+
/* harmony export */ UVSurfaceOps: () => (/* reexport safe */ _geometry3d_UVSurfaceOps__WEBPACK_IMPORTED_MODULE_33__.UVSurfaceOps),
|
|
180842
|
+
/* harmony export */ UnionOfConvexClipPlaneSets: () => (/* reexport safe */ _clipping_UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_41__.UnionOfConvexClipPlaneSets),
|
|
180843
|
+
/* harmony export */ UnionRegion: () => (/* reexport safe */ _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_89__.UnionRegion),
|
|
180844
|
+
/* harmony export */ UnivariateBezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.UnivariateBezier),
|
|
180847
180845
|
/* harmony export */ Vector2d: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.Vector2d),
|
|
180848
180846
|
/* harmony export */ Vector3d: () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.Vector3d),
|
|
180849
180847
|
/* harmony export */ Vector3dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Vector3dArray),
|
|
180850
|
-
/* harmony export */ WeightStyle: () => (/* reexport safe */
|
|
180848
|
+
/* harmony export */ WeightStyle: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.WeightStyle),
|
|
180851
180849
|
/* harmony export */ XY: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.XY),
|
|
180852
|
-
/* harmony export */ XYAndZ: () => (/* reexport safe */
|
|
180850
|
+
/* harmony export */ XYAndZ: () => (/* reexport safe */ _geometry3d_XYZProps__WEBPACK_IMPORTED_MODULE_34__.XYAndZ),
|
|
180853
180851
|
/* harmony export */ XYZ: () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.XYZ),
|
|
180854
|
-
/* harmony export */ YawPitchRollAngles: () => (/* reexport safe */
|
|
180855
|
-
/* harmony export */ compareRange1dLexicalLowHigh: () => (/* reexport safe */
|
|
180856
|
-
/* harmony export */ interpolateColor: () => (/* reexport safe */
|
|
180852
|
+
/* harmony export */ YawPitchRollAngles: () => (/* reexport safe */ _geometry3d_YawPitchRollAngles__WEBPACK_IMPORTED_MODULE_35__.YawPitchRollAngles),
|
|
180853
|
+
/* harmony export */ compareRange1dLexicalLowHigh: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__.compareRange1dLexicalLowHigh),
|
|
180854
|
+
/* harmony export */ interpolateColor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_117__.interpolateColor)
|
|
180857
180855
|
/* harmony export */ });
|
|
180858
180856
|
/* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
|
|
180859
180857
|
/* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
|
|
@@ -180884,106 +180882,107 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
180884
180882
|
/* harmony import */ var _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./geometry3d/PolylineOps */ "../../core/geometry/lib/esm/geometry3d/PolylineOps.js");
|
|
180885
180883
|
/* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
|
|
180886
180884
|
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
180887
|
-
/* harmony import */ var
|
|
180888
|
-
/* harmony import */ var
|
|
180889
|
-
/* harmony import */ var
|
|
180890
|
-
/* harmony import */ var
|
|
180891
|
-
/* harmony import */ var
|
|
180892
|
-
/* harmony import */ var
|
|
180893
|
-
/* harmony import */ var
|
|
180894
|
-
/* harmony import */ var
|
|
180895
|
-
/* harmony import */ var
|
|
180896
|
-
/* harmony import */ var
|
|
180897
|
-
/* harmony import */ var
|
|
180898
|
-
/* harmony import */ var
|
|
180899
|
-
/* harmony import */ var
|
|
180900
|
-
/* harmony import */ var
|
|
180901
|
-
/* harmony import */ var
|
|
180902
|
-
/* harmony import */ var
|
|
180903
|
-
/* harmony import */ var
|
|
180904
|
-
/* harmony import */ var
|
|
180905
|
-
/* harmony import */ var
|
|
180906
|
-
/* harmony import */ var
|
|
180907
|
-
/* harmony import */ var
|
|
180908
|
-
/* harmony import */ var
|
|
180909
|
-
/* harmony import */ var
|
|
180910
|
-
/* harmony import */ var
|
|
180911
|
-
/* harmony import */ var
|
|
180912
|
-
/* harmony import */ var
|
|
180913
|
-
/* harmony import */ var
|
|
180914
|
-
/* harmony import */ var
|
|
180915
|
-
/* harmony import */ var
|
|
180916
|
-
/* harmony import */ var
|
|
180917
|
-
/* harmony import */ var
|
|
180918
|
-
/* harmony import */ var
|
|
180919
|
-
/* harmony import */ var
|
|
180920
|
-
/* harmony import */ var
|
|
180921
|
-
/* harmony import */ var
|
|
180922
|
-
/* harmony import */ var
|
|
180923
|
-
/* harmony import */ var
|
|
180924
|
-
/* harmony import */ var
|
|
180925
|
-
/* harmony import */ var
|
|
180926
|
-
/* harmony import */ var
|
|
180927
|
-
/* harmony import */ var
|
|
180928
|
-
/* harmony import */ var
|
|
180929
|
-
/* harmony import */ var
|
|
180930
|
-
/* harmony import */ var
|
|
180931
|
-
/* harmony import */ var
|
|
180932
|
-
/* harmony import */ var
|
|
180933
|
-
/* harmony import */ var
|
|
180934
|
-
/* harmony import */ var
|
|
180935
|
-
/* harmony import */ var
|
|
180936
|
-
/* harmony import */ var
|
|
180937
|
-
/* harmony import */ var
|
|
180938
|
-
/* harmony import */ var
|
|
180939
|
-
/* harmony import */ var
|
|
180940
|
-
/* harmony import */ var
|
|
180941
|
-
/* harmony import */ var
|
|
180942
|
-
/* harmony import */ var
|
|
180943
|
-
/* harmony import */ var
|
|
180944
|
-
/* harmony import */ var
|
|
180945
|
-
/* harmony import */ var
|
|
180946
|
-
/* harmony import */ var
|
|
180947
|
-
/* harmony import */ var
|
|
180948
|
-
/* harmony import */ var
|
|
180949
|
-
/* harmony import */ var
|
|
180950
|
-
/* harmony import */ var
|
|
180951
|
-
/* harmony import */ var
|
|
180952
|
-
/* harmony import */ var
|
|
180953
|
-
/* harmony import */ var
|
|
180954
|
-
/* harmony import */ var
|
|
180955
|
-
/* harmony import */ var
|
|
180956
|
-
/* harmony import */ var
|
|
180957
|
-
/* harmony import */ var
|
|
180958
|
-
/* harmony import */ var
|
|
180959
|
-
/* harmony import */ var
|
|
180960
|
-
/* harmony import */ var
|
|
180961
|
-
/* harmony import */ var
|
|
180962
|
-
/* harmony import */ var
|
|
180963
|
-
/* harmony import */ var
|
|
180964
|
-
/* harmony import */ var
|
|
180965
|
-
/* harmony import */ var
|
|
180966
|
-
/* harmony import */ var
|
|
180967
|
-
/* harmony import */ var
|
|
180968
|
-
/* harmony import */ var
|
|
180969
|
-
/* harmony import */ var
|
|
180970
|
-
/* harmony import */ var
|
|
180971
|
-
/* harmony import */ var
|
|
180972
|
-
/* harmony import */ var
|
|
180973
|
-
/* harmony import */ var
|
|
180974
|
-
/* harmony import */ var
|
|
180975
|
-
/* harmony import */ var
|
|
180976
|
-
/* harmony import */ var
|
|
180977
|
-
/* harmony import */ var
|
|
180978
|
-
/* harmony import */ var
|
|
180979
|
-
/* harmony import */ var
|
|
180980
|
-
/* harmony import */ var
|
|
180981
|
-
/* harmony import */ var
|
|
180982
|
-
/* harmony import */ var
|
|
180983
|
-
/* harmony import */ var
|
|
180984
|
-
/* harmony import */ var
|
|
180985
|
-
/* harmony import */ var
|
|
180986
|
-
/* harmony import */ var
|
|
180885
|
+
/* harmony import */ var _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./geometry3d/Ray2d */ "../../core/geometry/lib/esm/geometry3d/Ray2d.js");
|
|
180886
|
+
/* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
|
|
180887
|
+
/* harmony import */ var _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./geometry3d/Segment1d */ "../../core/geometry/lib/esm/geometry3d/Segment1d.js");
|
|
180888
|
+
/* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
|
|
180889
|
+
/* harmony import */ var _geometry3d_UVSurfaceOps__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./geometry3d/UVSurfaceOps */ "../../core/geometry/lib/esm/geometry3d/UVSurfaceOps.js");
|
|
180890
|
+
/* harmony import */ var _geometry3d_XYZProps__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./geometry3d/XYZProps */ "../../core/geometry/lib/esm/geometry3d/XYZProps.js");
|
|
180891
|
+
/* harmony import */ var _geometry3d_YawPitchRollAngles__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./geometry3d/YawPitchRollAngles */ "../../core/geometry/lib/esm/geometry3d/YawPitchRollAngles.js");
|
|
180892
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
180893
|
+
/* harmony import */ var _Constant__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./Constant */ "../../core/geometry/lib/esm/Constant.js");
|
|
180894
|
+
/* harmony import */ var _clipping_BooleanClipFactory__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./clipping/BooleanClipFactory */ "../../core/geometry/lib/esm/clipping/BooleanClipFactory.js");
|
|
180895
|
+
/* harmony import */ var _clipping_ClipPlane__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./clipping/ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
|
|
180896
|
+
/* harmony import */ var _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./clipping/ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
|
|
180897
|
+
/* harmony import */ var _clipping_UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./clipping/UnionOfConvexClipPlaneSets */ "../../core/geometry/lib/esm/clipping/UnionOfConvexClipPlaneSets.js");
|
|
180898
|
+
/* harmony import */ var _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./clipping/ClipPrimitive */ "../../core/geometry/lib/esm/clipping/ClipPrimitive.js");
|
|
180899
|
+
/* harmony import */ var _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./clipping/ClipVector */ "../../core/geometry/lib/esm/clipping/ClipVector.js");
|
|
180900
|
+
/* harmony import */ var _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./clipping/ClipUtils */ "../../core/geometry/lib/esm/clipping/ClipUtils.js");
|
|
180901
|
+
/* harmony import */ var _numerics_ConvexPolygon2d__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./numerics/ConvexPolygon2d */ "../../core/geometry/lib/esm/numerics/ConvexPolygon2d.js");
|
|
180902
|
+
/* harmony import */ var _geometry4d_PlaneByOriginAndVectors4d__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./geometry4d/PlaneByOriginAndVectors4d */ "../../core/geometry/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js");
|
|
180903
|
+
/* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
|
|
180904
|
+
/* harmony import */ var _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./geometry4d/Matrix4d */ "../../core/geometry/lib/esm/geometry4d/Matrix4d.js");
|
|
180905
|
+
/* harmony import */ var _geometry4d_Map4d__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./geometry4d/Map4d */ "../../core/geometry/lib/esm/geometry4d/Map4d.js");
|
|
180906
|
+
/* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
|
|
180907
|
+
/* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
|
|
180908
|
+
/* harmony import */ var _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./numerics/ClusterableArray */ "../../core/geometry/lib/esm/numerics/ClusterableArray.js");
|
|
180909
|
+
/* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
|
|
180910
|
+
/* harmony import */ var _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./numerics/Complex */ "../../core/geometry/lib/esm/numerics/Complex.js");
|
|
180911
|
+
/* harmony import */ var _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/PascalCoefficients */ "../../core/geometry/lib/esm/numerics/PascalCoefficients.js");
|
|
180912
|
+
/* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
|
|
180913
|
+
/* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
|
|
180914
|
+
/* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
|
|
180915
|
+
/* harmony import */ var _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./numerics/TriDiagonalSystem */ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js");
|
|
180916
|
+
/* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
180917
|
+
/* harmony import */ var _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./curve/ConstructCurveBetweenCurves */ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js");
|
|
180918
|
+
/* harmony import */ var _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./curve/CoordinateXYZ */ "../../core/geometry/lib/esm/curve/CoordinateXYZ.js");
|
|
180919
|
+
/* harmony import */ var _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./curve/CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
|
|
180920
|
+
/* harmony import */ var _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./curve/CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
|
|
180921
|
+
/* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
180922
|
+
/* harmony import */ var _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./curve/CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
180923
|
+
/* harmony import */ var _curve_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./curve/CurveCurveIntersectXY */ "../../core/geometry/lib/esm/curve/CurveCurveIntersectXY.js");
|
|
180924
|
+
/* harmony import */ var _curve_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./curve/CurveCurveIntersectXYZ */ "../../core/geometry/lib/esm/curve/CurveCurveIntersectXYZ.js");
|
|
180925
|
+
/* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
180926
|
+
/* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
|
|
180927
|
+
/* harmony import */ var _curve_CurveOps__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./curve/CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
|
|
180928
|
+
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
180929
|
+
/* harmony import */ var _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./curve/CurveProcessor */ "../../core/geometry/lib/esm/curve/CurveProcessor.js");
|
|
180930
|
+
/* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
|
|
180931
|
+
/* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
180932
|
+
/* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
180933
|
+
/* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
180934
|
+
/* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
180935
|
+
/* harmony import */ var _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./curve/ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
|
|
180936
|
+
/* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
180937
|
+
/* harmony import */ var _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./curve/RegionMomentsXY */ "../../core/geometry/lib/esm/curve/RegionMomentsXY.js");
|
|
180938
|
+
/* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
180939
|
+
/* harmony import */ var _curve_PointString3d__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./curve/PointString3d */ "../../core/geometry/lib/esm/curve/PointString3d.js");
|
|
180940
|
+
/* harmony import */ var _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./curve/ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
|
|
180941
|
+
/* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
180942
|
+
/* harmony import */ var _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./curve/spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
|
|
180943
|
+
/* harmony import */ var _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./curve/spiral/IntegratedSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/IntegratedSpiral3d.js");
|
|
180944
|
+
/* harmony import */ var _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./curve/spiral/DirectSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/DirectSpiral3d.js");
|
|
180945
|
+
/* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
|
|
180946
|
+
/* harmony import */ var _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./curve/Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
|
|
180947
|
+
/* harmony import */ var _solid_Box__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./solid/Box */ "../../core/geometry/lib/esm/solid/Box.js");
|
|
180948
|
+
/* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
|
|
180949
|
+
/* harmony import */ var _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./solid/LinearSweep */ "../../core/geometry/lib/esm/solid/LinearSweep.js");
|
|
180950
|
+
/* harmony import */ var _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./solid/RotationalSweep */ "../../core/geometry/lib/esm/solid/RotationalSweep.js");
|
|
180951
|
+
/* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
|
|
180952
|
+
/* harmony import */ var _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./solid/SolidPrimitive */ "../../core/geometry/lib/esm/solid/SolidPrimitive.js");
|
|
180953
|
+
/* harmony import */ var _solid_Sphere__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./solid/Sphere */ "../../core/geometry/lib/esm/solid/Sphere.js");
|
|
180954
|
+
/* harmony import */ var _solid_SweepContour__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./solid/SweepContour */ "../../core/geometry/lib/esm/solid/SweepContour.js");
|
|
180955
|
+
/* harmony import */ var _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./solid/TorusPipe */ "../../core/geometry/lib/esm/solid/TorusPipe.js");
|
|
180956
|
+
/* harmony import */ var _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./bspline/AkimaCurve3d */ "../../core/geometry/lib/esm/bspline/AkimaCurve3d.js");
|
|
180957
|
+
/* harmony import */ var _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./bspline/Bezier1dNd */ "../../core/geometry/lib/esm/bspline/Bezier1dNd.js");
|
|
180958
|
+
/* harmony import */ var _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./bspline/BezierCurveBase */ "../../core/geometry/lib/esm/bspline/BezierCurveBase.js");
|
|
180959
|
+
/* harmony import */ var _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./bspline/BezierCurve3d */ "../../core/geometry/lib/esm/bspline/BezierCurve3d.js");
|
|
180960
|
+
/* harmony import */ var _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./bspline/BezierCurve3dH */ "../../core/geometry/lib/esm/bspline/BezierCurve3dH.js");
|
|
180961
|
+
/* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
|
|
180962
|
+
/* harmony import */ var _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./bspline/BSplineCurveOps */ "../../core/geometry/lib/esm/bspline/BSplineCurveOps.js");
|
|
180963
|
+
/* harmony import */ var _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./bspline/BSpline1dNd */ "../../core/geometry/lib/esm/bspline/BSpline1dNd.js");
|
|
180964
|
+
/* harmony import */ var _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./bspline/BSplineCurve3dH */ "../../core/geometry/lib/esm/bspline/BSplineCurve3dH.js");
|
|
180965
|
+
/* harmony import */ var _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./bspline/BSplineSurface */ "../../core/geometry/lib/esm/bspline/BSplineSurface.js");
|
|
180966
|
+
/* harmony import */ var _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./bspline/InterpolationCurve3d */ "../../core/geometry/lib/esm/bspline/InterpolationCurve3d.js");
|
|
180967
|
+
/* harmony import */ var _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./bspline/KnotVector */ "../../core/geometry/lib/esm/bspline/KnotVector.js");
|
|
180968
|
+
/* harmony import */ var _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./polyface/AuxData */ "../../core/geometry/lib/esm/polyface/AuxData.js");
|
|
180969
|
+
/* harmony import */ var _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./polyface/BoxTopology */ "../../core/geometry/lib/esm/polyface/BoxTopology.js");
|
|
180970
|
+
/* harmony import */ var _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./polyface/FacetFaceData */ "../../core/geometry/lib/esm/polyface/FacetFaceData.js");
|
|
180971
|
+
/* harmony import */ var _polyface_Polyface__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./polyface/Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
|
|
180972
|
+
/* harmony import */ var _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./polyface/FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
|
|
180973
|
+
/* harmony import */ var _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./polyface/IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
|
|
180974
|
+
/* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
180975
|
+
/* harmony import */ var _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./polyface/PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
|
|
180976
|
+
/* harmony import */ var _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./polyface/PolyfaceQuery */ "../../core/geometry/lib/esm/polyface/PolyfaceQuery.js");
|
|
180977
|
+
/* harmony import */ var _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./polyface/PolyfaceClip */ "../../core/geometry/lib/esm/polyface/PolyfaceClip.js");
|
|
180978
|
+
/* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
|
|
180979
|
+
/* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
|
|
180980
|
+
/* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
|
|
180981
|
+
/* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
|
|
180982
|
+
/* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
|
|
180983
|
+
/* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
|
|
180984
|
+
/* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
|
|
180985
|
+
/* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
|
|
180987
180986
|
/*---------------------------------------------------------------------------------------------
|
|
180988
180987
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
180989
180988
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -181234,7 +181233,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
181234
181233
|
|
|
181235
181234
|
|
|
181236
181235
|
|
|
181237
|
-
|
|
181236
|
+
|
|
181238
181237
|
|
|
181239
181238
|
|
|
181240
181239
|
|
|
@@ -181265,8 +181264,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
181265
181264
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
181266
181265
|
/* harmony import */ var _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
|
|
181267
181266
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
181268
|
-
/* harmony import */ var _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./internalContexts/PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
|
|
181269
181267
|
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
181268
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
181270
181269
|
/* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
181271
181270
|
/*---------------------------------------------------------------------------------------------
|
|
181272
181271
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
@@ -182199,7 +182198,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
|
|
|
182199
182198
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
182200
182199
|
*/
|
|
182201
182200
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
182202
|
-
const options =
|
|
182201
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_14__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
182203
182202
|
if (this.isCircular || options.preserveEllipticalArcs) {
|
|
182204
182203
|
const arcXY = this.cloneAtZ();
|
|
182205
182204
|
const sign = arcXY.sweep.sweepRadians * arcXY.matrixRef.coffs[8] >= 0.0 ? 1.0 : -1.0;
|
|
@@ -182249,199 +182248,6 @@ Arc3d.quadratureIntervalAngleDegrees = 10.0;
|
|
|
182249
182248
|
|
|
182250
182249
|
|
|
182251
182250
|
|
|
182252
|
-
/***/ }),
|
|
182253
|
-
|
|
182254
|
-
/***/ "../../core/geometry/lib/esm/curve/ChainCollectorContext.js":
|
|
182255
|
-
/*!******************************************************************!*\
|
|
182256
|
-
!*** ../../core/geometry/lib/esm/curve/ChainCollectorContext.js ***!
|
|
182257
|
-
\******************************************************************/
|
|
182258
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
182259
|
-
|
|
182260
|
-
"use strict";
|
|
182261
|
-
__webpack_require__.r(__webpack_exports__);
|
|
182262
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
182263
|
-
/* harmony export */ ChainCollectorContext: () => (/* binding */ ChainCollectorContext)
|
|
182264
|
-
/* harmony export */ });
|
|
182265
|
-
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
182266
|
-
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
182267
|
-
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
182268
|
-
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
182269
|
-
/*---------------------------------------------------------------------------------------------
|
|
182270
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
182271
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
182272
|
-
*--------------------------------------------------------------------------------------------*/
|
|
182273
|
-
|
|
182274
|
-
|
|
182275
|
-
|
|
182276
|
-
|
|
182277
|
-
/**
|
|
182278
|
-
* Manage a growing array of arrays of curve primitives that are to be joined "head to tail" in paths.
|
|
182279
|
-
* * The caller makes a sequence of calls to announce individual primitives.
|
|
182280
|
-
* * The collector has 2 use cases in mind, controlled by `searchAllPaths` flag on `chainCollectorContext.announceCurvePrimitive`
|
|
182281
|
-
* * (a) "simple chains" -- the caller has the curve primitives in order and just needs to have them monitored for coordinate breaks that indicate transition to a new chain.
|
|
182282
|
-
* * The collector needs to watch for connection to the most recent path but not search for prior paths to join to instead.
|
|
182283
|
-
* * (b) "mixed" primitives -- primitive order is NOT significant for chain assembly.
|
|
182284
|
-
* * The collector needs to search all prior paths at both start and end, and consider connection to both the start and end of each new primitive.
|
|
182285
|
-
* * The per-curve announcement is
|
|
182286
|
-
* * chainCollector.announceCurvePrimitive (curve, searchAllPaths).
|
|
182287
|
-
* * When all curves have been announced, the call to grab the paths option
|
|
182288
|
-
* * formLoopsIfClosed
|
|
182289
|
-
* * If true, convert closed paths to `Loop`, open paths to `Path`
|
|
182290
|
-
* * If false, convert all paths (open or not) to `Path`
|
|
182291
|
-
* * Usage pattern is
|
|
182292
|
-
* * initialization: `context = new ChainCollectorContext (makeClones: boolean)`
|
|
182293
|
-
* * many times: ` context.announceCurvePrimitive (primitive, searchAllPaths)`
|
|
182294
|
-
* * end: ` result = context.grabResults (formLoopsIfClosed)`
|
|
182295
|
-
* @internal
|
|
182296
|
-
*/
|
|
182297
|
-
class ChainCollectorContext {
|
|
182298
|
-
/**
|
|
182299
|
-
* Push a new chain with an optional first primitive.
|
|
182300
|
-
*/
|
|
182301
|
-
pushNewChain(primitive) {
|
|
182302
|
-
const chain = [];
|
|
182303
|
-
if (primitive)
|
|
182304
|
-
chain.push(primitive);
|
|
182305
|
-
this._chains.push(chain);
|
|
182306
|
-
}
|
|
182307
|
-
findOrCreateTailChain() {
|
|
182308
|
-
if (this._chains.length === 0)
|
|
182309
|
-
this.pushNewChain();
|
|
182310
|
-
return this._chains[this._chains.length - 1];
|
|
182311
|
-
}
|
|
182312
|
-
findAnyChainToConnect(xyz) {
|
|
182313
|
-
for (let chainIndexA = 0; chainIndexA < this._chains.length; chainIndexA++) {
|
|
182314
|
-
const path = this._chains[chainIndexA];
|
|
182315
|
-
this._xyzWork1 = path[path.length - 1].endPoint(this._xyzWork1);
|
|
182316
|
-
if (this._xyzWork1.isAlmostEqual(xyz))
|
|
182317
|
-
return { chainIndex: chainIndexA, atEnd: true };
|
|
182318
|
-
this._xyzWork1 = path[0].startPoint(this._xyzWork1);
|
|
182319
|
-
if (this._xyzWork1.isAlmostEqual(xyz))
|
|
182320
|
-
return { chainIndex: chainIndexA, atEnd: false };
|
|
182321
|
-
}
|
|
182322
|
-
return undefined;
|
|
182323
|
-
}
|
|
182324
|
-
/** Initialize with an empty array of chains.
|
|
182325
|
-
* @param makeClones if true, all CurvePrimitives sent to `announceCurvePrimitive` is immediately cloned. If false, the reference to the original curve is maintained.
|
|
182326
|
-
*/
|
|
182327
|
-
constructor(makeClones) {
|
|
182328
|
-
this._chains = [];
|
|
182329
|
-
this._makeClones = makeClones;
|
|
182330
|
-
}
|
|
182331
|
-
/** Announce a curve primitive
|
|
182332
|
-
* * searchAllChains controls the extent of search for connecting points.
|
|
182333
|
-
* * false ==> only consider connection to most recent chain.
|
|
182334
|
-
* * true ==> search for any connection, reversing direction as needed.
|
|
182335
|
-
* * Otherwise start a new chain.
|
|
182336
|
-
*/
|
|
182337
|
-
announceCurvePrimitive(candidate, searchAllChains = false) {
|
|
182338
|
-
if (candidate) {
|
|
182339
|
-
if (this._makeClones) {
|
|
182340
|
-
const candidate1 = candidate.clone();
|
|
182341
|
-
if (!candidate1 || !(candidate1 instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive))
|
|
182342
|
-
return;
|
|
182343
|
-
this.transferMarkup(candidate, candidate1);
|
|
182344
|
-
candidate = candidate1;
|
|
182345
|
-
}
|
|
182346
|
-
if (!searchAllChains) {
|
|
182347
|
-
const activeChain = this.findOrCreateTailChain();
|
|
182348
|
-
if (activeChain.length === 0 || !ChainCollectorContext.needBreakBetweenPrimitives(activeChain[activeChain.length - 1], candidate))
|
|
182349
|
-
activeChain.push(candidate);
|
|
182350
|
-
else
|
|
182351
|
-
this.pushNewChain(candidate);
|
|
182352
|
-
}
|
|
182353
|
-
else {
|
|
182354
|
-
this._xyzWork0 = candidate.startPoint(this._xyzWork0);
|
|
182355
|
-
let connect = this.findAnyChainToConnect(this._xyzWork0);
|
|
182356
|
-
if (connect) {
|
|
182357
|
-
if (connect.atEnd) {
|
|
182358
|
-
this._chains[connect.chainIndex].push(candidate);
|
|
182359
|
-
}
|
|
182360
|
-
else {
|
|
182361
|
-
candidate.reverseInPlace();
|
|
182362
|
-
this._chains[connect.chainIndex].splice(0, 0, candidate);
|
|
182363
|
-
}
|
|
182364
|
-
}
|
|
182365
|
-
else {
|
|
182366
|
-
this._xyzWork0 = candidate.endPoint(this._xyzWork0);
|
|
182367
|
-
connect = this.findAnyChainToConnect(this._xyzWork0);
|
|
182368
|
-
if (connect) { // START of new primitive ..
|
|
182369
|
-
if (connect.atEnd) {
|
|
182370
|
-
candidate.reverseInPlace();
|
|
182371
|
-
this._chains[connect.chainIndex].push(candidate);
|
|
182372
|
-
}
|
|
182373
|
-
else {
|
|
182374
|
-
this._chains[connect.chainIndex].splice(0, 0, candidate);
|
|
182375
|
-
}
|
|
182376
|
-
}
|
|
182377
|
-
else {
|
|
182378
|
-
this._chains.push([candidate]);
|
|
182379
|
-
}
|
|
182380
|
-
}
|
|
182381
|
-
}
|
|
182382
|
-
}
|
|
182383
|
-
}
|
|
182384
|
-
/** Transfer markup (e.g. startCut, endCut) from source to destination */
|
|
182385
|
-
transferMarkup(source, dest) {
|
|
182386
|
-
if (source && dest) {
|
|
182387
|
-
dest.startCut = source.startCut;
|
|
182388
|
-
dest.endCut = source.endCut;
|
|
182389
|
-
}
|
|
182390
|
-
}
|
|
182391
|
-
/** turn an array of curve primitives into the simplest possible strongly typed curve structure.
|
|
182392
|
-
* * The input array is assumed to be connected appropriately to act as the curves of a Path.
|
|
182393
|
-
* * When a path is created the curves array is CAPTURED.
|
|
182394
|
-
*/
|
|
182395
|
-
promoteArrayToCurves(curves, makeLoopIfClosed) {
|
|
182396
|
-
if (curves.length === 0)
|
|
182397
|
-
return undefined;
|
|
182398
|
-
if (makeLoopIfClosed) {
|
|
182399
|
-
ChainCollectorContext._staticPointA = curves[0].startPoint(ChainCollectorContext._staticPointA);
|
|
182400
|
-
ChainCollectorContext._staticPointB = curves[curves.length - 1].endPoint(ChainCollectorContext._staticPointB);
|
|
182401
|
-
if (ChainCollectorContext._staticPointA.isAlmostEqual(ChainCollectorContext._staticPointB))
|
|
182402
|
-
return _Loop__WEBPACK_IMPORTED_MODULE_1__.Loop.createArray(curves);
|
|
182403
|
-
}
|
|
182404
|
-
if (curves.length === 1)
|
|
182405
|
-
return curves[0];
|
|
182406
|
-
return _Path__WEBPACK_IMPORTED_MODULE_2__.Path.createArray(curves);
|
|
182407
|
-
}
|
|
182408
|
-
/** Return the collected results, structured as the simplest possible type. */
|
|
182409
|
-
grabResult(makeLoopIfClosed = false) {
|
|
182410
|
-
const chains = this._chains;
|
|
182411
|
-
if (chains.length === 0)
|
|
182412
|
-
return undefined;
|
|
182413
|
-
if (chains.length === 1)
|
|
182414
|
-
return this.promoteArrayToCurves(chains[0], makeLoopIfClosed);
|
|
182415
|
-
const bag = _CurveCollection__WEBPACK_IMPORTED_MODULE_3__.BagOfCurves.create();
|
|
182416
|
-
for (const chain of chains) {
|
|
182417
|
-
const q = this.promoteArrayToCurves(chain, makeLoopIfClosed);
|
|
182418
|
-
bag.tryAddChild(q);
|
|
182419
|
-
}
|
|
182420
|
-
return bag;
|
|
182421
|
-
}
|
|
182422
|
-
/** test if there is a break between primitiveA and primitiveB, due to any condition such as
|
|
182423
|
-
* * primitiveA.endCut
|
|
182424
|
-
* * primitiveB.startCut
|
|
182425
|
-
* * physical gap between primitives.
|
|
182426
|
-
*/
|
|
182427
|
-
static needBreakBetweenPrimitives(primitiveA, primitiveB, isXYOnly = false) {
|
|
182428
|
-
if (primitiveA === undefined)
|
|
182429
|
-
return true;
|
|
182430
|
-
if (primitiveB === undefined)
|
|
182431
|
-
return true;
|
|
182432
|
-
if (primitiveA.endCut !== undefined)
|
|
182433
|
-
return true;
|
|
182434
|
-
if (primitiveB.startCut !== undefined)
|
|
182435
|
-
return true;
|
|
182436
|
-
ChainCollectorContext._staticPointA = primitiveA.endPoint(ChainCollectorContext._staticPointA);
|
|
182437
|
-
ChainCollectorContext._staticPointB = primitiveB.startPoint(ChainCollectorContext._staticPointB);
|
|
182438
|
-
return isXYOnly
|
|
182439
|
-
? !ChainCollectorContext._staticPointA.isAlmostEqualXY(ChainCollectorContext._staticPointB)
|
|
182440
|
-
: !ChainCollectorContext._staticPointA.isAlmostEqual(ChainCollectorContext._staticPointB);
|
|
182441
|
-
}
|
|
182442
|
-
}
|
|
182443
|
-
|
|
182444
|
-
|
|
182445
182251
|
/***/ }),
|
|
182446
182252
|
|
|
182447
182253
|
/***/ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js":
|
|
@@ -182689,7 +182495,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
182689
182495
|
/* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
|
|
182690
182496
|
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
182691
182497
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
182692
|
-
/* harmony import */ var
|
|
182498
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
182693
182499
|
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
182694
182500
|
/*---------------------------------------------------------------------------------------------
|
|
182695
182501
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
@@ -183378,7 +183184,7 @@ class CurveChainWithDistanceIndex extends _curve_CurvePrimitive__WEBPACK_IMPORTE
|
|
|
183378
183184
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
183379
183185
|
*/
|
|
183380
183186
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
183381
|
-
const options =
|
|
183187
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
183382
183188
|
const offsets = [];
|
|
183383
183189
|
for (const prim of this.collectCurvePrimitives(undefined, true, true)) {
|
|
183384
183190
|
const offset = prim.constructOffsetXY(options);
|
|
@@ -183467,8 +183273,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
183467
183273
|
* same plane).
|
|
183468
183274
|
* - `Loop` - A chain required to close from last to first so that a planar area is enclosed (so curves have to
|
|
183469
183275
|
* be on the same plane).
|
|
183470
|
-
* - `ParityRegion` -- a collection of coplanar `Loop
|
|
183471
|
-
* - `UnionRegion` -- a collection of coplanar `Loop`
|
|
183276
|
+
* - `ParityRegion` -- a collection of coplanar `Loop`, with "in/out" classification by parity rules.
|
|
183277
|
+
* - `UnionRegion` -- a collection of coplanar `Loop` and/or `ParityRegion`, with "in/out" classification by union rules.
|
|
183472
183278
|
* - `BagOfCurves` -- a collection of `AnyCurve` with no implied structure.
|
|
183473
183279
|
*
|
|
183474
183280
|
* @see [Curve Collections]($docs/learning/geometry/CurveCollection.md) learning article.
|
|
@@ -187416,6 +187222,183 @@ class CurveLocationDetailPair {
|
|
|
187416
187222
|
}
|
|
187417
187223
|
|
|
187418
187224
|
|
|
187225
|
+
/***/ }),
|
|
187226
|
+
|
|
187227
|
+
/***/ "../../core/geometry/lib/esm/curve/CurveOps.js":
|
|
187228
|
+
/*!*****************************************************!*\
|
|
187229
|
+
!*** ../../core/geometry/lib/esm/curve/CurveOps.js ***!
|
|
187230
|
+
\*****************************************************/
|
|
187231
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
187232
|
+
|
|
187233
|
+
"use strict";
|
|
187234
|
+
__webpack_require__.r(__webpack_exports__);
|
|
187235
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
187236
|
+
/* harmony export */ CurveOps: () => (/* binding */ CurveOps)
|
|
187237
|
+
/* harmony export */ });
|
|
187238
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
187239
|
+
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
187240
|
+
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
187241
|
+
/* harmony import */ var _internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internalContexts/MultiChainCollector */ "../../core/geometry/lib/esm/curve/internalContexts/MultiChainCollector.js");
|
|
187242
|
+
/* harmony import */ var _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internalContexts/PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
|
|
187243
|
+
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
187244
|
+
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
187245
|
+
/*---------------------------------------------------------------------------------------------
|
|
187246
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
187247
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
187248
|
+
*--------------------------------------------------------------------------------------------*/
|
|
187249
|
+
/** @packageDocumentation
|
|
187250
|
+
* @module Curve
|
|
187251
|
+
*/
|
|
187252
|
+
|
|
187253
|
+
|
|
187254
|
+
|
|
187255
|
+
|
|
187256
|
+
|
|
187257
|
+
|
|
187258
|
+
|
|
187259
|
+
/**
|
|
187260
|
+
* Static methods for miscellaneous curve operations.
|
|
187261
|
+
* @public
|
|
187262
|
+
*/
|
|
187263
|
+
class CurveOps {
|
|
187264
|
+
/** Recursively sum curve lengths, allowing CurvePrimitive, CurveCollection, or array of such at any level. */
|
|
187265
|
+
static sumLengths(curves) {
|
|
187266
|
+
let mySum = 0;
|
|
187267
|
+
if (curves instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive) {
|
|
187268
|
+
mySum += curves.curveLength();
|
|
187269
|
+
}
|
|
187270
|
+
else if (curves instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_1__.CurveCollection) {
|
|
187271
|
+
mySum += curves.sumLengths();
|
|
187272
|
+
}
|
|
187273
|
+
else if (Array.isArray(curves)) {
|
|
187274
|
+
for (const data1 of curves)
|
|
187275
|
+
mySum += this.sumLengths(data1);
|
|
187276
|
+
}
|
|
187277
|
+
return mySum;
|
|
187278
|
+
}
|
|
187279
|
+
/** Recursively extend the range by each curve's range, allowing CurvePrimitive, CurveCollection, or array of such at any level. */
|
|
187280
|
+
static extendRange(range, curves) {
|
|
187281
|
+
if (Array.isArray(curves)) {
|
|
187282
|
+
for (const data1 of curves)
|
|
187283
|
+
this.extendRange(range, data1);
|
|
187284
|
+
}
|
|
187285
|
+
else {
|
|
187286
|
+
curves.extendRange(range);
|
|
187287
|
+
}
|
|
187288
|
+
return range;
|
|
187289
|
+
}
|
|
187290
|
+
/**
|
|
187291
|
+
* Construct a separate xy-offset for each input curve.
|
|
187292
|
+
* * For best offset results, the inputs should be parallel to the xy-plane.
|
|
187293
|
+
* @param curves input curve(s), z-coordinates ignored. Only [[ChainTypes]] are handled.
|
|
187294
|
+
* @param offset offset distance (positive to left of curve, negative to right)
|
|
187295
|
+
* @param result array to collect offset curves
|
|
187296
|
+
* @returns summed length of offset curves
|
|
187297
|
+
*/
|
|
187298
|
+
static appendXYOffsets(curves, offset, result) {
|
|
187299
|
+
let summedLengths = 0;
|
|
187300
|
+
if (curves instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive) {
|
|
187301
|
+
const resultA = _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_2__.CurveChainWireOffsetContext.constructCurveXYOffset(_Path__WEBPACK_IMPORTED_MODULE_3__.Path.create(curves), offset);
|
|
187302
|
+
if (resultA) {
|
|
187303
|
+
summedLengths += this.sumLengths(resultA);
|
|
187304
|
+
result.push(resultA);
|
|
187305
|
+
}
|
|
187306
|
+
}
|
|
187307
|
+
else if (curves instanceof _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop || curves instanceof _Path__WEBPACK_IMPORTED_MODULE_3__.Path) {
|
|
187308
|
+
const resultA = _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_2__.CurveChainWireOffsetContext.constructCurveXYOffset(curves, offset);
|
|
187309
|
+
if (resultA) {
|
|
187310
|
+
summedLengths += this.sumLengths(resultA);
|
|
187311
|
+
result.push(resultA);
|
|
187312
|
+
}
|
|
187313
|
+
}
|
|
187314
|
+
else if (curves instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_1__.BagOfCurves) {
|
|
187315
|
+
for (const q of curves.children)
|
|
187316
|
+
summedLengths += this.appendXYOffsets(q, offset, result);
|
|
187317
|
+
}
|
|
187318
|
+
else if (Array.isArray(curves)) {
|
|
187319
|
+
for (const q of curves)
|
|
187320
|
+
summedLengths += this.appendXYOffsets(q, offset, result);
|
|
187321
|
+
}
|
|
187322
|
+
return summedLengths;
|
|
187323
|
+
}
|
|
187324
|
+
/**
|
|
187325
|
+
* Restructure curve fragments as Paths and Loops, and construct xy-offsets of the chains.
|
|
187326
|
+
* * If the inputs do not form Loop(s), the classification of offsets is suspect.
|
|
187327
|
+
* * For best offset results, the inputs should be parallel to the xy-plane.
|
|
187328
|
+
* * Chain formation is dependent upon input fragment order, as a greedy algorithm is employed.
|
|
187329
|
+
* @param fragments fragments to be chained and offset
|
|
187330
|
+
* @param offsetDistance offset distance, applied to both sides of each fragment to produce inside and outside xy-offset curves.
|
|
187331
|
+
* @param gapTolerance distance to be treated as "effectively zero" when joining head-to-tail
|
|
187332
|
+
* @returns object with named chains, insideOffsets, outsideOffsets
|
|
187333
|
+
*/
|
|
187334
|
+
static collectInsideAndOutsideXYOffsets(fragments, offsetDistance, gapTolerance) {
|
|
187335
|
+
const collector = new _internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_5__.MultiChainCollector(gapTolerance);
|
|
187336
|
+
for (const s of fragments) {
|
|
187337
|
+
collector.captureCurve(s);
|
|
187338
|
+
}
|
|
187339
|
+
const chains = collector.grabResult(true);
|
|
187340
|
+
const myOffsetA = [];
|
|
187341
|
+
const myOffsetB = [];
|
|
187342
|
+
const offsetLengthA = CurveOps.appendXYOffsets(chains, offsetDistance, myOffsetA);
|
|
187343
|
+
const offsetLengthB = CurveOps.appendXYOffsets(chains, -offsetDistance, myOffsetB);
|
|
187344
|
+
if (offsetLengthA > offsetLengthB) {
|
|
187345
|
+
return { outsideOffsets: myOffsetA, insideOffsets: myOffsetB, chains };
|
|
187346
|
+
}
|
|
187347
|
+
else {
|
|
187348
|
+
return { insideOffsets: myOffsetA, outsideOffsets: myOffsetB, chains };
|
|
187349
|
+
}
|
|
187350
|
+
}
|
|
187351
|
+
/**
|
|
187352
|
+
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
187353
|
+
* * The construction will remove "some" local effects of features smaller than the offset distance, but will not detect self intersection among widely separated edges.
|
|
187354
|
+
* @param curves base curves.
|
|
187355
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
187356
|
+
*/
|
|
187357
|
+
static constructCurveXYOffset(curves, offsetDistanceOrOptions) {
|
|
187358
|
+
return _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_2__.CurveChainWireOffsetContext.constructCurveXYOffset(curves, offsetDistanceOrOptions);
|
|
187359
|
+
}
|
|
187360
|
+
/**
|
|
187361
|
+
* Create the offset of a single curve primitive as viewed in the xy-plane (ignoring z).
|
|
187362
|
+
* @param curve primitive to offset
|
|
187363
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object
|
|
187364
|
+
*/
|
|
187365
|
+
static createSingleOffsetPrimitiveXY(curve, offsetDistanceOrOptions) {
|
|
187366
|
+
return _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_2__.CurveChainWireOffsetContext.createSingleOffsetPrimitiveXY(curve, offsetDistanceOrOptions);
|
|
187367
|
+
}
|
|
187368
|
+
/**
|
|
187369
|
+
* Restructure curve fragments as Paths and Loops.
|
|
187370
|
+
* * Chain formation is dependent upon input fragment order, as a greedy algorithm is employed.
|
|
187371
|
+
* @param fragments fragments to be chained
|
|
187372
|
+
* @param gapTolerance distance to be treated as "effectively zero" when assembling fragments head-to-tail
|
|
187373
|
+
* @param planeTolerance tolerance for considering a closed chain to be planar. If undefined, only create Path. If defined, create Loops for closed chains within tolerance of a plane.
|
|
187374
|
+
* @returns chains, possibly wrapped in a [[BagOfCurves]].
|
|
187375
|
+
*/
|
|
187376
|
+
static collectChains(fragments, gapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_6__.Geometry.smallMetricDistance, planeTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_6__.Geometry.smallMetricDistance) {
|
|
187377
|
+
const collector = new _internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_5__.MultiChainCollector(gapTolerance, planeTolerance);
|
|
187378
|
+
for (const s of fragments) {
|
|
187379
|
+
collector.captureCurve(s);
|
|
187380
|
+
}
|
|
187381
|
+
return collector.grabResult(true);
|
|
187382
|
+
}
|
|
187383
|
+
/**
|
|
187384
|
+
* Restructure curve fragments as Paths and Loops, to be stroked and passed into the callback.
|
|
187385
|
+
* * Chain formation is dependent upon input fragment order, as a greedy algorithm is employed.
|
|
187386
|
+
* @param fragments fragments to be chained and stroked
|
|
187387
|
+
* @param announceChain callback to process each stroked Path and Loop
|
|
187388
|
+
* @param strokeOptions options for stroking the chains
|
|
187389
|
+
* @param gapTolerance distance to be treated as "effectively zero" when assembling fragments head-to-tail. Also used for removing duplicate points in the stroked chains.
|
|
187390
|
+
* @param planeTolerance tolerance for considering a closed chain to be planar. If undefined, only create Path. If defined, create Loops for closed chains within tolerance of a plane.
|
|
187391
|
+
*/
|
|
187392
|
+
static collectChainsAsLineString3d(fragments, announceChain, strokeOptions, gapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_6__.Geometry.smallMetricDistance, planeTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_6__.Geometry.smallMetricDistance) {
|
|
187393
|
+
const collector = new _internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_5__.MultiChainCollector(gapTolerance, planeTolerance);
|
|
187394
|
+
for (const s of fragments) {
|
|
187395
|
+
collector.captureCurve(s);
|
|
187396
|
+
}
|
|
187397
|
+
collector.announceChainsAsLineString3d(announceChain, strokeOptions);
|
|
187398
|
+
}
|
|
187399
|
+
}
|
|
187400
|
+
|
|
187401
|
+
|
|
187419
187402
|
/***/ }),
|
|
187420
187403
|
|
|
187421
187404
|
/***/ "../../core/geometry/lib/esm/curve/CurvePrimitive.js":
|
|
@@ -188308,7 +188291,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
188308
188291
|
* @public
|
|
188309
188292
|
*/
|
|
188310
188293
|
class GeometryQuery {
|
|
188311
|
-
/** Return the range of the entire
|
|
188294
|
+
/** Return the range of the entire GeometryQuery tree */
|
|
188312
188295
|
range(transform, result) {
|
|
188313
188296
|
if (result)
|
|
188314
188297
|
result.setNull();
|
|
@@ -188356,7 +188339,7 @@ class GeometryQuery {
|
|
|
188356
188339
|
return false;
|
|
188357
188340
|
}
|
|
188358
188341
|
/**
|
|
188359
|
-
* Apply instance method isAlmostEqual if both are defined.
|
|
188342
|
+
* Apply instance method [[isAlmostEqual]] if both are defined.
|
|
188360
188343
|
* * both undefined returns true
|
|
188361
188344
|
* * single defined returns false
|
|
188362
188345
|
*/
|
|
@@ -188393,7 +188376,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
188393
188376
|
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
188394
188377
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
188395
188378
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
188396
|
-
/* harmony import */ var
|
|
188379
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
188397
188380
|
/*---------------------------------------------------------------------------------------------
|
|
188398
188381
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
188399
188382
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -188773,7 +188756,7 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
|
|
|
188773
188756
|
const offsetVec = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(this._point0, this._point1);
|
|
188774
188757
|
if (offsetVec.normalizeInPlace()) {
|
|
188775
188758
|
offsetVec.rotate90CCWXY(offsetVec);
|
|
188776
|
-
const offsetDist =
|
|
188759
|
+
const offsetDist = _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.OffsetOptions.getOffsetDistance(offsetDistanceOrOptions);
|
|
188777
188760
|
return LineSegment3d.create(this._point0.plusScaled(offsetVec, offsetDist), this._point1.plusScaled(offsetVec, offsetDist));
|
|
188778
188761
|
}
|
|
188779
188762
|
return undefined;
|
|
@@ -188822,8 +188805,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
188822
188805
|
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
188823
188806
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
188824
188807
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
188825
|
-
/* harmony import */ var _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./internalContexts/PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
|
|
188826
188808
|
/* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
188809
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
188827
188810
|
/* harmony import */ var _Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
|
|
188828
188811
|
|
|
188829
188812
|
|
|
@@ -190161,7 +190144,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
190161
190144
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
190162
190145
|
*/
|
|
190163
190146
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
190164
|
-
const options =
|
|
190147
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
190165
190148
|
const offsets = [];
|
|
190166
190149
|
for (const seg of this.collectCurvePrimitives(undefined, true, true)) {
|
|
190167
190150
|
const offset = seg.constructOffsetXY(options);
|
|
@@ -190401,6 +190384,184 @@ class LoopCurveLoopCurve {
|
|
|
190401
190384
|
}
|
|
190402
190385
|
|
|
190403
190386
|
|
|
190387
|
+
/***/ }),
|
|
190388
|
+
|
|
190389
|
+
/***/ "../../core/geometry/lib/esm/curve/OffsetOptions.js":
|
|
190390
|
+
/*!**********************************************************!*\
|
|
190391
|
+
!*** ../../core/geometry/lib/esm/curve/OffsetOptions.js ***!
|
|
190392
|
+
\**********************************************************/
|
|
190393
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
190394
|
+
|
|
190395
|
+
"use strict";
|
|
190396
|
+
__webpack_require__.r(__webpack_exports__);
|
|
190397
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
190398
|
+
/* harmony export */ JointOptions: () => (/* binding */ JointOptions),
|
|
190399
|
+
/* harmony export */ OffsetOptions: () => (/* binding */ OffsetOptions)
|
|
190400
|
+
/* harmony export */ });
|
|
190401
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
190402
|
+
/* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
190403
|
+
/*---------------------------------------------------------------------------------------------
|
|
190404
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
190405
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
190406
|
+
*--------------------------------------------------------------------------------------------*/
|
|
190407
|
+
/** @packageDocumentation
|
|
190408
|
+
* @module Curve
|
|
190409
|
+
*/
|
|
190410
|
+
|
|
190411
|
+
|
|
190412
|
+
/**
|
|
190413
|
+
* Control parameters for joint construction, used in offset construction methods such as [[RegionOps.constructPolygonWireXYOffset]] and [[Region.Ops.constructCurveXYOffset]].
|
|
190414
|
+
* * Define a "joint" as the common point between adjacent segments of the input curve.
|
|
190415
|
+
* * Define the "turn angle" at a joint to be the angle in [0,pi] between the first derivatives (tangents) of
|
|
190416
|
+
* the segments at the joint.
|
|
190417
|
+
* * When creating offsets, if an offset needs to do an "outside" turn, the first applicable construction is applied:
|
|
190418
|
+
* * If the turn angle is larger than `options.minArcDegrees`, a circular arc is constructed to offset the joint.
|
|
190419
|
+
* * If the turn angle is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to
|
|
190420
|
+
* single intersection point (to create a sharp corner).
|
|
190421
|
+
* * If the turn angle is larger than `options.maxChamferDegrees`, the joint is offset with a line string whose edges:
|
|
190422
|
+
* * lie outside the arc that would have been created by the first construction
|
|
190423
|
+
* * have uniform turn angle less than `options.maxChamferDegrees`
|
|
190424
|
+
* * touch the arc at their midpoint (except first and last edge).
|
|
190425
|
+
* @public
|
|
190426
|
+
*/
|
|
190427
|
+
class JointOptions {
|
|
190428
|
+
/**
|
|
190429
|
+
* Construct JointOptions.
|
|
190430
|
+
* * leftOffsetDistance is required
|
|
190431
|
+
* * minArcDegrees and maxChamferDegrees are optional.
|
|
190432
|
+
*/
|
|
190433
|
+
constructor(leftOffsetDistance, minArcDegrees = 180, maxChamferDegrees = 90, preserveEllipticalArcs = false, allowSharpestCorners = false) {
|
|
190434
|
+
/**
|
|
190435
|
+
* Smallest arc to construct.
|
|
190436
|
+
* * If this control angle is 180 degrees or more, arcs are never created.
|
|
190437
|
+
*/
|
|
190438
|
+
this.minArcDegrees = 180.0;
|
|
190439
|
+
/** Largest turn angle at which to construct a sharp corner, or largest turn angle in a multi-segment chamfer. */
|
|
190440
|
+
this.maxChamferTurnDegrees = 90;
|
|
190441
|
+
/**
|
|
190442
|
+
* Whether to remove the internal turn angle upper bound for sharp corner construction.
|
|
190443
|
+
* * By default, a sharp corner is not created at a joint when the turn angle is too large, so as to avoid offsets whose
|
|
190444
|
+
* ranges blow up. Internally, this is implemented by applying an upper bound of 120 degrees to `maxChamferTurnDegrees`.
|
|
190445
|
+
* * When `allowSharpestCorners` is true, this internal upper bound is removed, allowing sharp corners for turn angles
|
|
190446
|
+
* up to `maxChamferTurnDegrees`.
|
|
190447
|
+
* * Thus, if you know your input turn angles are no greater than `maxChamferTurnDegrees`, you can create an offset with
|
|
190448
|
+
* sharp corners at each joint by setting `maxChamferTurnDegrees < minArcDegrees` and `allowSharpestCorners` to true.
|
|
190449
|
+
*/
|
|
190450
|
+
this.allowSharpestCorners = false;
|
|
190451
|
+
/** Offset distance, positive to left of base curve. */
|
|
190452
|
+
this.leftOffsetDistance = 0;
|
|
190453
|
+
/** Whether to offset elliptical arcs as elliptical arcs (true) or as B-spline curves (false, default). */
|
|
190454
|
+
this.preserveEllipticalArcs = false;
|
|
190455
|
+
this.leftOffsetDistance = leftOffsetDistance;
|
|
190456
|
+
this.minArcDegrees = minArcDegrees;
|
|
190457
|
+
this.maxChamferTurnDegrees = maxChamferDegrees;
|
|
190458
|
+
this.preserveEllipticalArcs = preserveEllipticalArcs;
|
|
190459
|
+
this.allowSharpestCorners = allowSharpestCorners;
|
|
190460
|
+
}
|
|
190461
|
+
/** Return a deep clone. */
|
|
190462
|
+
clone() {
|
|
190463
|
+
return new JointOptions(this.leftOffsetDistance, this.minArcDegrees, this.maxChamferTurnDegrees, this.preserveEllipticalArcs, this.allowSharpestCorners);
|
|
190464
|
+
}
|
|
190465
|
+
/** Copy values of input options */
|
|
190466
|
+
setFrom(other) {
|
|
190467
|
+
this.leftOffsetDistance = other.leftOffsetDistance;
|
|
190468
|
+
this.minArcDegrees = other.minArcDegrees;
|
|
190469
|
+
this.maxChamferTurnDegrees = other.maxChamferTurnDegrees;
|
|
190470
|
+
this.preserveEllipticalArcs = other.preserveEllipticalArcs;
|
|
190471
|
+
this.allowSharpestCorners = other.allowSharpestCorners;
|
|
190472
|
+
}
|
|
190473
|
+
/**
|
|
190474
|
+
* Parse a number or JointOptions up to JointOptions:
|
|
190475
|
+
* * If leftOffsetDistanceOptions is a number, create a JointOptions with other options set to default values.
|
|
190476
|
+
* * If leftOffsetDistanceOrOptions is a JointOptions, return it unchanged.
|
|
190477
|
+
* @param leftOffsetDistanceOrOptions
|
|
190478
|
+
*/
|
|
190479
|
+
static create(leftOffsetDistanceOrOptions) {
|
|
190480
|
+
if (leftOffsetDistanceOrOptions instanceof JointOptions)
|
|
190481
|
+
return leftOffsetDistanceOrOptions;
|
|
190482
|
+
return new JointOptions(leftOffsetDistanceOrOptions);
|
|
190483
|
+
}
|
|
190484
|
+
/** Return true if the options indicate this amount of turn should be handled with an arc. */
|
|
190485
|
+
needArc(theta) {
|
|
190486
|
+
return Math.abs(theta.degrees) >= this.minArcDegrees;
|
|
190487
|
+
}
|
|
190488
|
+
/** Return the number of corners needed to chamfer the given turn angle. */
|
|
190489
|
+
numChamferPoints(theta) {
|
|
190490
|
+
const degrees = Math.abs(theta.degrees);
|
|
190491
|
+
const minStepDegreesClamp = 10;
|
|
190492
|
+
let maxStepDegreesClamp = 120;
|
|
190493
|
+
if (this.allowSharpestCorners) {
|
|
190494
|
+
maxStepDegreesClamp = this.maxChamferTurnDegrees;
|
|
190495
|
+
}
|
|
190496
|
+
const stepDegrees = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.clamp(this.maxChamferTurnDegrees, minStepDegreesClamp, maxStepDegreesClamp);
|
|
190497
|
+
if (degrees <= stepDegrees)
|
|
190498
|
+
return 1;
|
|
190499
|
+
return Math.ceil(degrees / stepDegrees);
|
|
190500
|
+
}
|
|
190501
|
+
}
|
|
190502
|
+
/**
|
|
190503
|
+
* Options for offsetting a curve, used in offset construction methods such as [[CurvePrimitive.constructOffsetXY]], [[RegionOps.constructPolygonWireXYOffset]] and [[Region.Ops.constructCurveXYOffset]].
|
|
190504
|
+
* @public
|
|
190505
|
+
*/
|
|
190506
|
+
class OffsetOptions {
|
|
190507
|
+
/** Options that are provided are captured. */
|
|
190508
|
+
constructor(offsetDistanceOrOptions, strokeOptions) {
|
|
190509
|
+
this.jointOptions = JointOptions.create(offsetDistanceOrOptions);
|
|
190510
|
+
this.strokeOptions = (strokeOptions !== undefined) ? strokeOptions : _StrokeOptions__WEBPACK_IMPORTED_MODULE_1__.StrokeOptions.createForCurves();
|
|
190511
|
+
}
|
|
190512
|
+
get minArcDegrees() {
|
|
190513
|
+
return this.jointOptions.minArcDegrees;
|
|
190514
|
+
}
|
|
190515
|
+
set minArcDegrees(value) {
|
|
190516
|
+
this.jointOptions.minArcDegrees = value;
|
|
190517
|
+
}
|
|
190518
|
+
get maxChamferTurnDegrees() {
|
|
190519
|
+
return this.jointOptions.maxChamferTurnDegrees;
|
|
190520
|
+
}
|
|
190521
|
+
set maxChamferTurnDegrees(value) {
|
|
190522
|
+
this.jointOptions.maxChamferTurnDegrees = value;
|
|
190523
|
+
}
|
|
190524
|
+
get allowSharpestCorners() {
|
|
190525
|
+
return this.jointOptions.allowSharpestCorners;
|
|
190526
|
+
}
|
|
190527
|
+
set allowSharpestCorners(value) {
|
|
190528
|
+
this.jointOptions.allowSharpestCorners = value;
|
|
190529
|
+
}
|
|
190530
|
+
get leftOffsetDistance() {
|
|
190531
|
+
return this.jointOptions.leftOffsetDistance;
|
|
190532
|
+
}
|
|
190533
|
+
set leftOffsetDistance(value) {
|
|
190534
|
+
this.jointOptions.leftOffsetDistance = value;
|
|
190535
|
+
}
|
|
190536
|
+
get preserveEllipticalArcs() {
|
|
190537
|
+
return this.jointOptions.preserveEllipticalArcs;
|
|
190538
|
+
}
|
|
190539
|
+
set preserveEllipticalArcs(value) {
|
|
190540
|
+
this.jointOptions.preserveEllipticalArcs = value;
|
|
190541
|
+
}
|
|
190542
|
+
/**
|
|
190543
|
+
* Convert variant input into OffsetOptions.
|
|
190544
|
+
* * If a JointOptions is provided, it is captured.
|
|
190545
|
+
* * If an OffsetOptions is provided, a reference to it is returned.
|
|
190546
|
+
*/
|
|
190547
|
+
static create(offsetDistanceOrOptions) {
|
|
190548
|
+
if (offsetDistanceOrOptions instanceof OffsetOptions)
|
|
190549
|
+
return offsetDistanceOrOptions;
|
|
190550
|
+
return new OffsetOptions(offsetDistanceOrOptions);
|
|
190551
|
+
}
|
|
190552
|
+
/** Convert variant input into offset distance */
|
|
190553
|
+
static getOffsetDistance(offsetDistanceOrOptions) {
|
|
190554
|
+
if (typeof offsetDistanceOrOptions === "number")
|
|
190555
|
+
return offsetDistanceOrOptions;
|
|
190556
|
+
return offsetDistanceOrOptions.leftOffsetDistance;
|
|
190557
|
+
}
|
|
190558
|
+
/** Return a deep clone. */
|
|
190559
|
+
clone() {
|
|
190560
|
+
return new OffsetOptions(this.jointOptions.clone(), this.strokeOptions.clone());
|
|
190561
|
+
}
|
|
190562
|
+
}
|
|
190563
|
+
|
|
190564
|
+
|
|
190404
190565
|
/***/ }),
|
|
190405
190566
|
|
|
190406
190567
|
/***/ "../../core/geometry/lib/esm/curve/ParityRegion.js":
|
|
@@ -192546,32 +192707,33 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
192546
192707
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
192547
192708
|
/* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
|
|
192548
192709
|
/* harmony import */ var _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/IndexedXYZCollection */ "../../core/geometry/lib/esm/geometry3d/IndexedXYZCollection.js");
|
|
192549
|
-
/* harmony import */ var
|
|
192710
|
+
/* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
|
|
192550
192711
|
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
192551
|
-
/* harmony import */ var
|
|
192552
|
-
/* harmony import */ var
|
|
192553
|
-
/* harmony import */ var
|
|
192554
|
-
/* harmony import */ var
|
|
192712
|
+
/* harmony import */ var _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../geometry3d/PolylineCompressionByEdgeOffset */ "../../core/geometry/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js");
|
|
192713
|
+
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
192714
|
+
/* harmony import */ var _geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../geometry3d/SortablePolygon */ "../../core/geometry/lib/esm/geometry3d/SortablePolygon.js");
|
|
192715
|
+
/* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
|
|
192555
192716
|
/* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
|
|
192556
192717
|
/* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
192557
192718
|
/* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
|
|
192558
192719
|
/* harmony import */ var _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../topology/HalfEdgeGraphSearch */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphSearch.js");
|
|
192559
192720
|
/* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
|
|
192560
|
-
/* harmony import */ var
|
|
192561
|
-
/* harmony import */ var
|
|
192562
|
-
/* harmony import */ var
|
|
192563
|
-
/* harmony import */ var
|
|
192721
|
+
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
192722
|
+
/* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
192723
|
+
/* harmony import */ var _CurveOps__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
|
|
192724
|
+
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
192564
192725
|
/* harmony import */ var _CurveWireMomentsXYZ__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CurveWireMomentsXYZ */ "../../core/geometry/lib/esm/curve/CurveWireMomentsXYZ.js");
|
|
192565
|
-
/* harmony import */ var
|
|
192566
|
-
/* harmony import */ var
|
|
192726
|
+
/* harmony import */ var _GeometryQuery__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
|
|
192727
|
+
/* harmony import */ var _internalContexts_ChainCollectorContext__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./internalContexts/ChainCollectorContext */ "../../core/geometry/lib/esm/curve/internalContexts/ChainCollectorContext.js");
|
|
192567
192728
|
/* harmony import */ var _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./internalContexts/PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
|
|
192568
192729
|
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
192569
192730
|
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
192731
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
192570
192732
|
/* harmony import */ var _ParityRegion__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
|
|
192571
|
-
/* harmony import */ var
|
|
192572
|
-
/* harmony import */ var
|
|
192573
|
-
/* harmony import */ var
|
|
192574
|
-
/* harmony import */ var
|
|
192733
|
+
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
192734
|
+
/* harmony import */ var _Query_ConsolidateAdjacentPrimitivesContext__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./Query/ConsolidateAdjacentPrimitivesContext */ "../../core/geometry/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js");
|
|
192735
|
+
/* harmony import */ var _Query_CurveSplitContext__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Query/CurveSplitContext */ "../../core/geometry/lib/esm/curve/Query/CurveSplitContext.js");
|
|
192736
|
+
/* harmony import */ var _Query_InOutTests__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Query/InOutTests */ "../../core/geometry/lib/esm/curve/Query/InOutTests.js");
|
|
192575
192737
|
/* harmony import */ var _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Query/PlanarSubdivision */ "../../core/geometry/lib/esm/curve/Query/PlanarSubdivision.js");
|
|
192576
192738
|
/* harmony import */ var _RegionMomentsXY__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RegionMomentsXY */ "../../core/geometry/lib/esm/curve/RegionMomentsXY.js");
|
|
192577
192739
|
/* harmony import */ var _RegionOpsClassificationSweeps__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./RegionOpsClassificationSweeps */ "../../core/geometry/lib/esm/curve/RegionOpsClassificationSweeps.js");
|
|
@@ -192614,6 +192776,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
192614
192776
|
|
|
192615
192777
|
|
|
192616
192778
|
|
|
192779
|
+
|
|
192617
192780
|
|
|
192618
192781
|
|
|
192619
192782
|
/**
|
|
@@ -192892,8 +193055,6 @@ class RegionOps {
|
|
|
192892
193055
|
* the xy-plane.
|
|
192893
193056
|
* * The construction algorithm attempts to eliminate some self-intersections within the offsets, but does not
|
|
192894
193057
|
* guarantee a simple area offset.
|
|
192895
|
-
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
192896
|
-
* * See [[JointOptions]] class doc for offset construction rules.
|
|
192897
193058
|
* @param points a single loop or path
|
|
192898
193059
|
* @param wrap true to include wraparound
|
|
192899
193060
|
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or JointOptions
|
|
@@ -192907,14 +193068,13 @@ class RegionOps {
|
|
|
192907
193068
|
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
192908
193069
|
* * The construction will remove "some" local effects of features smaller than the offset distance, but will
|
|
192909
193070
|
* not detect self intersection among widely separated edges.
|
|
192910
|
-
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
192911
|
-
* * See [[JointOptions]] class doc for offset construction rules.
|
|
192912
193071
|
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/Offset
|
|
192913
193072
|
* @param curves base curves.
|
|
192914
193073
|
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
192915
193074
|
*/
|
|
192916
193075
|
static constructCurveXYOffset(curves, offsetDistanceOrOptions) {
|
|
192917
|
-
|
|
193076
|
+
const offsetOptions = _OffsetOptions__WEBPACK_IMPORTED_MODULE_18__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
193077
|
+
return _CurveOps__WEBPACK_IMPORTED_MODULE_19__.CurveOps.constructCurveXYOffset(curves, offsetOptions);
|
|
192918
193078
|
}
|
|
192919
193079
|
/**
|
|
192920
193080
|
* Test if point (x,y) is IN, OUT or ON a region.
|
|
@@ -192924,7 +193084,7 @@ class RegionOps {
|
|
|
192924
193084
|
* @param y y coordinate of point to test
|
|
192925
193085
|
*/
|
|
192926
193086
|
static testPointInOnOutRegionXY(curves, x, y) {
|
|
192927
|
-
return
|
|
193087
|
+
return _Query_InOutTests__WEBPACK_IMPORTED_MODULE_20__.PointInOnOutContext.testPointInOnOutRegionXY(curves, x, y);
|
|
192928
193088
|
}
|
|
192929
193089
|
/**
|
|
192930
193090
|
* Create curve collection of subtype determined by gaps between the input curves.
|
|
@@ -192948,11 +193108,11 @@ class RegionOps {
|
|
|
192948
193108
|
maxGap = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.maxXY(maxGap, curves[i].endPoint().distance(curves[i + 1].startPoint()));
|
|
192949
193109
|
let collection;
|
|
192950
193110
|
if (_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(maxGap)) {
|
|
192951
|
-
collection = wrap ? _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.create() :
|
|
193111
|
+
collection = wrap ? _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.create() : _Path__WEBPACK_IMPORTED_MODULE_21__.Path.create();
|
|
192952
193112
|
isPath = true;
|
|
192953
193113
|
}
|
|
192954
193114
|
else {
|
|
192955
|
-
collection =
|
|
193115
|
+
collection = _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.BagOfCurves.create();
|
|
192956
193116
|
}
|
|
192957
193117
|
for (const c of curves)
|
|
192958
193118
|
collection.tryAddChild(c);
|
|
@@ -192977,7 +193137,7 @@ class RegionOps {
|
|
|
192977
193137
|
* @param cutterCurves input curves to intersect with `curvesToCut`
|
|
192978
193138
|
*/
|
|
192979
193139
|
static cloneCurvesWithXYSplits(curvesToCut, cutterCurves) {
|
|
192980
|
-
return
|
|
193140
|
+
return _Query_CurveSplitContext__WEBPACK_IMPORTED_MODULE_23__.CurveSplitContext.cloneCurvesWithXYSplits(curvesToCut, cutterCurves);
|
|
192981
193141
|
}
|
|
192982
193142
|
/**
|
|
192983
193143
|
* Create paths assembled from many curves.
|
|
@@ -192988,35 +193148,36 @@ class RegionOps {
|
|
|
192988
193148
|
static splitToPathsBetweenBreaks(source, makeClones) {
|
|
192989
193149
|
if (source === undefined)
|
|
192990
193150
|
return undefined;
|
|
192991
|
-
if (source instanceof
|
|
193151
|
+
if (source instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__.CurvePrimitive)
|
|
192992
193152
|
return source;
|
|
192993
193153
|
// source is a collection . ..
|
|
192994
193154
|
const primitives = source.collectCurvePrimitives();
|
|
192995
|
-
const chainCollector = new
|
|
193155
|
+
const chainCollector = new _internalContexts_ChainCollectorContext__WEBPACK_IMPORTED_MODULE_25__.ChainCollectorContext(makeClones);
|
|
192996
193156
|
for (const primitive of primitives) {
|
|
192997
193157
|
chainCollector.announceCurvePrimitive(primitive);
|
|
192998
193158
|
}
|
|
192999
193159
|
return chainCollector.grabResult();
|
|
193000
193160
|
}
|
|
193001
193161
|
/**
|
|
193002
|
-
* Restructure curve fragments as
|
|
193003
|
-
* *
|
|
193004
|
-
*
|
|
193005
|
-
* @param
|
|
193006
|
-
* @param
|
|
193162
|
+
* Restructure curve fragments as Paths and Loops, and construct xy-offsets of the chains.
|
|
193163
|
+
* * If the inputs do not form Loop(s), the classification of offsets is suspect.
|
|
193164
|
+
* * For best offset results, the inputs should be parallel to the xy-plane.
|
|
193165
|
+
* @param fragments fragments to be chained and offset
|
|
193166
|
+
* @param offsetDistance offset distance, applied to both sides of each fragment to produce inside and outside xy-offset curves.
|
|
193167
|
+
* @param gapTolerance distance to be treated as "effectively zero" when assembling fragments head-to-tail
|
|
193007
193168
|
* @returns object with named chains, insideOffsets, outsideOffsets
|
|
193008
193169
|
*/
|
|
193009
193170
|
static collectInsideAndOutsideOffsets(fragments, offsetDistance, gapTolerance) {
|
|
193010
|
-
return
|
|
193171
|
+
return _CurveOps__WEBPACK_IMPORTED_MODULE_19__.CurveOps.collectInsideAndOutsideXYOffsets(fragments, offsetDistance, gapTolerance);
|
|
193011
193172
|
}
|
|
193012
193173
|
/**
|
|
193013
|
-
* Restructure curve fragments as
|
|
193174
|
+
* Restructure curve fragments as Paths and Loops.
|
|
193014
193175
|
* @param fragments fragments to be chained
|
|
193015
|
-
* @param gapTolerance
|
|
193016
|
-
* @returns chains, possibly wrapped in BagOfCurves
|
|
193176
|
+
* @param gapTolerance distance to be treated as "effectively zero" when assembling fragments head-to-tail
|
|
193177
|
+
* @returns chains, possibly wrapped in a [[BagOfCurves]].
|
|
193017
193178
|
*/
|
|
193018
193179
|
static collectChains(fragments, gapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
|
|
193019
|
-
return
|
|
193180
|
+
return _CurveOps__WEBPACK_IMPORTED_MODULE_19__.CurveOps.collectChains(fragments, gapTolerance);
|
|
193020
193181
|
}
|
|
193021
193182
|
/**
|
|
193022
193183
|
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
@@ -193028,17 +193189,17 @@ class RegionOps {
|
|
|
193028
193189
|
const result = { insideParts: [], outsideParts: [], coincidentParts: [] };
|
|
193029
193190
|
const pathWithIntersectionMarkup = RegionOps.cloneCurvesWithXYSplits(curvesToCut, region);
|
|
193030
193191
|
const splitPaths = RegionOps.splitToPathsBetweenBreaks(pathWithIntersectionMarkup, true);
|
|
193031
|
-
if (splitPaths instanceof
|
|
193192
|
+
if (splitPaths instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection) {
|
|
193032
193193
|
for (const child of splitPaths.children) {
|
|
193033
|
-
const pointOnChild =
|
|
193194
|
+
const pointOnChild = _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection.createCurveLocationDetailOnAnyCurvePrimitive(child);
|
|
193034
193195
|
if (pointOnChild) {
|
|
193035
193196
|
const inOnOut = RegionOps.testPointInOnOutRegionXY(region, pointOnChild.point.x, pointOnChild.point.y);
|
|
193036
193197
|
pushToInOnOutArrays(child, inOnOut, result.outsideParts, result.coincidentParts, result.insideParts);
|
|
193037
193198
|
}
|
|
193038
193199
|
}
|
|
193039
193200
|
}
|
|
193040
|
-
else if (splitPaths instanceof
|
|
193041
|
-
const pointOnChild =
|
|
193201
|
+
else if (splitPaths instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__.CurvePrimitive) {
|
|
193202
|
+
const pointOnChild = _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection.createCurveLocationDetailOnAnyCurvePrimitive(splitPaths);
|
|
193042
193203
|
if (pointOnChild) {
|
|
193043
193204
|
const inOnOut = RegionOps.testPointInOnOutRegionXY(region, pointOnChild.point.x, pointOnChild.point.y);
|
|
193044
193205
|
pushToInOnOutArrays(splitPaths, inOnOut, result.outsideParts, result.coincidentParts, result.insideParts);
|
|
@@ -193080,7 +193241,7 @@ class RegionOps {
|
|
|
193080
193241
|
}
|
|
193081
193242
|
else {
|
|
193082
193243
|
dataToUse = _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_15__.GrowableXYZArray.create(data);
|
|
193083
|
-
|
|
193244
|
+
_geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_26__.PolylineCompressionContext.compressInPlaceByShortEdgeLength(dataToUse, _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance);
|
|
193084
193245
|
if (dataToUse.length < (requireClosurePoint ? 5 : 4))
|
|
193085
193246
|
return undefined;
|
|
193086
193247
|
}
|
|
@@ -193091,19 +193252,19 @@ class RegionOps {
|
|
|
193091
193252
|
if (normalVector.normalizeInPlace()
|
|
193092
193253
|
&& vector12.isAlmostEqual(vector03)
|
|
193093
193254
|
&& vector01.isPerpendicularTo(vector03)) {
|
|
193094
|
-
return
|
|
193255
|
+
return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_27__.Transform.createOriginAndMatrixColumns(dataToUse.getPoint3dAtUncheckedPointIndex(0), vector01, vector03, normalVector);
|
|
193095
193256
|
}
|
|
193096
193257
|
}
|
|
193097
193258
|
else if (Array.isArray(data)) {
|
|
193098
|
-
return this.rectangleEdgeTransform(new
|
|
193259
|
+
return this.rectangleEdgeTransform(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_28__.Point3dArrayCarrier(data), requireClosurePoint);
|
|
193099
193260
|
}
|
|
193100
193261
|
else if (data instanceof _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop && data.children.length === 1 && data.children[0] instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
|
|
193101
193262
|
return this.rectangleEdgeTransform(data.children[0].packedPoints, true);
|
|
193102
193263
|
}
|
|
193103
|
-
else if (data instanceof
|
|
193264
|
+
else if (data instanceof _Path__WEBPACK_IMPORTED_MODULE_21__.Path && data.children.length === 1 && data.children[0] instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
|
|
193104
193265
|
return this.rectangleEdgeTransform(data.children[0].packedPoints, requireClosurePoint);
|
|
193105
193266
|
}
|
|
193106
|
-
else if (data instanceof
|
|
193267
|
+
else if (data instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveChain) {
|
|
193107
193268
|
if (!data.checkForNonLinearPrimitives()) {
|
|
193108
193269
|
// const linestring = LineString3d.create();
|
|
193109
193270
|
const strokes = data.getPackedStrokes();
|
|
@@ -193127,7 +193288,7 @@ class RegionOps {
|
|
|
193127
193288
|
* @param options options for tolerance and selective simplification.
|
|
193128
193289
|
*/
|
|
193129
193290
|
static consolidateAdjacentPrimitives(curves, options) {
|
|
193130
|
-
const context = new
|
|
193291
|
+
const context = new _Query_ConsolidateAdjacentPrimitivesContext__WEBPACK_IMPORTED_MODULE_29__.ConsolidateAdjacentCurvePrimitivesContext(options);
|
|
193131
193292
|
curves.dispatchToGeometryHandler(context);
|
|
193132
193293
|
}
|
|
193133
193294
|
/**
|
|
@@ -193146,13 +193307,13 @@ class RegionOps {
|
|
|
193146
193307
|
const loopAndArea = [];
|
|
193147
193308
|
for (const candidate of loops) {
|
|
193148
193309
|
if (candidate instanceof _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop)
|
|
193149
|
-
|
|
193310
|
+
_geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__.SortablePolygon.pushLoop(loopAndArea, candidate);
|
|
193150
193311
|
else if (candidate instanceof _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_6__.IndexedXYZCollection) {
|
|
193151
193312
|
const loop = _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(candidate);
|
|
193152
|
-
|
|
193313
|
+
_geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__.SortablePolygon.pushLoop(loopAndArea, loop);
|
|
193153
193314
|
}
|
|
193154
193315
|
}
|
|
193155
|
-
return
|
|
193316
|
+
return _geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__.SortablePolygon.sortAsAnyRegion(loopAndArea);
|
|
193156
193317
|
}
|
|
193157
193318
|
/**
|
|
193158
193319
|
* Find all areas bounded by the unstructured, possibly intersecting curves.
|
|
@@ -193177,7 +193338,7 @@ class RegionOps {
|
|
|
193177
193338
|
const primitives = RegionOps.collectCurvePrimitives(curvesAndRegions, undefined, true, true);
|
|
193178
193339
|
const range = this.curveArrayRange(primitives);
|
|
193179
193340
|
const areaTol = this.computeXYAreaTolerance(range, tolerance);
|
|
193180
|
-
const intersections =
|
|
193341
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_31__.CurveCurve.allIntersectionsAmongPrimitivesXY(primitives, tolerance);
|
|
193181
193342
|
const graph = _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_12__.PlanarSubdivision.assembleHalfEdgeGraph(primitives, intersections, tolerance);
|
|
193182
193343
|
return _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_12__.PlanarSubdivision.collectSignedLoopSetsInHalfEdgeGraph(graph, areaTol);
|
|
193183
193344
|
}
|
|
@@ -193194,10 +193355,10 @@ class RegionOps {
|
|
|
193194
193355
|
*/
|
|
193195
193356
|
static collectCurvePrimitives(candidates, collectorArray, smallestPossiblePrimitives = false, explodeLinestrings = false) {
|
|
193196
193357
|
const results = collectorArray === undefined ? [] : collectorArray;
|
|
193197
|
-
if (candidates instanceof
|
|
193358
|
+
if (candidates instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__.CurvePrimitive) {
|
|
193198
193359
|
candidates.collectCurvePrimitives(results, smallestPossiblePrimitives, explodeLinestrings);
|
|
193199
193360
|
}
|
|
193200
|
-
else if (candidates instanceof
|
|
193361
|
+
else if (candidates instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection) {
|
|
193201
193362
|
candidates.collectCurvePrimitives(results, smallestPossiblePrimitives, explodeLinestrings);
|
|
193202
193363
|
}
|
|
193203
193364
|
else if (Array.isArray(candidates)) {
|
|
@@ -193235,12 +193396,12 @@ class RegionOps {
|
|
|
193235
193396
|
* @param worldToLocal transform to apply to data before computing its range
|
|
193236
193397
|
*/
|
|
193237
193398
|
static curveArrayRange(data, worldToLocal) {
|
|
193238
|
-
const range =
|
|
193239
|
-
if (data instanceof
|
|
193399
|
+
const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_32__.Range3d.create();
|
|
193400
|
+
if (data instanceof _GeometryQuery__WEBPACK_IMPORTED_MODULE_33__.GeometryQuery)
|
|
193240
193401
|
data.extendRange(range, worldToLocal);
|
|
193241
193402
|
else if (Array.isArray(data)) {
|
|
193242
193403
|
for (const c of data) {
|
|
193243
|
-
if (c instanceof
|
|
193404
|
+
if (c instanceof _GeometryQuery__WEBPACK_IMPORTED_MODULE_33__.GeometryQuery)
|
|
193244
193405
|
c.extendRange(range, worldToLocal);
|
|
193245
193406
|
else if (c instanceof _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_8__.Point3d)
|
|
193246
193407
|
range.extendPoint(c, worldToLocal);
|
|
@@ -193547,7 +193708,7 @@ class RegionOpsFaceToFaceSearch {
|
|
|
193547
193708
|
const baseMask = _topology_Graph__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeMask.BOUNDARY_EDGE | _topology_Graph__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeMask.PRIMARY_EDGE;
|
|
193548
193709
|
const callbacks = RegionBooleanContext.create(opA, opB);
|
|
193549
193710
|
callbacks.graph = graph;
|
|
193550
|
-
callbacks.faceAreaFunction = _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea;
|
|
193711
|
+
callbacks.faceAreaFunction = (node) => _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea(node);
|
|
193551
193712
|
// Add all the members in groupA ..
|
|
193552
193713
|
for (const data of dataA) {
|
|
193553
193714
|
if (data.length > 2) {
|
|
@@ -193992,7 +194153,7 @@ class GraphComponent {
|
|
|
193992
194153
|
}
|
|
193993
194154
|
this.faceAreas.length = 0;
|
|
193994
194155
|
if (!faceAreaFunction)
|
|
193995
|
-
faceAreaFunction = _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea;
|
|
194156
|
+
faceAreaFunction = (node) => _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea(node);
|
|
193996
194157
|
for (const f of this.faces) {
|
|
193997
194158
|
this.faceAreas.push(faceAreaFunction(f));
|
|
193998
194159
|
}
|
|
@@ -194490,6 +194651,199 @@ class AppendPlaneIntersectionStrokeHandler extends _NewtonRtoRStrokeHandler__WEB
|
|
|
194490
194651
|
}
|
|
194491
194652
|
|
|
194492
194653
|
|
|
194654
|
+
/***/ }),
|
|
194655
|
+
|
|
194656
|
+
/***/ "../../core/geometry/lib/esm/curve/internalContexts/ChainCollectorContext.js":
|
|
194657
|
+
/*!***********************************************************************************!*\
|
|
194658
|
+
!*** ../../core/geometry/lib/esm/curve/internalContexts/ChainCollectorContext.js ***!
|
|
194659
|
+
\***********************************************************************************/
|
|
194660
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
194661
|
+
|
|
194662
|
+
"use strict";
|
|
194663
|
+
__webpack_require__.r(__webpack_exports__);
|
|
194664
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
194665
|
+
/* harmony export */ ChainCollectorContext: () => (/* binding */ ChainCollectorContext)
|
|
194666
|
+
/* harmony export */ });
|
|
194667
|
+
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
194668
|
+
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
194669
|
+
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
194670
|
+
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
194671
|
+
/*---------------------------------------------------------------------------------------------
|
|
194672
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
194673
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
194674
|
+
*--------------------------------------------------------------------------------------------*/
|
|
194675
|
+
|
|
194676
|
+
|
|
194677
|
+
|
|
194678
|
+
|
|
194679
|
+
/**
|
|
194680
|
+
* Manage a growing array of arrays of curve primitives that are to be joined "head to tail" in paths.
|
|
194681
|
+
* * The caller makes a sequence of calls to announce individual primitives.
|
|
194682
|
+
* * The collector has 2 use cases in mind, controlled by `searchAllPaths` flag on `chainCollectorContext.announceCurvePrimitive`
|
|
194683
|
+
* * (a) "simple chains" -- the caller has the curve primitives in order and just needs to have them monitored for coordinate breaks that indicate transition to a new chain.
|
|
194684
|
+
* * The collector needs to watch for connection to the most recent path but not search for prior paths to join to instead.
|
|
194685
|
+
* * (b) "mixed" primitives -- primitive order is NOT significant for chain assembly.
|
|
194686
|
+
* * The collector needs to search all prior paths at both start and end, and consider connection to both the start and end of each new primitive.
|
|
194687
|
+
* * The per-curve announcement is
|
|
194688
|
+
* * chainCollector.announceCurvePrimitive (curve, searchAllPaths).
|
|
194689
|
+
* * When all curves have been announced, the call to grab the paths option
|
|
194690
|
+
* * formLoopsIfClosed
|
|
194691
|
+
* * If true, convert closed paths to `Loop`, open paths to `Path`
|
|
194692
|
+
* * If false, convert all paths (open or not) to `Path`
|
|
194693
|
+
* * Usage pattern is
|
|
194694
|
+
* * initialization: `context = new ChainCollectorContext (makeClones: boolean)`
|
|
194695
|
+
* * many times: ` context.announceCurvePrimitive (primitive, searchAllPaths)`
|
|
194696
|
+
* * end: ` result = context.grabResults (formLoopsIfClosed)`
|
|
194697
|
+
* @internal
|
|
194698
|
+
*/
|
|
194699
|
+
class ChainCollectorContext {
|
|
194700
|
+
/**
|
|
194701
|
+
* Push a new chain with an optional first primitive.
|
|
194702
|
+
*/
|
|
194703
|
+
pushNewChain(primitive) {
|
|
194704
|
+
const chain = [];
|
|
194705
|
+
if (primitive)
|
|
194706
|
+
chain.push(primitive);
|
|
194707
|
+
this._chains.push(chain);
|
|
194708
|
+
}
|
|
194709
|
+
findOrCreateTailChain() {
|
|
194710
|
+
if (this._chains.length === 0)
|
|
194711
|
+
this.pushNewChain();
|
|
194712
|
+
return this._chains[this._chains.length - 1];
|
|
194713
|
+
}
|
|
194714
|
+
findAnyChainToConnect(xyz) {
|
|
194715
|
+
for (let chainIndexA = 0; chainIndexA < this._chains.length; chainIndexA++) {
|
|
194716
|
+
const path = this._chains[chainIndexA];
|
|
194717
|
+
this._xyzWork1 = path[path.length - 1].endPoint(this._xyzWork1);
|
|
194718
|
+
if (this._xyzWork1.isAlmostEqual(xyz))
|
|
194719
|
+
return { chainIndex: chainIndexA, atEnd: true };
|
|
194720
|
+
this._xyzWork1 = path[0].startPoint(this._xyzWork1);
|
|
194721
|
+
if (this._xyzWork1.isAlmostEqual(xyz))
|
|
194722
|
+
return { chainIndex: chainIndexA, atEnd: false };
|
|
194723
|
+
}
|
|
194724
|
+
return undefined;
|
|
194725
|
+
}
|
|
194726
|
+
/** Initialize with an empty array of chains.
|
|
194727
|
+
* @param makeClones if true, all CurvePrimitives sent to `announceCurvePrimitive` is immediately cloned. If false, the reference to the original curve is maintained.
|
|
194728
|
+
*/
|
|
194729
|
+
constructor(makeClones) {
|
|
194730
|
+
this._chains = [];
|
|
194731
|
+
this._makeClones = makeClones;
|
|
194732
|
+
}
|
|
194733
|
+
/** Announce a curve primitive
|
|
194734
|
+
* * searchAllChains controls the extent of search for connecting points.
|
|
194735
|
+
* * false ==> only consider connection to most recent chain.
|
|
194736
|
+
* * true ==> search for any connection, reversing direction as needed.
|
|
194737
|
+
* * Otherwise start a new chain.
|
|
194738
|
+
*/
|
|
194739
|
+
announceCurvePrimitive(candidate, searchAllChains = false) {
|
|
194740
|
+
if (candidate) {
|
|
194741
|
+
if (this._makeClones) {
|
|
194742
|
+
const candidate1 = candidate.clone();
|
|
194743
|
+
if (!candidate1 || !(candidate1 instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive))
|
|
194744
|
+
return;
|
|
194745
|
+
this.transferMarkup(candidate, candidate1);
|
|
194746
|
+
candidate = candidate1;
|
|
194747
|
+
}
|
|
194748
|
+
if (!searchAllChains) {
|
|
194749
|
+
const activeChain = this.findOrCreateTailChain();
|
|
194750
|
+
if (activeChain.length === 0 || !ChainCollectorContext.needBreakBetweenPrimitives(activeChain[activeChain.length - 1], candidate))
|
|
194751
|
+
activeChain.push(candidate);
|
|
194752
|
+
else
|
|
194753
|
+
this.pushNewChain(candidate);
|
|
194754
|
+
}
|
|
194755
|
+
else {
|
|
194756
|
+
this._xyzWork0 = candidate.startPoint(this._xyzWork0);
|
|
194757
|
+
let connect = this.findAnyChainToConnect(this._xyzWork0);
|
|
194758
|
+
if (connect) {
|
|
194759
|
+
if (connect.atEnd) {
|
|
194760
|
+
this._chains[connect.chainIndex].push(candidate);
|
|
194761
|
+
}
|
|
194762
|
+
else {
|
|
194763
|
+
candidate.reverseInPlace();
|
|
194764
|
+
this._chains[connect.chainIndex].splice(0, 0, candidate);
|
|
194765
|
+
}
|
|
194766
|
+
}
|
|
194767
|
+
else {
|
|
194768
|
+
this._xyzWork0 = candidate.endPoint(this._xyzWork0);
|
|
194769
|
+
connect = this.findAnyChainToConnect(this._xyzWork0);
|
|
194770
|
+
if (connect) { // START of new primitive ..
|
|
194771
|
+
if (connect.atEnd) {
|
|
194772
|
+
candidate.reverseInPlace();
|
|
194773
|
+
this._chains[connect.chainIndex].push(candidate);
|
|
194774
|
+
}
|
|
194775
|
+
else {
|
|
194776
|
+
this._chains[connect.chainIndex].splice(0, 0, candidate);
|
|
194777
|
+
}
|
|
194778
|
+
}
|
|
194779
|
+
else {
|
|
194780
|
+
this._chains.push([candidate]);
|
|
194781
|
+
}
|
|
194782
|
+
}
|
|
194783
|
+
}
|
|
194784
|
+
}
|
|
194785
|
+
}
|
|
194786
|
+
/** Transfer markup (e.g. startCut, endCut) from source to destination */
|
|
194787
|
+
transferMarkup(source, dest) {
|
|
194788
|
+
if (source && dest) {
|
|
194789
|
+
dest.startCut = source.startCut;
|
|
194790
|
+
dest.endCut = source.endCut;
|
|
194791
|
+
}
|
|
194792
|
+
}
|
|
194793
|
+
/** turn an array of curve primitives into the simplest possible strongly typed curve structure.
|
|
194794
|
+
* * The input array is assumed to be connected appropriately to act as the curves of a Path.
|
|
194795
|
+
* * When a path is created the curves array is CAPTURED.
|
|
194796
|
+
*/
|
|
194797
|
+
promoteArrayToCurves(curves, makeLoopIfClosed) {
|
|
194798
|
+
if (curves.length === 0)
|
|
194799
|
+
return undefined;
|
|
194800
|
+
if (makeLoopIfClosed) {
|
|
194801
|
+
ChainCollectorContext._staticPointA = curves[0].startPoint(ChainCollectorContext._staticPointA);
|
|
194802
|
+
ChainCollectorContext._staticPointB = curves[curves.length - 1].endPoint(ChainCollectorContext._staticPointB);
|
|
194803
|
+
if (ChainCollectorContext._staticPointA.isAlmostEqual(ChainCollectorContext._staticPointB))
|
|
194804
|
+
return _Loop__WEBPACK_IMPORTED_MODULE_1__.Loop.createArray(curves);
|
|
194805
|
+
}
|
|
194806
|
+
if (curves.length === 1)
|
|
194807
|
+
return curves[0];
|
|
194808
|
+
return _Path__WEBPACK_IMPORTED_MODULE_2__.Path.createArray(curves);
|
|
194809
|
+
}
|
|
194810
|
+
/** Return the collected results, structured as the simplest possible type. */
|
|
194811
|
+
grabResult(makeLoopIfClosed = false) {
|
|
194812
|
+
const chains = this._chains;
|
|
194813
|
+
if (chains.length === 0)
|
|
194814
|
+
return undefined;
|
|
194815
|
+
if (chains.length === 1)
|
|
194816
|
+
return this.promoteArrayToCurves(chains[0], makeLoopIfClosed);
|
|
194817
|
+
const bag = _CurveCollection__WEBPACK_IMPORTED_MODULE_3__.BagOfCurves.create();
|
|
194818
|
+
for (const chain of chains) {
|
|
194819
|
+
const q = this.promoteArrayToCurves(chain, makeLoopIfClosed);
|
|
194820
|
+
bag.tryAddChild(q);
|
|
194821
|
+
}
|
|
194822
|
+
return bag;
|
|
194823
|
+
}
|
|
194824
|
+
/** test if there is a break between primitiveA and primitiveB, due to any condition such as
|
|
194825
|
+
* * primitiveA.endCut
|
|
194826
|
+
* * primitiveB.startCut
|
|
194827
|
+
* * physical gap between primitives.
|
|
194828
|
+
*/
|
|
194829
|
+
static needBreakBetweenPrimitives(primitiveA, primitiveB, isXYOnly = false) {
|
|
194830
|
+
if (primitiveA === undefined)
|
|
194831
|
+
return true;
|
|
194832
|
+
if (primitiveB === undefined)
|
|
194833
|
+
return true;
|
|
194834
|
+
if (primitiveA.endCut !== undefined)
|
|
194835
|
+
return true;
|
|
194836
|
+
if (primitiveB.startCut !== undefined)
|
|
194837
|
+
return true;
|
|
194838
|
+
ChainCollectorContext._staticPointA = primitiveA.endPoint(ChainCollectorContext._staticPointA);
|
|
194839
|
+
ChainCollectorContext._staticPointB = primitiveB.startPoint(ChainCollectorContext._staticPointB);
|
|
194840
|
+
return isXYOnly
|
|
194841
|
+
? !ChainCollectorContext._staticPointA.isAlmostEqualXY(ChainCollectorContext._staticPointB)
|
|
194842
|
+
: !ChainCollectorContext._staticPointA.isAlmostEqual(ChainCollectorContext._staticPointB);
|
|
194843
|
+
}
|
|
194844
|
+
}
|
|
194845
|
+
|
|
194846
|
+
|
|
194493
194847
|
/***/ }),
|
|
194494
194848
|
|
|
194495
194849
|
/***/ "../../core/geometry/lib/esm/curve/internalContexts/CloneCurvesContext.js":
|
|
@@ -195090,22 +195444,19 @@ class GapSearchContext extends _CurveProcessor__WEBPACK_IMPORTED_MODULE_0__.Recu
|
|
|
195090
195444
|
"use strict";
|
|
195091
195445
|
__webpack_require__.r(__webpack_exports__);
|
|
195092
195446
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
195093
|
-
/* harmony export */ MultiChainCollector: () => (/* binding */ MultiChainCollector)
|
|
195094
|
-
/* harmony export */ OffsetHelpers: () => (/* binding */ OffsetHelpers)
|
|
195447
|
+
/* harmony export */ MultiChainCollector: () => (/* binding */ MultiChainCollector)
|
|
195095
195448
|
/* harmony export */ });
|
|
195096
|
-
/* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
195097
|
-
/* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
195098
|
-
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
195099
|
-
/* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
|
|
195100
|
-
/* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
195101
|
-
/* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
195102
|
-
/* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
195103
|
-
/* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
195104
|
-
/* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
195105
195449
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
195106
|
-
/* harmony import */ var
|
|
195107
|
-
/* harmony import */ var
|
|
195108
|
-
/* harmony import */ var
|
|
195450
|
+
/* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
|
|
195451
|
+
/* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
195452
|
+
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
195453
|
+
/* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
195454
|
+
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
195455
|
+
/* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
195456
|
+
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
195457
|
+
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
195458
|
+
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
195459
|
+
/* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
195109
195460
|
/*---------------------------------------------------------------------------------------------
|
|
195110
195461
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
195111
195462
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -195124,38 +195475,36 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
195124
195475
|
|
|
195125
195476
|
|
|
195126
195477
|
|
|
195127
|
-
|
|
195128
|
-
|
|
195129
195478
|
/**
|
|
195130
195479
|
* Manage a growing array of arrays of curve primitives that are to be joined "head to tail" in paths.
|
|
195131
195480
|
* * The caller makes a sequence of calls to announce individual primitives.
|
|
195132
|
-
* * This collector (unlike the simpler
|
|
195133
|
-
*
|
|
195134
|
-
* *
|
|
195481
|
+
* * This collector (unlike the simpler [[ChainCollectorContext]]) expects to have inputs arriving in random order, leaving multiple open chains in play at any time.
|
|
195482
|
+
* * When all curves have been announced, the call to `grabResults` restructures the various active chains into Paths (and optionally, Loops).
|
|
195483
|
+
* * Chain formation is dependent upon input fragment order, as a greedy algorithm is employed.
|
|
195135
195484
|
* * Usage pattern is
|
|
195136
|
-
* * initialization: `context = new
|
|
195137
|
-
* * many times
|
|
195138
|
-
* * `
|
|
195139
|
-
* * `
|
|
195140
|
-
* * end:
|
|
195485
|
+
* * initialization: `context = new MultiChainCollector(gapTol, planeTol)`
|
|
195486
|
+
* * many times:
|
|
195487
|
+
* * `context.captureCurve(anyCurve)`
|
|
195488
|
+
* * `context.captureCurvePrimitive(primitive)`
|
|
195489
|
+
* * end: `result = context.grabResult(makeLoopIfClosed)`
|
|
195141
195490
|
* @internal
|
|
195142
195491
|
*/
|
|
195143
195492
|
class MultiChainCollector {
|
|
195144
195493
|
/** Initialize with an empty array of chains.
|
|
195145
|
-
* @param
|
|
195146
|
-
* @param planeTolerance tolerance for considering a
|
|
195494
|
+
* @param gapTolerance tolerance for calling endpoints identical
|
|
195495
|
+
* @param planeTolerance tolerance for considering a closed chain to be planar. If undefined, only create Path. If defined, create Loops for closed chains within tolerance of a plane.
|
|
195147
195496
|
*/
|
|
195148
|
-
constructor(
|
|
195497
|
+
constructor(gapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance, planeTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
|
|
195149
195498
|
this._chains = [];
|
|
195150
|
-
this.
|
|
195151
|
-
this.
|
|
195152
|
-
this.
|
|
195499
|
+
this._gapTolerance = gapTolerance;
|
|
195500
|
+
this._snapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance;
|
|
195501
|
+
this._planeTolerance = planeTolerance;
|
|
195153
195502
|
}
|
|
195154
195503
|
/**
|
|
195155
195504
|
* Find a chain (with index _other than_ exceptChainIndex) that starts or ends at xyz
|
|
195156
|
-
* @param xyz
|
|
195157
|
-
* @param tolerance
|
|
195158
|
-
* @param exceptChainIndex index of chain to ignore.
|
|
195505
|
+
* @param xyz endpoint to check
|
|
195506
|
+
* @param tolerance absolute distance tolerance for equating endpoints
|
|
195507
|
+
* @param exceptChainIndex index of chain to ignore. Send -1 to consider all chains.
|
|
195159
195508
|
*/
|
|
195160
195509
|
findAnyChainToConnect(xyz, tolerance, exceptChainIndex = -1) {
|
|
195161
195510
|
for (let chainIndexA = 0; chainIndexA < this._chains.length; chainIndexA++) {
|
|
@@ -195175,31 +195524,91 @@ class MultiChainCollector {
|
|
|
195175
195524
|
* Insert a single curve primitive into the active chains.
|
|
195176
195525
|
* * The primitive is captured (not cloned)
|
|
195177
195526
|
* * The primitive may be reversed in place
|
|
195178
|
-
* @param candidate
|
|
195527
|
+
* @param candidate curve to add to the context
|
|
195179
195528
|
*/
|
|
195180
195529
|
captureCurvePrimitive(candidate) {
|
|
195181
|
-
if (this.
|
|
195182
|
-
|
|
195183
|
-
|
|
195530
|
+
if (this._snapTolerance < this._gapTolerance) {
|
|
195531
|
+
if (this.attachPrimitiveToAnyChain(candidate, this._snapTolerance))
|
|
195532
|
+
return;
|
|
195533
|
+
}
|
|
195534
|
+
if (this.attachPrimitiveToAnyChain(candidate, this._gapTolerance))
|
|
195184
195535
|
return;
|
|
195185
195536
|
this._chains.push([candidate]);
|
|
195186
|
-
return;
|
|
195187
195537
|
}
|
|
195188
195538
|
/**
|
|
195189
195539
|
* Insert any curve into the collection.
|
|
195190
195540
|
* * This recurses into Path, Loop, BagOfCurves etc
|
|
195191
|
-
* *
|
|
195192
|
-
* @param candidate
|
|
195541
|
+
* * All primitives are captured, and may be reversed in place.
|
|
195542
|
+
* @param candidate curve to add to the context
|
|
195193
195543
|
*/
|
|
195194
195544
|
captureCurve(candidate) {
|
|
195195
|
-
if (candidate instanceof
|
|
195545
|
+
if (candidate instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive)
|
|
195196
195546
|
this.captureCurvePrimitive(candidate);
|
|
195197
|
-
else if (candidate instanceof
|
|
195547
|
+
else if (candidate instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_2__.CurveCollection && candidate.children !== undefined) {
|
|
195198
195548
|
for (const c of candidate.children) {
|
|
195199
195549
|
this.captureCurve(c);
|
|
195200
195550
|
}
|
|
195201
195551
|
}
|
|
195202
195552
|
}
|
|
195553
|
+
/** If allowed by the geometry type, move an endpoint. */
|
|
195554
|
+
static simpleEndPointMove(curve, atEnd, to) {
|
|
195555
|
+
if (curve instanceof (_LineSegment3d__WEBPACK_IMPORTED_MODULE_3__.LineSegment3d)) {
|
|
195556
|
+
if (atEnd) {
|
|
195557
|
+
curve.point1Ref.setFrom(to);
|
|
195558
|
+
}
|
|
195559
|
+
else {
|
|
195560
|
+
curve.point0Ref.setFrom(to);
|
|
195561
|
+
}
|
|
195562
|
+
return true;
|
|
195563
|
+
}
|
|
195564
|
+
else if (curve instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_4__.LineString3d && curve.numPoints() > 0) {
|
|
195565
|
+
const i = atEnd ? curve.numPoints() - 1 : 0;
|
|
195566
|
+
curve.packedPoints.setAtCheckedPointIndex(i, to);
|
|
195567
|
+
return true;
|
|
195568
|
+
}
|
|
195569
|
+
return false;
|
|
195570
|
+
}
|
|
195571
|
+
/**
|
|
195572
|
+
* Try to move the end of curve0 and/or the start of curve1 to a common point.
|
|
195573
|
+
* * All z-coordinates are ignored.
|
|
195574
|
+
* @param curve0 first curve, assumed to end close to the start of curve1
|
|
195575
|
+
* @param curve1 second curve, assumed to start close to the end of curve0
|
|
195576
|
+
* @param gapTolerance max distance to move a curve start/end point
|
|
195577
|
+
* @returns whether curve start/end point(s) moved
|
|
195578
|
+
*/
|
|
195579
|
+
static moveHeadOrTail(curve0, curve1, gapTolerance) {
|
|
195580
|
+
const xyz0 = curve0.endPoint();
|
|
195581
|
+
const xyz1 = curve1.startPoint();
|
|
195582
|
+
const minShift = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance * 0.001;
|
|
195583
|
+
const d01 = xyz0.distanceXY(xyz1);
|
|
195584
|
+
if (d01 < minShift)
|
|
195585
|
+
return false;
|
|
195586
|
+
// try lines and linestrings
|
|
195587
|
+
if (d01 < gapTolerance) {
|
|
195588
|
+
if (this.simpleEndPointMove(curve1, false, xyz0) || this.simpleEndPointMove(curve0, true, xyz1))
|
|
195589
|
+
return true;
|
|
195590
|
+
}
|
|
195591
|
+
// try other primitive types
|
|
195592
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_5__.CurveCurve.intersectionXYPairs(curve0, true, curve1, true);
|
|
195593
|
+
const shiftFactor = 5.0;
|
|
195594
|
+
for (const pair of intersections) {
|
|
195595
|
+
const detail0 = pair.detailA;
|
|
195596
|
+
const detail1 = pair.detailB;
|
|
195597
|
+
const distance0 = detail0.point.distanceXY(xyz0);
|
|
195598
|
+
const distance1 = detail1.point.distanceXY(xyz1);
|
|
195599
|
+
if (distance0 < shiftFactor * gapTolerance && distance1 < shiftFactor * gapTolerance) {
|
|
195600
|
+
if (curve0 instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d && curve1 instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
|
|
195601
|
+
const radians0End = curve0.sweep.fractionToRadians(detail0.fraction);
|
|
195602
|
+
curve0.sweep.setStartEndRadians(curve0.sweep.startRadians, radians0End);
|
|
195603
|
+
const radians1Start = curve1.sweep.fractionToRadians(detail1.fraction);
|
|
195604
|
+
curve1.sweep.setStartEndRadians(radians1Start, curve1.sweep.endRadians);
|
|
195605
|
+
return true;
|
|
195606
|
+
}
|
|
195607
|
+
// TODO: other combinations of types
|
|
195608
|
+
}
|
|
195609
|
+
}
|
|
195610
|
+
return false;
|
|
195611
|
+
}
|
|
195203
195612
|
/** Announce a curve primitive
|
|
195204
195613
|
* * If a "nearby" connection is possible, insert the candidate in the chain and force endpoint match.
|
|
195205
195614
|
* * Otherwise start a new chain.
|
|
@@ -195213,7 +195622,7 @@ class MultiChainCollector {
|
|
|
195213
195622
|
const chain = this._chains[connect.chainIndex];
|
|
195214
195623
|
const index0 = chain.length - 1;
|
|
195215
195624
|
this._chains[connect.chainIndex].push(candidate);
|
|
195216
|
-
|
|
195625
|
+
MultiChainCollector.moveHeadOrTail(chain[index0], chain[index0 + 1], this._gapTolerance);
|
|
195217
195626
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
195218
195627
|
return true;
|
|
195219
195628
|
}
|
|
@@ -195221,7 +195630,7 @@ class MultiChainCollector {
|
|
|
195221
195630
|
candidate.reverseInPlace();
|
|
195222
195631
|
const chain = this._chains[connect.chainIndex];
|
|
195223
195632
|
chain.splice(0, 0, candidate);
|
|
195224
|
-
|
|
195633
|
+
MultiChainCollector.moveHeadOrTail(chain[0], chain[1], this._gapTolerance);
|
|
195225
195634
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
195226
195635
|
return true;
|
|
195227
195636
|
}
|
|
@@ -195229,20 +195638,20 @@ class MultiChainCollector {
|
|
|
195229
195638
|
else {
|
|
195230
195639
|
this._xyzWork0 = candidate.endPoint(this._xyzWork0);
|
|
195231
195640
|
connect = this.findAnyChainToConnect(this._xyzWork0, tolerance);
|
|
195232
|
-
if (connect) {
|
|
195641
|
+
if (connect) {
|
|
195233
195642
|
if (connect.atEnd) {
|
|
195234
195643
|
candidate.reverseInPlace();
|
|
195235
195644
|
const chain = this._chains[connect.chainIndex];
|
|
195236
195645
|
const index0 = chain.length - 1;
|
|
195237
195646
|
this._chains[connect.chainIndex].push(candidate);
|
|
195238
|
-
|
|
195647
|
+
MultiChainCollector.moveHeadOrTail(chain[index0], chain[index0 + 1], this._gapTolerance);
|
|
195239
195648
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
195240
195649
|
return true;
|
|
195241
195650
|
}
|
|
195242
195651
|
else {
|
|
195243
195652
|
const chain = this._chains[connect.chainIndex];
|
|
195244
195653
|
chain.splice(0, 0, candidate);
|
|
195245
|
-
|
|
195654
|
+
MultiChainCollector.moveHeadOrTail(chain[0], chain[1], this._gapTolerance);
|
|
195246
195655
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
195247
195656
|
return true;
|
|
195248
195657
|
}
|
|
@@ -195252,10 +195661,13 @@ class MultiChainCollector {
|
|
|
195252
195661
|
return false;
|
|
195253
195662
|
}
|
|
195254
195663
|
/**
|
|
195255
|
-
*
|
|
195256
|
-
* *
|
|
195257
|
-
* *
|
|
195258
|
-
* *
|
|
195664
|
+
* Merge two entries in the chain array.
|
|
195665
|
+
* * Move each primitive from chainB to the end of chainA.
|
|
195666
|
+
* * Clear chainB.
|
|
195667
|
+
* * Move the final chain to chainB index.
|
|
195668
|
+
* * Decrement the array length.
|
|
195669
|
+
* @param chainIndexA index of chainA
|
|
195670
|
+
* @param chainIndexB index of chainB
|
|
195259
195671
|
*/
|
|
195260
195672
|
mergeChainsForwardForward(chainIndexA, chainIndexB) {
|
|
195261
195673
|
const chainA = this._chains[chainIndexA];
|
|
@@ -195263,30 +195675,26 @@ class MultiChainCollector {
|
|
|
195263
195675
|
for (const p of chainB) {
|
|
195264
195676
|
chainA.push(p);
|
|
195265
195677
|
}
|
|
195266
|
-
// chainIndexB is unused
|
|
195267
|
-
chainB.length = 0;
|
|
195678
|
+
chainB.length = 0; // chainIndexB is unused
|
|
195268
195679
|
const lastChainIndex = this._chains.length - 1;
|
|
195269
|
-
if (chainIndexB !== lastChainIndex)
|
|
195680
|
+
if (chainIndexB !== lastChainIndex)
|
|
195270
195681
|
this._chains[chainIndexB] = this._chains[lastChainIndex];
|
|
195271
|
-
|
|
195272
|
-
}
|
|
195273
|
-
else {
|
|
195274
|
-
this._chains.pop();
|
|
195275
|
-
}
|
|
195682
|
+
this._chains.pop();
|
|
195276
195683
|
}
|
|
195684
|
+
/** Reverse the curve chain in place. */
|
|
195277
195685
|
reverseChain(chainIndex) {
|
|
195278
195686
|
const chain = this._chains[chainIndex];
|
|
195279
195687
|
chain.reverse();
|
|
195280
195688
|
for (const p of chain)
|
|
195281
195689
|
p.reverseInPlace();
|
|
195282
195690
|
}
|
|
195283
|
-
|
|
195691
|
+
/** See if the head or tail of chainIndex matches any existing chain. If so, merge the two chains. */
|
|
195284
195692
|
searchAndMergeChainIndex(chainIndex, tolerance) {
|
|
195285
195693
|
// ASSUME valid index of non-empty chain
|
|
195286
195694
|
const chain = this._chains[chainIndex];
|
|
195287
195695
|
const lastIndexInChain = chain.length - 1;
|
|
195288
195696
|
this._xyzWork0 = chain[0].startPoint(this._xyzWork0);
|
|
195289
|
-
//
|
|
195697
|
+
// try start with any other chain
|
|
195290
195698
|
let connect = this.findAnyChainToConnect(this._xyzWork0, tolerance, chainIndex);
|
|
195291
195699
|
if (connect) {
|
|
195292
195700
|
if (!connect.atEnd)
|
|
@@ -195304,9 +195712,11 @@ class MultiChainCollector {
|
|
|
195304
195712
|
return;
|
|
195305
195713
|
}
|
|
195306
195714
|
}
|
|
195307
|
-
/**
|
|
195308
|
-
*
|
|
195309
|
-
*
|
|
195715
|
+
/**
|
|
195716
|
+
* Convert an array of curve primitives into the simplest possible strongly typed curve structure.
|
|
195717
|
+
* @param curves input array, assembled correctly into a single contiguous path, captured by returned object
|
|
195718
|
+
* @param makeLoopIfClosed whether to return a Loop from physically closed curves array, otherwise Path
|
|
195719
|
+
* @return Loop or Path if multiple curves; the primitive if only one curve; undefined if no curves
|
|
195310
195720
|
*/
|
|
195311
195721
|
promoteArrayToCurves(curves, makeLoopIfClosed) {
|
|
195312
195722
|
if (curves.length === 0)
|
|
@@ -195316,39 +195726,37 @@ class MultiChainCollector {
|
|
|
195316
195726
|
const primitiveN = curves[curves.length - 1];
|
|
195317
195727
|
MultiChainCollector._staticPointA = primitive0.startPoint(MultiChainCollector._staticPointA);
|
|
195318
195728
|
MultiChainCollector._staticPointB = primitiveN.endPoint(MultiChainCollector._staticPointB);
|
|
195319
|
-
|
|
195320
|
-
|
|
195321
|
-
// adjust for closure (and get the corrected coordinates)
|
|
195322
|
-
OffsetHelpers.moveHeadOrTail(primitiveN, primitive0, this._endPointShiftTolerance);
|
|
195729
|
+
if (MultiChainCollector.moveHeadOrTail(primitiveN, primitive0, this._gapTolerance)) {
|
|
195730
|
+
// get the corrected coordinates
|
|
195323
195731
|
MultiChainCollector._staticPointA = primitive0.startPoint(MultiChainCollector._staticPointA);
|
|
195324
195732
|
MultiChainCollector._staticPointB = primitiveN.endPoint(MultiChainCollector._staticPointB);
|
|
195325
195733
|
}
|
|
195326
|
-
if (MultiChainCollector._staticPointA.isAlmostEqual(MultiChainCollector._staticPointB)) {
|
|
195327
|
-
const localToWorld =
|
|
195734
|
+
if (MultiChainCollector._staticPointA.isAlmostEqual(MultiChainCollector._staticPointB, this._gapTolerance)) {
|
|
195735
|
+
const localToWorld = _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_7__.FrameBuilder.createRightHandedLocalToWorld(curves);
|
|
195328
195736
|
if (localToWorld) {
|
|
195329
195737
|
const worldToLocal = localToWorld.inverse();
|
|
195330
195738
|
if (worldToLocal) {
|
|
195331
|
-
const range =
|
|
195332
|
-
if (this.
|
|
195333
|
-
return
|
|
195739
|
+
const range = _RegionOps__WEBPACK_IMPORTED_MODULE_8__.RegionOps.curveArrayRange(curves, worldToLocal);
|
|
195740
|
+
if (this._planeTolerance !== undefined && range.zLength() <= this._planeTolerance) {
|
|
195741
|
+
return _Loop__WEBPACK_IMPORTED_MODULE_9__.Loop.createArray(curves);
|
|
195334
195742
|
}
|
|
195335
195743
|
}
|
|
195336
195744
|
}
|
|
195337
|
-
return
|
|
195745
|
+
return _Path__WEBPACK_IMPORTED_MODULE_10__.Path.createArray(curves);
|
|
195338
195746
|
}
|
|
195339
195747
|
}
|
|
195340
195748
|
if (curves.length === 1)
|
|
195341
195749
|
return curves[0];
|
|
195342
|
-
return
|
|
195750
|
+
return _Path__WEBPACK_IMPORTED_MODULE_10__.Path.createArray(curves);
|
|
195343
195751
|
}
|
|
195344
|
-
|
|
195345
|
-
|
|
195752
|
+
/** Stroke the curve chain to a line string, de-duplicate the points. */
|
|
195753
|
+
chainToLineString3d(chain, options) {
|
|
195754
|
+
if (chain.length === 0)
|
|
195346
195755
|
return undefined;
|
|
195347
|
-
const linestring =
|
|
195348
|
-
for (const curve of
|
|
195349
|
-
curve.emitStrokes(linestring);
|
|
195350
|
-
|
|
195351
|
-
}
|
|
195756
|
+
const linestring = _LineString3d__WEBPACK_IMPORTED_MODULE_4__.LineString3d.create();
|
|
195757
|
+
for (const curve of chain)
|
|
195758
|
+
curve.emitStrokes(linestring, options);
|
|
195759
|
+
linestring.removeDuplicatePoints(this._gapTolerance);
|
|
195352
195760
|
return linestring;
|
|
195353
195761
|
}
|
|
195354
195762
|
/** Return the collected results, structured as the simplest possible type. */
|
|
@@ -195358,7 +195766,7 @@ class MultiChainCollector {
|
|
|
195358
195766
|
return undefined;
|
|
195359
195767
|
if (chains.length === 1)
|
|
195360
195768
|
return this.promoteArrayToCurves(chains[0], makeLoopIfClosed);
|
|
195361
|
-
const bag =
|
|
195769
|
+
const bag = _CurveCollection__WEBPACK_IMPORTED_MODULE_2__.BagOfCurves.create();
|
|
195362
195770
|
for (const chain of chains) {
|
|
195363
195771
|
const q = this.promoteArrayToCurves(chain, makeLoopIfClosed);
|
|
195364
195772
|
bag.tryAddChild(q);
|
|
@@ -195366,171 +195774,22 @@ class MultiChainCollector {
|
|
|
195366
195774
|
return bag;
|
|
195367
195775
|
}
|
|
195368
195776
|
/** Return chains as individual calls to announceChain. */
|
|
195369
|
-
announceChainsAsLineString3d(announceChain) {
|
|
195777
|
+
announceChainsAsLineString3d(announceChain, options) {
|
|
195370
195778
|
const chains = this._chains;
|
|
195371
195779
|
if (chains.length === 1) {
|
|
195372
|
-
const ls = this.chainToLineString3d(chains[0]);
|
|
195780
|
+
const ls = this.chainToLineString3d(chains[0], options);
|
|
195373
195781
|
if (ls)
|
|
195374
195782
|
announceChain(ls);
|
|
195375
195783
|
}
|
|
195376
195784
|
else if (chains.length > 1) {
|
|
195377
195785
|
for (const chain of chains) {
|
|
195378
|
-
const ls = this.chainToLineString3d(chain);
|
|
195786
|
+
const ls = this.chainToLineString3d(chain, options);
|
|
195379
195787
|
if (ls)
|
|
195380
195788
|
announceChain(ls);
|
|
195381
195789
|
}
|
|
195382
195790
|
}
|
|
195383
195791
|
}
|
|
195384
195792
|
}
|
|
195385
|
-
/**
|
|
195386
|
-
* Static methods to assist offset sequences.
|
|
195387
|
-
* @internal
|
|
195388
|
-
*/
|
|
195389
|
-
class OffsetHelpers {
|
|
195390
|
-
// recursively sum lengths, allowing CurvePrimitive, CurveCollection, or array of such at any level.
|
|
195391
|
-
static sumLengths(data) {
|
|
195392
|
-
let mySum = 0;
|
|
195393
|
-
if (data instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive) {
|
|
195394
|
-
mySum += data.curveLength();
|
|
195395
|
-
}
|
|
195396
|
-
else if (data instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__.CurveCollection) {
|
|
195397
|
-
mySum += data.sumLengths();
|
|
195398
|
-
}
|
|
195399
|
-
else if (Array.isArray(data)) {
|
|
195400
|
-
for (const data1 of data)
|
|
195401
|
-
mySum += this.sumLengths(data1);
|
|
195402
|
-
}
|
|
195403
|
-
return mySum;
|
|
195404
|
-
}
|
|
195405
|
-
// recursively sum lengths, allowing CurvePrimitive, CurveCollection, or array of such at any level.
|
|
195406
|
-
static extendRange(range, data) {
|
|
195407
|
-
if (data instanceof _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_8__.GeometryQuery) {
|
|
195408
|
-
data.extendRange(range);
|
|
195409
|
-
}
|
|
195410
|
-
else if (Array.isArray(data)) {
|
|
195411
|
-
for (const data1 of data)
|
|
195412
|
-
this.extendRange(range, data1);
|
|
195413
|
-
}
|
|
195414
|
-
return range;
|
|
195415
|
-
}
|
|
195416
|
-
// construct (separately) the offsets of each entry of data (Path, Loop, BagOfCurve, or Array of those)
|
|
195417
|
-
// push all offset geometry into the result array
|
|
195418
|
-
// return summed length
|
|
195419
|
-
static appendOffsets(data, offset, result) {
|
|
195420
|
-
let summedLengths = 0;
|
|
195421
|
-
if (data instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive) {
|
|
195422
|
-
const resultA = _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_9__.CurveChainWireOffsetContext.constructCurveXYOffset(_curve_Path__WEBPACK_IMPORTED_MODULE_6__.Path.create(data), offset);
|
|
195423
|
-
if (resultA) {
|
|
195424
|
-
summedLengths += this.sumLengths(resultA);
|
|
195425
|
-
result.push(resultA);
|
|
195426
|
-
}
|
|
195427
|
-
}
|
|
195428
|
-
else if (data instanceof _curve_Loop__WEBPACK_IMPORTED_MODULE_5__.Loop || data instanceof _curve_Path__WEBPACK_IMPORTED_MODULE_6__.Path) {
|
|
195429
|
-
const resultA = _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_9__.CurveChainWireOffsetContext.constructCurveXYOffset(data, offset);
|
|
195430
|
-
if (resultA) {
|
|
195431
|
-
summedLengths += this.sumLengths(resultA);
|
|
195432
|
-
result.push(resultA);
|
|
195433
|
-
}
|
|
195434
|
-
}
|
|
195435
|
-
else if (data instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__.BagOfCurves) {
|
|
195436
|
-
for (const q of data.children)
|
|
195437
|
-
summedLengths += this.appendOffsets(q, offset, result);
|
|
195438
|
-
}
|
|
195439
|
-
else if (Array.isArray(data)) {
|
|
195440
|
-
for (const q of data)
|
|
195441
|
-
summedLengths += this.appendOffsets(q, offset, result);
|
|
195442
|
-
}
|
|
195443
|
-
return summedLengths;
|
|
195444
|
-
}
|
|
195445
|
-
/**
|
|
195446
|
-
* * Restructure curve fragments as chains and offsets
|
|
195447
|
-
* * Return object with named chains, insideOffsets, outsideOffsets
|
|
195448
|
-
* * BEWARE that if the input is not a loop the classification of outputs is suspect.
|
|
195449
|
-
* @param fragments fragments to be chained
|
|
195450
|
-
* @param offsetDistance offset distance.
|
|
195451
|
-
*/
|
|
195452
|
-
static collectInsideAndOutsideOffsets(fragments, offsetDistance, gapTolerance) {
|
|
195453
|
-
const collector = new MultiChainCollector(gapTolerance);
|
|
195454
|
-
for (const s of fragments) {
|
|
195455
|
-
collector.captureCurve(s);
|
|
195456
|
-
}
|
|
195457
|
-
const myChains = collector.grabResult(true);
|
|
195458
|
-
const myOffsetA = [];
|
|
195459
|
-
const myOffsetB = [];
|
|
195460
|
-
const offsetLengthA = OffsetHelpers.appendOffsets(myChains, offsetDistance, myOffsetA);
|
|
195461
|
-
const offsetLengthB = OffsetHelpers.appendOffsets(myChains, -offsetDistance, myOffsetB);
|
|
195462
|
-
if (offsetLengthA > offsetLengthB) {
|
|
195463
|
-
return { outsideOffsets: myOffsetA, insideOffsets: myOffsetB, chains: myChains };
|
|
195464
|
-
}
|
|
195465
|
-
else {
|
|
195466
|
-
return { insideOffsets: myOffsetA, outsideOffsets: myOffsetB, chains: myChains };
|
|
195467
|
-
}
|
|
195468
|
-
}
|
|
195469
|
-
/**
|
|
195470
|
-
* * Restructure curve fragments as chains and offsets
|
|
195471
|
-
* * BEWARE that if the input is not a loop the classification of outputs is suspect.
|
|
195472
|
-
* @param fragments fragments to be chained
|
|
195473
|
-
* @param gapTolerance distance to be treated as "effectively zero" when joining head-to-tail.
|
|
195474
|
-
*/
|
|
195475
|
-
static collectChains(fragments, gapTolerance, planarTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
|
|
195476
|
-
const collector = new MultiChainCollector(gapTolerance, planarTolerance);
|
|
195477
|
-
for (const s of fragments) {
|
|
195478
|
-
collector.captureCurve(s);
|
|
195479
|
-
}
|
|
195480
|
-
return collector.grabResult(true);
|
|
195481
|
-
}
|
|
195482
|
-
/** If allowed by the geometry type, move an endpoint.
|
|
195483
|
-
*
|
|
195484
|
-
*/
|
|
195485
|
-
static simpleEndPointMove(g, atEnd, to) {
|
|
195486
|
-
if (g instanceof (_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__.LineSegment3d)) {
|
|
195487
|
-
if (atEnd) {
|
|
195488
|
-
g.point1Ref.setFrom(to);
|
|
195489
|
-
}
|
|
195490
|
-
else {
|
|
195491
|
-
g.point0Ref.setFrom(to);
|
|
195492
|
-
}
|
|
195493
|
-
return true;
|
|
195494
|
-
}
|
|
195495
|
-
else if (g instanceof _curve_LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d && g.numPoints() > 0) {
|
|
195496
|
-
const i = atEnd ? g.numPoints() - 1 : 0;
|
|
195497
|
-
g.packedPoints.setAtCheckedPointIndex(i, to);
|
|
195498
|
-
return true;
|
|
195499
|
-
}
|
|
195500
|
-
return false;
|
|
195501
|
-
}
|
|
195502
|
-
// Try to move move tail (end) of g0 and/or head (beginning) of g1 to a common point.
|
|
195503
|
-
static moveHeadOrTail(g0, g1, maxShift) {
|
|
195504
|
-
const xyz0 = g0.endPoint();
|
|
195505
|
-
const xyz1 = g1.startPoint();
|
|
195506
|
-
const minShift = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance * 0.001;
|
|
195507
|
-
const d01 = xyz0.distanceXY(xyz1);
|
|
195508
|
-
if (d01 < minShift)
|
|
195509
|
-
return true;
|
|
195510
|
-
if (this.simpleEndPointMove(g1, false, xyz0) || this.simpleEndPointMove(g0, true, xyz1))
|
|
195511
|
-
return true;
|
|
195512
|
-
// const detail1On0 = g0.closestPoint(xyz1);
|
|
195513
|
-
// const detail0On1 = g1.closestPoint(xyz0);
|
|
195514
|
-
const intersections = _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_11__.CurveCurve.intersectionXYPairs(g0, true, g1, true);
|
|
195515
|
-
const shiftFactor = 5.0;
|
|
195516
|
-
for (const pair of intersections) {
|
|
195517
|
-
const detail0 = pair.detailA;
|
|
195518
|
-
const detail1 = pair.detailB;
|
|
195519
|
-
const distance0 = detail0.point.distanceXY(xyz0);
|
|
195520
|
-
const distance1 = detail1.point.distanceXY(xyz1);
|
|
195521
|
-
if (distance0 < shiftFactor * maxShift && distance1 < shiftFactor * maxShift) {
|
|
195522
|
-
if (g0 instanceof _curve_Arc3d__WEBPACK_IMPORTED_MODULE_12__.Arc3d && g1 instanceof _curve_Arc3d__WEBPACK_IMPORTED_MODULE_12__.Arc3d) {
|
|
195523
|
-
const radians0End = g0.sweep.fractionToRadians(detail0.fraction);
|
|
195524
|
-
g0.sweep.setStartEndRadians(g0.sweep.startRadians, radians0End);
|
|
195525
|
-
const radians1Start = g1.sweep.fractionToRadians(detail1.fraction);
|
|
195526
|
-
g1.sweep.setStartEndRadians(radians1Start, g1.sweep.endRadians);
|
|
195527
|
-
return true;
|
|
195528
|
-
}
|
|
195529
|
-
}
|
|
195530
|
-
}
|
|
195531
|
-
return false;
|
|
195532
|
-
}
|
|
195533
|
-
}
|
|
195534
195793
|
|
|
195535
195794
|
|
|
195536
195795
|
/***/ }),
|
|
@@ -195775,24 +196034,22 @@ class PlaneAltitudeRangeContext extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
195775
196034
|
__webpack_require__.r(__webpack_exports__);
|
|
195776
196035
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
195777
196036
|
/* harmony export */ CurveChainWireOffsetContext: () => (/* binding */ CurveChainWireOffsetContext),
|
|
195778
|
-
/* harmony export */ JointOptions: () => (/* binding */ JointOptions),
|
|
195779
|
-
/* harmony export */ OffsetOptions: () => (/* binding */ OffsetOptions),
|
|
195780
196037
|
/* harmony export */ PolygonWireOffsetContext: () => (/* binding */ PolygonWireOffsetContext)
|
|
195781
196038
|
/* harmony export */ });
|
|
195782
196039
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
195783
|
-
/* harmony import */ var
|
|
195784
|
-
/* harmony import */ var
|
|
195785
|
-
/* harmony import */ var
|
|
195786
|
-
/* harmony import */ var
|
|
195787
|
-
/* harmony import */ var
|
|
195788
|
-
/* harmony import */ var
|
|
196040
|
+
/* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
|
|
196041
|
+
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
196042
|
+
/* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
|
|
196043
|
+
/* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
196044
|
+
/* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
196045
|
+
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
195789
196046
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
195790
|
-
/* harmony import */ var
|
|
195791
|
-
/* harmony import */ var
|
|
196047
|
+
/* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
196048
|
+
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
195792
196049
|
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
196050
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
195793
196051
|
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
195794
196052
|
/* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
195795
|
-
/* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
195796
196053
|
/*---------------------------------------------------------------------------------------------
|
|
195797
196054
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
195798
196055
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -195828,157 +196085,6 @@ var JointMode;
|
|
|
195828
196085
|
JointMode[JointMode["JustGeometry"] = 3] = "JustGeometry";
|
|
195829
196086
|
JointMode[JointMode["Gap"] = 4] = "Gap";
|
|
195830
196087
|
})(JointMode || (JointMode = {}));
|
|
195831
|
-
/**
|
|
195832
|
-
* Control parameters for joint construction.
|
|
195833
|
-
* * Define a "joint" as the common point between adjacent segments of the input curve.
|
|
195834
|
-
* * Define the "turn angle" at a joint to be the angle in [0,pi] between the first derivatives (tangents) of
|
|
195835
|
-
* the segments at the joint.
|
|
195836
|
-
* * When creating offsets, if an offset needs to do an "outside" turn, the first applicable construction is applied:
|
|
195837
|
-
* * If the turn angle is larger than `options.minArcDegrees`, a circular arc is constructed to offset the joint.
|
|
195838
|
-
* * If the turn angle is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to
|
|
195839
|
-
* single intersection point (to create a sharp corner).
|
|
195840
|
-
* * If the turn angle is larger than `options.maxChamferDegrees`, the joint is offset with a line string whose edges:
|
|
195841
|
-
* * lie outside the arc that would have been created by the first construction
|
|
195842
|
-
* * have uniform turn angle less than `options.maxChamferDegrees`
|
|
195843
|
-
* * touch the arc at their midpoint (except first and last edge).
|
|
195844
|
-
* @public
|
|
195845
|
-
*/
|
|
195846
|
-
class JointOptions {
|
|
195847
|
-
/**
|
|
195848
|
-
* Construct JointOptions.
|
|
195849
|
-
* * leftOffsetDistance is required
|
|
195850
|
-
* * minArcDegrees and maxChamferDegrees are optional.
|
|
195851
|
-
*/
|
|
195852
|
-
constructor(leftOffsetDistance, minArcDegrees = 180, maxChamferDegrees = 90, preserveEllipticalArcs = false, allowSharpestCorners = false) {
|
|
195853
|
-
/**
|
|
195854
|
-
* Smallest arc to construct.
|
|
195855
|
-
* * If this control angle is 180 degrees or more, arcs are never created.
|
|
195856
|
-
*/
|
|
195857
|
-
this.minArcDegrees = 180.0;
|
|
195858
|
-
/** Largest turn angle at which to construct a sharp corner, or largest turn angle in a multi-segment chamfer. */
|
|
195859
|
-
this.maxChamferTurnDegrees = 90;
|
|
195860
|
-
/**
|
|
195861
|
-
* Whether to remove the internal turn angle upper bound for sharp corner construction.
|
|
195862
|
-
* * By default, a sharp corner is not created at a joint when the turn angle is too large, so as to avoid offsets whose
|
|
195863
|
-
* ranges blow up. Internally, this is implemented by applying an upper bound of 120 degrees to `maxChamferTurnDegrees`.
|
|
195864
|
-
* * When `allowSharpestCorners` is true, this internal upper bound is removed, allowing sharp corners for turn angles
|
|
195865
|
-
* up to `maxChamferTurnDegrees`.
|
|
195866
|
-
* * Thus, if you know your input turn angles are no greater than `maxChamferTurnDegrees`, you can create an offset with
|
|
195867
|
-
* sharp corners at each joint by setting `maxChamferTurnDegrees < minArcDegrees` and `allowSharpestCorners` to true.
|
|
195868
|
-
*/
|
|
195869
|
-
this.allowSharpestCorners = false;
|
|
195870
|
-
/** Offset distance, positive to left of base curve. */
|
|
195871
|
-
this.leftOffsetDistance = 0;
|
|
195872
|
-
/** Whether to offset elliptical arcs as elliptical arcs (true) or as B-spline curves (false, default). */
|
|
195873
|
-
this.preserveEllipticalArcs = false;
|
|
195874
|
-
this.leftOffsetDistance = leftOffsetDistance;
|
|
195875
|
-
this.minArcDegrees = minArcDegrees;
|
|
195876
|
-
this.maxChamferTurnDegrees = maxChamferDegrees;
|
|
195877
|
-
this.preserveEllipticalArcs = preserveEllipticalArcs;
|
|
195878
|
-
this.allowSharpestCorners = allowSharpestCorners;
|
|
195879
|
-
}
|
|
195880
|
-
/** Return a deep clone. */
|
|
195881
|
-
clone() {
|
|
195882
|
-
return new JointOptions(this.leftOffsetDistance, this.minArcDegrees, this.maxChamferTurnDegrees, this.preserveEllipticalArcs, this.allowSharpestCorners);
|
|
195883
|
-
}
|
|
195884
|
-
/** Copy values of input options */
|
|
195885
|
-
setFrom(other) {
|
|
195886
|
-
this.leftOffsetDistance = other.leftOffsetDistance;
|
|
195887
|
-
this.minArcDegrees = other.minArcDegrees;
|
|
195888
|
-
this.maxChamferTurnDegrees = other.maxChamferTurnDegrees;
|
|
195889
|
-
this.preserveEllipticalArcs = other.preserveEllipticalArcs;
|
|
195890
|
-
this.allowSharpestCorners = other.allowSharpestCorners;
|
|
195891
|
-
}
|
|
195892
|
-
/**
|
|
195893
|
-
* Parse a number or JointOptions up to JointOptions:
|
|
195894
|
-
* * If leftOffsetDistanceOptions is a number, create a JointOptions with other options set to default values.
|
|
195895
|
-
* * If leftOffsetDistanceOrOptions is a JointOptions, return it unchanged.
|
|
195896
|
-
* @param leftOffsetDistanceOrOptions
|
|
195897
|
-
*/
|
|
195898
|
-
static create(leftOffsetDistanceOrOptions) {
|
|
195899
|
-
if (leftOffsetDistanceOrOptions instanceof JointOptions)
|
|
195900
|
-
return leftOffsetDistanceOrOptions;
|
|
195901
|
-
return new JointOptions(leftOffsetDistanceOrOptions);
|
|
195902
|
-
}
|
|
195903
|
-
/** Return true if the options indicate this amount of turn should be handled with an arc. */
|
|
195904
|
-
needArc(theta) {
|
|
195905
|
-
return Math.abs(theta.degrees) >= this.minArcDegrees;
|
|
195906
|
-
}
|
|
195907
|
-
/** Return the number of corners needed to chamfer the given turn angle. */
|
|
195908
|
-
numChamferPoints(theta) {
|
|
195909
|
-
const degrees = Math.abs(theta.degrees);
|
|
195910
|
-
const minStepDegreesClamp = 10;
|
|
195911
|
-
let maxStepDegreesClamp = 120;
|
|
195912
|
-
if (this.allowSharpestCorners) {
|
|
195913
|
-
maxStepDegreesClamp = this.maxChamferTurnDegrees;
|
|
195914
|
-
}
|
|
195915
|
-
const stepDegrees = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.clamp(this.maxChamferTurnDegrees, minStepDegreesClamp, maxStepDegreesClamp);
|
|
195916
|
-
if (degrees <= stepDegrees)
|
|
195917
|
-
return 1;
|
|
195918
|
-
return Math.ceil(degrees / stepDegrees);
|
|
195919
|
-
}
|
|
195920
|
-
}
|
|
195921
|
-
/**
|
|
195922
|
-
* Options for offsetting a curve.
|
|
195923
|
-
* @public
|
|
195924
|
-
*/
|
|
195925
|
-
class OffsetOptions {
|
|
195926
|
-
/** Options that are provided are captured. */
|
|
195927
|
-
constructor(offsetDistanceOrOptions, strokeOptions) {
|
|
195928
|
-
this.jointOptions = JointOptions.create(offsetDistanceOrOptions);
|
|
195929
|
-
this.strokeOptions = (strokeOptions !== undefined) ? strokeOptions : _StrokeOptions__WEBPACK_IMPORTED_MODULE_1__.StrokeOptions.createForCurves();
|
|
195930
|
-
}
|
|
195931
|
-
get minArcDegrees() {
|
|
195932
|
-
return this.jointOptions.minArcDegrees;
|
|
195933
|
-
}
|
|
195934
|
-
set minArcDegrees(value) {
|
|
195935
|
-
this.jointOptions.minArcDegrees = value;
|
|
195936
|
-
}
|
|
195937
|
-
get maxChamferTurnDegrees() {
|
|
195938
|
-
return this.jointOptions.maxChamferTurnDegrees;
|
|
195939
|
-
}
|
|
195940
|
-
set maxChamferTurnDegrees(value) {
|
|
195941
|
-
this.jointOptions.maxChamferTurnDegrees = value;
|
|
195942
|
-
}
|
|
195943
|
-
get allowSharpestCorners() {
|
|
195944
|
-
return this.jointOptions.allowSharpestCorners;
|
|
195945
|
-
}
|
|
195946
|
-
set allowSharpestCorners(value) {
|
|
195947
|
-
this.jointOptions.allowSharpestCorners = value;
|
|
195948
|
-
}
|
|
195949
|
-
get leftOffsetDistance() {
|
|
195950
|
-
return this.jointOptions.leftOffsetDistance;
|
|
195951
|
-
}
|
|
195952
|
-
set leftOffsetDistance(value) {
|
|
195953
|
-
this.jointOptions.leftOffsetDistance = value;
|
|
195954
|
-
}
|
|
195955
|
-
get preserveEllipticalArcs() {
|
|
195956
|
-
return this.jointOptions.preserveEllipticalArcs;
|
|
195957
|
-
}
|
|
195958
|
-
set preserveEllipticalArcs(value) {
|
|
195959
|
-
this.jointOptions.preserveEllipticalArcs = value;
|
|
195960
|
-
}
|
|
195961
|
-
/**
|
|
195962
|
-
* Convert variant input into OffsetOptions.
|
|
195963
|
-
* * If a JointOptions is provided, it is captured.
|
|
195964
|
-
* * If an OffsetOptions is provided, a reference to it is returned.
|
|
195965
|
-
*/
|
|
195966
|
-
static create(offsetDistanceOrOptions) {
|
|
195967
|
-
if (offsetDistanceOrOptions instanceof OffsetOptions)
|
|
195968
|
-
return offsetDistanceOrOptions;
|
|
195969
|
-
return new OffsetOptions(offsetDistanceOrOptions);
|
|
195970
|
-
}
|
|
195971
|
-
/** Convert variant input into offset distance */
|
|
195972
|
-
static getOffsetDistance(offsetDistanceOrOptions) {
|
|
195973
|
-
if (typeof offsetDistanceOrOptions === "number")
|
|
195974
|
-
return offsetDistanceOrOptions;
|
|
195975
|
-
return offsetDistanceOrOptions.leftOffsetDistance;
|
|
195976
|
-
}
|
|
195977
|
-
/** Return a deep clone. */
|
|
195978
|
-
clone() {
|
|
195979
|
-
return new OffsetOptions(this.jointOptions.clone(), this.strokeOptions.clone());
|
|
195980
|
-
}
|
|
195981
|
-
}
|
|
195982
196088
|
/**
|
|
195983
196089
|
* Description of geometry around a joint.
|
|
195984
196090
|
* @internal
|
|
@@ -195997,9 +196103,9 @@ class Joint {
|
|
|
195997
196103
|
static constructArc(ray0, center, ray1) {
|
|
195998
196104
|
if (center !== undefined && _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(ray0.origin.distance(center), ray1.origin.distance(center))) {
|
|
195999
196105
|
const angle = ray0.direction.angleToXY(ray1.direction);
|
|
196000
|
-
const vector0 =
|
|
196106
|
+
const vector0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.createStartEnd(center, ray0.origin);
|
|
196001
196107
|
const vector90 = vector0.rotate90CCWXY();
|
|
196002
|
-
return
|
|
196108
|
+
return _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d.create(center, vector0, vector90, _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.createStartEndRadians(0.0, angle.radians));
|
|
196003
196109
|
}
|
|
196004
196110
|
return undefined;
|
|
196005
196111
|
}
|
|
@@ -196067,7 +196173,7 @@ class Joint {
|
|
|
196067
196173
|
const pointA = destination[destination.length - 1].endPoint();
|
|
196068
196174
|
const pointB = primitive.startPoint();
|
|
196069
196175
|
if (!pointA.isAlmostEqual(pointB)) {
|
|
196070
|
-
destination.push(
|
|
196176
|
+
destination.push(_LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d.create(pointA, pointB));
|
|
196071
196177
|
}
|
|
196072
196178
|
}
|
|
196073
196179
|
destination.push(primitive);
|
|
@@ -196075,7 +196181,7 @@ class Joint {
|
|
|
196075
196181
|
}
|
|
196076
196182
|
static adjustJointToPrimitives(joint) {
|
|
196077
196183
|
const ls = joint.jointCurve;
|
|
196078
|
-
if (ls instanceof
|
|
196184
|
+
if (ls instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d) {
|
|
196079
196185
|
if (joint.curve0) {
|
|
196080
196186
|
const curvePoint = joint.curve0.endPoint();
|
|
196081
196187
|
const jointPoint0 = ls.startPoint();
|
|
@@ -196143,8 +196249,8 @@ class Joint {
|
|
|
196143
196249
|
if (this.curve0 && this.curve1) {
|
|
196144
196250
|
const ray0 = this.curve0.fractionToPointAndDerivative(1.0);
|
|
196145
196251
|
const ray1 = this.curve1.fractionToPointAndDerivative(0.0);
|
|
196146
|
-
const intersection =
|
|
196147
|
-
if (intersection.approachType ===
|
|
196252
|
+
const intersection = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_6__.Ray3d.closestApproachRay3dRay3d(ray0, ray1); // intersection of the 2 ray lines
|
|
196253
|
+
if (intersection.approachType === _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__.CurveCurveApproachType.Intersection) {
|
|
196148
196254
|
if (intersection.detailA.fraction >= 0.0 && intersection.detailB.fraction <= 0.0) {
|
|
196149
196255
|
this.fraction0 = 1.0;
|
|
196150
196256
|
this.fraction1 = 0.0;
|
|
@@ -196159,7 +196265,7 @@ class Joint {
|
|
|
196159
196265
|
}
|
|
196160
196266
|
const numChamferPoints = options.numChamferPoints(theta); // how many interior points in the linestring
|
|
196161
196267
|
if (numChamferPoints <= 1) { // create sharp corner
|
|
196162
|
-
this.jointCurve =
|
|
196268
|
+
this.jointCurve = _LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d.create(ray0.origin, intersection.detailA.point, ray1.origin);
|
|
196163
196269
|
return;
|
|
196164
196270
|
}
|
|
196165
196271
|
if (numChamferPoints > 1) { // create chamfer corner (a line string)
|
|
@@ -196169,7 +196275,7 @@ class Joint {
|
|
|
196169
196275
|
const arc = Joint.constructArc(ray0, this.curve0.baseCurveEnd, ray1);
|
|
196170
196276
|
if (arc !== undefined) {
|
|
196171
196277
|
const radialFraction = 1 / Math.cos(halfStepRadians);
|
|
196172
|
-
const jointCurve =
|
|
196278
|
+
const jointCurve = _LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d.create();
|
|
196173
196279
|
this.jointCurve = jointCurve;
|
|
196174
196280
|
jointCurve.addPoint(ray0.origin); // possibly extend segment or line string
|
|
196175
196281
|
for (let i = 0; i < numChamferPoints; i++) {
|
|
@@ -196184,7 +196290,7 @@ class Joint {
|
|
|
196184
196290
|
}
|
|
196185
196291
|
// if there is no intersection between the 2 ray lines, fill the gap by a line segment
|
|
196186
196292
|
this.flexure = JointMode.Gap;
|
|
196187
|
-
this.jointCurve =
|
|
196293
|
+
this.jointCurve = _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d.create(this.curve0.fractionToPoint(1.0), this.curve1.fractionToPoint(0.0));
|
|
196188
196294
|
this.fraction0 = 1.0;
|
|
196189
196295
|
this.fraction1 = 0.0;
|
|
196190
196296
|
}
|
|
@@ -196226,11 +196332,11 @@ class Joint {
|
|
|
196226
196332
|
this.fraction1 = 0.0;
|
|
196227
196333
|
this.flexure = JointMode.Trim;
|
|
196228
196334
|
}
|
|
196229
|
-
else if (this.curve0 instanceof
|
|
196335
|
+
else if (this.curve0 instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d && this.curve1 instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d) { // pair of lines
|
|
196230
196336
|
const ray0 = this.curve0.fractionToPointAndDerivative(0.0);
|
|
196231
196337
|
const ray1 = this.curve1.fractionToPointAndDerivative(0.0);
|
|
196232
|
-
const intersection =
|
|
196233
|
-
if (intersection.approachType ===
|
|
196338
|
+
const intersection = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_6__.Ray3d.closestApproachRay3dRay3d(ray0, ray1); // intersection of the 2 ray lines
|
|
196339
|
+
if (intersection.approachType === _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__.CurveCurveApproachType.Intersection) {
|
|
196234
196340
|
this.fraction0 = intersection.detailA.fraction;
|
|
196235
196341
|
this.fraction1 = intersection.detailB.fraction;
|
|
196236
196342
|
if (this.fraction0 >= 1.0 && this.fraction1 <= 0.0) { // need to extend
|
|
@@ -196241,14 +196347,14 @@ class Joint {
|
|
|
196241
196347
|
}
|
|
196242
196348
|
else if (this.fraction0 > 1.0 && this.fraction1 > 1.0) { // need to fill gap with a single line segment
|
|
196243
196349
|
this.flexure = JointMode.Gap;
|
|
196244
|
-
this.jointCurve =
|
|
196350
|
+
this.jointCurve = _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d.create(this.curve0.fractionToPoint(1.0), this.curve1.fractionToPoint(0.0));
|
|
196245
196351
|
this.fraction0 = 1.0;
|
|
196246
196352
|
this.fraction1 = 0.0;
|
|
196247
196353
|
}
|
|
196248
196354
|
}
|
|
196249
196355
|
}
|
|
196250
196356
|
else { // generic pair of curves
|
|
196251
|
-
const intersections =
|
|
196357
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_8__.CurveCurve.intersectionXYPairs(this.curve0, false, this.curve1, false);
|
|
196252
196358
|
const intersectionIndex = this.selectIntersectionIndexByFraction(1.0, 0.0, intersections);
|
|
196253
196359
|
if (intersectionIndex >= 0) { // need to trim
|
|
196254
196360
|
this.flexure = JointMode.Trim;
|
|
@@ -196359,10 +196465,10 @@ class PolygonWireOffsetContext {
|
|
|
196359
196465
|
constructor() { }
|
|
196360
196466
|
// Construct a single offset from base points
|
|
196361
196467
|
static createOffsetSegment(basePointA, basePointB, distance) {
|
|
196362
|
-
|
|
196468
|
+
_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.createStartEnd(basePointA, basePointB, this._unitAlong);
|
|
196363
196469
|
if (this._unitAlong.normalizeInPlace()) {
|
|
196364
196470
|
this._unitAlong.rotate90CCWXY(this._unitPerp);
|
|
196365
|
-
const segment =
|
|
196471
|
+
const segment = _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d.create(basePointA.plusScaled(this._unitPerp, distance, this._offsetA), basePointB.plusScaled(this._unitPerp, distance, this._offsetB));
|
|
196366
196472
|
CurveChainWireOffsetContext.applyBasePoints(segment, basePointA.clone(), basePointB.clone());
|
|
196367
196473
|
return segment;
|
|
196368
196474
|
}
|
|
@@ -196388,7 +196494,7 @@ class PolygonWireOffsetContext {
|
|
|
196388
196494
|
wrap = false;
|
|
196389
196495
|
}
|
|
196390
196496
|
/** create raw offsets as a linked list (joint0) */
|
|
196391
|
-
const options = JointOptions.create(leftOffsetDistanceOrOptions);
|
|
196497
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.JointOptions.create(leftOffsetDistanceOrOptions);
|
|
196392
196498
|
const numPoints = points.length;
|
|
196393
196499
|
let fragment0 = PolygonWireOffsetContext.createOffsetSegment(points[0], points[1], options.leftOffsetDistance);
|
|
196394
196500
|
let joint0 = new Joint(undefined, fragment0, points[0]);
|
|
@@ -196424,7 +196530,7 @@ class PolygonWireOffsetContext {
|
|
|
196424
196530
|
}
|
|
196425
196531
|
// Joint.collectPrimitivesFromChain(joint0, result, numPoints);
|
|
196426
196532
|
/** turn the Joint linked list into a CurveCollection (Loop or Path). trimming is done in collectStrokesFromChain */
|
|
196427
|
-
const chain =
|
|
196533
|
+
const chain = _LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d.create();
|
|
196428
196534
|
Joint.collectStrokesFromChain(joint0, chain, numPoints);
|
|
196429
196535
|
const n = chain.packedPoints.length;
|
|
196430
196536
|
if (n > 1) {
|
|
@@ -196436,10 +196542,10 @@ class PolygonWireOffsetContext {
|
|
|
196436
196542
|
return undefined;
|
|
196437
196543
|
}
|
|
196438
196544
|
}
|
|
196439
|
-
PolygonWireOffsetContext._unitAlong =
|
|
196440
|
-
PolygonWireOffsetContext._unitPerp =
|
|
196441
|
-
PolygonWireOffsetContext._offsetA =
|
|
196442
|
-
PolygonWireOffsetContext._offsetB =
|
|
196545
|
+
PolygonWireOffsetContext._unitAlong = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create();
|
|
196546
|
+
PolygonWireOffsetContext._unitPerp = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create();
|
|
196547
|
+
PolygonWireOffsetContext._offsetA = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
|
|
196548
|
+
PolygonWireOffsetContext._offsetB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
|
|
196443
196549
|
|
|
196444
196550
|
/**
|
|
196445
196551
|
* Context for building a wire offset from a Path or Loop of CurvePrimitives
|
|
@@ -196465,41 +196571,39 @@ class CurveChainWireOffsetContext {
|
|
|
196465
196571
|
return cp;
|
|
196466
196572
|
}
|
|
196467
196573
|
/**
|
|
196468
|
-
* Create the offset of a single primitive as viewed in the xy-plane (ignoring z).
|
|
196469
|
-
* *
|
|
196574
|
+
* Create the offset of a single curve primitive as viewed in the xy-plane (ignoring z).
|
|
196575
|
+
* * Each primitive may be labeled (as an `any` object) with start or end point of base curve:
|
|
196470
196576
|
* * `(primitive as any).baseCurveStart: Point3d`
|
|
196471
196577
|
* * `(primitive as any).baseCurveEnd: Point3d`
|
|
196472
|
-
* @param
|
|
196473
|
-
* @param offsetDistanceOrOptions offset distance (positive to left of
|
|
196578
|
+
* @param curve primitive to offset
|
|
196579
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object
|
|
196474
196580
|
*/
|
|
196475
|
-
static createSingleOffsetPrimitiveXY(
|
|
196476
|
-
const offset =
|
|
196581
|
+
static createSingleOffsetPrimitiveXY(curve, offsetDistanceOrOptions) {
|
|
196582
|
+
const offset = curve.constructOffsetXY(offsetDistanceOrOptions);
|
|
196477
196583
|
if (offset === undefined)
|
|
196478
196584
|
return undefined;
|
|
196479
196585
|
// decorate each offset with its base curve's endpoints
|
|
196480
196586
|
if (Array.isArray(offset)) {
|
|
196481
|
-
const basePrims =
|
|
196587
|
+
const basePrims = curve.collectCurvePrimitives(undefined, true, true);
|
|
196482
196588
|
if (basePrims.length !== offset.length)
|
|
196483
196589
|
return undefined; // unexpected aggregate curve type!
|
|
196484
196590
|
for (let i = 0; i < basePrims.length; ++i)
|
|
196485
196591
|
this.applyBasePoints(offset[i], basePrims[i].startPoint(), basePrims[i].endPoint());
|
|
196486
196592
|
return offset;
|
|
196487
196593
|
}
|
|
196488
|
-
return this.applyBasePoints(offset,
|
|
196594
|
+
return this.applyBasePoints(offset, curve.startPoint(), curve.endPoint());
|
|
196489
196595
|
}
|
|
196490
196596
|
/**
|
|
196491
196597
|
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
196492
196598
|
* * The construction will remove "some" local effects of features smaller than the offset distance, but will
|
|
196493
196599
|
* not detect self intersection among widely separated edges.
|
|
196494
|
-
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
196495
|
-
* * See [[JointOptions]] class doc for offset construction rules.
|
|
196496
196600
|
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/Offset
|
|
196497
196601
|
* @param curves base curves.
|
|
196498
196602
|
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
196499
196603
|
*/
|
|
196500
196604
|
static constructCurveXYOffset(curves, offsetDistanceOrOptions) {
|
|
196501
196605
|
const wrap = curves instanceof _Loop__WEBPACK_IMPORTED_MODULE_10__.Loop;
|
|
196502
|
-
const offsetOptions = OffsetOptions.create(offsetDistanceOrOptions);
|
|
196606
|
+
const offsetOptions = _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
196503
196607
|
const simpleOffsets = [];
|
|
196504
196608
|
/** traverse primitives (children of curves) and create simple offsets of each primitive as an array */
|
|
196505
196609
|
for (const c of curves.children) {
|
|
@@ -197986,7 +198090,7 @@ class IntegratedSpiral3d extends _TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_0_
|
|
|
197986
198090
|
static initWorkSpace() {
|
|
197987
198091
|
IntegratedSpiral3d._gaussFraction = new Float64Array(5);
|
|
197988
198092
|
IntegratedSpiral3d._gaussWeight = new Float64Array(5);
|
|
197989
|
-
IntegratedSpiral3d._gaussMapper = _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_3__.Quadrature.setupGauss5;
|
|
198093
|
+
IntegratedSpiral3d._gaussMapper = (xA, xB, xMapped, wMapped) => _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_3__.Quadrature.setupGauss5(xA, xB, xMapped, wMapped);
|
|
197990
198094
|
}
|
|
197991
198095
|
/** Evaluate and sum the gauss quadrature formulas to integrate cos(theta), sin(theta) fractional subset of a reference length.
|
|
197992
198096
|
* (recall that theta is a nonlinear function of the fraction.)
|
|
@@ -198874,7 +198978,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
198874
198978
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
198875
198979
|
/* harmony import */ var _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
|
|
198876
198980
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
198877
|
-
/* harmony import */ var
|
|
198981
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
198878
198982
|
/*---------------------------------------------------------------------------------------------
|
|
198879
198983
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
198880
198984
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -199005,7 +199109,7 @@ class TransitionSpiral3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.Cu
|
|
|
199005
199109
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
199006
199110
|
*/
|
|
199007
199111
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
199008
|
-
const options =
|
|
199112
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_4__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
199009
199113
|
const handler = new _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_5__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
|
|
199010
199114
|
this.emitStrokableParts(handler, options.strokeOptions);
|
|
199011
199115
|
return handler.claimResult();
|
|
@@ -199102,7 +199206,7 @@ class XYCurveEvaluator {
|
|
|
199102
199206
|
static initWorkSpace() {
|
|
199103
199207
|
XYCurveEvaluator._gaussX = new Float64Array(5);
|
|
199104
199208
|
XYCurveEvaluator._gaussWeight = new Float64Array(5);
|
|
199105
|
-
XYCurveEvaluator._gaussMapper = _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_4__.Quadrature.setupGauss5;
|
|
199209
|
+
XYCurveEvaluator._gaussMapper = (xA, xB, xMapped, wMapped) => _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_4__.Quadrature.setupGauss5(xA, xB, xMapped, wMapped);
|
|
199106
199210
|
}
|
|
199107
199211
|
/**
|
|
199108
199212
|
* Integrate between nominal fractions with default gauss rule.
|
|
@@ -203223,7 +203327,7 @@ class GrowableBlockedArray {
|
|
|
203223
203327
|
return ia - ib; // so original order is maintained among duplicates !!!!
|
|
203224
203328
|
}
|
|
203225
203329
|
/** Return an array of block indices sorted per compareLexicalBlock function */
|
|
203226
|
-
sortIndicesLexical(compareBlocks = GrowableBlockedArray.compareLexicalBlock) {
|
|
203330
|
+
sortIndicesLexical(compareBlocks = (dataArray, size, iA, iB) => GrowableBlockedArray.compareLexicalBlock(dataArray, size, iA, iB)) {
|
|
203227
203331
|
const n = this._inUse;
|
|
203228
203332
|
// let numCompare = 0;
|
|
203229
203333
|
const result = new Uint32Array(n);
|
|
@@ -203494,7 +203598,7 @@ class GrowableFloat64Array {
|
|
|
203494
203598
|
* * Uses insertion sort -- fine for small arrays (less than 30), slow for larger arrays
|
|
203495
203599
|
* @param compareMethod comparison method
|
|
203496
203600
|
*/
|
|
203497
|
-
sort(compareMethod = GrowableFloat64Array.compare) {
|
|
203601
|
+
sort(compareMethod = (a, b) => GrowableFloat64Array.compare(a, b)) {
|
|
203498
203602
|
for (let i = 0; i < this._inUse; i++) {
|
|
203499
203603
|
for (let j = i + 1; j < this._inUse; j++) {
|
|
203500
203604
|
const tempI = this._data[i];
|
|
@@ -207607,7 +207711,7 @@ class Matrix3d {
|
|
|
207607
207711
|
PackedMatrix3dOps.multiplyMatrixMatrix(this.coffs, other.coffs, result.coffs);
|
|
207608
207712
|
if (this.inverseState === InverseMatrixState.inverseStored
|
|
207609
207713
|
&& other.inverseState === InverseMatrixState.inverseStored)
|
|
207610
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrix, other.inverseCoffs, this.inverseCoffs);
|
|
207714
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrix(a, b, _result), other.inverseCoffs, this.inverseCoffs);
|
|
207611
207715
|
else if (this.inverseState === InverseMatrixState.singular
|
|
207612
207716
|
|| other.inverseState === InverseMatrixState.singular)
|
|
207613
207717
|
result.inverseState = InverseMatrixState.singular;
|
|
@@ -207625,7 +207729,7 @@ class Matrix3d {
|
|
|
207625
207729
|
result = result ? result : new Matrix3d();
|
|
207626
207730
|
PackedMatrix3dOps.multiplyMatrixMatrix(this.coffs, other.inverseCoffs, Matrix3d._productBuffer);
|
|
207627
207731
|
if (this.inverseState === InverseMatrixState.inverseStored)
|
|
207628
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrix, other.coffs, this.inverseCoffs);
|
|
207732
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrix(a, b, _result), other.coffs, this.inverseCoffs);
|
|
207629
207733
|
else
|
|
207630
207734
|
result.inverseState = InverseMatrixState.unknown;
|
|
207631
207735
|
PackedMatrix3dOps.copy(Matrix3d._productBuffer, result.coffs);
|
|
@@ -207641,7 +207745,7 @@ class Matrix3d {
|
|
|
207641
207745
|
result = result ? result : new Matrix3d();
|
|
207642
207746
|
PackedMatrix3dOps.multiplyMatrixMatrix(this.inverseCoffs, other.coffs, Matrix3d._productBuffer);
|
|
207643
207747
|
if (other.inverseState === InverseMatrixState.inverseStored)
|
|
207644
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrix, other.inverseCoffs, this.coffs);
|
|
207748
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrix(a, b, _result), other.inverseCoffs, this.coffs);
|
|
207645
207749
|
else
|
|
207646
207750
|
result.inverseState = InverseMatrixState.unknown;
|
|
207647
207751
|
PackedMatrix3dOps.copy(Matrix3d._productBuffer, result.coffs);
|
|
@@ -207659,7 +207763,7 @@ class Matrix3d {
|
|
|
207659
207763
|
result = result ? result : new Matrix3d();
|
|
207660
207764
|
PackedMatrix3dOps.multiplyMatrixMatrixTranspose(this.coffs, other.coffs, result.coffs);
|
|
207661
207765
|
if (this.inverseState === InverseMatrixState.inverseStored && other.inverseState === InverseMatrixState.inverseStored)
|
|
207662
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixTransposeMatrix, other.inverseCoffs, this.inverseCoffs);
|
|
207766
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixTransposeMatrix(a, b, _result), other.inverseCoffs, this.inverseCoffs);
|
|
207663
207767
|
else if (this.inverseState === InverseMatrixState.singular || other.inverseState === InverseMatrixState.singular)
|
|
207664
207768
|
result.inverseState = InverseMatrixState.singular;
|
|
207665
207769
|
else
|
|
@@ -207678,7 +207782,7 @@ class Matrix3d {
|
|
|
207678
207782
|
result = result ? result : new Matrix3d();
|
|
207679
207783
|
PackedMatrix3dOps.multiplyMatrixTransposeMatrix(this.coffs, other.coffs, result.coffs);
|
|
207680
207784
|
if (this.inverseState === InverseMatrixState.inverseStored && other.inverseState === InverseMatrixState.inverseStored)
|
|
207681
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrixTranspose, other.inverseCoffs, this.inverseCoffs);
|
|
207785
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrixTranspose(a, b, _result), other.inverseCoffs, this.inverseCoffs);
|
|
207682
207786
|
else if (this.inverseState === InverseMatrixState.singular || other.inverseState === InverseMatrixState.singular)
|
|
207683
207787
|
result.inverseState = InverseMatrixState.singular;
|
|
207684
207788
|
else
|
|
@@ -210004,16 +210108,16 @@ class Point2d extends XY {
|
|
|
210004
210108
|
return Point2d.create(0, 0, result);
|
|
210005
210109
|
}
|
|
210006
210110
|
/**
|
|
210007
|
-
* Starting at this point, move along vector by tangentFraction of
|
|
210008
|
-
*
|
|
210009
|
-
* @param tangentFraction distance to move along
|
|
210010
|
-
* @param leftFraction distance to move perpendicular to
|
|
210111
|
+
* Starting at this point, move along `vector` by `tangentFraction` of its length, and then
|
|
210112
|
+
* by `leftFraction` of its length along the left perpendicular.
|
|
210113
|
+
* @param tangentFraction distance to move along `vector`, as a fraction of its length
|
|
210114
|
+
* @param leftFraction distance to move perpendicular to `vector`, as a fraction of its length
|
|
210011
210115
|
* @param vector the other vector
|
|
210012
210116
|
*/
|
|
210013
|
-
addForwardLeft(tangentFraction, leftFraction, vector) {
|
|
210117
|
+
addForwardLeft(tangentFraction, leftFraction, vector, result) {
|
|
210014
210118
|
const dx = vector.x;
|
|
210015
210119
|
const dy = vector.y;
|
|
210016
|
-
return Point2d.create(this.x + tangentFraction * dx - leftFraction * dy, this.y + tangentFraction * dy + leftFraction * dx);
|
|
210120
|
+
return Point2d.create(this.x + tangentFraction * dx - leftFraction * dy, this.y + tangentFraction * dy + leftFraction * dx, result);
|
|
210017
210121
|
}
|
|
210018
210122
|
/**
|
|
210019
210123
|
* Interpolate at tangentFraction between this instance and point, and then Move by leftFraction
|
|
@@ -210197,11 +210301,10 @@ class Vector2d extends XY {
|
|
|
210197
210301
|
return this.safeDivideOrNull(mag, result);
|
|
210198
210302
|
}
|
|
210199
210303
|
/**
|
|
210200
|
-
* Return fractional projection of
|
|
210201
|
-
* * It's returning the signed projection magnitude divided by the target magnitude. In other words,
|
|
210202
|
-
* it's returning the length of the projection as a fraction of the target magnitude.
|
|
210304
|
+
* Return fractional length of the projection of the instance onto the target vector.
|
|
210203
210305
|
* @param target the target vector
|
|
210204
|
-
* @param defaultFraction the returned value in case magnitude
|
|
210306
|
+
* @param defaultFraction the returned value in case the magnitude of `target` is too small
|
|
210307
|
+
* @returns the signed length of the projection divided by the length of `target`
|
|
210205
210308
|
*/
|
|
210206
210309
|
fractionOfProjectionToVector(target, defaultFraction) {
|
|
210207
210310
|
/*
|
|
@@ -211599,24 +211702,24 @@ class Vector3d extends XYZ {
|
|
|
211599
211702
|
return undefined;
|
|
211600
211703
|
}
|
|
211601
211704
|
/**
|
|
211602
|
-
* Return fractional projection of
|
|
211603
|
-
* *
|
|
211604
|
-
* * To find the projection vector, scale the target vector by the value that this function is returning.
|
|
211705
|
+
* Return fractional length of the projection of the instance onto the target vector.
|
|
211706
|
+
* * To find the projection vector, scale the target vector by the return value.
|
|
211605
211707
|
* * Math details can be found at docs/learning/geometry/PointVector.md
|
|
211606
211708
|
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/ProjectVectorOnVector
|
|
211607
211709
|
* and https://www.itwinjs.org/sandbox/SaeedTorabi/ProjectVectorOnPlane
|
|
211608
211710
|
* @param target the target vector
|
|
211609
|
-
* @param defaultFraction the returned value in case magnitude
|
|
211711
|
+
* @param defaultFraction the returned value in case the magnitude of `target` is too small
|
|
211712
|
+
* @returns the signed length of the projection divided by the length of `target`
|
|
211610
211713
|
* */
|
|
211611
211714
|
fractionOfProjectionToVector(target, defaultFraction = 0) {
|
|
211612
211715
|
/*
|
|
211613
211716
|
* Projection vector is ((this.target)/||target||)(target/||target||) = ((this.target)/||target||^2)target
|
|
211614
211717
|
* This function returns (this.target)/||target||^2
|
|
211615
211718
|
*/
|
|
211616
|
-
const numerator = this.dotProduct(target);
|
|
211617
211719
|
const denominator = target.magnitudeSquared();
|
|
211618
211720
|
if (denominator < _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistanceSquared)
|
|
211619
211721
|
return defaultFraction;
|
|
211722
|
+
const numerator = this.dotProduct(target);
|
|
211620
211723
|
return numerator / denominator;
|
|
211621
211724
|
}
|
|
211622
211725
|
/**
|
|
@@ -212565,7 +212668,7 @@ class Point4dArray {
|
|
|
212565
212668
|
}
|
|
212566
212669
|
/** unpack from xyzw xyzw... array to array of Point3d and array of weight.
|
|
212567
212670
|
*/
|
|
212568
|
-
static unpackFloat64ArrayToPointsAndWeights(data, points, weights, pointFormatter = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create) {
|
|
212671
|
+
static unpackFloat64ArrayToPointsAndWeights(data, points, weights, pointFormatter = (x, y, z) => _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(x, y, z)) {
|
|
212569
212672
|
points.length = 0;
|
|
212570
212673
|
weights.length = 0;
|
|
212571
212674
|
for (let i = 0; i + 3 < data.length; i += 4) {
|
|
@@ -213018,7 +213121,7 @@ class Point3dArray {
|
|
|
213018
213121
|
* @param data point data with various leaf forms such as `[1,2,3]`, `{x:1,y:2,z:3}`, `Point3d`
|
|
213019
213122
|
*/
|
|
213020
213123
|
static cloneDeepJSONNumberArrays(data) {
|
|
213021
|
-
const collector = new _PointStreaming__WEBPACK_IMPORTED_MODULE_7__.PointStringDeepXYZArrayCollector(this.xyzToArray);
|
|
213124
|
+
const collector = new _PointStreaming__WEBPACK_IMPORTED_MODULE_7__.PointStringDeepXYZArrayCollector((x, y, z) => this.xyzToArray(x, y, z));
|
|
213022
213125
|
_PointStreaming__WEBPACK_IMPORTED_MODULE_7__.VariantPointDataStream.streamXYZ(data, collector);
|
|
213023
213126
|
return collector.claimResult();
|
|
213024
213127
|
}
|
|
@@ -213063,7 +213166,7 @@ class Point3dArray {
|
|
|
213063
213166
|
* @param data point data with various leaf forms such as `[1,2,3]`, `{x:1,y:2,z:3}`, `Point3d`
|
|
213064
213167
|
*/
|
|
213065
213168
|
static cloneDeepXYZPoint3dArrays(data) {
|
|
213066
|
-
const collector = new _PointStreaming__WEBPACK_IMPORTED_MODULE_7__.PointStringDeepXYZArrayCollector(_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create);
|
|
213169
|
+
const collector = new _PointStreaming__WEBPACK_IMPORTED_MODULE_7__.PointStringDeepXYZArrayCollector((x, y, z) => _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(x, y, z));
|
|
213067
213170
|
_PointStreaming__WEBPACK_IMPORTED_MODULE_7__.VariantPointDataStream.streamXYZ(data, collector);
|
|
213068
213171
|
return collector.claimResult();
|
|
213069
213172
|
}
|
|
@@ -213106,7 +213209,7 @@ class Point3dArray {
|
|
|
213106
213209
|
let n = points.length;
|
|
213107
213210
|
// Get deep copy
|
|
213108
213211
|
const xy1 = points.slice(0, n);
|
|
213109
|
-
xy1.sort(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan);
|
|
213212
|
+
xy1.sort((a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan(a, b));
|
|
213110
213213
|
if (n < 3) {
|
|
213111
213214
|
for (const p of xy1)
|
|
213112
213215
|
hullPoints.push(p);
|
|
@@ -213131,7 +213234,7 @@ class Point3dArray {
|
|
|
213131
213234
|
const i0 = hullPoints.length - 1;
|
|
213132
213235
|
xy1.length = numInside;
|
|
213133
213236
|
xy1.push(hullPoints[0]); // force first point to be reconsidered as final hull point.
|
|
213134
|
-
xy1.sort(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan);
|
|
213237
|
+
xy1.sort((a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan(a, b));
|
|
213135
213238
|
n = xy1.length;
|
|
213136
213239
|
// xy1.back () is already on stack.
|
|
213137
213240
|
hullPoints.push(xy1[n - 1]);
|
|
@@ -213622,7 +213725,7 @@ class CutLoopMergeContext {
|
|
|
213622
213725
|
sortRay.direction.normalizeInPlace();
|
|
213623
213726
|
for (const loop of this.inputLoops)
|
|
213624
213727
|
loop.setSortCoordinates(sortRay);
|
|
213625
|
-
this.inputLoops.sort(CutLoop.sortFunction);
|
|
213728
|
+
this.inputLoops.sort((loopA, loopB) => CutLoop.sortFunction(loopA, loopB));
|
|
213626
213729
|
}
|
|
213627
213730
|
}
|
|
213628
213731
|
/**
|
|
@@ -213668,9 +213771,8 @@ class CutLoopMergeContext {
|
|
|
213668
213771
|
}
|
|
213669
213772
|
}
|
|
213670
213773
|
}
|
|
213671
|
-
/** Static class for operations that treat an array of points as a polygon (with area!) */
|
|
213672
213774
|
/**
|
|
213673
|
-
* Various
|
|
213775
|
+
* Various static methods to perform computations on an array of points interpreted as a polygon.
|
|
213674
213776
|
* @public
|
|
213675
213777
|
*/
|
|
213676
213778
|
class PolygonOps {
|
|
@@ -217096,6 +217198,163 @@ class Range2d extends RangeBase {
|
|
|
217096
217198
|
}
|
|
217097
217199
|
|
|
217098
217200
|
|
|
217201
|
+
/***/ }),
|
|
217202
|
+
|
|
217203
|
+
/***/ "../../core/geometry/lib/esm/geometry3d/Ray2d.js":
|
|
217204
|
+
/*!*******************************************************!*\
|
|
217205
|
+
!*** ../../core/geometry/lib/esm/geometry3d/Ray2d.js ***!
|
|
217206
|
+
\*******************************************************/
|
|
217207
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
217208
|
+
|
|
217209
|
+
"use strict";
|
|
217210
|
+
__webpack_require__.r(__webpack_exports__);
|
|
217211
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
217212
|
+
/* harmony export */ Ray2d: () => (/* binding */ Ray2d)
|
|
217213
|
+
/* harmony export */ });
|
|
217214
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
217215
|
+
/*---------------------------------------------------------------------------------------------
|
|
217216
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
217217
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
217218
|
+
*--------------------------------------------------------------------------------------------*/
|
|
217219
|
+
/** @packageDocumentation
|
|
217220
|
+
* @module CartesianGeometry
|
|
217221
|
+
*/
|
|
217222
|
+
|
|
217223
|
+
// cspell:word CCWXY, CWXY
|
|
217224
|
+
/**
|
|
217225
|
+
* Ray with xy origin and direction
|
|
217226
|
+
* @public
|
|
217227
|
+
*/
|
|
217228
|
+
class Ray2d {
|
|
217229
|
+
constructor(origin, direction) {
|
|
217230
|
+
this._origin = origin;
|
|
217231
|
+
this._direction = direction;
|
|
217232
|
+
}
|
|
217233
|
+
/** Copy coordinates from origin and direction. */
|
|
217234
|
+
set(origin, direction) {
|
|
217235
|
+
this._origin.setFrom(origin);
|
|
217236
|
+
this._direction.setFrom(direction);
|
|
217237
|
+
}
|
|
217238
|
+
/**
|
|
217239
|
+
* Create from `origin` and `target` points.
|
|
217240
|
+
* @param origin ray origin, cloned
|
|
217241
|
+
* @param target end of ray direction vector. The direction vector is `target - origin`.
|
|
217242
|
+
* @param result optional pre-allocated object to return
|
|
217243
|
+
*/
|
|
217244
|
+
static createOriginAndTarget(origin, target, result) {
|
|
217245
|
+
if (result) {
|
|
217246
|
+
result._origin.setFrom(origin);
|
|
217247
|
+
result._direction.set(target.x - origin.x, target.y - origin.y);
|
|
217248
|
+
return result;
|
|
217249
|
+
}
|
|
217250
|
+
return new Ray2d(origin.clone(), origin.vectorTo(target));
|
|
217251
|
+
}
|
|
217252
|
+
/**
|
|
217253
|
+
* Create by copying coordinates from `origin` and `direction`.
|
|
217254
|
+
* @param origin ray origin
|
|
217255
|
+
* @param direction ray direction
|
|
217256
|
+
* @param result optional pre-allocated object to return
|
|
217257
|
+
*/
|
|
217258
|
+
static createOriginAndDirection(origin, direction, result) {
|
|
217259
|
+
if (result) {
|
|
217260
|
+
result.set(origin, direction);
|
|
217261
|
+
return result;
|
|
217262
|
+
}
|
|
217263
|
+
return new Ray2d(origin.clone(), direction.clone());
|
|
217264
|
+
}
|
|
217265
|
+
/** Create from captured `origin` and `direction`. */
|
|
217266
|
+
static createOriginAndDirectionCapture(origin, direction, result) {
|
|
217267
|
+
if (result) {
|
|
217268
|
+
result._origin = origin;
|
|
217269
|
+
result._direction = direction;
|
|
217270
|
+
return result;
|
|
217271
|
+
}
|
|
217272
|
+
return new Ray2d(origin, direction);
|
|
217273
|
+
}
|
|
217274
|
+
/** Get the reference to the ray origin. */
|
|
217275
|
+
get origin() { return this._origin; }
|
|
217276
|
+
/** Get the reference to the ray direction. */
|
|
217277
|
+
get direction() { return this._direction; }
|
|
217278
|
+
/**
|
|
217279
|
+
* Return a parallel ray to the left of this ray.
|
|
217280
|
+
* @param leftFraction distance between rays, as a fraction of the magnitude of this ray's direction vector
|
|
217281
|
+
*/
|
|
217282
|
+
parallelRay(leftFraction, result) {
|
|
217283
|
+
if (result) {
|
|
217284
|
+
this._origin.addForwardLeft(0.0, leftFraction, this._direction, result._origin);
|
|
217285
|
+
result._direction.setFrom(this._direction);
|
|
217286
|
+
return result;
|
|
217287
|
+
}
|
|
217288
|
+
return new Ray2d(this._origin.addForwardLeft(0.0, leftFraction, this._direction), this._direction.clone());
|
|
217289
|
+
}
|
|
217290
|
+
/** Return a ray with cloned origin and with direction rotated 90 degrees counterclockwise */
|
|
217291
|
+
ccwPerpendicularRay(result) {
|
|
217292
|
+
if (result) {
|
|
217293
|
+
result._origin.setFrom(this._origin);
|
|
217294
|
+
this._direction.rotate90CCWXY(result._direction);
|
|
217295
|
+
return result;
|
|
217296
|
+
}
|
|
217297
|
+
return new Ray2d(this._origin.clone(), this._direction.rotate90CCWXY());
|
|
217298
|
+
}
|
|
217299
|
+
/** Return a ray with cloned origin and with direction rotated 90 degrees clockwise */
|
|
217300
|
+
cwPerpendicularRay(result) {
|
|
217301
|
+
if (result) {
|
|
217302
|
+
result._origin.setFrom(this._origin);
|
|
217303
|
+
this._direction.rotate90CWXY(result._direction);
|
|
217304
|
+
return result;
|
|
217305
|
+
}
|
|
217306
|
+
return new Ray2d(this._origin.clone(), this._direction.rotate90CWXY());
|
|
217307
|
+
}
|
|
217308
|
+
/**
|
|
217309
|
+
* Normalize the direction vector in place.
|
|
217310
|
+
* @param defaultX value to set `this.direction.x` if normalization fails. Default value 1.
|
|
217311
|
+
* @param defaultY value to set `this.direction.y` if normalization fails. Default value 0.
|
|
217312
|
+
* @returns whether normalization succeeded (i.e., direction is nonzero)
|
|
217313
|
+
*/
|
|
217314
|
+
normalizeDirectionInPlace(defaultX = 1, defaultY = 0) {
|
|
217315
|
+
if (this._direction.normalize(this._direction))
|
|
217316
|
+
return true;
|
|
217317
|
+
this._direction.x = defaultX;
|
|
217318
|
+
this._direction.y = defaultY;
|
|
217319
|
+
return false;
|
|
217320
|
+
}
|
|
217321
|
+
/**
|
|
217322
|
+
* Intersect this ray with the unbounded line defined by the given points.
|
|
217323
|
+
* @param linePointA start of the line
|
|
217324
|
+
* @param linePointB end of the line
|
|
217325
|
+
* @returns object with named values:
|
|
217326
|
+
* * `hasIntersection`: whether the intersection exists.
|
|
217327
|
+
* * `fraction`: ray parameter of intersection, or 0.0 if `!hasIntersection`. If the instance is normalized, this is the signed distance along the ray to the intersection point.
|
|
217328
|
+
* * `cross`: the 2D cross product `this.direction x (linePointB - linePointA)`, useful for determining orientation of the line and ray.
|
|
217329
|
+
*/
|
|
217330
|
+
intersectUnboundedLine(linePointA, linePointB) {
|
|
217331
|
+
const lineDirection = linePointA.vectorTo(linePointB);
|
|
217332
|
+
const vector0 = linePointA.vectorTo(this._origin);
|
|
217333
|
+
const h0 = vector0.crossProduct(lineDirection);
|
|
217334
|
+
const dHds = this._direction.crossProduct(lineDirection);
|
|
217335
|
+
// h = h0 + s * dh
|
|
217336
|
+
const ff = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-h0, dHds);
|
|
217337
|
+
const hasIntersection = ff !== undefined;
|
|
217338
|
+
return { hasIntersection, fraction: hasIntersection ? ff : 0.0, cross: dHds };
|
|
217339
|
+
}
|
|
217340
|
+
/** Return the ray fraction where the given point projects onto the ray. */
|
|
217341
|
+
projectionFraction(point) {
|
|
217342
|
+
return this._origin.vectorTo(point).fractionOfProjectionToVector(this._direction);
|
|
217343
|
+
}
|
|
217344
|
+
/** Return the ray fraction where the given point projects onto the perpendicular ray. */
|
|
217345
|
+
perpendicularProjectionFraction(point) {
|
|
217346
|
+
const uv = this._direction.crossProduct(this._origin.vectorTo(point));
|
|
217347
|
+
const uu = this._direction.magnitudeSquared();
|
|
217348
|
+
// Want zero returned if failure case, not undefined
|
|
217349
|
+
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.safeDivideFraction(uv, uu, 0.0);
|
|
217350
|
+
}
|
|
217351
|
+
/** Compute and return origin plus scaled direction. */
|
|
217352
|
+
fractionToPoint(f, result) {
|
|
217353
|
+
return this._origin.plusScaled(this._direction, f, result);
|
|
217354
|
+
}
|
|
217355
|
+
}
|
|
217356
|
+
|
|
217357
|
+
|
|
217099
217358
|
/***/ }),
|
|
217100
217359
|
|
|
217101
217360
|
/***/ "../../core/geometry/lib/esm/geometry3d/Ray3d.js":
|
|
@@ -218779,7 +219038,7 @@ class Transform {
|
|
|
218779
219038
|
const originY = this.origin.y;
|
|
218780
219039
|
const originZ = this.origin.z;
|
|
218781
219040
|
if (result) {
|
|
218782
|
-
const n = Transform.matchArrayLengths(points, result, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
|
|
219041
|
+
const n = Transform.matchArrayLengths(points, result, () => _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero());
|
|
218783
219042
|
for (let i = 0; i < n; i++)
|
|
218784
219043
|
this._matrix.multiplyInverseXYZAsPoint3d(points[i].x - originX, points[i].y - originY, points[i].z - originZ, result[i]);
|
|
218785
219044
|
return result;
|
|
@@ -218809,7 +219068,7 @@ class Transform {
|
|
|
218809
219068
|
*/
|
|
218810
219069
|
multiplyPoint2dArray(points, result) {
|
|
218811
219070
|
if (result) {
|
|
218812
|
-
const n = Transform.matchArrayLengths(points, result, _Point2dVector2d__WEBPACK_IMPORTED_MODULE_4__.Point2d.createZero);
|
|
219071
|
+
const n = Transform.matchArrayLengths(points, result, () => _Point2dVector2d__WEBPACK_IMPORTED_MODULE_4__.Point2d.createZero());
|
|
218813
219072
|
for (let i = 0; i < n; i++)
|
|
218814
219073
|
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix, points[i], result[i]);
|
|
218815
219074
|
return result;
|
|
@@ -218826,7 +219085,7 @@ class Transform {
|
|
|
218826
219085
|
*/
|
|
218827
219086
|
multiplyPoint3dArray(points, result) {
|
|
218828
219087
|
if (result) {
|
|
218829
|
-
const n = Transform.matchArrayLengths(points, result, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
|
|
219088
|
+
const n = Transform.matchArrayLengths(points, result, () => _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero());
|
|
218830
219089
|
for (let i = 0; i < n; i++)
|
|
218831
219090
|
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, points[i], result[i]);
|
|
218832
219091
|
return result;
|
|
@@ -223582,12 +223841,12 @@ class Complex {
|
|
|
223582
223841
|
"use strict";
|
|
223583
223842
|
__webpack_require__.r(__webpack_exports__);
|
|
223584
223843
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
223585
|
-
/* harmony export */ ConvexPolygon2d: () => (/* binding */ ConvexPolygon2d)
|
|
223586
|
-
/* harmony export */ Ray2d: () => (/* binding */ Ray2d)
|
|
223844
|
+
/* harmony export */ ConvexPolygon2d: () => (/* binding */ ConvexPolygon2d)
|
|
223587
223845
|
/* harmony export */ });
|
|
223588
|
-
/* harmony import */ var
|
|
223846
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
223589
223847
|
/* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
|
|
223590
223848
|
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
223849
|
+
/* harmony import */ var _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Ray2d */ "../../core/geometry/lib/esm/geometry3d/Ray2d.js");
|
|
223591
223850
|
/*---------------------------------------------------------------------------------------------
|
|
223592
223851
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
223593
223852
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -223598,97 +223857,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
223598
223857
|
|
|
223599
223858
|
|
|
223600
223859
|
|
|
223601
|
-
|
|
223602
|
-
* Ray with xy origin and direction
|
|
223603
|
-
* @internal
|
|
223604
|
-
*/
|
|
223605
|
-
class Ray2d {
|
|
223606
|
-
constructor(origin, direction) {
|
|
223607
|
-
this._origin = origin;
|
|
223608
|
-
this._direction = direction;
|
|
223609
|
-
}
|
|
223610
|
-
/** Create from 2d `origin` and `target`.
|
|
223611
|
-
* * `target - origin` is the direction vector.
|
|
223612
|
-
*/
|
|
223613
|
-
static createOriginAndTarget(origin, target) {
|
|
223614
|
-
return new Ray2d(origin.clone(), origin.vectorTo(target));
|
|
223615
|
-
}
|
|
223616
|
-
/** Create from (clones of) `origin` point and `direction` vector */
|
|
223617
|
-
static createOriginAndDirection(origin, direction) {
|
|
223618
|
-
return new Ray2d(origin.clone(), direction.clone());
|
|
223619
|
-
}
|
|
223620
|
-
/** Capture `origin` and `direction` as ray member variables. */
|
|
223621
|
-
static createOriginAndDirectionCapture(origin, direction) {
|
|
223622
|
-
return new Ray2d(origin, direction);
|
|
223623
|
-
}
|
|
223624
|
-
/** Get the (REFERENCE TO) the ray origin. */
|
|
223625
|
-
get origin() { return this._origin; }
|
|
223626
|
-
/** Get the (REFERENCE TO) the ray direction. */
|
|
223627
|
-
get direction() { return this._direction; }
|
|
223628
|
-
/**
|
|
223629
|
-
* Return a ray that is parallel at distance to the left, specified as fraction of the ray's direction vector.
|
|
223630
|
-
*/
|
|
223631
|
-
parallelRay(leftFraction) {
|
|
223632
|
-
return new Ray2d(this._origin.addForwardLeft(0.0, leftFraction, this._direction), this._direction);
|
|
223633
|
-
}
|
|
223634
|
-
/** Return a ray with same origin, direction rotated 90 degrees counterclockwise */
|
|
223635
|
-
ccwPerpendicularRay() {
|
|
223636
|
-
return new Ray2d(this._origin, this._direction.rotate90CCWXY());
|
|
223637
|
-
}
|
|
223638
|
-
/** Return a ray with same origin, direction rotated 90 degrees clockwise */
|
|
223639
|
-
cwPerpendicularRay() {
|
|
223640
|
-
return new Ray2d(this._origin, this._direction.rotate90CWXY());
|
|
223641
|
-
}
|
|
223642
|
-
/** Normalize the direction vector in place. */
|
|
223643
|
-
normalizeDirectionInPlace(defaultX = 1, defaultY = 0) {
|
|
223644
|
-
if (this._direction.normalize(this._direction)) {
|
|
223645
|
-
return true;
|
|
223646
|
-
}
|
|
223647
|
-
else {
|
|
223648
|
-
this._direction.x = defaultX;
|
|
223649
|
-
this._direction.y = defaultY;
|
|
223650
|
-
// magnitude = 0.0;
|
|
223651
|
-
return false;
|
|
223652
|
-
}
|
|
223653
|
-
}
|
|
223654
|
-
/**
|
|
223655
|
-
* Intersect this ray (ASSUMED NORMALIZED) with unbounded line defined by points.
|
|
223656
|
-
* (The normalization assumption affects test for parallel vectors.)
|
|
223657
|
-
* Fraction and dHds passed as number[] to use by reference... Sticking to return of true and false in the case fraction is zero after
|
|
223658
|
-
* a true safe divide
|
|
223659
|
-
*/
|
|
223660
|
-
intersectUnboundedLine(linePointA, linePointB, fraction, dHds) {
|
|
223661
|
-
const lineDirection = linePointA.vectorTo(linePointB);
|
|
223662
|
-
const vector0 = linePointA.vectorTo(this._origin);
|
|
223663
|
-
const h0 = vector0.crossProduct(lineDirection);
|
|
223664
|
-
dHds[0] = this._direction.crossProduct(lineDirection);
|
|
223665
|
-
// h = h0 + s * dh
|
|
223666
|
-
const ff = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-h0, dHds[0]);
|
|
223667
|
-
if (ff !== undefined) {
|
|
223668
|
-
fraction[0] = ff;
|
|
223669
|
-
return true;
|
|
223670
|
-
}
|
|
223671
|
-
else {
|
|
223672
|
-
fraction[0] = 0.0;
|
|
223673
|
-
return false;
|
|
223674
|
-
}
|
|
223675
|
-
}
|
|
223676
|
-
/** return the ray fraction where point projects to the ray */
|
|
223677
|
-
projectionFraction(point) {
|
|
223678
|
-
return this._origin.vectorTo(point).fractionOfProjectionToVector(this._direction);
|
|
223679
|
-
}
|
|
223680
|
-
/** return the fraction of projection to the perpendicular ray */
|
|
223681
|
-
perpendicularProjectionFraction(point) {
|
|
223682
|
-
const uv = this._direction.crossProduct(this._origin.vectorTo(point));
|
|
223683
|
-
const uu = this._direction.magnitudeSquared();
|
|
223684
|
-
// Want zero returned if failure case, not undefined
|
|
223685
|
-
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.safeDivideFraction(uv, uu, 0.0);
|
|
223686
|
-
}
|
|
223687
|
-
/** Return point from origin plus a scaled vector */
|
|
223688
|
-
fractionToPoint(f) {
|
|
223689
|
-
return this._origin.plusScaled(this._direction, f);
|
|
223690
|
-
}
|
|
223691
|
-
}
|
|
223860
|
+
|
|
223692
223861
|
/**
|
|
223693
223862
|
* Convex hull of points in 2d.
|
|
223694
223863
|
* @internal
|
|
@@ -223754,7 +223923,7 @@ class ConvexPolygon2d {
|
|
|
223754
223923
|
const xy1 = this._hullPoints[i];
|
|
223755
223924
|
const c = xy0.crossProductToPoints(xy1, xy);
|
|
223756
223925
|
if (c < 0.0) {
|
|
223757
|
-
const ray = Ray2d.createOriginAndTarget(xy0, xy1);
|
|
223926
|
+
const ray = _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_0__.Ray2d.createOriginAndTarget(xy0, xy1);
|
|
223758
223927
|
const s = ray.projectionFraction(xy);
|
|
223759
223928
|
let d = 0.0;
|
|
223760
223929
|
if (s < 0.0)
|
|
@@ -223805,10 +223974,11 @@ class ConvexPolygon2d {
|
|
|
223805
223974
|
return true;
|
|
223806
223975
|
}
|
|
223807
223976
|
/**
|
|
223808
|
-
* Return 2 distances bounding the intersection of the ray with
|
|
223809
|
-
*
|
|
223810
|
-
*
|
|
223811
|
-
*
|
|
223977
|
+
* Return 2 distances bounding the intersection of the ray with this convex hull.
|
|
223978
|
+
* @param ray ray to clip to this convex polygon. ASSUME normalized direction vector, so that ray fractions are distances.
|
|
223979
|
+
* @returns intersection bounds as min and max distances along the ray (from its origin).
|
|
223980
|
+
* * Both negative and positive distances along the ray are possible.
|
|
223981
|
+
* * Range has extreme values if less than 3 points, distanceA > distanceB, or if cross product < 0.
|
|
223812
223982
|
*/
|
|
223813
223983
|
clipRay(ray) {
|
|
223814
223984
|
let distanceA = -Number.MAX_VALUE;
|
|
@@ -223818,16 +223988,15 @@ class ConvexPolygon2d {
|
|
|
223818
223988
|
return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range1d.createNull();
|
|
223819
223989
|
let xy0 = this._hullPoints[n - 1];
|
|
223820
223990
|
for (const xy1 of this._hullPoints) {
|
|
223821
|
-
const
|
|
223822
|
-
|
|
223823
|
-
|
|
223824
|
-
|
|
223825
|
-
|
|
223826
|
-
distanceB = distance[0];
|
|
223991
|
+
const { hasIntersection, fraction, cross } = ray.intersectUnboundedLine(xy0, xy1);
|
|
223992
|
+
if (hasIntersection) {
|
|
223993
|
+
if (cross > 0.0) {
|
|
223994
|
+
if (fraction < distanceB)
|
|
223995
|
+
distanceB = fraction;
|
|
223827
223996
|
}
|
|
223828
223997
|
else {
|
|
223829
|
-
if (
|
|
223830
|
-
distanceA =
|
|
223998
|
+
if (fraction > distanceA)
|
|
223999
|
+
distanceA = fraction;
|
|
223831
224000
|
}
|
|
223832
224001
|
if (distanceA > distanceB)
|
|
223833
224002
|
return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range1d.createNull();
|
|
@@ -223870,7 +224039,7 @@ class ConvexPolygon2d {
|
|
|
223870
224039
|
return undefined;
|
|
223871
224040
|
// Get deep copy
|
|
223872
224041
|
const xy1 = points.slice(0, n);
|
|
223873
|
-
xy1.sort(
|
|
224042
|
+
xy1.sort((a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.lexicalXYLessThan(a, b));
|
|
223874
224043
|
hull.push(xy1[0]); // This is sure to stay
|
|
223875
224044
|
hull.push(xy1[1]); // This one can be removed in loop.
|
|
223876
224045
|
// First sweep creates upper hull
|
|
@@ -224319,7 +224488,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
224319
224488
|
/** @packageDocumentation
|
|
224320
224489
|
* @module Numerics
|
|
224321
224490
|
*/
|
|
224322
|
-
// import { Angle, AngleSweep, Geometry } from "../Geometry";
|
|
224323
224491
|
|
|
224324
224492
|
|
|
224325
224493
|
|
|
@@ -224328,7 +224496,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
224328
224496
|
|
|
224329
224497
|
|
|
224330
224498
|
|
|
224331
|
-
// import { Arc3d } from "../curve/Arc3d";
|
|
224332
224499
|
// cspell:word Cardano
|
|
224333
224500
|
// cspell:word CCminusSS
|
|
224334
224501
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
@@ -226221,19 +226388,19 @@ class GaussMapper {
|
|
|
226221
226388
|
numGaussPoints = 5;
|
|
226222
226389
|
switch (numGaussPoints) {
|
|
226223
226390
|
case 1:
|
|
226224
|
-
this.mapXAndWFunction = Quadrature.setupGauss1;
|
|
226391
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss1(xA, xB, xMapped, wMapped);
|
|
226225
226392
|
break;
|
|
226226
226393
|
case 2:
|
|
226227
|
-
this.mapXAndWFunction = Quadrature.setupGauss2;
|
|
226394
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss2(xA, xB, xMapped, wMapped);
|
|
226228
226395
|
break;
|
|
226229
226396
|
case 3:
|
|
226230
|
-
this.mapXAndWFunction = Quadrature.setupGauss3;
|
|
226397
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss3(xA, xB, xMapped, wMapped);
|
|
226231
226398
|
break;
|
|
226232
226399
|
case 4:
|
|
226233
|
-
this.mapXAndWFunction = Quadrature.setupGauss4;
|
|
226400
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss4(xA, xB, xMapped, wMapped);
|
|
226234
226401
|
break;
|
|
226235
226402
|
default:
|
|
226236
|
-
this.mapXAndWFunction = Quadrature.setupGauss5;
|
|
226403
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss5(xA, xB, xMapped, wMapped);
|
|
226237
226404
|
break;
|
|
226238
226405
|
}
|
|
226239
226406
|
}
|
|
@@ -228709,7 +228876,7 @@ class IndexedEdgeMatcher {
|
|
|
228709
228876
|
}
|
|
228710
228877
|
/** Sort the edge index array. */
|
|
228711
228878
|
sort() {
|
|
228712
|
-
this.edges.sort(SortableEdge.lessThan);
|
|
228879
|
+
this.edges.sort((edgeA, edgeB) => SortableEdge.lessThan(edgeA, edgeB));
|
|
228713
228880
|
}
|
|
228714
228881
|
/** Create a single or compound SortableEdgeCluster in dest. */
|
|
228715
228882
|
collectSortableEdgeCluster(index0, index1, dest) {
|
|
@@ -231092,7 +231259,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
|
|
|
231092
231259
|
* * Rely on the builder's compress step to find common vertex coordinates
|
|
231093
231260
|
* @internal
|
|
231094
231261
|
*/
|
|
231095
|
-
addGraph(graph, needParams, acceptFaceFunction = _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testNodeMaskNotExterior, isEdgeVisibleFunction = _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testMateMaskExterior) {
|
|
231262
|
+
addGraph(graph, needParams, acceptFaceFunction = (node) => _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testNodeMaskNotExterior(node), isEdgeVisibleFunction = (node) => _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testMateMaskExterior(node)) {
|
|
231096
231263
|
let index = 0;
|
|
231097
231264
|
const needNormals = this._options.needNormals;
|
|
231098
231265
|
let normalIndex = 0;
|
|
@@ -231142,7 +231309,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
|
|
|
231142
231309
|
/** Create a polyface containing the faces of a HalfEdgeGraph, with test function to filter faces.
|
|
231143
231310
|
* @internal
|
|
231144
231311
|
*/
|
|
231145
|
-
static graphToPolyface(graph, options, acceptFaceFunction = _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testNodeMaskNotExterior) {
|
|
231312
|
+
static graphToPolyface(graph, options, acceptFaceFunction = (node) => _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testNodeMaskNotExterior(node)) {
|
|
231146
231313
|
const builder = PolyfaceBuilder.create(options);
|
|
231147
231314
|
builder.addGraph(graph, builder.options.needParams, acceptFaceFunction);
|
|
231148
231315
|
builder.endFace();
|
|
@@ -232662,40 +232829,41 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
232662
232829
|
/* harmony export */ PolyfaceQuery: () => (/* binding */ PolyfaceQuery),
|
|
232663
232830
|
/* harmony export */ SweepLineStringToFacetsOptions: () => (/* binding */ SweepLineStringToFacetsOptions)
|
|
232664
232831
|
/* harmony export */ });
|
|
232665
|
-
/* harmony import */ var _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../geometry3d/PointHelpers */ "../../core/geometry/lib/esm/geometry3d/PointHelpers.js");
|
|
232666
232832
|
/* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
232833
|
+
/* harmony import */ var _curve_CurveOps__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../curve/CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
|
|
232667
232834
|
/* harmony import */ var _curve_internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../curve/internalContexts/MultiChainCollector */ "../../core/geometry/lib/esm/curve/internalContexts/MultiChainCollector.js");
|
|
232668
232835
|
/* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
232669
232836
|
/* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
232670
232837
|
/* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
232671
|
-
/* harmony import */ var
|
|
232838
|
+
/* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
232672
232839
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
232673
232840
|
/* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
|
|
232674
|
-
/* harmony import */ var
|
|
232841
|
+
/* harmony import */ var _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../geometry3d/BarycentricTriangle */ "../../core/geometry/lib/esm/geometry3d/BarycentricTriangle.js");
|
|
232842
|
+
/* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
|
|
232675
232843
|
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
232844
|
+
/* harmony import */ var _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../geometry3d/PointHelpers */ "../../core/geometry/lib/esm/geometry3d/PointHelpers.js");
|
|
232676
232845
|
/* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
|
|
232677
|
-
/* harmony import */ var
|
|
232846
|
+
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
232678
232847
|
/* harmony import */ var _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry4d/Matrix4d */ "../../core/geometry/lib/esm/geometry4d/Matrix4d.js");
|
|
232679
232848
|
/* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
|
|
232680
232849
|
/* harmony import */ var _numerics_UnionFind__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../numerics/UnionFind */ "../../core/geometry/lib/esm/numerics/UnionFind.js");
|
|
232681
|
-
/* harmony import */ var
|
|
232682
|
-
/* harmony import */ var
|
|
232683
|
-
/* harmony import */ var
|
|
232684
|
-
/* harmony import */ var
|
|
232685
|
-
/* harmony import */ var
|
|
232850
|
+
/* harmony import */ var _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../topology/ChainMerge */ "../../core/geometry/lib/esm/topology/ChainMerge.js");
|
|
232851
|
+
/* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
|
|
232852
|
+
/* harmony import */ var _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../topology/HalfEdgeGraphFromIndexedLoopsContext */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js");
|
|
232853
|
+
/* harmony import */ var _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../topology/HalfEdgeGraphSearch */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphSearch.js");
|
|
232854
|
+
/* harmony import */ var _topology_Merging__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../topology/Merging */ "../../core/geometry/lib/esm/topology/Merging.js");
|
|
232855
|
+
/* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
|
|
232856
|
+
/* harmony import */ var _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
|
|
232857
|
+
/* harmony import */ var _FacetOrientation__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./FacetOrientation */ "../../core/geometry/lib/esm/polyface/FacetOrientation.js");
|
|
232686
232858
|
/* harmony import */ var _IndexedEdgeMatcher__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./IndexedEdgeMatcher */ "../../core/geometry/lib/esm/polyface/IndexedEdgeMatcher.js");
|
|
232687
232859
|
/* harmony import */ var _IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
|
|
232688
|
-
/* harmony import */ var
|
|
232860
|
+
/* harmony import */ var _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./multiclip/BuildAverageNormalsContext */ "../../core/geometry/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js");
|
|
232861
|
+
/* harmony import */ var _multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./multiclip/OffsetMeshContext */ "../../core/geometry/lib/esm/polyface/multiclip/OffsetMeshContext.js");
|
|
232689
232862
|
/* harmony import */ var _multiclip_SweepLineStringToFacetContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./multiclip/SweepLineStringToFacetContext */ "../../core/geometry/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js");
|
|
232690
|
-
/* harmony import */ var
|
|
232863
|
+
/* harmony import */ var _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./multiclip/XYPointBuckets */ "../../core/geometry/lib/esm/polyface/multiclip/XYPointBuckets.js");
|
|
232691
232864
|
/* harmony import */ var _Polyface__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
|
|
232692
232865
|
/* harmony import */ var _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
232693
|
-
/* harmony import */ var
|
|
232694
|
-
/* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
|
|
232695
|
-
/* harmony import */ var _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../topology/HalfEdgeGraphFromIndexedLoopsContext */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js");
|
|
232696
|
-
/* harmony import */ var _multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./multiclip/OffsetMeshContext */ "../../core/geometry/lib/esm/polyface/multiclip/OffsetMeshContext.js");
|
|
232697
|
-
/* harmony import */ var _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
|
|
232698
|
-
/* harmony import */ var _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../geometry3d/BarycentricTriangle */ "../../core/geometry/lib/esm/geometry3d/BarycentricTriangle.js");
|
|
232866
|
+
/* harmony import */ var _RangeLengthData__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./RangeLengthData */ "../../core/geometry/lib/esm/polyface/RangeLengthData.js");
|
|
232699
232867
|
/*---------------------------------------------------------------------------------------------
|
|
232700
232868
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
232701
232869
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -232736,6 +232904,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
232736
232904
|
|
|
232737
232905
|
|
|
232738
232906
|
|
|
232907
|
+
|
|
232739
232908
|
|
|
232740
232909
|
|
|
232741
232910
|
/**
|
|
@@ -233369,18 +233538,18 @@ class PolyfaceQuery {
|
|
|
233369
233538
|
edges.push(_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d.create(pointA, pointB));
|
|
233370
233539
|
edgeStrings.push([pointA.clone(), pointB.clone()]);
|
|
233371
233540
|
});
|
|
233372
|
-
const chains =
|
|
233541
|
+
const chains = _curve_CurveOps__WEBPACK_IMPORTED_MODULE_17__.CurveOps.collectChains(edges, gapTolerance, planarityTolerance);
|
|
233373
233542
|
if (chains) {
|
|
233374
|
-
const frameBuilder = new
|
|
233543
|
+
const frameBuilder = new _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_18__.FrameBuilder();
|
|
233375
233544
|
frameBuilder.announce(chains);
|
|
233376
233545
|
const frame = frameBuilder.getValidatedFrame(false);
|
|
233377
233546
|
if (frame !== undefined) {
|
|
233378
233547
|
const inverseFrame = frame.inverse();
|
|
233379
233548
|
if (inverseFrame !== undefined) {
|
|
233380
233549
|
inverseFrame.multiplyPoint3dArrayArrayInPlace(edgeStrings);
|
|
233381
|
-
const graph =
|
|
233550
|
+
const graph = _topology_Merging__WEBPACK_IMPORTED_MODULE_19__.HalfEdgeGraphMerge.formGraphFromChains(edgeStrings, true, _topology_Graph__WEBPACK_IMPORTED_MODULE_20__.HalfEdgeMask.BOUNDARY_EDGE);
|
|
233382
233551
|
if (graph) {
|
|
233383
|
-
|
|
233552
|
+
_topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_21__.HalfEdgeGraphSearch.collectConnectedComponentsWithExteriorParityMasks(graph, new _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_21__.HalfEdgeMaskTester(_topology_Graph__WEBPACK_IMPORTED_MODULE_20__.HalfEdgeMask.BOUNDARY_EDGE), _topology_Graph__WEBPACK_IMPORTED_MODULE_20__.HalfEdgeMask.EXTERIOR);
|
|
233384
233553
|
// this.purgeNullFaces(HalfEdgeMask.EXTERIOR);
|
|
233385
233554
|
const polyface1 = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.graphToPolyface(graph);
|
|
233386
233555
|
builder.addIndexedPolyface(polyface1, false, frame);
|
|
@@ -233393,14 +233562,14 @@ class PolyfaceQuery {
|
|
|
233393
233562
|
}
|
|
233394
233563
|
/**
|
|
233395
233564
|
* Return a mesh with "some" holes filled in with new facets.
|
|
233396
|
-
* *
|
|
233397
|
-
* *
|
|
233398
|
-
* *
|
|
233565
|
+
* * Candidate chains are computed by [[announceBoundaryChainsAsLineString3d]].
|
|
233566
|
+
* * Unclosed chains are rejected.
|
|
233567
|
+
* * Closed chains are triangulated and returned as a mesh.
|
|
233399
233568
|
* * The options structure enforces restrictions on how complicated the hole filling can be:
|
|
233400
233569
|
* * maxEdgesAroundHole -- holes with more edges are skipped
|
|
233401
233570
|
* * maxPerimeter -- holes with larger summed edge lengths are skipped.
|
|
233402
233571
|
* * upVector -- holes that do not have positive area along this view are skipped.
|
|
233403
|
-
* * includeOriginalMesh -- includes the original mesh in the output mesh
|
|
233572
|
+
* * includeOriginalMesh -- includes the original mesh in the output mesh, so the composite mesh is a clone with holes filled
|
|
233404
233573
|
* @param mesh existing mesh
|
|
233405
233574
|
* @param options options controlling the hole fill.
|
|
233406
233575
|
* @param unfilledChains optional array to receive the points around holes that were not filled.
|
|
@@ -233419,11 +233588,11 @@ class PolyfaceQuery {
|
|
|
233419
233588
|
rejected = true;
|
|
233420
233589
|
else if (options.maxEdgesAroundHole !== undefined && points.length > options.maxEdgesAroundHole)
|
|
233421
233590
|
rejected = true;
|
|
233422
|
-
else if (options.maxPerimeter !== undefined &&
|
|
233591
|
+
else if (options.maxPerimeter !== undefined && _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_22__.Point3dArray.sumEdgeLengths(points, false) > options.maxPerimeter)
|
|
233423
233592
|
rejected = true;
|
|
233424
233593
|
else if (options.upVector !== undefined && _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.sumTriangleAreasPerpendicularToUpVector(points, options.upVector) <= 0.0)
|
|
233425
233594
|
rejected = true;
|
|
233426
|
-
if (!rejected &&
|
|
233595
|
+
if (!rejected && _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_23__.SpacePolygonTriangulation.triangulateSimplestSpaceLoop(points, (_loop, triangles) => {
|
|
233427
233596
|
for (const t of triangles)
|
|
233428
233597
|
builder.addPolygon(t);
|
|
233429
233598
|
})) {
|
|
@@ -233449,7 +233618,7 @@ class PolyfaceQuery {
|
|
|
233449
233618
|
}
|
|
233450
233619
|
polyface.setNumWrap(0);
|
|
233451
233620
|
const polyfaces = [];
|
|
233452
|
-
const options =
|
|
233621
|
+
const options = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__.StrokeOptions.createForFacets();
|
|
233453
233622
|
options.needNormals = polyface.normal !== undefined;
|
|
233454
233623
|
options.needParams = polyface.param !== undefined;
|
|
233455
233624
|
options.needColors = polyface.color !== undefined;
|
|
@@ -233472,7 +233641,7 @@ class PolyfaceQuery {
|
|
|
233472
233641
|
return this.cloneFiltered(source.createVisitor(0), filter);
|
|
233473
233642
|
}
|
|
233474
233643
|
source.setNumWrap(0);
|
|
233475
|
-
const options =
|
|
233644
|
+
const options = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__.StrokeOptions.createForFacets();
|
|
233476
233645
|
options.needNormals = source.normal !== undefined;
|
|
233477
233646
|
options.needParams = source.param !== undefined;
|
|
233478
233647
|
options.needColors = source.color !== undefined;
|
|
@@ -233610,7 +233779,7 @@ class PolyfaceQuery {
|
|
|
233610
233779
|
true, true, true); // accept all outputs
|
|
233611
233780
|
let chainContext;
|
|
233612
233781
|
if (options.assembleChains)
|
|
233613
|
-
chainContext =
|
|
233782
|
+
chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__.ChainMergeContext.create();
|
|
233614
233783
|
const context = _multiclip_SweepLineStringToFacetContext__WEBPACK_IMPORTED_MODULE_12__.ClipSweptLineStringContext.create(linestringPoints, options.vectorToEye);
|
|
233615
233784
|
if (context) {
|
|
233616
233785
|
const visitor = polyface.createVisitor(0);
|
|
@@ -233662,7 +233831,7 @@ class PolyfaceQuery {
|
|
|
233662
233831
|
* * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
|
|
233663
233832
|
*/
|
|
233664
233833
|
static async asyncSweepLinestringToFacetsXYReturnChains(linestringPoints, polyface) {
|
|
233665
|
-
const chainContext =
|
|
233834
|
+
const chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__.ChainMergeContext.create();
|
|
233666
233835
|
await Promise.resolve(this.asyncAnnounceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface, (_linestring, _segmentIndex, _polyface, _facetIndex, points, indexA, indexB) => {
|
|
233667
233836
|
chainContext.addSegment(points[indexA], points[indexB]);
|
|
233668
233837
|
}));
|
|
@@ -233678,7 +233847,7 @@ class PolyfaceQuery {
|
|
|
233678
233847
|
if (polyface instanceof _Polyface__WEBPACK_IMPORTED_MODULE_6__.Polyface) {
|
|
233679
233848
|
return this.collectRangeLengthData(polyface.createVisitor(0));
|
|
233680
233849
|
}
|
|
233681
|
-
const rangeData = new
|
|
233850
|
+
const rangeData = new _RangeLengthData__WEBPACK_IMPORTED_MODULE_26__.RangeLengthData();
|
|
233682
233851
|
// polyface is a visitor ...
|
|
233683
233852
|
for (polyface.reset(); polyface.moveToNextFacet();)
|
|
233684
233853
|
rangeData.accumulateGrowableXYZArrayRange(polyface.point);
|
|
@@ -233690,9 +233859,9 @@ class PolyfaceQuery {
|
|
|
233690
233859
|
static cloneWithTVertexFixup(polyface) {
|
|
233691
233860
|
const oldFacetVisitor = polyface.createVisitor(1); // This is to visit the existing facets.
|
|
233692
233861
|
const newFacetVisitor = polyface.createVisitor(0); // This is to build the new facets.
|
|
233693
|
-
const rangeSearcher =
|
|
233862
|
+
const rangeSearcher = _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_27__.XYPointBuckets.create(polyface.data.point, 30);
|
|
233694
233863
|
const builder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create();
|
|
233695
|
-
const edgeRange =
|
|
233864
|
+
const edgeRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d.createNull();
|
|
233696
233865
|
const point0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
233697
233866
|
const point1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
233698
233867
|
const spacePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
@@ -233800,7 +233969,7 @@ class PolyfaceQuery {
|
|
|
233800
233969
|
}
|
|
233801
233970
|
facetIndexAndVertexIndices.push(entry);
|
|
233802
233971
|
}
|
|
233803
|
-
facetIndexAndVertexIndices.sort(this.compareFacetIndexAndVertexIndices);
|
|
233972
|
+
facetIndexAndVertexIndices.sort((arrayA, arrayB) => this.compareFacetIndexAndVertexIndices(arrayA, arrayB));
|
|
233804
233973
|
let i0, i1;
|
|
233805
233974
|
const n = facetIndexAndVertexIndices.length;
|
|
233806
233975
|
const clusterArray = [];
|
|
@@ -234057,7 +234226,7 @@ class PolyfaceQuery {
|
|
|
234057
234226
|
* @internal
|
|
234058
234227
|
*/
|
|
234059
234228
|
static convertToHalfEdgeGraph(mesh) {
|
|
234060
|
-
const builder = new
|
|
234229
|
+
const builder = new _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_29__.HalfEdgeGraphFromIndexedLoopsContext();
|
|
234061
234230
|
const visitor = mesh.createVisitor(0);
|
|
234062
234231
|
for (visitor.reset(); visitor.moveToNextFacet();) {
|
|
234063
234232
|
builder.insertLoop(visitor.pointIndex);
|
|
@@ -234078,14 +234247,14 @@ class PolyfaceQuery {
|
|
|
234078
234247
|
* @param mesh
|
|
234079
234248
|
*/
|
|
234080
234249
|
static reorientVertexOrderAroundFacetsForConsistentOrientation(mesh) {
|
|
234081
|
-
return
|
|
234250
|
+
return _FacetOrientation__WEBPACK_IMPORTED_MODULE_30__.FacetOrientationFixup.doFixup(mesh);
|
|
234082
234251
|
}
|
|
234083
234252
|
/**
|
|
234084
234253
|
* Set up indexed normals with one normal in the plane of each facet of the mesh.
|
|
234085
234254
|
* @param polyface
|
|
234086
234255
|
*/
|
|
234087
234256
|
static buildPerFaceNormals(polyface) {
|
|
234088
|
-
|
|
234257
|
+
_multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__.BuildAverageNormalsContext.buildPerFaceNormals(polyface);
|
|
234089
234258
|
}
|
|
234090
234259
|
/**
|
|
234091
234260
|
* * At each vertex of the mesh
|
|
@@ -234098,7 +234267,7 @@ class PolyfaceQuery {
|
|
|
234098
234267
|
* @param toleranceAngle averaging is done between normals up to this angle.
|
|
234099
234268
|
*/
|
|
234100
234269
|
static buildAverageNormals(polyface, toleranceAngle = _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_1__.Angle.createDegrees(31.0)) {
|
|
234101
|
-
|
|
234270
|
+
_multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__.BuildAverageNormalsContext.buildFastAverageNormals(polyface, toleranceAngle);
|
|
234102
234271
|
}
|
|
234103
234272
|
/**
|
|
234104
234273
|
* Offset the faces of the mesh.
|
|
@@ -234108,9 +234277,9 @@ class PolyfaceQuery {
|
|
|
234108
234277
|
* @returns shifted mesh.
|
|
234109
234278
|
*/
|
|
234110
234279
|
static cloneOffset(source, signedOffsetDistance, offsetOptions = OffsetMeshOptions.create()) {
|
|
234111
|
-
const strokeOptions =
|
|
234280
|
+
const strokeOptions = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__.StrokeOptions.createForFacets();
|
|
234112
234281
|
const offsetBuilder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create(strokeOptions);
|
|
234113
|
-
|
|
234282
|
+
_multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_32__.OffsetMeshContext.buildOffsetMeshWithEdgeChamfers(source, offsetBuilder, signedOffsetDistance, offsetOptions);
|
|
234114
234283
|
return offsetBuilder.claimPolyface();
|
|
234115
234284
|
}
|
|
234116
234285
|
/** Search facets for the first one that intersects the infinite line.
|
|
@@ -234134,17 +234303,17 @@ class PolyfaceQuery {
|
|
|
234134
234303
|
const numEdges = visitor.pointCount; // #vertices = #edges since numWrap is zero
|
|
234135
234304
|
const vertices = visitor.point;
|
|
234136
234305
|
if (3 === numEdges) {
|
|
234137
|
-
const tri = this._workTriangle =
|
|
234306
|
+
const tri = this._workTriangle = _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_33__.BarycentricTriangle.create(vertices.getPoint3dAtUncheckedPointIndex(0), vertices.getPoint3dAtUncheckedPointIndex(1), vertices.getPoint3dAtUncheckedPointIndex(2), this._workTriangle);
|
|
234138
234307
|
const detail3 = this._workTriDetail = tri.intersectRay3d(ray, this._workTriDetail);
|
|
234139
234308
|
tri.snapLocationToEdge(detail3, options?.distanceTolerance, options?.parameterTolerance);
|
|
234140
|
-
detail = this._workFacetDetail3 =
|
|
234309
|
+
detail = this._workFacetDetail3 = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.TriangularFacetLocationDetail.create(visitor.currentReadIndex(), detail3, this._workFacetDetail3);
|
|
234141
234310
|
}
|
|
234142
234311
|
else {
|
|
234143
234312
|
const detailN = this._workPolyDetail = _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.intersectRay3d(vertices, ray, options?.distanceTolerance, this._workPolyDetail);
|
|
234144
234313
|
if (_geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.isConvex(vertices))
|
|
234145
|
-
detail = this._workFacetDetailC =
|
|
234314
|
+
detail = this._workFacetDetailC = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.ConvexFacetLocationDetail.create(visitor.currentReadIndex(), numEdges, detailN, this._workFacetDetailC);
|
|
234146
234315
|
else
|
|
234147
|
-
detail = this._workFacetDetailNC =
|
|
234316
|
+
detail = this._workFacetDetailNC = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.NonConvexFacetLocationDetail.create(visitor.currentReadIndex(), numEdges, detailN, this._workFacetDetailNC);
|
|
234148
234317
|
}
|
|
234149
234318
|
if (detail.isInsideOrOn) { // set optional caches, process the intersection
|
|
234150
234319
|
if (options?.needNormal && visitor.normal)
|
|
@@ -234381,7 +234550,7 @@ class TaggedNumericData {
|
|
|
234381
234550
|
if (this.tagB !== other.tagB)
|
|
234382
234551
|
return false;
|
|
234383
234552
|
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.exactEqualNumberArrays(this.intData, other.intData)
|
|
234384
|
-
&& _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.almostEqualArrays(this.doubleData, other.doubleData, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isAlmostEqualNumber);
|
|
234553
|
+
&& _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.almostEqualArrays(this.doubleData, other.doubleData, (a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isAlmostEqualNumber(a, b));
|
|
234385
234554
|
}
|
|
234386
234555
|
static areAlmostEqual(dataA, dataB) {
|
|
234387
234556
|
if (dataA === undefined && dataB === undefined)
|
|
@@ -234641,7 +234810,7 @@ class BuildAverageNormalsContext {
|
|
|
234641
234810
|
}
|
|
234642
234811
|
}
|
|
234643
234812
|
// Sort by the vertex index so all the sectors around each vertex are clustered . .
|
|
234644
|
-
sectors.sort(SectorData.cbVertexSort);
|
|
234813
|
+
sectors.sort((left, right) => SectorData.cbVertexSort(left, right));
|
|
234645
234814
|
// Walk the sectors around each vertex . ..
|
|
234646
234815
|
// For each unassigned sector
|
|
234647
234816
|
// walk to further sectors of the same vertex with near-parallel normals, accumulating average normal.
|
|
@@ -234674,7 +234843,7 @@ class BuildAverageNormalsContext {
|
|
|
234674
234843
|
}
|
|
234675
234844
|
}
|
|
234676
234845
|
// Resort by original sector index.
|
|
234677
|
-
sectors.sort(SectorData.cbSectorSort);
|
|
234846
|
+
sectors.sort((left, right) => SectorData.cbSectorSort(left, right));
|
|
234678
234847
|
// normalize the sums and emplace in the facets . . .
|
|
234679
234848
|
polyface.data.normalIndex = [];
|
|
234680
234849
|
polyface.data.normal = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArray(sectors.length);
|
|
@@ -246403,9 +246572,7 @@ var IModelJson;
|
|
|
246403
246572
|
return _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_10__.CoordinateXYZ.create(point);
|
|
246404
246573
|
return undefined;
|
|
246405
246574
|
}
|
|
246406
|
-
/** Parse TransitionSpiral content (right side) to TransitionSpiral3d
|
|
246407
|
-
* @alpha
|
|
246408
|
-
*/
|
|
246575
|
+
/** Parse TransitionSpiral content (right side) to TransitionSpiral3d. */
|
|
246409
246576
|
static parseTransitionSpiral(data) {
|
|
246410
246577
|
const axes = Reader.parseOrientation(data, true);
|
|
246411
246578
|
const origin = Reader.parsePoint3dProperty(data, "origin");
|
|
@@ -247043,10 +247210,7 @@ var IModelJson;
|
|
|
247043
247210
|
}
|
|
247044
247211
|
data.xyVectors = [vectorU.toJSON(), vectorV.toJSON()];
|
|
247045
247212
|
}
|
|
247046
|
-
/**
|
|
247047
|
-
* parse properties of a TransitionSpiral.
|
|
247048
|
-
* @alpha
|
|
247049
|
-
*/
|
|
247213
|
+
/** Parse properties of a TransitionSpiral. */
|
|
247050
247214
|
handleTransitionSpiral(data) {
|
|
247051
247215
|
// TODO: HANDLE NONRIGID TRANSFORM !!
|
|
247052
247216
|
// the spiral may have indication of how it was defined. If so, use defined/undefined state of the original data
|
|
@@ -249936,7 +250100,7 @@ class ChainMergeContext {
|
|
|
249936
250100
|
p.sortData = this.primarySortKey(p);
|
|
249937
250101
|
}
|
|
249938
250102
|
const sortArray = this._graph.allHalfEdges.slice();
|
|
249939
|
-
sortArray.sort(ChainMergeContext.nodeCompareSortData);
|
|
250103
|
+
sortArray.sort((nodeA, nodeB) => ChainMergeContext.nodeCompareSortData(nodeA, nodeB));
|
|
249940
250104
|
const xyzTolerance = this._options.tolerance;
|
|
249941
250105
|
// A node is unvisited if it is its own vertex successor !!!
|
|
249942
250106
|
// otherwise the node has already been twisted into a base vertex.
|
|
@@ -251678,7 +251842,7 @@ class HalfEdgeGraphSearch {
|
|
|
251678
251842
|
* @param collectAllNodes flag to pass to the SignedDataSummary constructor to control collection of nodes.
|
|
251679
251843
|
* @param areaFunction function to all to obtain area (or other numeric value)
|
|
251680
251844
|
*/
|
|
251681
|
-
static collectFaceAreaSummary(source, collectAllNodes = false, areaFunction = HalfEdgeGraphSearch.signedFaceArea) {
|
|
251845
|
+
static collectFaceAreaSummary(source, collectAllNodes = false, areaFunction = (node) => HalfEdgeGraphSearch.signedFaceArea(node)) {
|
|
251682
251846
|
const result = new _SignedDataSummary__WEBPACK_IMPORTED_MODULE_0__.SignedDataSummary(collectAllNodes);
|
|
251683
251847
|
let allFaces;
|
|
251684
251848
|
if (source instanceof _Graph__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeGraph)
|
|
@@ -252931,7 +253095,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
252931
253095
|
* @internal
|
|
252932
253096
|
*/
|
|
252933
253097
|
class HalfEdgePriorityQueueWithPartnerArray {
|
|
252934
|
-
constructor(compare = _Merging__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeGraphOps.compareNodesYXUp) {
|
|
253098
|
+
constructor(compare = (a, b) => _Merging__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeGraphOps.compareNodesYXUp(a, b)) {
|
|
252935
253099
|
this.priorityQueue = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.PriorityQueue(compare);
|
|
252936
253100
|
this.activeEdges = [];
|
|
252937
253101
|
}
|
|
@@ -254160,7 +254324,7 @@ class RegularizationContext {
|
|
|
254160
254324
|
}
|
|
254161
254325
|
downwardConnectionFromBottomPeak(node) {
|
|
254162
254326
|
let connectTo;
|
|
254163
|
-
const upFunction = _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp;
|
|
254327
|
+
const upFunction = (a, b) => _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp(a, b);
|
|
254164
254328
|
const upEdgeBase = this.findTopVisibleEdge(node, this.upEdges, 1.0);
|
|
254165
254329
|
const downEdgeBase = this.findTopVisibleEdge(node, this.downEdges, -1.0);
|
|
254166
254330
|
connectTo = this.updateMaxNode(connectTo, upEdgeBase, upFunction);
|
|
@@ -254213,7 +254377,7 @@ class RegularizationContext {
|
|
|
254213
254377
|
*/
|
|
254214
254378
|
runRegularization(upSweep = true, downSweep = true) {
|
|
254215
254379
|
if (upSweep) {
|
|
254216
|
-
this.bottomPeaks.sort(_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp);
|
|
254380
|
+
this.bottomPeaks.sort((a, b) => _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp(a, b));
|
|
254217
254381
|
for (const bottomPeak of this.bottomPeaks) {
|
|
254218
254382
|
// GeometryCoreTestIO.consoleLog("SEARCH", bottomPeak.id, [bottomPeak.x, bottomPeak.y]);
|
|
254219
254383
|
if (!_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.isDownPeak(bottomPeak))
|
|
@@ -254230,7 +254394,7 @@ class RegularizationContext {
|
|
|
254230
254394
|
this.negateXY();
|
|
254231
254395
|
// swap the various p and down seeds ....
|
|
254232
254396
|
this.swapArrays();
|
|
254233
|
-
this.bottomPeaks.sort(_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp);
|
|
254397
|
+
this.bottomPeaks.sort((a, b) => _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp(a, b));
|
|
254234
254398
|
for (const bottomPeak of this.bottomPeaks) {
|
|
254235
254399
|
if (!_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.isDownPeak(bottomPeak))
|
|
254236
254400
|
continue;
|
|
@@ -255173,7 +255337,7 @@ class Triangulator {
|
|
|
255173
255337
|
*
|
|
255174
255338
|
*/
|
|
255175
255339
|
static spliceLeftMostNodesOfHoles(graph, outerNode, leftMostHoleLoopNode) {
|
|
255176
|
-
leftMostHoleLoopNode.sort(Triangulator.compareX);
|
|
255340
|
+
leftMostHoleLoopNode.sort((a, b) => Triangulator.compareX(a, b));
|
|
255177
255341
|
let numFail = 0;
|
|
255178
255342
|
// process holes from left to right
|
|
255179
255343
|
for (const holeStart of leftMostHoleLoopNode) {
|
|
@@ -277107,8 +277271,7 @@ const isStageLauncher = (item) => {
|
|
|
277107
277271
|
class BackstageItemUtilities {
|
|
277108
277272
|
}
|
|
277109
277273
|
/** Creates a stage launcher backstage item */
|
|
277110
|
-
BackstageItemUtilities.createStageLauncher = (frontstageId, groupPriority, itemPriority, label, subtitle, icon, overrides
|
|
277111
|
-
) => ({
|
|
277274
|
+
BackstageItemUtilities.createStageLauncher = (frontstageId, groupPriority, itemPriority, label, subtitle, icon, overrides) => ({
|
|
277112
277275
|
groupPriority,
|
|
277113
277276
|
icon,
|
|
277114
277277
|
internalData: overrides?.internalData,
|
|
@@ -277120,8 +277283,7 @@ BackstageItemUtilities.createStageLauncher = (frontstageId, groupPriority, itemP
|
|
|
277120
277283
|
...overrides,
|
|
277121
277284
|
});
|
|
277122
277285
|
/** Creates an action backstage item */
|
|
277123
|
-
BackstageItemUtilities.createActionItem = (itemId, groupPriority, itemPriority, execute, label, subtitle, icon, overrides
|
|
277124
|
-
) => ({
|
|
277286
|
+
BackstageItemUtilities.createActionItem = (itemId, groupPriority, itemPriority, execute, label, subtitle, icon, overrides) => ({
|
|
277125
277287
|
execute,
|
|
277126
277288
|
groupPriority,
|
|
277127
277289
|
icon,
|
|
@@ -286551,7 +286713,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
|
|
|
286551
286713
|
/***/ ((module) => {
|
|
286552
286714
|
|
|
286553
286715
|
"use strict";
|
|
286554
|
-
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.1.0-dev.
|
|
286716
|
+
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.1.0-dev.69","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.1.0-dev.69","@itwin/core-bentley":"workspace:^4.1.0-dev.69","@itwin/core-common":"workspace:^4.1.0-dev.69","@itwin/core-geometry":"workspace:^4.1.0-dev.69","@itwin/core-orbitgt":"workspace:^4.1.0-dev.69","@itwin/core-quantity":"workspace:^4.1.0-dev.69"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"18.16.1","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.0.0","@itwin/object-storage-core":"^2.0.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
|
|
286555
286717
|
|
|
286556
286718
|
/***/ })
|
|
286557
286719
|
|