@itwin/rpcinterface-full-stack-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 +1388 -1226
- 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 +16 -22
|
@@ -27248,7 +27248,7 @@ class Logger {
|
|
|
27248
27248
|
* @param log The logger output function to use - defaults to Logger.logError
|
|
27249
27249
|
* @param metaData Optional data for the message
|
|
27250
27250
|
*/
|
|
27251
|
-
static logException(category, err, log = Logger.logError) {
|
|
27251
|
+
static logException(category, err, log = (_category, message) => Logger.logError(_category, message)) {
|
|
27252
27252
|
log(category, Logger.getExceptionMessage(err), () => {
|
|
27253
27253
|
return { ..._BentleyError__WEBPACK_IMPORTED_MODULE_0__.BentleyError.getErrorMetadata(err), exceptionType: err.constructor.name };
|
|
27254
27254
|
});
|
|
@@ -29303,10 +29303,10 @@ class Tracing {
|
|
|
29303
29303
|
static enableOpenTelemetry(tracer, api) {
|
|
29304
29304
|
Tracing._tracer = tracer;
|
|
29305
29305
|
Tracing._openTelemetry = api;
|
|
29306
|
-
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace = Tracing.withOpenTelemetry(_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace);
|
|
29307
|
-
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logInfo = Tracing.withOpenTelemetry(_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logInfo);
|
|
29308
|
-
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning = Tracing.withOpenTelemetry(_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning);
|
|
29309
|
-
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logError = Tracing.withOpenTelemetry(_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logError);
|
|
29306
|
+
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace = (category, message, metaData) => Tracing.withOpenTelemetry(() => _Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logTrace(category, message, metaData));
|
|
29307
|
+
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logInfo = (category, message, metaData) => Tracing.withOpenTelemetry(() => _Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logInfo(category, message, metaData));
|
|
29308
|
+
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning = (category, message, metaData) => Tracing.withOpenTelemetry(() => _Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(category, message, metaData));
|
|
29309
|
+
_Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logError = (category, message, metaData) => Tracing.withOpenTelemetry(() => _Logger__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(category, message, metaData));
|
|
29310
29310
|
}
|
|
29311
29311
|
static withOpenTelemetry(base, isError = false) {
|
|
29312
29312
|
return (category, message, metaData) => {
|
|
@@ -35344,9 +35344,9 @@ class PropertyMetaData {
|
|
|
35344
35344
|
case PrimitiveTypeCode.String:
|
|
35345
35345
|
return jsonObj; // this works even for arrays or strings that are JSON because the parsed JSON is already the right type
|
|
35346
35346
|
case PrimitiveTypeCode.Point2d:
|
|
35347
|
-
return this.createValueOrArray(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.fromJSON, jsonObj);
|
|
35347
|
+
return this.createValueOrArray((obj) => _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.fromJSON(obj), jsonObj);
|
|
35348
35348
|
case PrimitiveTypeCode.Point3d:
|
|
35349
|
-
return this.createValueOrArray(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON, jsonObj);
|
|
35349
|
+
return this.createValueOrArray((obj) => _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON(obj), jsonObj);
|
|
35350
35350
|
}
|
|
35351
35351
|
}
|
|
35352
35352
|
if (this.isNavigation)
|
|
@@ -57788,7 +57788,7 @@ class RpcMarshaling {
|
|
|
57788
57788
|
}
|
|
57789
57789
|
marshalingTarget = serialized;
|
|
57790
57790
|
chunkThreshold = protocol ? protocol.transferChunkThreshold : 0;
|
|
57791
|
-
serialized.objects = JSON.stringify(value, WireFormat.marshal);
|
|
57791
|
+
serialized.objects = JSON.stringify(value, (_key, _value) => WireFormat.marshal(_key, _value));
|
|
57792
57792
|
marshalingTarget = undefined;
|
|
57793
57793
|
chunkThreshold = 0;
|
|
57794
57794
|
return serialized;
|
|
@@ -57802,7 +57802,7 @@ class RpcMarshaling {
|
|
|
57802
57802
|
chunkThreshold = protocol ? protocol.transferChunkThreshold : 0;
|
|
57803
57803
|
let result;
|
|
57804
57804
|
try {
|
|
57805
|
-
result = JSON.parse(value.objects, WireFormat.unmarshal);
|
|
57805
|
+
result = JSON.parse(value.objects, (_key, _value) => WireFormat.unmarshal(_key, _value));
|
|
57806
57806
|
}
|
|
57807
57807
|
catch (error) {
|
|
57808
57808
|
if (error instanceof SyntaxError)
|
|
@@ -59967,7 +59967,7 @@ class WebAppRpcProtocol extends _core_RpcProtocol__WEBPACK_IMPORTED_MODULE_3__.R
|
|
|
59967
59967
|
/** The RPC request class for this protocol. */
|
|
59968
59968
|
this.requestType = _WebAppRpcRequest__WEBPACK_IMPORTED_MODULE_6__.WebAppRpcRequest;
|
|
59969
59969
|
this.supportsStatusCategory = true;
|
|
59970
|
-
this.events.addListener(_WebAppRpcLogging__WEBPACK_IMPORTED_MODULE_5__.WebAppRpcLogging.logProtocolEvent);
|
|
59970
|
+
this.events.addListener(async (event, object) => _WebAppRpcLogging__WEBPACK_IMPORTED_MODULE_5__.WebAppRpcLogging.logProtocolEvent(event, object));
|
|
59971
59971
|
}
|
|
59972
59972
|
}
|
|
59973
59973
|
|
|
@@ -66494,13 +66494,13 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
66494
66494
|
const key = new SchemaKey_1.SchemaItemKey(targetClass, new SchemaKey_1.SchemaKey(schemaName));
|
|
66495
66495
|
if (SchemaItem_1.SchemaItem.equalByKey(this, key))
|
|
66496
66496
|
return true;
|
|
66497
|
-
return this.traverseBaseClasses(SchemaItem_1.SchemaItem.equalByKey, key);
|
|
66497
|
+
return this.traverseBaseClasses((thisSchemaItem, thatSchemaItemOrKey) => SchemaItem_1.SchemaItem.equalByKey(thisSchemaItem, thatSchemaItemOrKey), key);
|
|
66498
66498
|
}
|
|
66499
66499
|
else {
|
|
66500
66500
|
(0, core_bentley_1.assert)(ECClass.isECClass(targetClass), "Expected targetClass to be of type ECClass");
|
|
66501
66501
|
if (SchemaItem_1.SchemaItem.equalByKey(this, targetClass))
|
|
66502
66502
|
return true;
|
|
66503
|
-
return this.traverseBaseClasses(SchemaItem_1.SchemaItem.equalByKey, targetClass);
|
|
66503
|
+
return this.traverseBaseClasses((thisSchemaItem, thatSchemaItemOrKey) => SchemaItem_1.SchemaItem.equalByKey(thisSchemaItem, thatSchemaItemOrKey), targetClass);
|
|
66504
66504
|
}
|
|
66505
66505
|
}
|
|
66506
66506
|
/**
|
|
@@ -66510,7 +66510,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
66510
66510
|
isSync(targetClass) {
|
|
66511
66511
|
if (SchemaItem_1.SchemaItem.equalByKey(this, targetClass))
|
|
66512
66512
|
return true;
|
|
66513
|
-
return this.traverseBaseClassesSync(SchemaItem_1.SchemaItem.equalByKey, targetClass);
|
|
66513
|
+
return this.traverseBaseClassesSync((thisSchemaItem, thatSchemaItemOrKey) => SchemaItem_1.SchemaItem.equalByKey(thisSchemaItem, thatSchemaItemOrKey), targetClass);
|
|
66514
66514
|
}
|
|
66515
66515
|
/**
|
|
66516
66516
|
* @internal
|
|
@@ -82519,7 +82519,7 @@ class IModelApp {
|
|
|
82519
82519
|
* @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).
|
|
82520
82520
|
*/
|
|
82521
82521
|
static queryRenderCompatibility() {
|
|
82522
|
-
return (0,_itwin_webgl_compatibility__WEBPACK_IMPORTED_MODULE_5__.queryRenderCompatibility)(true, _render_webgl_System__WEBPACK_IMPORTED_MODULE_21__.System.createContext);
|
|
82522
|
+
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));
|
|
82523
82523
|
}
|
|
82524
82524
|
/**
|
|
82525
82525
|
* This method must be called before any other `@itwin/core-frontend` methods are used.
|
|
@@ -82606,7 +82606,7 @@ class IModelApp {
|
|
|
82606
82606
|
this.onBeforeShutdown.clear();
|
|
82607
82607
|
if (false) {}
|
|
82608
82608
|
this._wantEventLoop = false;
|
|
82609
|
-
window.removeEventListener("resize", IModelApp.requestNextAnimation);
|
|
82609
|
+
window.removeEventListener("resize", () => IModelApp.requestNextAnimation());
|
|
82610
82610
|
this.clearIntervalAnimation();
|
|
82611
82611
|
[this.toolAdmin, this.viewManager, this.tileAdmin].forEach((sys) => sys.onShutDown());
|
|
82612
82612
|
this.tools.shutdown();
|
|
@@ -82643,7 +82643,7 @@ class IModelApp {
|
|
|
82643
82643
|
return;
|
|
82644
82644
|
if (!IModelApp._animationRequested) {
|
|
82645
82645
|
IModelApp._animationRequested = true;
|
|
82646
|
-
requestAnimationFrame(IModelApp.eventLoop);
|
|
82646
|
+
requestAnimationFrame(() => IModelApp.eventLoop());
|
|
82647
82647
|
}
|
|
82648
82648
|
}
|
|
82649
82649
|
/** @internal */
|
|
@@ -82665,7 +82665,7 @@ class IModelApp {
|
|
|
82665
82665
|
static startEventLoop() {
|
|
82666
82666
|
if (!IModelApp._wantEventLoop) {
|
|
82667
82667
|
IModelApp._wantEventLoop = true;
|
|
82668
|
-
window.addEventListener("resize", IModelApp.requestNextAnimation);
|
|
82668
|
+
window.addEventListener("resize", () => IModelApp.requestNextAnimation());
|
|
82669
82669
|
IModelApp.requestIntervalAnimation();
|
|
82670
82670
|
IModelApp.requestNextAnimation();
|
|
82671
82671
|
}
|
|
@@ -82688,7 +82688,7 @@ class IModelApp {
|
|
|
82688
82688
|
_tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_33__.ToolAdmin.exceptionHandler(exception); // eslint-disable-line @typescript-eslint/no-floating-promises
|
|
82689
82689
|
IModelApp._wantEventLoop = false;
|
|
82690
82690
|
IModelApp._animationRequested = true; // unrecoverable after exception, don't request any further frames.
|
|
82691
|
-
window.removeEventListener("resize", IModelApp.requestNextAnimation);
|
|
82691
|
+
window.removeEventListener("resize", () => IModelApp.requestNextAnimation());
|
|
82692
82692
|
}
|
|
82693
82693
|
}
|
|
82694
82694
|
/** Get the user's access token for this IModelApp, or a blank string if none is available.
|
|
@@ -125801,7 +125801,7 @@ class IdMap {
|
|
|
125801
125801
|
/** Mapping of textures by their key values. */
|
|
125802
125802
|
this.textures = new Map();
|
|
125803
125803
|
/** Mapping of textures using gradient symbology. */
|
|
125804
|
-
this.gradients = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Dictionary(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Gradient.Symb.compareSymb);
|
|
125804
|
+
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));
|
|
125805
125805
|
/** Pending promises to create a texture from an ImageSource. This prevents us from decoding the same ImageSource multiple times */
|
|
125806
125806
|
this.texturesFromImageSources = new Map();
|
|
125807
125807
|
this._iModel = iModel;
|
|
@@ -140693,7 +140693,7 @@ class GltfReader {
|
|
|
140693
140693
|
}
|
|
140694
140694
|
}
|
|
140695
140695
|
const uvs = draco.attributes.TEXCOORD_0?.value;
|
|
140696
|
-
if (uvs && (uvs.length
|
|
140696
|
+
if (uvs && (uvs.length % 2) === 0)
|
|
140697
140697
|
for (let i = 0; i < uvs.length; i += 2)
|
|
140698
140698
|
mesh.uvParams.push(new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d(uvs[i], uvs[i + 1]));
|
|
140699
140699
|
const batchIds = draco.attributes._BATCHID?.value;
|
|
@@ -173319,7 +173319,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
173319
173319
|
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
173320
173320
|
/* harmony import */ var _curve_internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../curve/internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
|
|
173321
173321
|
/* harmony import */ var _curve_internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../curve/internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
173322
|
-
/* harmony import */ var
|
|
173322
|
+
/* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
173323
173323
|
/* harmony import */ var _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../curve/Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
|
|
173324
173324
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
173325
173325
|
/* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
|
|
@@ -173630,7 +173630,7 @@ class BSplineCurve3dBase extends _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_
|
|
|
173630
173630
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
173631
173631
|
*/
|
|
173632
173632
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
173633
|
-
const options =
|
|
173633
|
+
const options = _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
173634
173634
|
const handler = new _curve_internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_10__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
|
|
173635
173635
|
this.emitStrokableParts(handler, options.strokeOptions);
|
|
173636
173636
|
return handler.claimResult();
|
|
@@ -175935,7 +175935,7 @@ class BSplineSurface3dH extends BSpline2dNd {
|
|
|
175935
175935
|
/** Return a simple array of the control points. */
|
|
175936
175936
|
copyPoints4d() { return _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_6__.Point4dArray.unpackToPoint4dArray(this.coffs); }
|
|
175937
175937
|
/** Return a simple array of the control points. */
|
|
175938
|
-
copyPointsAndWeights(points, weights, formatter = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create) {
|
|
175938
|
+
copyPointsAndWeights(points, weights, formatter = (x, y, z) => _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(x, y, z)) {
|
|
175939
175939
|
_geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_6__.Point4dArray.unpackFloat64ArrayToPointsAndWeights(this.coffs, points, weights, formatter);
|
|
175940
175940
|
}
|
|
175941
175941
|
/** unpack from xyzw xyzw ... to packed xyz, optionally unweighted
|
|
@@ -177146,7 +177146,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
177146
177146
|
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
177147
177147
|
/* harmony import */ var _curve_internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../curve/internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
|
|
177148
177148
|
/* harmony import */ var _curve_internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
177149
|
-
/* harmony import */ var
|
|
177149
|
+
/* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
177150
177150
|
/* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
177151
177151
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
177152
177152
|
/* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
|
|
@@ -177362,7 +177362,7 @@ class BezierCurveBase extends _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__
|
|
|
177362
177362
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
177363
177363
|
*/
|
|
177364
177364
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
177365
|
-
const options =
|
|
177365
|
+
const options = _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_7__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
177366
177366
|
const handler = new _curve_internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_8__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
|
|
177367
177367
|
this.emitStrokableParts(handler, options.strokeOptions);
|
|
177368
177368
|
return handler.claimResult();
|
|
@@ -183193,161 +183193,160 @@ class LineStringOffsetClipperContext {
|
|
|
183193
183193
|
"use strict";
|
|
183194
183194
|
__webpack_require__.r(__webpack_exports__);
|
|
183195
183195
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
183196
|
-
/* harmony export */ AbstractNewtonIterator: () => (/* reexport safe */
|
|
183197
|
-
/* harmony export */ AkimaCurve3d: () => (/* reexport safe */
|
|
183198
|
-
/* harmony export */ AkimaCurve3dOptions: () => (/* reexport safe */
|
|
183199
|
-
/* harmony export */ AnalyticRoots: () => (/* reexport safe */
|
|
183196
|
+
/* harmony export */ AbstractNewtonIterator: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.AbstractNewtonIterator),
|
|
183197
|
+
/* harmony export */ AkimaCurve3d: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_100__.AkimaCurve3d),
|
|
183198
|
+
/* harmony export */ AkimaCurve3dOptions: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_100__.AkimaCurve3dOptions),
|
|
183199
|
+
/* harmony export */ AnalyticRoots: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.AnalyticRoots),
|
|
183200
183200
|
/* harmony export */ Angle: () => (/* reexport safe */ _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__.Angle),
|
|
183201
183201
|
/* harmony export */ AngleSweep: () => (/* reexport safe */ _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep),
|
|
183202
|
-
/* harmony export */ AnnotatedLineString3d: () => (/* reexport safe */
|
|
183203
|
-
/* harmony export */ Arc3d: () => (/* reexport safe */
|
|
183204
|
-
/* harmony export */ AuxChannel: () => (/* reexport safe */
|
|
183205
|
-
/* harmony export */ AuxChannelData: () => (/* reexport safe */
|
|
183206
|
-
/* harmony export */ AuxChannelDataType: () => (/* reexport safe */
|
|
183207
|
-
/* harmony export */ AxisIndex: () => (/* reexport safe */
|
|
183208
|
-
/* harmony export */ AxisOrder: () => (/* reexport safe */
|
|
183209
|
-
/* harmony export */ AxisScaleSelect: () => (/* reexport safe */
|
|
183210
|
-
/* harmony export */ BSpline1dNd: () => (/* reexport safe */
|
|
183211
|
-
/* harmony export */ BSpline2dNd: () => (/* reexport safe */
|
|
183212
|
-
/* harmony export */ BSplineCurve3d: () => (/* reexport safe */
|
|
183213
|
-
/* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */
|
|
183214
|
-
/* harmony export */ BSplineCurve3dH: () => (/* reexport safe */
|
|
183215
|
-
/* harmony export */ BSplineCurveOps: () => (/* reexport safe */
|
|
183216
|
-
/* harmony export */ BSplineSurface3d: () => (/* reexport safe */
|
|
183217
|
-
/* harmony export */ BSplineSurface3dH: () => (/* reexport safe */
|
|
183218
|
-
/* harmony export */ BSplineWrapMode: () => (/* reexport safe */
|
|
183219
|
-
/* harmony export */ BagOfCurves: () => (/* reexport safe */
|
|
183202
|
+
/* harmony export */ AnnotatedLineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_76__.AnnotatedLineString3d),
|
|
183203
|
+
/* harmony export */ Arc3d: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__.Arc3d),
|
|
183204
|
+
/* harmony export */ AuxChannel: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__.AuxChannel),
|
|
183205
|
+
/* harmony export */ AuxChannelData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__.AuxChannelData),
|
|
183206
|
+
/* harmony export */ AuxChannelDataType: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__.AuxChannelDataType),
|
|
183207
|
+
/* harmony export */ AxisIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisIndex),
|
|
183208
|
+
/* harmony export */ AxisOrder: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisOrder),
|
|
183209
|
+
/* harmony export */ AxisScaleSelect: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisScaleSelect),
|
|
183210
|
+
/* harmony export */ BSpline1dNd: () => (/* reexport safe */ _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_107__.BSpline1dNd),
|
|
183211
|
+
/* harmony export */ BSpline2dNd: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.BSpline2dNd),
|
|
183212
|
+
/* harmony export */ BSplineCurve3d: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_105__.BSplineCurve3d),
|
|
183213
|
+
/* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_105__.BSplineCurve3dBase),
|
|
183214
|
+
/* harmony export */ BSplineCurve3dH: () => (/* reexport safe */ _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_108__.BSplineCurve3dH),
|
|
183215
|
+
/* harmony export */ BSplineCurveOps: () => (/* reexport safe */ _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_106__.BSplineCurveOps),
|
|
183216
|
+
/* harmony export */ BSplineSurface3d: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.BSplineSurface3d),
|
|
183217
|
+
/* harmony export */ BSplineSurface3dH: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.BSplineSurface3dH),
|
|
183218
|
+
/* harmony export */ BSplineWrapMode: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_111__.BSplineWrapMode),
|
|
183219
|
+
/* harmony export */ BagOfCurves: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.BagOfCurves),
|
|
183220
183220
|
/* harmony export */ BarycentricTriangle: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.BarycentricTriangle),
|
|
183221
|
-
/* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */
|
|
183222
|
-
/* harmony export */ Bezier1dNd: () => (/* reexport safe */
|
|
183223
|
-
/* harmony export */ BezierBezierIntersectionXYRRToRRD: () => (/* reexport safe */
|
|
183224
|
-
/* harmony export */ BezierCoffs: () => (/* reexport safe */
|
|
183225
|
-
/* harmony export */ BezierCurve3d: () => (/* reexport safe */
|
|
183226
|
-
/* harmony export */ BezierCurve3dH: () => (/* reexport safe */
|
|
183227
|
-
/* harmony export */ BezierCurveBase: () => (/* reexport safe */
|
|
183228
|
-
/* harmony export */ BezierPolynomialAlgebra: () => (/* reexport safe */
|
|
183221
|
+
/* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__.BentleyGeometryFlatBuffer),
|
|
183222
|
+
/* harmony export */ Bezier1dNd: () => (/* reexport safe */ _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_101__.Bezier1dNd),
|
|
183223
|
+
/* harmony export */ BezierBezierIntersectionXYRRToRRD: () => (/* reexport safe */ _curve_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_67__.BezierBezierIntersectionXYRRToRRD),
|
|
183224
|
+
/* harmony export */ BezierCoffs: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierCoffs),
|
|
183225
|
+
/* harmony export */ BezierCurve3d: () => (/* reexport safe */ _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_103__.BezierCurve3d),
|
|
183226
|
+
/* harmony export */ BezierCurve3dH: () => (/* reexport safe */ _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_104__.BezierCurve3dH),
|
|
183227
|
+
/* harmony export */ BezierCurveBase: () => (/* reexport safe */ _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_102__.BezierCurveBase),
|
|
183228
|
+
/* harmony export */ BezierPolynomialAlgebra: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierPolynomialAlgebra),
|
|
183229
183229
|
/* harmony export */ BilinearPatch: () => (/* reexport safe */ _geometry3d_BilinearPatch__WEBPACK_IMPORTED_MODULE_4__.BilinearPatch),
|
|
183230
|
-
/* harmony export */ BilinearPolynomial: () => (/* reexport safe */
|
|
183231
|
-
/* harmony export */ BooleanClipFactory: () => (/* reexport safe */
|
|
183232
|
-
/* harmony export */ Box: () => (/* reexport safe */
|
|
183233
|
-
/* harmony export */ BoxTopology: () => (/* reexport safe */
|
|
183234
|
-
/* harmony export */ ClipMaskXYZRangePlanes: () => (/* reexport safe */
|
|
183235
|
-
/* harmony export */ ClipPlane: () => (/* reexport safe */
|
|
183236
|
-
/* harmony export */ ClipPlaneContainment: () => (/* reexport safe */
|
|
183237
|
-
/* harmony export */ ClipPrimitive: () => (/* reexport safe */
|
|
183238
|
-
/* harmony export */ ClipShape: () => (/* reexport safe */
|
|
183239
|
-
/* harmony export */ ClipStatus: () => (/* reexport safe */
|
|
183240
|
-
/* harmony export */ ClipStepAction: () => (/* reexport safe */
|
|
183241
|
-
/* harmony export */ ClipUtilities: () => (/* reexport safe */
|
|
183242
|
-
/* harmony export */ ClipVector: () => (/* reexport safe */
|
|
183243
|
-
/* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */
|
|
183244
|
-
/* harmony export */ ClusterableArray: () => (/* reexport safe */
|
|
183245
|
-
/* harmony export */ Complex: () => (/* reexport safe */
|
|
183246
|
-
/* harmony export */ Cone: () => (/* reexport safe */
|
|
183247
|
-
/* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */
|
|
183248
|
-
/* harmony export */ Constant: () => (/* reexport safe */
|
|
183249
|
-
/* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */
|
|
183250
|
-
/* harmony export */ ConvexClipPlaneSet: () => (/* reexport safe */
|
|
183251
|
-
/* harmony export */ ConvexFacetLocationDetail: () => (/* reexport safe */
|
|
183252
|
-
/* harmony export */ ConvexPolygon2d: () => (/* reexport safe */
|
|
183253
|
-
/* harmony export */ CoordinateXYZ: () => (/* reexport safe */
|
|
183254
|
-
/* harmony export */ CurveChain: () => (/* reexport safe */
|
|
183255
|
-
/* harmony export */
|
|
183256
|
-
/* harmony export */
|
|
183257
|
-
/* harmony export */
|
|
183258
|
-
/* harmony export */
|
|
183259
|
-
/* harmony export */
|
|
183260
|
-
/* harmony export */
|
|
183261
|
-
/* harmony export */
|
|
183262
|
-
/* harmony export */
|
|
183263
|
-
/* harmony export */
|
|
183264
|
-
/* harmony export */
|
|
183265
|
-
/* harmony export */
|
|
183266
|
-
/* harmony export */
|
|
183267
|
-
/* harmony export */
|
|
183268
|
-
/* harmony export */
|
|
183269
|
-
/* harmony export */ CurvePrimitive: () => (/* reexport safe */
|
|
183270
|
-
/* harmony export */ CurveSearchStatus: () => (/* reexport safe */
|
|
183230
|
+
/* harmony export */ BilinearPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.BilinearPolynomial),
|
|
183231
|
+
/* harmony export */ BooleanClipFactory: () => (/* reexport safe */ _clipping_BooleanClipFactory__WEBPACK_IMPORTED_MODULE_38__.BooleanClipFactory),
|
|
183232
|
+
/* harmony export */ Box: () => (/* reexport safe */ _solid_Box__WEBPACK_IMPORTED_MODULE_91__.Box),
|
|
183233
|
+
/* harmony export */ BoxTopology: () => (/* reexport safe */ _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_113__.BoxTopology),
|
|
183234
|
+
/* harmony export */ ClipMaskXYZRangePlanes: () => (/* reexport safe */ _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__.ClipMaskXYZRangePlanes),
|
|
183235
|
+
/* harmony export */ ClipPlane: () => (/* reexport safe */ _clipping_ClipPlane__WEBPACK_IMPORTED_MODULE_39__.ClipPlane),
|
|
183236
|
+
/* harmony export */ ClipPlaneContainment: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipPlaneContainment),
|
|
183237
|
+
/* harmony export */ ClipPrimitive: () => (/* reexport safe */ _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__.ClipPrimitive),
|
|
183238
|
+
/* harmony export */ ClipShape: () => (/* reexport safe */ _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__.ClipShape),
|
|
183239
|
+
/* harmony export */ ClipStatus: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipStatus),
|
|
183240
|
+
/* harmony export */ ClipStepAction: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipStepAction),
|
|
183241
|
+
/* harmony export */ ClipUtilities: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipUtilities),
|
|
183242
|
+
/* harmony export */ ClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.ClipVector),
|
|
183243
|
+
/* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.ClippedPolyfaceBuilders),
|
|
183244
|
+
/* harmony export */ ClusterableArray: () => (/* reexport safe */ _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__.ClusterableArray),
|
|
183245
|
+
/* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__.Complex),
|
|
183246
|
+
/* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_92__.Cone),
|
|
183247
|
+
/* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.ConsolidateAdjacentCurvePrimitivesOptions),
|
|
183248
|
+
/* harmony export */ Constant: () => (/* reexport safe */ _Constant__WEBPACK_IMPORTED_MODULE_37__.Constant),
|
|
183249
|
+
/* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__.ConstructCurveBetweenCurves),
|
|
183250
|
+
/* harmony export */ ConvexClipPlaneSet: () => (/* reexport safe */ _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_40__.ConvexClipPlaneSet),
|
|
183251
|
+
/* harmony export */ ConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__.ConvexFacetLocationDetail),
|
|
183252
|
+
/* harmony export */ ConvexPolygon2d: () => (/* reexport safe */ _numerics_ConvexPolygon2d__WEBPACK_IMPORTED_MODULE_45__.ConvexPolygon2d),
|
|
183253
|
+
/* harmony export */ CoordinateXYZ: () => (/* reexport safe */ _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_62__.CoordinateXYZ),
|
|
183254
|
+
/* harmony export */ CurveChain: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.CurveChain),
|
|
183255
|
+
/* harmony export */ CurveChainWithDistanceIndex: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__.CurveChainWithDistanceIndex),
|
|
183256
|
+
/* harmony export */ CurveCollection: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.CurveCollection),
|
|
183257
|
+
/* harmony export */ CurveCurve: () => (/* reexport safe */ _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_66__.CurveCurve),
|
|
183258
|
+
/* harmony export */ CurveCurveApproachType: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveCurveApproachType),
|
|
183259
|
+
/* harmony export */ CurveCurveIntersectXY: () => (/* reexport safe */ _curve_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_67__.CurveCurveIntersectXY),
|
|
183260
|
+
/* harmony export */ CurveCurveIntersectXYZ: () => (/* reexport safe */ _curve_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_68__.CurveCurveIntersectXYZ),
|
|
183261
|
+
/* harmony export */ CurveExtendMode: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__.CurveExtendMode),
|
|
183262
|
+
/* harmony export */ CurveExtendOptions: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__.CurveExtendOptions),
|
|
183263
|
+
/* harmony export */ CurveFactory: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_70__.CurveFactory),
|
|
183264
|
+
/* harmony export */ CurveIntervalRole: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveIntervalRole),
|
|
183265
|
+
/* harmony export */ CurveLocationDetail: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveLocationDetail),
|
|
183266
|
+
/* harmony export */ CurveLocationDetailArrayPair: () => (/* reexport safe */ _curve_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetailArrayPair),
|
|
183267
|
+
/* harmony export */ CurveLocationDetailPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveLocationDetailPair),
|
|
183268
|
+
/* harmony export */ CurveOps: () => (/* reexport safe */ _curve_CurveOps__WEBPACK_IMPORTED_MODULE_71__.CurveOps),
|
|
183269
|
+
/* harmony export */ CurvePrimitive: () => (/* reexport safe */ _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_72__.CurvePrimitive),
|
|
183270
|
+
/* harmony export */ CurveSearchStatus: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveSearchStatus),
|
|
183271
183271
|
/* harmony export */ CutLoop: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoop),
|
|
183272
183272
|
/* harmony export */ CutLoopMergeContext: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoopMergeContext),
|
|
183273
|
-
/* harmony export */ DeepCompare: () => (/* reexport safe */
|
|
183274
|
-
/* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */
|
|
183275
|
-
/* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */
|
|
183276
|
-
/* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */
|
|
183277
|
-
/* harmony export */ DirectSpiral3d: () => (/* reexport safe */
|
|
183278
|
-
/* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */
|
|
183273
|
+
/* harmony export */ DeepCompare: () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__.DeepCompare),
|
|
183274
|
+
/* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree2PowerPolynomial),
|
|
183275
|
+
/* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree3PowerPolynomial),
|
|
183276
|
+
/* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree4PowerPolynomial),
|
|
183277
|
+
/* harmony export */ DirectSpiral3d: () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_88__.DirectSpiral3d),
|
|
183278
|
+
/* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.DuplicateFacetClusterSelector),
|
|
183279
183279
|
/* harmony export */ Ellipsoid: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.Ellipsoid),
|
|
183280
183280
|
/* harmony export */ EllipsoidPatch: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.EllipsoidPatch),
|
|
183281
|
-
/* harmony export */ FacetFaceData: () => (/* reexport safe */
|
|
183282
|
-
/* harmony export */ FacetIntersectOptions: () => (/* reexport safe */
|
|
183281
|
+
/* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_114__.FacetFaceData),
|
|
183282
|
+
/* harmony export */ FacetIntersectOptions: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__.FacetIntersectOptions),
|
|
183283
183283
|
/* harmony export */ FrameBuilder: () => (/* reexport safe */ _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_6__.FrameBuilder),
|
|
183284
|
-
/* harmony export */ GaussMapper: () => (/* reexport safe */
|
|
183284
|
+
/* harmony export */ GaussMapper: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__.GaussMapper),
|
|
183285
183285
|
/* harmony export */ GeodesicPathPoint: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathPoint),
|
|
183286
183286
|
/* harmony export */ GeodesicPathSolver: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathSolver),
|
|
183287
|
-
/* harmony export */ Geometry: () => (/* reexport safe */
|
|
183287
|
+
/* harmony export */ Geometry: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.Geometry),
|
|
183288
183288
|
/* harmony export */ GeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.GeometryHandler),
|
|
183289
|
-
/* harmony export */ GeometryQuery: () => (/* reexport safe */
|
|
183289
|
+
/* harmony export */ GeometryQuery: () => (/* reexport safe */ _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_74__.GeometryQuery),
|
|
183290
183290
|
/* harmony export */ GrowableBlockedArray: () => (/* reexport safe */ _geometry3d_GrowableBlockedArray__WEBPACK_IMPORTED_MODULE_9__.GrowableBlockedArray),
|
|
183291
183291
|
/* harmony export */ GrowableFloat64Array: () => (/* reexport safe */ _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_10__.GrowableFloat64Array),
|
|
183292
183292
|
/* harmony export */ GrowableXYArray: () => (/* reexport safe */ _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYArray),
|
|
183293
183293
|
/* harmony export */ GrowableXYZArray: () => (/* reexport safe */ _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray),
|
|
183294
|
-
/* harmony export */ HalfEdge: () => (/* reexport safe */
|
|
183295
|
-
/* harmony export */ HalfEdgeGraph: () => (/* reexport safe */
|
|
183296
|
-
/* harmony export */ HalfEdgeMask: () => (/* reexport safe */
|
|
183297
|
-
/* harmony export */ IModelJson: () => (/* reexport safe */
|
|
183298
|
-
/* harmony export */ ImplicitLineXY: () => (/* reexport safe */
|
|
183294
|
+
/* harmony export */ HalfEdge: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdge),
|
|
183295
|
+
/* harmony export */ HalfEdgeGraph: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeGraph),
|
|
183296
|
+
/* harmony export */ HalfEdgeMask: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeMask),
|
|
183297
|
+
/* harmony export */ IModelJson: () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__.IModelJson),
|
|
183298
|
+
/* harmony export */ ImplicitLineXY: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.ImplicitLineXY),
|
|
183299
183299
|
/* harmony export */ IndexedCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedCollectionInterval),
|
|
183300
|
-
/* harmony export */ IndexedPolyface: () => (/* reexport safe */
|
|
183301
|
-
/* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */
|
|
183302
|
-
/* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */
|
|
183300
|
+
/* harmony export */ IndexedPolyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_115__.IndexedPolyface),
|
|
183301
|
+
/* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_117__.IndexedPolyfaceSubsetVisitor),
|
|
183302
|
+
/* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_117__.IndexedPolyfaceVisitor),
|
|
183303
183303
|
/* harmony export */ IndexedReadWriteXYZCollection: () => (/* reexport safe */ _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_15__.IndexedReadWriteXYZCollection),
|
|
183304
183304
|
/* harmony export */ IndexedXYCollection: () => (/* reexport safe */ _geometry3d_IndexedXYCollection__WEBPACK_IMPORTED_MODULE_14__.IndexedXYCollection),
|
|
183305
183305
|
/* harmony export */ IndexedXYZCollection: () => (/* reexport safe */ _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_15__.IndexedXYZCollection),
|
|
183306
183306
|
/* harmony export */ IndexedXYZCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedXYZCollectionInterval),
|
|
183307
183307
|
/* harmony export */ IndexedXYZCollectionPolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.IndexedXYZCollectionPolygonOps),
|
|
183308
|
-
/* harmony export */ IntegratedSpiral3d: () => (/* reexport safe */
|
|
183309
|
-
/* harmony export */ InterpolationCurve3d: () => (/* reexport safe */
|
|
183310
|
-
/* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */
|
|
183308
|
+
/* harmony export */ IntegratedSpiral3d: () => (/* reexport safe */ _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_87__.IntegratedSpiral3d),
|
|
183309
|
+
/* harmony export */ InterpolationCurve3d: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_110__.InterpolationCurve3d),
|
|
183310
|
+
/* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_110__.InterpolationCurve3dOptions),
|
|
183311
183311
|
/* harmony export */ InverseMatrixState: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.InverseMatrixState),
|
|
183312
|
-
/* harmony export */ JointOptions: () => (/* reexport safe */
|
|
183313
|
-
/* harmony export */ KnotVector: () => (/* reexport safe */
|
|
183314
|
-
/* harmony export */ LineSegment3d: () => (/* reexport safe */
|
|
183315
|
-
/* harmony export */ LineString3d: () => (/* reexport safe */
|
|
183316
|
-
/* harmony export */ LinearSweep: () => (/* reexport safe */
|
|
183312
|
+
/* harmony export */ JointOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_78__.JointOptions),
|
|
183313
|
+
/* harmony export */ KnotVector: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_111__.KnotVector),
|
|
183314
|
+
/* harmony export */ LineSegment3d: () => (/* reexport safe */ _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_75__.LineSegment3d),
|
|
183315
|
+
/* harmony export */ LineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_76__.LineString3d),
|
|
183316
|
+
/* harmony export */ LinearSweep: () => (/* reexport safe */ _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_93__.LinearSweep),
|
|
183317
183317
|
/* harmony export */ LongitudeLatitudeNumber: () => (/* reexport safe */ _geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_2__.LongitudeLatitudeNumber),
|
|
183318
|
-
/* harmony export */ Loop: () => (/* reexport safe */
|
|
183319
|
-
/* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */
|
|
183320
|
-
/* harmony export */ Map4d: () => (/* reexport safe */
|
|
183318
|
+
/* harmony export */ Loop: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_77__.Loop),
|
|
183319
|
+
/* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_77__.LoopCurveLoopCurve),
|
|
183320
|
+
/* harmony export */ Map4d: () => (/* reexport safe */ _geometry4d_Map4d__WEBPACK_IMPORTED_MODULE_49__.Map4d),
|
|
183321
183321
|
/* harmony export */ Matrix3d: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.Matrix3d),
|
|
183322
|
-
/* harmony export */ Matrix4d: () => (/* reexport safe */
|
|
183323
|
-
/* harmony export */ MiteredSweepOutputSelect: () => (/* reexport safe */
|
|
183324
|
-
/* harmony export */ MomentData: () => (/* reexport safe */
|
|
183325
|
-
/* harmony export */
|
|
183326
|
-
/* harmony export */
|
|
183327
|
-
/* harmony export */
|
|
183328
|
-
/* harmony export */
|
|
183329
|
-
/* harmony export */
|
|
183330
|
-
/* harmony export */
|
|
183331
|
-
/* harmony export */
|
|
183332
|
-
/* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.NonConvexFacetLocationDetail),
|
|
183322
|
+
/* harmony export */ Matrix4d: () => (/* reexport safe */ _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_48__.Matrix4d),
|
|
183323
|
+
/* harmony export */ MiteredSweepOutputSelect: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_70__.MiteredSweepOutputSelect),
|
|
183324
|
+
/* harmony export */ MomentData: () => (/* reexport safe */ _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_50__.MomentData),
|
|
183325
|
+
/* harmony export */ Newton1dUnbounded: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton1dUnbounded),
|
|
183326
|
+
/* harmony export */ Newton1dUnboundedApproximateDerivative: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton1dUnboundedApproximateDerivative),
|
|
183327
|
+
/* harmony export */ Newton2dUnboundedWithDerivative: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton2dUnboundedWithDerivative),
|
|
183328
|
+
/* harmony export */ NewtonEvaluatorRRtoRRD: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRRtoRRD),
|
|
183329
|
+
/* harmony export */ NewtonEvaluatorRtoR: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRtoR),
|
|
183330
|
+
/* harmony export */ NewtonEvaluatorRtoRD: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRtoRD),
|
|
183331
|
+
/* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__.NonConvexFacetLocationDetail),
|
|
183333
183332
|
/* harmony export */ NullGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.NullGeometryHandler),
|
|
183334
183333
|
/* harmony export */ NumberArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.NumberArray),
|
|
183335
|
-
/* harmony export */ OffsetMeshOptions: () => (/* reexport safe */
|
|
183336
|
-
/* harmony export */ OffsetOptions: () => (/* reexport safe */
|
|
183337
|
-
/* harmony export */ Order2Bezier: () => (/* reexport safe */
|
|
183338
|
-
/* harmony export */ Order3Bezier: () => (/* reexport safe */
|
|
183339
|
-
/* harmony export */ Order4Bezier: () => (/* reexport safe */
|
|
183340
|
-
/* harmony export */ Order5Bezier: () => (/* reexport safe */
|
|
183334
|
+
/* harmony export */ OffsetMeshOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.OffsetMeshOptions),
|
|
183335
|
+
/* harmony export */ OffsetOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_78__.OffsetOptions),
|
|
183336
|
+
/* harmony export */ Order2Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order2Bezier),
|
|
183337
|
+
/* harmony export */ Order3Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order3Bezier),
|
|
183338
|
+
/* harmony export */ Order4Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order4Bezier),
|
|
183339
|
+
/* harmony export */ Order5Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order5Bezier),
|
|
183341
183340
|
/* harmony export */ OrderedRotationAngles: () => (/* reexport safe */ _geometry3d_OrderedRotationAngles__WEBPACK_IMPORTED_MODULE_17__.OrderedRotationAngles),
|
|
183342
183341
|
/* harmony export */ PackedMatrix3dOps: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.PackedMatrix3dOps),
|
|
183343
|
-
/* harmony export */ ParityRegion: () => (/* reexport safe */
|
|
183344
|
-
/* harmony export */ PascalCoefficients: () => (/* reexport safe */
|
|
183345
|
-
/* harmony export */ Path: () => (/* reexport safe */
|
|
183346
|
-
/* harmony export */ PathFragment: () => (/* reexport safe */
|
|
183342
|
+
/* harmony export */ ParityRegion: () => (/* reexport safe */ _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_79__.ParityRegion),
|
|
183343
|
+
/* harmony export */ PascalCoefficients: () => (/* reexport safe */ _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_55__.PascalCoefficients),
|
|
183344
|
+
/* harmony export */ Path: () => (/* reexport safe */ _curve_Path__WEBPACK_IMPORTED_MODULE_80__.Path),
|
|
183345
|
+
/* harmony export */ PathFragment: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__.PathFragment),
|
|
183347
183346
|
/* harmony export */ Plane3d: () => (/* reexport safe */ _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_18__.Plane3d),
|
|
183348
183347
|
/* harmony export */ Plane3dByOriginAndUnitNormal: () => (/* reexport safe */ _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_19__.Plane3dByOriginAndUnitNormal),
|
|
183349
183348
|
/* harmony export */ Plane3dByOriginAndVectors: () => (/* reexport safe */ _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_20__.Plane3dByOriginAndVectors),
|
|
183350
|
-
/* harmony export */ PlaneByOriginAndVectors4d: () => (/* reexport safe */
|
|
183349
|
+
/* harmony export */ PlaneByOriginAndVectors4d: () => (/* reexport safe */ _geometry4d_PlaneByOriginAndVectors4d__WEBPACK_IMPORTED_MODULE_46__.PlaneByOriginAndVectors4d),
|
|
183351
183350
|
/* harmony export */ Point2d: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.Point2d),
|
|
183352
183351
|
/* harmony export */ Point2dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Point2dArray),
|
|
183353
183352
|
/* harmony export */ Point2dArrayCarrier: () => (/* reexport safe */ _geometry3d_Point2dArrayCarrier__WEBPACK_IMPORTED_MODULE_21__.Point2dArrayCarrier),
|
|
@@ -183355,81 +183354,80 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
183355
183354
|
/* harmony export */ Point3dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Point3dArray),
|
|
183356
183355
|
/* harmony export */ Point3dArrayCarrier: () => (/* reexport safe */ _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_25__.Point3dArrayCarrier),
|
|
183357
183356
|
/* harmony export */ Point3dArrayPolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.Point3dArrayPolygonOps),
|
|
183358
|
-
/* harmony export */ Point4d: () => (/* reexport safe */
|
|
183357
|
+
/* harmony export */ Point4d: () => (/* reexport safe */ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_47__.Point4d),
|
|
183359
183358
|
/* harmony export */ Point4dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Point4dArray),
|
|
183360
|
-
/* harmony export */ PointString3d: () => (/* reexport safe */
|
|
183361
|
-
/* harmony export */ Polyface: () => (/* reexport safe */
|
|
183362
|
-
/* harmony export */ PolyfaceAuxData: () => (/* reexport safe */
|
|
183363
|
-
/* harmony export */ PolyfaceBuilder: () => (/* reexport safe */
|
|
183364
|
-
/* harmony export */ PolyfaceClip: () => (/* reexport safe */
|
|
183365
|
-
/* harmony export */ PolyfaceData: () => (/* reexport safe */
|
|
183366
|
-
/* harmony export */ PolyfaceQuery: () => (/* reexport safe */
|
|
183367
|
-
/* harmony export */ PolygonLocation: () => (/* reexport safe */
|
|
183359
|
+
/* harmony export */ PointString3d: () => (/* reexport safe */ _curve_PointString3d__WEBPACK_IMPORTED_MODULE_83__.PointString3d),
|
|
183360
|
+
/* harmony export */ Polyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_115__.Polyface),
|
|
183361
|
+
/* harmony export */ PolyfaceAuxData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__.PolyfaceAuxData),
|
|
183362
|
+
/* harmony export */ PolyfaceBuilder: () => (/* reexport safe */ _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__.PolyfaceBuilder),
|
|
183363
|
+
/* harmony export */ PolyfaceClip: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.PolyfaceClip),
|
|
183364
|
+
/* harmony export */ PolyfaceData: () => (/* reexport safe */ _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__.PolyfaceData),
|
|
183365
|
+
/* harmony export */ PolyfaceQuery: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.PolyfaceQuery),
|
|
183366
|
+
/* harmony export */ PolygonLocation: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.PolygonLocation),
|
|
183368
183367
|
/* harmony export */ PolygonLocationDetail: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonLocationDetail),
|
|
183369
183368
|
/* harmony export */ PolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonOps),
|
|
183370
|
-
/* harmony export */ PolygonWireOffsetContext: () => (/* reexport safe */ _curve_internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_80__.PolygonWireOffsetContext),
|
|
183371
183369
|
/* harmony export */ PolylineOps: () => (/* reexport safe */ _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_26__.PolylineOps),
|
|
183372
|
-
/* harmony export */ PowerPolynomial: () => (/* reexport safe */
|
|
183373
|
-
/* harmony export */ ProxyCurve: () => (/* reexport safe */
|
|
183374
|
-
/* harmony export */ Quadrature: () => (/* reexport safe */
|
|
183370
|
+
/* harmony export */ PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.PowerPolynomial),
|
|
183371
|
+
/* harmony export */ ProxyCurve: () => (/* reexport safe */ _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_84__.ProxyCurve),
|
|
183372
|
+
/* harmony export */ Quadrature: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__.Quadrature),
|
|
183375
183373
|
/* harmony export */ Range1d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range1d),
|
|
183376
|
-
/* harmony export */ Range1dArray: () => (/* reexport safe */
|
|
183374
|
+
/* harmony export */ Range1dArray: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__.Range1dArray),
|
|
183377
183375
|
/* harmony export */ Range2d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range2d),
|
|
183378
183376
|
/* harmony export */ Range3d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d),
|
|
183379
183377
|
/* harmony export */ RangeBase: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.RangeBase),
|
|
183380
|
-
/* harmony export */ Ray2d: () => (/* reexport safe */
|
|
183381
|
-
/* harmony export */ Ray3d: () => (/* reexport safe */
|
|
183378
|
+
/* harmony export */ Ray2d: () => (/* reexport safe */ _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_29__.Ray2d),
|
|
183379
|
+
/* harmony export */ Ray3d: () => (/* reexport safe */ _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_30__.Ray3d),
|
|
183382
183380
|
/* harmony export */ RecurseToCurvesGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.RecurseToCurvesGeometryHandler),
|
|
183383
|
-
/* harmony export */ RecursiveCurveProcessor: () => (/* reexport safe */
|
|
183384
|
-
/* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */
|
|
183385
|
-
/* harmony export */ RegionBinaryOpType: () => (/* reexport safe */
|
|
183386
|
-
/* harmony export */ RegionMomentsXY: () => (/* reexport safe */
|
|
183387
|
-
/* harmony export */ RegionOps: () => (/* reexport safe */
|
|
183388
|
-
/* harmony export */ RotationalSweep: () => (/* reexport safe */
|
|
183389
|
-
/* harmony export */ RuledSweep: () => (/* reexport safe */
|
|
183390
|
-
/* harmony export */ Sample: () => (/* reexport safe */
|
|
183391
|
-
/* harmony export */ Segment1d: () => (/* reexport safe */
|
|
183392
|
-
/* harmony export */ SimpleNewton: () => (/* reexport safe */
|
|
183393
|
-
/* harmony export */ SineCosinePolynomial: () => (/* reexport safe */
|
|
183394
|
-
/* harmony export */ SmallSystem: () => (/* reexport safe */
|
|
183381
|
+
/* harmony export */ RecursiveCurveProcessor: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_73__.RecursiveCurveProcessor),
|
|
183382
|
+
/* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_73__.RecursiveCurveProcessorWithStack),
|
|
183383
|
+
/* harmony export */ RegionBinaryOpType: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_82__.RegionBinaryOpType),
|
|
183384
|
+
/* harmony export */ RegionMomentsXY: () => (/* reexport safe */ _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_81__.RegionMomentsXY),
|
|
183385
|
+
/* harmony export */ RegionOps: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_82__.RegionOps),
|
|
183386
|
+
/* harmony export */ RotationalSweep: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_94__.RotationalSweep),
|
|
183387
|
+
/* harmony export */ RuledSweep: () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_95__.RuledSweep),
|
|
183388
|
+
/* harmony export */ Sample: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.Sample),
|
|
183389
|
+
/* harmony export */ Segment1d: () => (/* reexport safe */ _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_31__.Segment1d),
|
|
183390
|
+
/* harmony export */ SimpleNewton: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.SimpleNewton),
|
|
183391
|
+
/* harmony export */ SineCosinePolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SineCosinePolynomial),
|
|
183392
|
+
/* harmony export */ SmallSystem: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SmallSystem),
|
|
183395
183393
|
/* harmony export */ SmoothTransformBetweenFrusta: () => (/* reexport safe */ _geometry3d_FrustumAnimation__WEBPACK_IMPORTED_MODULE_7__.SmoothTransformBetweenFrusta),
|
|
183396
|
-
/* harmony export */ SolidPrimitive: () => (/* reexport safe */
|
|
183397
|
-
/* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */
|
|
183398
|
-
/* harmony export */ Sphere: () => (/* reexport safe */
|
|
183399
|
-
/* harmony export */ SphereImplicit: () => (/* reexport safe */
|
|
183400
|
-
/* harmony export */ StandardViewIndex: () => (/* reexport safe */
|
|
183401
|
-
/* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */
|
|
183402
|
-
/* harmony export */ StringifiedClipVector: () => (/* reexport safe */
|
|
183403
|
-
/* harmony export */ StrokeCountMap: () => (/* reexport safe */
|
|
183404
|
-
/* harmony export */ StrokeOptions: () => (/* reexport safe */
|
|
183405
|
-
/* harmony export */ SweepContour: () => (/* reexport safe */
|
|
183406
|
-
/* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */
|
|
183407
|
-
/* harmony export */ TaggedNumericConstants: () => (/* reexport safe */
|
|
183408
|
-
/* harmony export */ TaggedNumericData: () => (/* reexport safe */
|
|
183409
|
-
/* harmony export */ TorusImplicit: () => (/* reexport safe */
|
|
183410
|
-
/* harmony export */ TorusPipe: () => (/* reexport safe */
|
|
183411
|
-
/* harmony export */ Transform: () => (/* reexport safe */
|
|
183412
|
-
/* harmony export */ TransitionSpiral3d: () => (/* reexport safe */
|
|
183413
|
-
/* harmony export */ TriDiagonalSystem: () => (/* reexport safe */
|
|
183394
|
+
/* harmony export */ SolidPrimitive: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_96__.SolidPrimitive),
|
|
183395
|
+
/* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__.SpacePolygonTriangulation),
|
|
183396
|
+
/* harmony export */ Sphere: () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_97__.Sphere),
|
|
183397
|
+
/* harmony export */ SphereImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SphereImplicit),
|
|
183398
|
+
/* harmony export */ StandardViewIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.StandardViewIndex),
|
|
183399
|
+
/* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.SteppedIndexFunctionFactory),
|
|
183400
|
+
/* harmony export */ StringifiedClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.StringifiedClipVector),
|
|
183401
|
+
/* harmony export */ StrokeCountMap: () => (/* reexport safe */ _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_90__.StrokeCountMap),
|
|
183402
|
+
/* harmony export */ StrokeOptions: () => (/* reexport safe */ _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_85__.StrokeOptions),
|
|
183403
|
+
/* harmony export */ SweepContour: () => (/* reexport safe */ _solid_SweepContour__WEBPACK_IMPORTED_MODULE_98__.SweepContour),
|
|
183404
|
+
/* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.SweepLineStringToFacetsOptions),
|
|
183405
|
+
/* harmony export */ TaggedNumericConstants: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericConstants),
|
|
183406
|
+
/* harmony export */ TaggedNumericData: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericData),
|
|
183407
|
+
/* harmony export */ TorusImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TorusImplicit),
|
|
183408
|
+
/* harmony export */ TorusPipe: () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_99__.TorusPipe),
|
|
183409
|
+
/* harmony export */ Transform: () => (/* reexport safe */ _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_32__.Transform),
|
|
183410
|
+
/* harmony export */ TransitionSpiral3d: () => (/* reexport safe */ _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_86__.TransitionSpiral3d),
|
|
183411
|
+
/* harmony export */ TriDiagonalSystem: () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__.TriDiagonalSystem),
|
|
183414
183412
|
/* harmony export */ TriangleLocationDetail: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.TriangleLocationDetail),
|
|
183415
|
-
/* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */
|
|
183416
|
-
/* harmony export */ Triangulator: () => (/* reexport safe */
|
|
183417
|
-
/* harmony export */ TrigPolynomial: () => (/* reexport safe */
|
|
183418
|
-
/* harmony export */ UVSelect: () => (/* reexport safe */
|
|
183419
|
-
/* harmony export */ UVSurfaceOps: () => (/* reexport safe */
|
|
183420
|
-
/* harmony export */ UnionOfConvexClipPlaneSets: () => (/* reexport safe */
|
|
183421
|
-
/* harmony export */ UnionRegion: () => (/* reexport safe */
|
|
183422
|
-
/* harmony export */ UnivariateBezier: () => (/* reexport safe */
|
|
183413
|
+
/* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__.TriangularFacetLocationDetail),
|
|
183414
|
+
/* harmony export */ Triangulator: () => (/* reexport safe */ _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__.Triangulator),
|
|
183415
|
+
/* harmony export */ TrigPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TrigPolynomial),
|
|
183416
|
+
/* harmony export */ UVSelect: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.UVSelect),
|
|
183417
|
+
/* harmony export */ UVSurfaceOps: () => (/* reexport safe */ _geometry3d_UVSurfaceOps__WEBPACK_IMPORTED_MODULE_33__.UVSurfaceOps),
|
|
183418
|
+
/* harmony export */ UnionOfConvexClipPlaneSets: () => (/* reexport safe */ _clipping_UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_41__.UnionOfConvexClipPlaneSets),
|
|
183419
|
+
/* harmony export */ UnionRegion: () => (/* reexport safe */ _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_89__.UnionRegion),
|
|
183420
|
+
/* harmony export */ UnivariateBezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.UnivariateBezier),
|
|
183423
183421
|
/* harmony export */ Vector2d: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.Vector2d),
|
|
183424
183422
|
/* harmony export */ Vector3d: () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.Vector3d),
|
|
183425
183423
|
/* harmony export */ Vector3dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Vector3dArray),
|
|
183426
|
-
/* harmony export */ WeightStyle: () => (/* reexport safe */
|
|
183424
|
+
/* harmony export */ WeightStyle: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.WeightStyle),
|
|
183427
183425
|
/* harmony export */ XY: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.XY),
|
|
183428
|
-
/* harmony export */ XYAndZ: () => (/* reexport safe */
|
|
183426
|
+
/* harmony export */ XYAndZ: () => (/* reexport safe */ _geometry3d_XYZProps__WEBPACK_IMPORTED_MODULE_34__.XYAndZ),
|
|
183429
183427
|
/* harmony export */ XYZ: () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.XYZ),
|
|
183430
|
-
/* harmony export */ YawPitchRollAngles: () => (/* reexport safe */
|
|
183431
|
-
/* harmony export */ compareRange1dLexicalLowHigh: () => (/* reexport safe */
|
|
183432
|
-
/* harmony export */ interpolateColor: () => (/* reexport safe */
|
|
183428
|
+
/* harmony export */ YawPitchRollAngles: () => (/* reexport safe */ _geometry3d_YawPitchRollAngles__WEBPACK_IMPORTED_MODULE_35__.YawPitchRollAngles),
|
|
183429
|
+
/* harmony export */ compareRange1dLexicalLowHigh: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__.compareRange1dLexicalLowHigh),
|
|
183430
|
+
/* harmony export */ interpolateColor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_117__.interpolateColor)
|
|
183433
183431
|
/* harmony export */ });
|
|
183434
183432
|
/* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
|
|
183435
183433
|
/* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
|
|
@@ -183460,106 +183458,107 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
183460
183458
|
/* harmony import */ var _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./geometry3d/PolylineOps */ "../../core/geometry/lib/esm/geometry3d/PolylineOps.js");
|
|
183461
183459
|
/* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
|
|
183462
183460
|
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
183463
|
-
/* harmony import */ var
|
|
183464
|
-
/* harmony import */ var
|
|
183465
|
-
/* harmony import */ var
|
|
183466
|
-
/* harmony import */ var
|
|
183467
|
-
/* harmony import */ var
|
|
183468
|
-
/* harmony import */ var
|
|
183469
|
-
/* harmony import */ var
|
|
183470
|
-
/* harmony import */ var
|
|
183471
|
-
/* harmony import */ var
|
|
183472
|
-
/* harmony import */ var
|
|
183473
|
-
/* harmony import */ var
|
|
183474
|
-
/* harmony import */ var
|
|
183475
|
-
/* harmony import */ var
|
|
183476
|
-
/* harmony import */ var
|
|
183477
|
-
/* harmony import */ var
|
|
183478
|
-
/* harmony import */ var
|
|
183479
|
-
/* harmony import */ var
|
|
183480
|
-
/* harmony import */ var
|
|
183481
|
-
/* harmony import */ var
|
|
183482
|
-
/* harmony import */ var
|
|
183483
|
-
/* harmony import */ var
|
|
183484
|
-
/* harmony import */ var
|
|
183485
|
-
/* harmony import */ var
|
|
183486
|
-
/* harmony import */ var
|
|
183487
|
-
/* harmony import */ var
|
|
183488
|
-
/* harmony import */ var
|
|
183489
|
-
/* harmony import */ var
|
|
183490
|
-
/* harmony import */ var
|
|
183491
|
-
/* harmony import */ var
|
|
183492
|
-
/* harmony import */ var
|
|
183493
|
-
/* harmony import */ var
|
|
183494
|
-
/* harmony import */ var
|
|
183495
|
-
/* harmony import */ var
|
|
183496
|
-
/* harmony import */ var
|
|
183497
|
-
/* harmony import */ var
|
|
183498
|
-
/* harmony import */ var
|
|
183499
|
-
/* harmony import */ var
|
|
183500
|
-
/* harmony import */ var
|
|
183501
|
-
/* harmony import */ var
|
|
183502
|
-
/* harmony import */ var
|
|
183503
|
-
/* harmony import */ var
|
|
183504
|
-
/* harmony import */ var
|
|
183505
|
-
/* harmony import */ var
|
|
183506
|
-
/* harmony import */ var
|
|
183507
|
-
/* harmony import */ var
|
|
183508
|
-
/* harmony import */ var
|
|
183509
|
-
/* harmony import */ var
|
|
183510
|
-
/* harmony import */ var
|
|
183511
|
-
/* harmony import */ var
|
|
183512
|
-
/* harmony import */ var
|
|
183513
|
-
/* harmony import */ var
|
|
183514
|
-
/* harmony import */ var
|
|
183515
|
-
/* harmony import */ var
|
|
183516
|
-
/* harmony import */ var
|
|
183517
|
-
/* harmony import */ var
|
|
183518
|
-
/* harmony import */ var
|
|
183519
|
-
/* harmony import */ var
|
|
183520
|
-
/* harmony import */ var
|
|
183521
|
-
/* harmony import */ var
|
|
183522
|
-
/* harmony import */ var
|
|
183523
|
-
/* harmony import */ var
|
|
183524
|
-
/* harmony import */ var
|
|
183525
|
-
/* harmony import */ var
|
|
183526
|
-
/* harmony import */ var
|
|
183527
|
-
/* harmony import */ var
|
|
183528
|
-
/* harmony import */ var
|
|
183529
|
-
/* harmony import */ var
|
|
183530
|
-
/* harmony import */ var
|
|
183531
|
-
/* harmony import */ var
|
|
183532
|
-
/* harmony import */ var
|
|
183533
|
-
/* harmony import */ var
|
|
183534
|
-
/* harmony import */ var
|
|
183535
|
-
/* harmony import */ var
|
|
183536
|
-
/* harmony import */ var
|
|
183537
|
-
/* harmony import */ var
|
|
183538
|
-
/* harmony import */ var
|
|
183539
|
-
/* harmony import */ var
|
|
183540
|
-
/* harmony import */ var
|
|
183541
|
-
/* harmony import */ var
|
|
183542
|
-
/* harmony import */ var
|
|
183543
|
-
/* harmony import */ var
|
|
183544
|
-
/* harmony import */ var
|
|
183545
|
-
/* harmony import */ var
|
|
183546
|
-
/* harmony import */ var
|
|
183547
|
-
/* harmony import */ var
|
|
183548
|
-
/* harmony import */ var
|
|
183549
|
-
/* harmony import */ var
|
|
183550
|
-
/* harmony import */ var
|
|
183551
|
-
/* harmony import */ var
|
|
183552
|
-
/* harmony import */ var
|
|
183553
|
-
/* harmony import */ var
|
|
183554
|
-
/* harmony import */ var
|
|
183555
|
-
/* harmony import */ var
|
|
183556
|
-
/* harmony import */ var
|
|
183557
|
-
/* harmony import */ var
|
|
183558
|
-
/* harmony import */ var
|
|
183559
|
-
/* harmony import */ var
|
|
183560
|
-
/* harmony import */ var
|
|
183561
|
-
/* harmony import */ var
|
|
183562
|
-
/* harmony import */ var
|
|
183461
|
+
/* harmony import */ var _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./geometry3d/Ray2d */ "../../core/geometry/lib/esm/geometry3d/Ray2d.js");
|
|
183462
|
+
/* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
|
|
183463
|
+
/* harmony import */ var _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./geometry3d/Segment1d */ "../../core/geometry/lib/esm/geometry3d/Segment1d.js");
|
|
183464
|
+
/* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
|
|
183465
|
+
/* harmony import */ var _geometry3d_UVSurfaceOps__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./geometry3d/UVSurfaceOps */ "../../core/geometry/lib/esm/geometry3d/UVSurfaceOps.js");
|
|
183466
|
+
/* harmony import */ var _geometry3d_XYZProps__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./geometry3d/XYZProps */ "../../core/geometry/lib/esm/geometry3d/XYZProps.js");
|
|
183467
|
+
/* harmony import */ var _geometry3d_YawPitchRollAngles__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./geometry3d/YawPitchRollAngles */ "../../core/geometry/lib/esm/geometry3d/YawPitchRollAngles.js");
|
|
183468
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
183469
|
+
/* harmony import */ var _Constant__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./Constant */ "../../core/geometry/lib/esm/Constant.js");
|
|
183470
|
+
/* harmony import */ var _clipping_BooleanClipFactory__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./clipping/BooleanClipFactory */ "../../core/geometry/lib/esm/clipping/BooleanClipFactory.js");
|
|
183471
|
+
/* harmony import */ var _clipping_ClipPlane__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./clipping/ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
|
|
183472
|
+
/* harmony import */ var _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./clipping/ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
|
|
183473
|
+
/* harmony import */ var _clipping_UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./clipping/UnionOfConvexClipPlaneSets */ "../../core/geometry/lib/esm/clipping/UnionOfConvexClipPlaneSets.js");
|
|
183474
|
+
/* harmony import */ var _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./clipping/ClipPrimitive */ "../../core/geometry/lib/esm/clipping/ClipPrimitive.js");
|
|
183475
|
+
/* harmony import */ var _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./clipping/ClipVector */ "../../core/geometry/lib/esm/clipping/ClipVector.js");
|
|
183476
|
+
/* harmony import */ var _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./clipping/ClipUtils */ "../../core/geometry/lib/esm/clipping/ClipUtils.js");
|
|
183477
|
+
/* harmony import */ var _numerics_ConvexPolygon2d__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./numerics/ConvexPolygon2d */ "../../core/geometry/lib/esm/numerics/ConvexPolygon2d.js");
|
|
183478
|
+
/* harmony import */ var _geometry4d_PlaneByOriginAndVectors4d__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./geometry4d/PlaneByOriginAndVectors4d */ "../../core/geometry/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js");
|
|
183479
|
+
/* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
|
|
183480
|
+
/* harmony import */ var _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./geometry4d/Matrix4d */ "../../core/geometry/lib/esm/geometry4d/Matrix4d.js");
|
|
183481
|
+
/* harmony import */ var _geometry4d_Map4d__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./geometry4d/Map4d */ "../../core/geometry/lib/esm/geometry4d/Map4d.js");
|
|
183482
|
+
/* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
|
|
183483
|
+
/* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
|
|
183484
|
+
/* harmony import */ var _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./numerics/ClusterableArray */ "../../core/geometry/lib/esm/numerics/ClusterableArray.js");
|
|
183485
|
+
/* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
|
|
183486
|
+
/* harmony import */ var _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./numerics/Complex */ "../../core/geometry/lib/esm/numerics/Complex.js");
|
|
183487
|
+
/* harmony import */ var _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/PascalCoefficients */ "../../core/geometry/lib/esm/numerics/PascalCoefficients.js");
|
|
183488
|
+
/* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
|
|
183489
|
+
/* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
|
|
183490
|
+
/* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
|
|
183491
|
+
/* harmony import */ var _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./numerics/TriDiagonalSystem */ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js");
|
|
183492
|
+
/* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
183493
|
+
/* harmony import */ var _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./curve/ConstructCurveBetweenCurves */ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js");
|
|
183494
|
+
/* harmony import */ var _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./curve/CoordinateXYZ */ "../../core/geometry/lib/esm/curve/CoordinateXYZ.js");
|
|
183495
|
+
/* harmony import */ var _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./curve/CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
|
|
183496
|
+
/* harmony import */ var _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./curve/CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
|
|
183497
|
+
/* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
183498
|
+
/* harmony import */ var _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./curve/CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
183499
|
+
/* harmony import */ var _curve_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./curve/CurveCurveIntersectXY */ "../../core/geometry/lib/esm/curve/CurveCurveIntersectXY.js");
|
|
183500
|
+
/* harmony import */ var _curve_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./curve/CurveCurveIntersectXYZ */ "../../core/geometry/lib/esm/curve/CurveCurveIntersectXYZ.js");
|
|
183501
|
+
/* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
183502
|
+
/* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
|
|
183503
|
+
/* harmony import */ var _curve_CurveOps__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./curve/CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
|
|
183504
|
+
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
183505
|
+
/* harmony import */ var _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./curve/CurveProcessor */ "../../core/geometry/lib/esm/curve/CurveProcessor.js");
|
|
183506
|
+
/* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
|
|
183507
|
+
/* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
183508
|
+
/* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
183509
|
+
/* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
183510
|
+
/* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
183511
|
+
/* harmony import */ var _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./curve/ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
|
|
183512
|
+
/* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
183513
|
+
/* harmony import */ var _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./curve/RegionMomentsXY */ "../../core/geometry/lib/esm/curve/RegionMomentsXY.js");
|
|
183514
|
+
/* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
183515
|
+
/* harmony import */ var _curve_PointString3d__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./curve/PointString3d */ "../../core/geometry/lib/esm/curve/PointString3d.js");
|
|
183516
|
+
/* harmony import */ var _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./curve/ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
|
|
183517
|
+
/* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
183518
|
+
/* harmony import */ var _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./curve/spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
|
|
183519
|
+
/* harmony import */ var _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./curve/spiral/IntegratedSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/IntegratedSpiral3d.js");
|
|
183520
|
+
/* harmony import */ var _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./curve/spiral/DirectSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/DirectSpiral3d.js");
|
|
183521
|
+
/* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
|
|
183522
|
+
/* harmony import */ var _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./curve/Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
|
|
183523
|
+
/* harmony import */ var _solid_Box__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./solid/Box */ "../../core/geometry/lib/esm/solid/Box.js");
|
|
183524
|
+
/* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
|
|
183525
|
+
/* harmony import */ var _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./solid/LinearSweep */ "../../core/geometry/lib/esm/solid/LinearSweep.js");
|
|
183526
|
+
/* harmony import */ var _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./solid/RotationalSweep */ "../../core/geometry/lib/esm/solid/RotationalSweep.js");
|
|
183527
|
+
/* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
|
|
183528
|
+
/* harmony import */ var _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./solid/SolidPrimitive */ "../../core/geometry/lib/esm/solid/SolidPrimitive.js");
|
|
183529
|
+
/* harmony import */ var _solid_Sphere__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./solid/Sphere */ "../../core/geometry/lib/esm/solid/Sphere.js");
|
|
183530
|
+
/* harmony import */ var _solid_SweepContour__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./solid/SweepContour */ "../../core/geometry/lib/esm/solid/SweepContour.js");
|
|
183531
|
+
/* harmony import */ var _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./solid/TorusPipe */ "../../core/geometry/lib/esm/solid/TorusPipe.js");
|
|
183532
|
+
/* harmony import */ var _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./bspline/AkimaCurve3d */ "../../core/geometry/lib/esm/bspline/AkimaCurve3d.js");
|
|
183533
|
+
/* harmony import */ var _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./bspline/Bezier1dNd */ "../../core/geometry/lib/esm/bspline/Bezier1dNd.js");
|
|
183534
|
+
/* harmony import */ var _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./bspline/BezierCurveBase */ "../../core/geometry/lib/esm/bspline/BezierCurveBase.js");
|
|
183535
|
+
/* harmony import */ var _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./bspline/BezierCurve3d */ "../../core/geometry/lib/esm/bspline/BezierCurve3d.js");
|
|
183536
|
+
/* harmony import */ var _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./bspline/BezierCurve3dH */ "../../core/geometry/lib/esm/bspline/BezierCurve3dH.js");
|
|
183537
|
+
/* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
|
|
183538
|
+
/* harmony import */ var _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./bspline/BSplineCurveOps */ "../../core/geometry/lib/esm/bspline/BSplineCurveOps.js");
|
|
183539
|
+
/* harmony import */ var _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./bspline/BSpline1dNd */ "../../core/geometry/lib/esm/bspline/BSpline1dNd.js");
|
|
183540
|
+
/* harmony import */ var _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./bspline/BSplineCurve3dH */ "../../core/geometry/lib/esm/bspline/BSplineCurve3dH.js");
|
|
183541
|
+
/* harmony import */ var _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./bspline/BSplineSurface */ "../../core/geometry/lib/esm/bspline/BSplineSurface.js");
|
|
183542
|
+
/* harmony import */ var _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./bspline/InterpolationCurve3d */ "../../core/geometry/lib/esm/bspline/InterpolationCurve3d.js");
|
|
183543
|
+
/* harmony import */ var _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./bspline/KnotVector */ "../../core/geometry/lib/esm/bspline/KnotVector.js");
|
|
183544
|
+
/* harmony import */ var _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./polyface/AuxData */ "../../core/geometry/lib/esm/polyface/AuxData.js");
|
|
183545
|
+
/* harmony import */ var _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./polyface/BoxTopology */ "../../core/geometry/lib/esm/polyface/BoxTopology.js");
|
|
183546
|
+
/* harmony import */ var _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./polyface/FacetFaceData */ "../../core/geometry/lib/esm/polyface/FacetFaceData.js");
|
|
183547
|
+
/* harmony import */ var _polyface_Polyface__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./polyface/Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
|
|
183548
|
+
/* harmony import */ var _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./polyface/FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
|
|
183549
|
+
/* harmony import */ var _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./polyface/IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
|
|
183550
|
+
/* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
183551
|
+
/* harmony import */ var _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./polyface/PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
|
|
183552
|
+
/* harmony import */ var _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./polyface/PolyfaceQuery */ "../../core/geometry/lib/esm/polyface/PolyfaceQuery.js");
|
|
183553
|
+
/* harmony import */ var _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./polyface/PolyfaceClip */ "../../core/geometry/lib/esm/polyface/PolyfaceClip.js");
|
|
183554
|
+
/* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
|
|
183555
|
+
/* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
|
|
183556
|
+
/* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
|
|
183557
|
+
/* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
|
|
183558
|
+
/* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
|
|
183559
|
+
/* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
|
|
183560
|
+
/* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
|
|
183561
|
+
/* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
|
|
183563
183562
|
/*---------------------------------------------------------------------------------------------
|
|
183564
183563
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
183565
183564
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -183810,7 +183809,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
183810
183809
|
|
|
183811
183810
|
|
|
183812
183811
|
|
|
183813
|
-
|
|
183812
|
+
|
|
183814
183813
|
|
|
183815
183814
|
|
|
183816
183815
|
|
|
@@ -183841,8 +183840,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
183841
183840
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
183842
183841
|
/* harmony import */ var _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
|
|
183843
183842
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
183844
|
-
/* harmony import */ var _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./internalContexts/PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
|
|
183845
183843
|
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
183844
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
183846
183845
|
/* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
183847
183846
|
/*---------------------------------------------------------------------------------------------
|
|
183848
183847
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
@@ -184775,7 +184774,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
|
|
|
184775
184774
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
184776
184775
|
*/
|
|
184777
184776
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
184778
|
-
const options =
|
|
184777
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_14__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
184779
184778
|
if (this.isCircular || options.preserveEllipticalArcs) {
|
|
184780
184779
|
const arcXY = this.cloneAtZ();
|
|
184781
184780
|
const sign = arcXY.sweep.sweepRadians * arcXY.matrixRef.coffs[8] >= 0.0 ? 1.0 : -1.0;
|
|
@@ -184825,199 +184824,6 @@ Arc3d.quadratureIntervalAngleDegrees = 10.0;
|
|
|
184825
184824
|
|
|
184826
184825
|
|
|
184827
184826
|
|
|
184828
|
-
/***/ }),
|
|
184829
|
-
|
|
184830
|
-
/***/ "../../core/geometry/lib/esm/curve/ChainCollectorContext.js":
|
|
184831
|
-
/*!******************************************************************!*\
|
|
184832
|
-
!*** ../../core/geometry/lib/esm/curve/ChainCollectorContext.js ***!
|
|
184833
|
-
\******************************************************************/
|
|
184834
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
184835
|
-
|
|
184836
|
-
"use strict";
|
|
184837
|
-
__webpack_require__.r(__webpack_exports__);
|
|
184838
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
184839
|
-
/* harmony export */ ChainCollectorContext: () => (/* binding */ ChainCollectorContext)
|
|
184840
|
-
/* harmony export */ });
|
|
184841
|
-
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
184842
|
-
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
184843
|
-
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
184844
|
-
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
184845
|
-
/*---------------------------------------------------------------------------------------------
|
|
184846
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
184847
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
184848
|
-
*--------------------------------------------------------------------------------------------*/
|
|
184849
|
-
|
|
184850
|
-
|
|
184851
|
-
|
|
184852
|
-
|
|
184853
|
-
/**
|
|
184854
|
-
* Manage a growing array of arrays of curve primitives that are to be joined "head to tail" in paths.
|
|
184855
|
-
* * The caller makes a sequence of calls to announce individual primitives.
|
|
184856
|
-
* * The collector has 2 use cases in mind, controlled by `searchAllPaths` flag on `chainCollectorContext.announceCurvePrimitive`
|
|
184857
|
-
* * (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.
|
|
184858
|
-
* * The collector needs to watch for connection to the most recent path but not search for prior paths to join to instead.
|
|
184859
|
-
* * (b) "mixed" primitives -- primitive order is NOT significant for chain assembly.
|
|
184860
|
-
* * 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.
|
|
184861
|
-
* * The per-curve announcement is
|
|
184862
|
-
* * chainCollector.announceCurvePrimitive (curve, searchAllPaths).
|
|
184863
|
-
* * When all curves have been announced, the call to grab the paths option
|
|
184864
|
-
* * formLoopsIfClosed
|
|
184865
|
-
* * If true, convert closed paths to `Loop`, open paths to `Path`
|
|
184866
|
-
* * If false, convert all paths (open or not) to `Path`
|
|
184867
|
-
* * Usage pattern is
|
|
184868
|
-
* * initialization: `context = new ChainCollectorContext (makeClones: boolean)`
|
|
184869
|
-
* * many times: ` context.announceCurvePrimitive (primitive, searchAllPaths)`
|
|
184870
|
-
* * end: ` result = context.grabResults (formLoopsIfClosed)`
|
|
184871
|
-
* @internal
|
|
184872
|
-
*/
|
|
184873
|
-
class ChainCollectorContext {
|
|
184874
|
-
/**
|
|
184875
|
-
* Push a new chain with an optional first primitive.
|
|
184876
|
-
*/
|
|
184877
|
-
pushNewChain(primitive) {
|
|
184878
|
-
const chain = [];
|
|
184879
|
-
if (primitive)
|
|
184880
|
-
chain.push(primitive);
|
|
184881
|
-
this._chains.push(chain);
|
|
184882
|
-
}
|
|
184883
|
-
findOrCreateTailChain() {
|
|
184884
|
-
if (this._chains.length === 0)
|
|
184885
|
-
this.pushNewChain();
|
|
184886
|
-
return this._chains[this._chains.length - 1];
|
|
184887
|
-
}
|
|
184888
|
-
findAnyChainToConnect(xyz) {
|
|
184889
|
-
for (let chainIndexA = 0; chainIndexA < this._chains.length; chainIndexA++) {
|
|
184890
|
-
const path = this._chains[chainIndexA];
|
|
184891
|
-
this._xyzWork1 = path[path.length - 1].endPoint(this._xyzWork1);
|
|
184892
|
-
if (this._xyzWork1.isAlmostEqual(xyz))
|
|
184893
|
-
return { chainIndex: chainIndexA, atEnd: true };
|
|
184894
|
-
this._xyzWork1 = path[0].startPoint(this._xyzWork1);
|
|
184895
|
-
if (this._xyzWork1.isAlmostEqual(xyz))
|
|
184896
|
-
return { chainIndex: chainIndexA, atEnd: false };
|
|
184897
|
-
}
|
|
184898
|
-
return undefined;
|
|
184899
|
-
}
|
|
184900
|
-
/** Initialize with an empty array of chains.
|
|
184901
|
-
* @param makeClones if true, all CurvePrimitives sent to `announceCurvePrimitive` is immediately cloned. If false, the reference to the original curve is maintained.
|
|
184902
|
-
*/
|
|
184903
|
-
constructor(makeClones) {
|
|
184904
|
-
this._chains = [];
|
|
184905
|
-
this._makeClones = makeClones;
|
|
184906
|
-
}
|
|
184907
|
-
/** Announce a curve primitive
|
|
184908
|
-
* * searchAllChains controls the extent of search for connecting points.
|
|
184909
|
-
* * false ==> only consider connection to most recent chain.
|
|
184910
|
-
* * true ==> search for any connection, reversing direction as needed.
|
|
184911
|
-
* * Otherwise start a new chain.
|
|
184912
|
-
*/
|
|
184913
|
-
announceCurvePrimitive(candidate, searchAllChains = false) {
|
|
184914
|
-
if (candidate) {
|
|
184915
|
-
if (this._makeClones) {
|
|
184916
|
-
const candidate1 = candidate.clone();
|
|
184917
|
-
if (!candidate1 || !(candidate1 instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive))
|
|
184918
|
-
return;
|
|
184919
|
-
this.transferMarkup(candidate, candidate1);
|
|
184920
|
-
candidate = candidate1;
|
|
184921
|
-
}
|
|
184922
|
-
if (!searchAllChains) {
|
|
184923
|
-
const activeChain = this.findOrCreateTailChain();
|
|
184924
|
-
if (activeChain.length === 0 || !ChainCollectorContext.needBreakBetweenPrimitives(activeChain[activeChain.length - 1], candidate))
|
|
184925
|
-
activeChain.push(candidate);
|
|
184926
|
-
else
|
|
184927
|
-
this.pushNewChain(candidate);
|
|
184928
|
-
}
|
|
184929
|
-
else {
|
|
184930
|
-
this._xyzWork0 = candidate.startPoint(this._xyzWork0);
|
|
184931
|
-
let connect = this.findAnyChainToConnect(this._xyzWork0);
|
|
184932
|
-
if (connect) {
|
|
184933
|
-
if (connect.atEnd) {
|
|
184934
|
-
this._chains[connect.chainIndex].push(candidate);
|
|
184935
|
-
}
|
|
184936
|
-
else {
|
|
184937
|
-
candidate.reverseInPlace();
|
|
184938
|
-
this._chains[connect.chainIndex].splice(0, 0, candidate);
|
|
184939
|
-
}
|
|
184940
|
-
}
|
|
184941
|
-
else {
|
|
184942
|
-
this._xyzWork0 = candidate.endPoint(this._xyzWork0);
|
|
184943
|
-
connect = this.findAnyChainToConnect(this._xyzWork0);
|
|
184944
|
-
if (connect) { // START of new primitive ..
|
|
184945
|
-
if (connect.atEnd) {
|
|
184946
|
-
candidate.reverseInPlace();
|
|
184947
|
-
this._chains[connect.chainIndex].push(candidate);
|
|
184948
|
-
}
|
|
184949
|
-
else {
|
|
184950
|
-
this._chains[connect.chainIndex].splice(0, 0, candidate);
|
|
184951
|
-
}
|
|
184952
|
-
}
|
|
184953
|
-
else {
|
|
184954
|
-
this._chains.push([candidate]);
|
|
184955
|
-
}
|
|
184956
|
-
}
|
|
184957
|
-
}
|
|
184958
|
-
}
|
|
184959
|
-
}
|
|
184960
|
-
/** Transfer markup (e.g. startCut, endCut) from source to destination */
|
|
184961
|
-
transferMarkup(source, dest) {
|
|
184962
|
-
if (source && dest) {
|
|
184963
|
-
dest.startCut = source.startCut;
|
|
184964
|
-
dest.endCut = source.endCut;
|
|
184965
|
-
}
|
|
184966
|
-
}
|
|
184967
|
-
/** turn an array of curve primitives into the simplest possible strongly typed curve structure.
|
|
184968
|
-
* * The input array is assumed to be connected appropriately to act as the curves of a Path.
|
|
184969
|
-
* * When a path is created the curves array is CAPTURED.
|
|
184970
|
-
*/
|
|
184971
|
-
promoteArrayToCurves(curves, makeLoopIfClosed) {
|
|
184972
|
-
if (curves.length === 0)
|
|
184973
|
-
return undefined;
|
|
184974
|
-
if (makeLoopIfClosed) {
|
|
184975
|
-
ChainCollectorContext._staticPointA = curves[0].startPoint(ChainCollectorContext._staticPointA);
|
|
184976
|
-
ChainCollectorContext._staticPointB = curves[curves.length - 1].endPoint(ChainCollectorContext._staticPointB);
|
|
184977
|
-
if (ChainCollectorContext._staticPointA.isAlmostEqual(ChainCollectorContext._staticPointB))
|
|
184978
|
-
return _Loop__WEBPACK_IMPORTED_MODULE_1__.Loop.createArray(curves);
|
|
184979
|
-
}
|
|
184980
|
-
if (curves.length === 1)
|
|
184981
|
-
return curves[0];
|
|
184982
|
-
return _Path__WEBPACK_IMPORTED_MODULE_2__.Path.createArray(curves);
|
|
184983
|
-
}
|
|
184984
|
-
/** Return the collected results, structured as the simplest possible type. */
|
|
184985
|
-
grabResult(makeLoopIfClosed = false) {
|
|
184986
|
-
const chains = this._chains;
|
|
184987
|
-
if (chains.length === 0)
|
|
184988
|
-
return undefined;
|
|
184989
|
-
if (chains.length === 1)
|
|
184990
|
-
return this.promoteArrayToCurves(chains[0], makeLoopIfClosed);
|
|
184991
|
-
const bag = _CurveCollection__WEBPACK_IMPORTED_MODULE_3__.BagOfCurves.create();
|
|
184992
|
-
for (const chain of chains) {
|
|
184993
|
-
const q = this.promoteArrayToCurves(chain, makeLoopIfClosed);
|
|
184994
|
-
bag.tryAddChild(q);
|
|
184995
|
-
}
|
|
184996
|
-
return bag;
|
|
184997
|
-
}
|
|
184998
|
-
/** test if there is a break between primitiveA and primitiveB, due to any condition such as
|
|
184999
|
-
* * primitiveA.endCut
|
|
185000
|
-
* * primitiveB.startCut
|
|
185001
|
-
* * physical gap between primitives.
|
|
185002
|
-
*/
|
|
185003
|
-
static needBreakBetweenPrimitives(primitiveA, primitiveB, isXYOnly = false) {
|
|
185004
|
-
if (primitiveA === undefined)
|
|
185005
|
-
return true;
|
|
185006
|
-
if (primitiveB === undefined)
|
|
185007
|
-
return true;
|
|
185008
|
-
if (primitiveA.endCut !== undefined)
|
|
185009
|
-
return true;
|
|
185010
|
-
if (primitiveB.startCut !== undefined)
|
|
185011
|
-
return true;
|
|
185012
|
-
ChainCollectorContext._staticPointA = primitiveA.endPoint(ChainCollectorContext._staticPointA);
|
|
185013
|
-
ChainCollectorContext._staticPointB = primitiveB.startPoint(ChainCollectorContext._staticPointB);
|
|
185014
|
-
return isXYOnly
|
|
185015
|
-
? !ChainCollectorContext._staticPointA.isAlmostEqualXY(ChainCollectorContext._staticPointB)
|
|
185016
|
-
: !ChainCollectorContext._staticPointA.isAlmostEqual(ChainCollectorContext._staticPointB);
|
|
185017
|
-
}
|
|
185018
|
-
}
|
|
185019
|
-
|
|
185020
|
-
|
|
185021
184827
|
/***/ }),
|
|
185022
184828
|
|
|
185023
184829
|
/***/ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js":
|
|
@@ -185265,7 +185071,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
185265
185071
|
/* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
|
|
185266
185072
|
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
185267
185073
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
185268
|
-
/* harmony import */ var
|
|
185074
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
185269
185075
|
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
185270
185076
|
/*---------------------------------------------------------------------------------------------
|
|
185271
185077
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
@@ -185954,7 +185760,7 @@ class CurveChainWithDistanceIndex extends _curve_CurvePrimitive__WEBPACK_IMPORTE
|
|
|
185954
185760
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
185955
185761
|
*/
|
|
185956
185762
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
185957
|
-
const options =
|
|
185763
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
185958
185764
|
const offsets = [];
|
|
185959
185765
|
for (const prim of this.collectCurvePrimitives(undefined, true, true)) {
|
|
185960
185766
|
const offset = prim.constructOffsetXY(options);
|
|
@@ -186043,8 +185849,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
186043
185849
|
* same plane).
|
|
186044
185850
|
* - `Loop` - A chain required to close from last to first so that a planar area is enclosed (so curves have to
|
|
186045
185851
|
* be on the same plane).
|
|
186046
|
-
* - `ParityRegion` -- a collection of coplanar `Loop
|
|
186047
|
-
* - `UnionRegion` -- a collection of coplanar `Loop`
|
|
185852
|
+
* - `ParityRegion` -- a collection of coplanar `Loop`, with "in/out" classification by parity rules.
|
|
185853
|
+
* - `UnionRegion` -- a collection of coplanar `Loop` and/or `ParityRegion`, with "in/out" classification by union rules.
|
|
186048
185854
|
* - `BagOfCurves` -- a collection of `AnyCurve` with no implied structure.
|
|
186049
185855
|
*
|
|
186050
185856
|
* @see [Curve Collections]($docs/learning/geometry/CurveCollection.md) learning article.
|
|
@@ -189992,6 +189798,183 @@ class CurveLocationDetailPair {
|
|
|
189992
189798
|
}
|
|
189993
189799
|
|
|
189994
189800
|
|
|
189801
|
+
/***/ }),
|
|
189802
|
+
|
|
189803
|
+
/***/ "../../core/geometry/lib/esm/curve/CurveOps.js":
|
|
189804
|
+
/*!*****************************************************!*\
|
|
189805
|
+
!*** ../../core/geometry/lib/esm/curve/CurveOps.js ***!
|
|
189806
|
+
\*****************************************************/
|
|
189807
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
189808
|
+
|
|
189809
|
+
"use strict";
|
|
189810
|
+
__webpack_require__.r(__webpack_exports__);
|
|
189811
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
189812
|
+
/* harmony export */ CurveOps: () => (/* binding */ CurveOps)
|
|
189813
|
+
/* harmony export */ });
|
|
189814
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
189815
|
+
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
189816
|
+
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
189817
|
+
/* harmony import */ var _internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internalContexts/MultiChainCollector */ "../../core/geometry/lib/esm/curve/internalContexts/MultiChainCollector.js");
|
|
189818
|
+
/* harmony import */ var _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internalContexts/PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
|
|
189819
|
+
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
189820
|
+
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
189821
|
+
/*---------------------------------------------------------------------------------------------
|
|
189822
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
189823
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
189824
|
+
*--------------------------------------------------------------------------------------------*/
|
|
189825
|
+
/** @packageDocumentation
|
|
189826
|
+
* @module Curve
|
|
189827
|
+
*/
|
|
189828
|
+
|
|
189829
|
+
|
|
189830
|
+
|
|
189831
|
+
|
|
189832
|
+
|
|
189833
|
+
|
|
189834
|
+
|
|
189835
|
+
/**
|
|
189836
|
+
* Static methods for miscellaneous curve operations.
|
|
189837
|
+
* @public
|
|
189838
|
+
*/
|
|
189839
|
+
class CurveOps {
|
|
189840
|
+
/** Recursively sum curve lengths, allowing CurvePrimitive, CurveCollection, or array of such at any level. */
|
|
189841
|
+
static sumLengths(curves) {
|
|
189842
|
+
let mySum = 0;
|
|
189843
|
+
if (curves instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive) {
|
|
189844
|
+
mySum += curves.curveLength();
|
|
189845
|
+
}
|
|
189846
|
+
else if (curves instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_1__.CurveCollection) {
|
|
189847
|
+
mySum += curves.sumLengths();
|
|
189848
|
+
}
|
|
189849
|
+
else if (Array.isArray(curves)) {
|
|
189850
|
+
for (const data1 of curves)
|
|
189851
|
+
mySum += this.sumLengths(data1);
|
|
189852
|
+
}
|
|
189853
|
+
return mySum;
|
|
189854
|
+
}
|
|
189855
|
+
/** Recursively extend the range by each curve's range, allowing CurvePrimitive, CurveCollection, or array of such at any level. */
|
|
189856
|
+
static extendRange(range, curves) {
|
|
189857
|
+
if (Array.isArray(curves)) {
|
|
189858
|
+
for (const data1 of curves)
|
|
189859
|
+
this.extendRange(range, data1);
|
|
189860
|
+
}
|
|
189861
|
+
else {
|
|
189862
|
+
curves.extendRange(range);
|
|
189863
|
+
}
|
|
189864
|
+
return range;
|
|
189865
|
+
}
|
|
189866
|
+
/**
|
|
189867
|
+
* Construct a separate xy-offset for each input curve.
|
|
189868
|
+
* * For best offset results, the inputs should be parallel to the xy-plane.
|
|
189869
|
+
* @param curves input curve(s), z-coordinates ignored. Only [[ChainTypes]] are handled.
|
|
189870
|
+
* @param offset offset distance (positive to left of curve, negative to right)
|
|
189871
|
+
* @param result array to collect offset curves
|
|
189872
|
+
* @returns summed length of offset curves
|
|
189873
|
+
*/
|
|
189874
|
+
static appendXYOffsets(curves, offset, result) {
|
|
189875
|
+
let summedLengths = 0;
|
|
189876
|
+
if (curves instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive) {
|
|
189877
|
+
const resultA = _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_2__.CurveChainWireOffsetContext.constructCurveXYOffset(_Path__WEBPACK_IMPORTED_MODULE_3__.Path.create(curves), offset);
|
|
189878
|
+
if (resultA) {
|
|
189879
|
+
summedLengths += this.sumLengths(resultA);
|
|
189880
|
+
result.push(resultA);
|
|
189881
|
+
}
|
|
189882
|
+
}
|
|
189883
|
+
else if (curves instanceof _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop || curves instanceof _Path__WEBPACK_IMPORTED_MODULE_3__.Path) {
|
|
189884
|
+
const resultA = _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_2__.CurveChainWireOffsetContext.constructCurveXYOffset(curves, offset);
|
|
189885
|
+
if (resultA) {
|
|
189886
|
+
summedLengths += this.sumLengths(resultA);
|
|
189887
|
+
result.push(resultA);
|
|
189888
|
+
}
|
|
189889
|
+
}
|
|
189890
|
+
else if (curves instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_1__.BagOfCurves) {
|
|
189891
|
+
for (const q of curves.children)
|
|
189892
|
+
summedLengths += this.appendXYOffsets(q, offset, result);
|
|
189893
|
+
}
|
|
189894
|
+
else if (Array.isArray(curves)) {
|
|
189895
|
+
for (const q of curves)
|
|
189896
|
+
summedLengths += this.appendXYOffsets(q, offset, result);
|
|
189897
|
+
}
|
|
189898
|
+
return summedLengths;
|
|
189899
|
+
}
|
|
189900
|
+
/**
|
|
189901
|
+
* Restructure curve fragments as Paths and Loops, and construct xy-offsets of the chains.
|
|
189902
|
+
* * If the inputs do not form Loop(s), the classification of offsets is suspect.
|
|
189903
|
+
* * For best offset results, the inputs should be parallel to the xy-plane.
|
|
189904
|
+
* * Chain formation is dependent upon input fragment order, as a greedy algorithm is employed.
|
|
189905
|
+
* @param fragments fragments to be chained and offset
|
|
189906
|
+
* @param offsetDistance offset distance, applied to both sides of each fragment to produce inside and outside xy-offset curves.
|
|
189907
|
+
* @param gapTolerance distance to be treated as "effectively zero" when joining head-to-tail
|
|
189908
|
+
* @returns object with named chains, insideOffsets, outsideOffsets
|
|
189909
|
+
*/
|
|
189910
|
+
static collectInsideAndOutsideXYOffsets(fragments, offsetDistance, gapTolerance) {
|
|
189911
|
+
const collector = new _internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_5__.MultiChainCollector(gapTolerance);
|
|
189912
|
+
for (const s of fragments) {
|
|
189913
|
+
collector.captureCurve(s);
|
|
189914
|
+
}
|
|
189915
|
+
const chains = collector.grabResult(true);
|
|
189916
|
+
const myOffsetA = [];
|
|
189917
|
+
const myOffsetB = [];
|
|
189918
|
+
const offsetLengthA = CurveOps.appendXYOffsets(chains, offsetDistance, myOffsetA);
|
|
189919
|
+
const offsetLengthB = CurveOps.appendXYOffsets(chains, -offsetDistance, myOffsetB);
|
|
189920
|
+
if (offsetLengthA > offsetLengthB) {
|
|
189921
|
+
return { outsideOffsets: myOffsetA, insideOffsets: myOffsetB, chains };
|
|
189922
|
+
}
|
|
189923
|
+
else {
|
|
189924
|
+
return { insideOffsets: myOffsetA, outsideOffsets: myOffsetB, chains };
|
|
189925
|
+
}
|
|
189926
|
+
}
|
|
189927
|
+
/**
|
|
189928
|
+
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
189929
|
+
* * The construction will remove "some" local effects of features smaller than the offset distance, but will not detect self intersection among widely separated edges.
|
|
189930
|
+
* @param curves base curves.
|
|
189931
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
189932
|
+
*/
|
|
189933
|
+
static constructCurveXYOffset(curves, offsetDistanceOrOptions) {
|
|
189934
|
+
return _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_2__.CurveChainWireOffsetContext.constructCurveXYOffset(curves, offsetDistanceOrOptions);
|
|
189935
|
+
}
|
|
189936
|
+
/**
|
|
189937
|
+
* Create the offset of a single curve primitive as viewed in the xy-plane (ignoring z).
|
|
189938
|
+
* @param curve primitive to offset
|
|
189939
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object
|
|
189940
|
+
*/
|
|
189941
|
+
static createSingleOffsetPrimitiveXY(curve, offsetDistanceOrOptions) {
|
|
189942
|
+
return _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_2__.CurveChainWireOffsetContext.createSingleOffsetPrimitiveXY(curve, offsetDistanceOrOptions);
|
|
189943
|
+
}
|
|
189944
|
+
/**
|
|
189945
|
+
* Restructure curve fragments as Paths and Loops.
|
|
189946
|
+
* * Chain formation is dependent upon input fragment order, as a greedy algorithm is employed.
|
|
189947
|
+
* @param fragments fragments to be chained
|
|
189948
|
+
* @param gapTolerance distance to be treated as "effectively zero" when assembling fragments head-to-tail
|
|
189949
|
+
* @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.
|
|
189950
|
+
* @returns chains, possibly wrapped in a [[BagOfCurves]].
|
|
189951
|
+
*/
|
|
189952
|
+
static collectChains(fragments, gapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_6__.Geometry.smallMetricDistance, planeTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_6__.Geometry.smallMetricDistance) {
|
|
189953
|
+
const collector = new _internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_5__.MultiChainCollector(gapTolerance, planeTolerance);
|
|
189954
|
+
for (const s of fragments) {
|
|
189955
|
+
collector.captureCurve(s);
|
|
189956
|
+
}
|
|
189957
|
+
return collector.grabResult(true);
|
|
189958
|
+
}
|
|
189959
|
+
/**
|
|
189960
|
+
* Restructure curve fragments as Paths and Loops, to be stroked and passed into the callback.
|
|
189961
|
+
* * Chain formation is dependent upon input fragment order, as a greedy algorithm is employed.
|
|
189962
|
+
* @param fragments fragments to be chained and stroked
|
|
189963
|
+
* @param announceChain callback to process each stroked Path and Loop
|
|
189964
|
+
* @param strokeOptions options for stroking the chains
|
|
189965
|
+
* @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.
|
|
189966
|
+
* @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.
|
|
189967
|
+
*/
|
|
189968
|
+
static collectChainsAsLineString3d(fragments, announceChain, strokeOptions, gapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_6__.Geometry.smallMetricDistance, planeTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_6__.Geometry.smallMetricDistance) {
|
|
189969
|
+
const collector = new _internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_5__.MultiChainCollector(gapTolerance, planeTolerance);
|
|
189970
|
+
for (const s of fragments) {
|
|
189971
|
+
collector.captureCurve(s);
|
|
189972
|
+
}
|
|
189973
|
+
collector.announceChainsAsLineString3d(announceChain, strokeOptions);
|
|
189974
|
+
}
|
|
189975
|
+
}
|
|
189976
|
+
|
|
189977
|
+
|
|
189995
189978
|
/***/ }),
|
|
189996
189979
|
|
|
189997
189980
|
/***/ "../../core/geometry/lib/esm/curve/CurvePrimitive.js":
|
|
@@ -190884,7 +190867,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
190884
190867
|
* @public
|
|
190885
190868
|
*/
|
|
190886
190869
|
class GeometryQuery {
|
|
190887
|
-
/** Return the range of the entire
|
|
190870
|
+
/** Return the range of the entire GeometryQuery tree */
|
|
190888
190871
|
range(transform, result) {
|
|
190889
190872
|
if (result)
|
|
190890
190873
|
result.setNull();
|
|
@@ -190932,7 +190915,7 @@ class GeometryQuery {
|
|
|
190932
190915
|
return false;
|
|
190933
190916
|
}
|
|
190934
190917
|
/**
|
|
190935
|
-
* Apply instance method isAlmostEqual if both are defined.
|
|
190918
|
+
* Apply instance method [[isAlmostEqual]] if both are defined.
|
|
190936
190919
|
* * both undefined returns true
|
|
190937
190920
|
* * single defined returns false
|
|
190938
190921
|
*/
|
|
@@ -190969,7 +190952,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
190969
190952
|
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
190970
190953
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
190971
190954
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
190972
|
-
/* harmony import */ var
|
|
190955
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
190973
190956
|
/*---------------------------------------------------------------------------------------------
|
|
190974
190957
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
190975
190958
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -191349,7 +191332,7 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
|
|
|
191349
191332
|
const offsetVec = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(this._point0, this._point1);
|
|
191350
191333
|
if (offsetVec.normalizeInPlace()) {
|
|
191351
191334
|
offsetVec.rotate90CCWXY(offsetVec);
|
|
191352
|
-
const offsetDist =
|
|
191335
|
+
const offsetDist = _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.OffsetOptions.getOffsetDistance(offsetDistanceOrOptions);
|
|
191353
191336
|
return LineSegment3d.create(this._point0.plusScaled(offsetVec, offsetDist), this._point1.plusScaled(offsetVec, offsetDist));
|
|
191354
191337
|
}
|
|
191355
191338
|
return undefined;
|
|
@@ -191398,8 +191381,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
191398
191381
|
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
191399
191382
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
191400
191383
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
191401
|
-
/* harmony import */ var _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./internalContexts/PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
|
|
191402
191384
|
/* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
191385
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
191403
191386
|
/* harmony import */ var _Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
|
|
191404
191387
|
|
|
191405
191388
|
|
|
@@ -192737,7 +192720,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
192737
192720
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
192738
192721
|
*/
|
|
192739
192722
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
192740
|
-
const options =
|
|
192723
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
192741
192724
|
const offsets = [];
|
|
192742
192725
|
for (const seg of this.collectCurvePrimitives(undefined, true, true)) {
|
|
192743
192726
|
const offset = seg.constructOffsetXY(options);
|
|
@@ -192977,6 +192960,184 @@ class LoopCurveLoopCurve {
|
|
|
192977
192960
|
}
|
|
192978
192961
|
|
|
192979
192962
|
|
|
192963
|
+
/***/ }),
|
|
192964
|
+
|
|
192965
|
+
/***/ "../../core/geometry/lib/esm/curve/OffsetOptions.js":
|
|
192966
|
+
/*!**********************************************************!*\
|
|
192967
|
+
!*** ../../core/geometry/lib/esm/curve/OffsetOptions.js ***!
|
|
192968
|
+
\**********************************************************/
|
|
192969
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
192970
|
+
|
|
192971
|
+
"use strict";
|
|
192972
|
+
__webpack_require__.r(__webpack_exports__);
|
|
192973
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
192974
|
+
/* harmony export */ JointOptions: () => (/* binding */ JointOptions),
|
|
192975
|
+
/* harmony export */ OffsetOptions: () => (/* binding */ OffsetOptions)
|
|
192976
|
+
/* harmony export */ });
|
|
192977
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
192978
|
+
/* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
192979
|
+
/*---------------------------------------------------------------------------------------------
|
|
192980
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
192981
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
192982
|
+
*--------------------------------------------------------------------------------------------*/
|
|
192983
|
+
/** @packageDocumentation
|
|
192984
|
+
* @module Curve
|
|
192985
|
+
*/
|
|
192986
|
+
|
|
192987
|
+
|
|
192988
|
+
/**
|
|
192989
|
+
* Control parameters for joint construction, used in offset construction methods such as [[RegionOps.constructPolygonWireXYOffset]] and [[Region.Ops.constructCurveXYOffset]].
|
|
192990
|
+
* * Define a "joint" as the common point between adjacent segments of the input curve.
|
|
192991
|
+
* * Define the "turn angle" at a joint to be the angle in [0,pi] between the first derivatives (tangents) of
|
|
192992
|
+
* the segments at the joint.
|
|
192993
|
+
* * When creating offsets, if an offset needs to do an "outside" turn, the first applicable construction is applied:
|
|
192994
|
+
* * If the turn angle is larger than `options.minArcDegrees`, a circular arc is constructed to offset the joint.
|
|
192995
|
+
* * If the turn angle is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to
|
|
192996
|
+
* single intersection point (to create a sharp corner).
|
|
192997
|
+
* * If the turn angle is larger than `options.maxChamferDegrees`, the joint is offset with a line string whose edges:
|
|
192998
|
+
* * lie outside the arc that would have been created by the first construction
|
|
192999
|
+
* * have uniform turn angle less than `options.maxChamferDegrees`
|
|
193000
|
+
* * touch the arc at their midpoint (except first and last edge).
|
|
193001
|
+
* @public
|
|
193002
|
+
*/
|
|
193003
|
+
class JointOptions {
|
|
193004
|
+
/**
|
|
193005
|
+
* Construct JointOptions.
|
|
193006
|
+
* * leftOffsetDistance is required
|
|
193007
|
+
* * minArcDegrees and maxChamferDegrees are optional.
|
|
193008
|
+
*/
|
|
193009
|
+
constructor(leftOffsetDistance, minArcDegrees = 180, maxChamferDegrees = 90, preserveEllipticalArcs = false, allowSharpestCorners = false) {
|
|
193010
|
+
/**
|
|
193011
|
+
* Smallest arc to construct.
|
|
193012
|
+
* * If this control angle is 180 degrees or more, arcs are never created.
|
|
193013
|
+
*/
|
|
193014
|
+
this.minArcDegrees = 180.0;
|
|
193015
|
+
/** Largest turn angle at which to construct a sharp corner, or largest turn angle in a multi-segment chamfer. */
|
|
193016
|
+
this.maxChamferTurnDegrees = 90;
|
|
193017
|
+
/**
|
|
193018
|
+
* Whether to remove the internal turn angle upper bound for sharp corner construction.
|
|
193019
|
+
* * By default, a sharp corner is not created at a joint when the turn angle is too large, so as to avoid offsets whose
|
|
193020
|
+
* ranges blow up. Internally, this is implemented by applying an upper bound of 120 degrees to `maxChamferTurnDegrees`.
|
|
193021
|
+
* * When `allowSharpestCorners` is true, this internal upper bound is removed, allowing sharp corners for turn angles
|
|
193022
|
+
* up to `maxChamferTurnDegrees`.
|
|
193023
|
+
* * Thus, if you know your input turn angles are no greater than `maxChamferTurnDegrees`, you can create an offset with
|
|
193024
|
+
* sharp corners at each joint by setting `maxChamferTurnDegrees < minArcDegrees` and `allowSharpestCorners` to true.
|
|
193025
|
+
*/
|
|
193026
|
+
this.allowSharpestCorners = false;
|
|
193027
|
+
/** Offset distance, positive to left of base curve. */
|
|
193028
|
+
this.leftOffsetDistance = 0;
|
|
193029
|
+
/** Whether to offset elliptical arcs as elliptical arcs (true) or as B-spline curves (false, default). */
|
|
193030
|
+
this.preserveEllipticalArcs = false;
|
|
193031
|
+
this.leftOffsetDistance = leftOffsetDistance;
|
|
193032
|
+
this.minArcDegrees = minArcDegrees;
|
|
193033
|
+
this.maxChamferTurnDegrees = maxChamferDegrees;
|
|
193034
|
+
this.preserveEllipticalArcs = preserveEllipticalArcs;
|
|
193035
|
+
this.allowSharpestCorners = allowSharpestCorners;
|
|
193036
|
+
}
|
|
193037
|
+
/** Return a deep clone. */
|
|
193038
|
+
clone() {
|
|
193039
|
+
return new JointOptions(this.leftOffsetDistance, this.minArcDegrees, this.maxChamferTurnDegrees, this.preserveEllipticalArcs, this.allowSharpestCorners);
|
|
193040
|
+
}
|
|
193041
|
+
/** Copy values of input options */
|
|
193042
|
+
setFrom(other) {
|
|
193043
|
+
this.leftOffsetDistance = other.leftOffsetDistance;
|
|
193044
|
+
this.minArcDegrees = other.minArcDegrees;
|
|
193045
|
+
this.maxChamferTurnDegrees = other.maxChamferTurnDegrees;
|
|
193046
|
+
this.preserveEllipticalArcs = other.preserveEllipticalArcs;
|
|
193047
|
+
this.allowSharpestCorners = other.allowSharpestCorners;
|
|
193048
|
+
}
|
|
193049
|
+
/**
|
|
193050
|
+
* Parse a number or JointOptions up to JointOptions:
|
|
193051
|
+
* * If leftOffsetDistanceOptions is a number, create a JointOptions with other options set to default values.
|
|
193052
|
+
* * If leftOffsetDistanceOrOptions is a JointOptions, return it unchanged.
|
|
193053
|
+
* @param leftOffsetDistanceOrOptions
|
|
193054
|
+
*/
|
|
193055
|
+
static create(leftOffsetDistanceOrOptions) {
|
|
193056
|
+
if (leftOffsetDistanceOrOptions instanceof JointOptions)
|
|
193057
|
+
return leftOffsetDistanceOrOptions;
|
|
193058
|
+
return new JointOptions(leftOffsetDistanceOrOptions);
|
|
193059
|
+
}
|
|
193060
|
+
/** Return true if the options indicate this amount of turn should be handled with an arc. */
|
|
193061
|
+
needArc(theta) {
|
|
193062
|
+
return Math.abs(theta.degrees) >= this.minArcDegrees;
|
|
193063
|
+
}
|
|
193064
|
+
/** Return the number of corners needed to chamfer the given turn angle. */
|
|
193065
|
+
numChamferPoints(theta) {
|
|
193066
|
+
const degrees = Math.abs(theta.degrees);
|
|
193067
|
+
const minStepDegreesClamp = 10;
|
|
193068
|
+
let maxStepDegreesClamp = 120;
|
|
193069
|
+
if (this.allowSharpestCorners) {
|
|
193070
|
+
maxStepDegreesClamp = this.maxChamferTurnDegrees;
|
|
193071
|
+
}
|
|
193072
|
+
const stepDegrees = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.clamp(this.maxChamferTurnDegrees, minStepDegreesClamp, maxStepDegreesClamp);
|
|
193073
|
+
if (degrees <= stepDegrees)
|
|
193074
|
+
return 1;
|
|
193075
|
+
return Math.ceil(degrees / stepDegrees);
|
|
193076
|
+
}
|
|
193077
|
+
}
|
|
193078
|
+
/**
|
|
193079
|
+
* Options for offsetting a curve, used in offset construction methods such as [[CurvePrimitive.constructOffsetXY]], [[RegionOps.constructPolygonWireXYOffset]] and [[Region.Ops.constructCurveXYOffset]].
|
|
193080
|
+
* @public
|
|
193081
|
+
*/
|
|
193082
|
+
class OffsetOptions {
|
|
193083
|
+
/** Options that are provided are captured. */
|
|
193084
|
+
constructor(offsetDistanceOrOptions, strokeOptions) {
|
|
193085
|
+
this.jointOptions = JointOptions.create(offsetDistanceOrOptions);
|
|
193086
|
+
this.strokeOptions = (strokeOptions !== undefined) ? strokeOptions : _StrokeOptions__WEBPACK_IMPORTED_MODULE_1__.StrokeOptions.createForCurves();
|
|
193087
|
+
}
|
|
193088
|
+
get minArcDegrees() {
|
|
193089
|
+
return this.jointOptions.minArcDegrees;
|
|
193090
|
+
}
|
|
193091
|
+
set minArcDegrees(value) {
|
|
193092
|
+
this.jointOptions.minArcDegrees = value;
|
|
193093
|
+
}
|
|
193094
|
+
get maxChamferTurnDegrees() {
|
|
193095
|
+
return this.jointOptions.maxChamferTurnDegrees;
|
|
193096
|
+
}
|
|
193097
|
+
set maxChamferTurnDegrees(value) {
|
|
193098
|
+
this.jointOptions.maxChamferTurnDegrees = value;
|
|
193099
|
+
}
|
|
193100
|
+
get allowSharpestCorners() {
|
|
193101
|
+
return this.jointOptions.allowSharpestCorners;
|
|
193102
|
+
}
|
|
193103
|
+
set allowSharpestCorners(value) {
|
|
193104
|
+
this.jointOptions.allowSharpestCorners = value;
|
|
193105
|
+
}
|
|
193106
|
+
get leftOffsetDistance() {
|
|
193107
|
+
return this.jointOptions.leftOffsetDistance;
|
|
193108
|
+
}
|
|
193109
|
+
set leftOffsetDistance(value) {
|
|
193110
|
+
this.jointOptions.leftOffsetDistance = value;
|
|
193111
|
+
}
|
|
193112
|
+
get preserveEllipticalArcs() {
|
|
193113
|
+
return this.jointOptions.preserveEllipticalArcs;
|
|
193114
|
+
}
|
|
193115
|
+
set preserveEllipticalArcs(value) {
|
|
193116
|
+
this.jointOptions.preserveEllipticalArcs = value;
|
|
193117
|
+
}
|
|
193118
|
+
/**
|
|
193119
|
+
* Convert variant input into OffsetOptions.
|
|
193120
|
+
* * If a JointOptions is provided, it is captured.
|
|
193121
|
+
* * If an OffsetOptions is provided, a reference to it is returned.
|
|
193122
|
+
*/
|
|
193123
|
+
static create(offsetDistanceOrOptions) {
|
|
193124
|
+
if (offsetDistanceOrOptions instanceof OffsetOptions)
|
|
193125
|
+
return offsetDistanceOrOptions;
|
|
193126
|
+
return new OffsetOptions(offsetDistanceOrOptions);
|
|
193127
|
+
}
|
|
193128
|
+
/** Convert variant input into offset distance */
|
|
193129
|
+
static getOffsetDistance(offsetDistanceOrOptions) {
|
|
193130
|
+
if (typeof offsetDistanceOrOptions === "number")
|
|
193131
|
+
return offsetDistanceOrOptions;
|
|
193132
|
+
return offsetDistanceOrOptions.leftOffsetDistance;
|
|
193133
|
+
}
|
|
193134
|
+
/** Return a deep clone. */
|
|
193135
|
+
clone() {
|
|
193136
|
+
return new OffsetOptions(this.jointOptions.clone(), this.strokeOptions.clone());
|
|
193137
|
+
}
|
|
193138
|
+
}
|
|
193139
|
+
|
|
193140
|
+
|
|
192980
193141
|
/***/ }),
|
|
192981
193142
|
|
|
192982
193143
|
/***/ "../../core/geometry/lib/esm/curve/ParityRegion.js":
|
|
@@ -195122,32 +195283,33 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
195122
195283
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
195123
195284
|
/* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
|
|
195124
195285
|
/* harmony import */ var _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/IndexedXYZCollection */ "../../core/geometry/lib/esm/geometry3d/IndexedXYZCollection.js");
|
|
195125
|
-
/* harmony import */ var
|
|
195286
|
+
/* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
|
|
195126
195287
|
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
195127
|
-
/* harmony import */ var
|
|
195128
|
-
/* harmony import */ var
|
|
195129
|
-
/* harmony import */ var
|
|
195130
|
-
/* harmony import */ var
|
|
195288
|
+
/* harmony import */ var _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../geometry3d/PolylineCompressionByEdgeOffset */ "../../core/geometry/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js");
|
|
195289
|
+
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
195290
|
+
/* harmony import */ var _geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../geometry3d/SortablePolygon */ "../../core/geometry/lib/esm/geometry3d/SortablePolygon.js");
|
|
195291
|
+
/* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
|
|
195131
195292
|
/* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
|
|
195132
195293
|
/* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
195133
195294
|
/* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
|
|
195134
195295
|
/* harmony import */ var _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../topology/HalfEdgeGraphSearch */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphSearch.js");
|
|
195135
195296
|
/* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
|
|
195136
|
-
/* harmony import */ var
|
|
195137
|
-
/* harmony import */ var
|
|
195138
|
-
/* harmony import */ var
|
|
195139
|
-
/* harmony import */ var
|
|
195297
|
+
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
195298
|
+
/* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
195299
|
+
/* harmony import */ var _CurveOps__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
|
|
195300
|
+
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
195140
195301
|
/* harmony import */ var _CurveWireMomentsXYZ__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CurveWireMomentsXYZ */ "../../core/geometry/lib/esm/curve/CurveWireMomentsXYZ.js");
|
|
195141
|
-
/* harmony import */ var
|
|
195142
|
-
/* harmony import */ var
|
|
195302
|
+
/* harmony import */ var _GeometryQuery__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
|
|
195303
|
+
/* harmony import */ var _internalContexts_ChainCollectorContext__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./internalContexts/ChainCollectorContext */ "../../core/geometry/lib/esm/curve/internalContexts/ChainCollectorContext.js");
|
|
195143
195304
|
/* harmony import */ var _internalContexts_PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./internalContexts/PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
|
|
195144
195305
|
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
195145
195306
|
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
195307
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
195146
195308
|
/* harmony import */ var _ParityRegion__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
|
|
195147
|
-
/* harmony import */ var
|
|
195148
|
-
/* harmony import */ var
|
|
195149
|
-
/* harmony import */ var
|
|
195150
|
-
/* harmony import */ var
|
|
195309
|
+
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
195310
|
+
/* harmony import */ var _Query_ConsolidateAdjacentPrimitivesContext__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./Query/ConsolidateAdjacentPrimitivesContext */ "../../core/geometry/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js");
|
|
195311
|
+
/* harmony import */ var _Query_CurveSplitContext__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Query/CurveSplitContext */ "../../core/geometry/lib/esm/curve/Query/CurveSplitContext.js");
|
|
195312
|
+
/* harmony import */ var _Query_InOutTests__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Query/InOutTests */ "../../core/geometry/lib/esm/curve/Query/InOutTests.js");
|
|
195151
195313
|
/* harmony import */ var _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Query/PlanarSubdivision */ "../../core/geometry/lib/esm/curve/Query/PlanarSubdivision.js");
|
|
195152
195314
|
/* harmony import */ var _RegionMomentsXY__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RegionMomentsXY */ "../../core/geometry/lib/esm/curve/RegionMomentsXY.js");
|
|
195153
195315
|
/* harmony import */ var _RegionOpsClassificationSweeps__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./RegionOpsClassificationSweeps */ "../../core/geometry/lib/esm/curve/RegionOpsClassificationSweeps.js");
|
|
@@ -195190,6 +195352,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
195190
195352
|
|
|
195191
195353
|
|
|
195192
195354
|
|
|
195355
|
+
|
|
195193
195356
|
|
|
195194
195357
|
|
|
195195
195358
|
/**
|
|
@@ -195468,8 +195631,6 @@ class RegionOps {
|
|
|
195468
195631
|
* the xy-plane.
|
|
195469
195632
|
* * The construction algorithm attempts to eliminate some self-intersections within the offsets, but does not
|
|
195470
195633
|
* guarantee a simple area offset.
|
|
195471
|
-
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
195472
|
-
* * See [[JointOptions]] class doc for offset construction rules.
|
|
195473
195634
|
* @param points a single loop or path
|
|
195474
195635
|
* @param wrap true to include wraparound
|
|
195475
195636
|
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or JointOptions
|
|
@@ -195483,14 +195644,13 @@ class RegionOps {
|
|
|
195483
195644
|
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
195484
195645
|
* * The construction will remove "some" local effects of features smaller than the offset distance, but will
|
|
195485
195646
|
* not detect self intersection among widely separated edges.
|
|
195486
|
-
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
195487
|
-
* * See [[JointOptions]] class doc for offset construction rules.
|
|
195488
195647
|
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/Offset
|
|
195489
195648
|
* @param curves base curves.
|
|
195490
195649
|
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
195491
195650
|
*/
|
|
195492
195651
|
static constructCurveXYOffset(curves, offsetDistanceOrOptions) {
|
|
195493
|
-
|
|
195652
|
+
const offsetOptions = _OffsetOptions__WEBPACK_IMPORTED_MODULE_18__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
195653
|
+
return _CurveOps__WEBPACK_IMPORTED_MODULE_19__.CurveOps.constructCurveXYOffset(curves, offsetOptions);
|
|
195494
195654
|
}
|
|
195495
195655
|
/**
|
|
195496
195656
|
* Test if point (x,y) is IN, OUT or ON a region.
|
|
@@ -195500,7 +195660,7 @@ class RegionOps {
|
|
|
195500
195660
|
* @param y y coordinate of point to test
|
|
195501
195661
|
*/
|
|
195502
195662
|
static testPointInOnOutRegionXY(curves, x, y) {
|
|
195503
|
-
return
|
|
195663
|
+
return _Query_InOutTests__WEBPACK_IMPORTED_MODULE_20__.PointInOnOutContext.testPointInOnOutRegionXY(curves, x, y);
|
|
195504
195664
|
}
|
|
195505
195665
|
/**
|
|
195506
195666
|
* Create curve collection of subtype determined by gaps between the input curves.
|
|
@@ -195524,11 +195684,11 @@ class RegionOps {
|
|
|
195524
195684
|
maxGap = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.maxXY(maxGap, curves[i].endPoint().distance(curves[i + 1].startPoint()));
|
|
195525
195685
|
let collection;
|
|
195526
195686
|
if (_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(maxGap)) {
|
|
195527
|
-
collection = wrap ? _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.create() :
|
|
195687
|
+
collection = wrap ? _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.create() : _Path__WEBPACK_IMPORTED_MODULE_21__.Path.create();
|
|
195528
195688
|
isPath = true;
|
|
195529
195689
|
}
|
|
195530
195690
|
else {
|
|
195531
|
-
collection =
|
|
195691
|
+
collection = _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.BagOfCurves.create();
|
|
195532
195692
|
}
|
|
195533
195693
|
for (const c of curves)
|
|
195534
195694
|
collection.tryAddChild(c);
|
|
@@ -195553,7 +195713,7 @@ class RegionOps {
|
|
|
195553
195713
|
* @param cutterCurves input curves to intersect with `curvesToCut`
|
|
195554
195714
|
*/
|
|
195555
195715
|
static cloneCurvesWithXYSplits(curvesToCut, cutterCurves) {
|
|
195556
|
-
return
|
|
195716
|
+
return _Query_CurveSplitContext__WEBPACK_IMPORTED_MODULE_23__.CurveSplitContext.cloneCurvesWithXYSplits(curvesToCut, cutterCurves);
|
|
195557
195717
|
}
|
|
195558
195718
|
/**
|
|
195559
195719
|
* Create paths assembled from many curves.
|
|
@@ -195564,35 +195724,36 @@ class RegionOps {
|
|
|
195564
195724
|
static splitToPathsBetweenBreaks(source, makeClones) {
|
|
195565
195725
|
if (source === undefined)
|
|
195566
195726
|
return undefined;
|
|
195567
|
-
if (source instanceof
|
|
195727
|
+
if (source instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__.CurvePrimitive)
|
|
195568
195728
|
return source;
|
|
195569
195729
|
// source is a collection . ..
|
|
195570
195730
|
const primitives = source.collectCurvePrimitives();
|
|
195571
|
-
const chainCollector = new
|
|
195731
|
+
const chainCollector = new _internalContexts_ChainCollectorContext__WEBPACK_IMPORTED_MODULE_25__.ChainCollectorContext(makeClones);
|
|
195572
195732
|
for (const primitive of primitives) {
|
|
195573
195733
|
chainCollector.announceCurvePrimitive(primitive);
|
|
195574
195734
|
}
|
|
195575
195735
|
return chainCollector.grabResult();
|
|
195576
195736
|
}
|
|
195577
195737
|
/**
|
|
195578
|
-
* Restructure curve fragments as
|
|
195579
|
-
* *
|
|
195580
|
-
*
|
|
195581
|
-
* @param
|
|
195582
|
-
* @param
|
|
195738
|
+
* Restructure curve fragments as Paths and Loops, and construct xy-offsets of the chains.
|
|
195739
|
+
* * If the inputs do not form Loop(s), the classification of offsets is suspect.
|
|
195740
|
+
* * For best offset results, the inputs should be parallel to the xy-plane.
|
|
195741
|
+
* @param fragments fragments to be chained and offset
|
|
195742
|
+
* @param offsetDistance offset distance, applied to both sides of each fragment to produce inside and outside xy-offset curves.
|
|
195743
|
+
* @param gapTolerance distance to be treated as "effectively zero" when assembling fragments head-to-tail
|
|
195583
195744
|
* @returns object with named chains, insideOffsets, outsideOffsets
|
|
195584
195745
|
*/
|
|
195585
195746
|
static collectInsideAndOutsideOffsets(fragments, offsetDistance, gapTolerance) {
|
|
195586
|
-
return
|
|
195747
|
+
return _CurveOps__WEBPACK_IMPORTED_MODULE_19__.CurveOps.collectInsideAndOutsideXYOffsets(fragments, offsetDistance, gapTolerance);
|
|
195587
195748
|
}
|
|
195588
195749
|
/**
|
|
195589
|
-
* Restructure curve fragments as
|
|
195750
|
+
* Restructure curve fragments as Paths and Loops.
|
|
195590
195751
|
* @param fragments fragments to be chained
|
|
195591
|
-
* @param gapTolerance
|
|
195592
|
-
* @returns chains, possibly wrapped in BagOfCurves
|
|
195752
|
+
* @param gapTolerance distance to be treated as "effectively zero" when assembling fragments head-to-tail
|
|
195753
|
+
* @returns chains, possibly wrapped in a [[BagOfCurves]].
|
|
195593
195754
|
*/
|
|
195594
195755
|
static collectChains(fragments, gapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
|
|
195595
|
-
return
|
|
195756
|
+
return _CurveOps__WEBPACK_IMPORTED_MODULE_19__.CurveOps.collectChains(fragments, gapTolerance);
|
|
195596
195757
|
}
|
|
195597
195758
|
/**
|
|
195598
195759
|
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
@@ -195604,17 +195765,17 @@ class RegionOps {
|
|
|
195604
195765
|
const result = { insideParts: [], outsideParts: [], coincidentParts: [] };
|
|
195605
195766
|
const pathWithIntersectionMarkup = RegionOps.cloneCurvesWithXYSplits(curvesToCut, region);
|
|
195606
195767
|
const splitPaths = RegionOps.splitToPathsBetweenBreaks(pathWithIntersectionMarkup, true);
|
|
195607
|
-
if (splitPaths instanceof
|
|
195768
|
+
if (splitPaths instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection) {
|
|
195608
195769
|
for (const child of splitPaths.children) {
|
|
195609
|
-
const pointOnChild =
|
|
195770
|
+
const pointOnChild = _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection.createCurveLocationDetailOnAnyCurvePrimitive(child);
|
|
195610
195771
|
if (pointOnChild) {
|
|
195611
195772
|
const inOnOut = RegionOps.testPointInOnOutRegionXY(region, pointOnChild.point.x, pointOnChild.point.y);
|
|
195612
195773
|
pushToInOnOutArrays(child, inOnOut, result.outsideParts, result.coincidentParts, result.insideParts);
|
|
195613
195774
|
}
|
|
195614
195775
|
}
|
|
195615
195776
|
}
|
|
195616
|
-
else if (splitPaths instanceof
|
|
195617
|
-
const pointOnChild =
|
|
195777
|
+
else if (splitPaths instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__.CurvePrimitive) {
|
|
195778
|
+
const pointOnChild = _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection.createCurveLocationDetailOnAnyCurvePrimitive(splitPaths);
|
|
195618
195779
|
if (pointOnChild) {
|
|
195619
195780
|
const inOnOut = RegionOps.testPointInOnOutRegionXY(region, pointOnChild.point.x, pointOnChild.point.y);
|
|
195620
195781
|
pushToInOnOutArrays(splitPaths, inOnOut, result.outsideParts, result.coincidentParts, result.insideParts);
|
|
@@ -195656,7 +195817,7 @@ class RegionOps {
|
|
|
195656
195817
|
}
|
|
195657
195818
|
else {
|
|
195658
195819
|
dataToUse = _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_15__.GrowableXYZArray.create(data);
|
|
195659
|
-
|
|
195820
|
+
_geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_26__.PolylineCompressionContext.compressInPlaceByShortEdgeLength(dataToUse, _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance);
|
|
195660
195821
|
if (dataToUse.length < (requireClosurePoint ? 5 : 4))
|
|
195661
195822
|
return undefined;
|
|
195662
195823
|
}
|
|
@@ -195667,19 +195828,19 @@ class RegionOps {
|
|
|
195667
195828
|
if (normalVector.normalizeInPlace()
|
|
195668
195829
|
&& vector12.isAlmostEqual(vector03)
|
|
195669
195830
|
&& vector01.isPerpendicularTo(vector03)) {
|
|
195670
|
-
return
|
|
195831
|
+
return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_27__.Transform.createOriginAndMatrixColumns(dataToUse.getPoint3dAtUncheckedPointIndex(0), vector01, vector03, normalVector);
|
|
195671
195832
|
}
|
|
195672
195833
|
}
|
|
195673
195834
|
else if (Array.isArray(data)) {
|
|
195674
|
-
return this.rectangleEdgeTransform(new
|
|
195835
|
+
return this.rectangleEdgeTransform(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_28__.Point3dArrayCarrier(data), requireClosurePoint);
|
|
195675
195836
|
}
|
|
195676
195837
|
else if (data instanceof _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop && data.children.length === 1 && data.children[0] instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
|
|
195677
195838
|
return this.rectangleEdgeTransform(data.children[0].packedPoints, true);
|
|
195678
195839
|
}
|
|
195679
|
-
else if (data instanceof
|
|
195840
|
+
else if (data instanceof _Path__WEBPACK_IMPORTED_MODULE_21__.Path && data.children.length === 1 && data.children[0] instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
|
|
195680
195841
|
return this.rectangleEdgeTransform(data.children[0].packedPoints, requireClosurePoint);
|
|
195681
195842
|
}
|
|
195682
|
-
else if (data instanceof
|
|
195843
|
+
else if (data instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveChain) {
|
|
195683
195844
|
if (!data.checkForNonLinearPrimitives()) {
|
|
195684
195845
|
// const linestring = LineString3d.create();
|
|
195685
195846
|
const strokes = data.getPackedStrokes();
|
|
@@ -195703,7 +195864,7 @@ class RegionOps {
|
|
|
195703
195864
|
* @param options options for tolerance and selective simplification.
|
|
195704
195865
|
*/
|
|
195705
195866
|
static consolidateAdjacentPrimitives(curves, options) {
|
|
195706
|
-
const context = new
|
|
195867
|
+
const context = new _Query_ConsolidateAdjacentPrimitivesContext__WEBPACK_IMPORTED_MODULE_29__.ConsolidateAdjacentCurvePrimitivesContext(options);
|
|
195707
195868
|
curves.dispatchToGeometryHandler(context);
|
|
195708
195869
|
}
|
|
195709
195870
|
/**
|
|
@@ -195722,13 +195883,13 @@ class RegionOps {
|
|
|
195722
195883
|
const loopAndArea = [];
|
|
195723
195884
|
for (const candidate of loops) {
|
|
195724
195885
|
if (candidate instanceof _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop)
|
|
195725
|
-
|
|
195886
|
+
_geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__.SortablePolygon.pushLoop(loopAndArea, candidate);
|
|
195726
195887
|
else if (candidate instanceof _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_6__.IndexedXYZCollection) {
|
|
195727
195888
|
const loop = _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(candidate);
|
|
195728
|
-
|
|
195889
|
+
_geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__.SortablePolygon.pushLoop(loopAndArea, loop);
|
|
195729
195890
|
}
|
|
195730
195891
|
}
|
|
195731
|
-
return
|
|
195892
|
+
return _geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__.SortablePolygon.sortAsAnyRegion(loopAndArea);
|
|
195732
195893
|
}
|
|
195733
195894
|
/**
|
|
195734
195895
|
* Find all areas bounded by the unstructured, possibly intersecting curves.
|
|
@@ -195753,7 +195914,7 @@ class RegionOps {
|
|
|
195753
195914
|
const primitives = RegionOps.collectCurvePrimitives(curvesAndRegions, undefined, true, true);
|
|
195754
195915
|
const range = this.curveArrayRange(primitives);
|
|
195755
195916
|
const areaTol = this.computeXYAreaTolerance(range, tolerance);
|
|
195756
|
-
const intersections =
|
|
195917
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_31__.CurveCurve.allIntersectionsAmongPrimitivesXY(primitives, tolerance);
|
|
195757
195918
|
const graph = _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_12__.PlanarSubdivision.assembleHalfEdgeGraph(primitives, intersections, tolerance);
|
|
195758
195919
|
return _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_12__.PlanarSubdivision.collectSignedLoopSetsInHalfEdgeGraph(graph, areaTol);
|
|
195759
195920
|
}
|
|
@@ -195770,10 +195931,10 @@ class RegionOps {
|
|
|
195770
195931
|
*/
|
|
195771
195932
|
static collectCurvePrimitives(candidates, collectorArray, smallestPossiblePrimitives = false, explodeLinestrings = false) {
|
|
195772
195933
|
const results = collectorArray === undefined ? [] : collectorArray;
|
|
195773
|
-
if (candidates instanceof
|
|
195934
|
+
if (candidates instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__.CurvePrimitive) {
|
|
195774
195935
|
candidates.collectCurvePrimitives(results, smallestPossiblePrimitives, explodeLinestrings);
|
|
195775
195936
|
}
|
|
195776
|
-
else if (candidates instanceof
|
|
195937
|
+
else if (candidates instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection) {
|
|
195777
195938
|
candidates.collectCurvePrimitives(results, smallestPossiblePrimitives, explodeLinestrings);
|
|
195778
195939
|
}
|
|
195779
195940
|
else if (Array.isArray(candidates)) {
|
|
@@ -195811,12 +195972,12 @@ class RegionOps {
|
|
|
195811
195972
|
* @param worldToLocal transform to apply to data before computing its range
|
|
195812
195973
|
*/
|
|
195813
195974
|
static curveArrayRange(data, worldToLocal) {
|
|
195814
|
-
const range =
|
|
195815
|
-
if (data instanceof
|
|
195975
|
+
const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_32__.Range3d.create();
|
|
195976
|
+
if (data instanceof _GeometryQuery__WEBPACK_IMPORTED_MODULE_33__.GeometryQuery)
|
|
195816
195977
|
data.extendRange(range, worldToLocal);
|
|
195817
195978
|
else if (Array.isArray(data)) {
|
|
195818
195979
|
for (const c of data) {
|
|
195819
|
-
if (c instanceof
|
|
195980
|
+
if (c instanceof _GeometryQuery__WEBPACK_IMPORTED_MODULE_33__.GeometryQuery)
|
|
195820
195981
|
c.extendRange(range, worldToLocal);
|
|
195821
195982
|
else if (c instanceof _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_8__.Point3d)
|
|
195822
195983
|
range.extendPoint(c, worldToLocal);
|
|
@@ -196123,7 +196284,7 @@ class RegionOpsFaceToFaceSearch {
|
|
|
196123
196284
|
const baseMask = _topology_Graph__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeMask.BOUNDARY_EDGE | _topology_Graph__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeMask.PRIMARY_EDGE;
|
|
196124
196285
|
const callbacks = RegionBooleanContext.create(opA, opB);
|
|
196125
196286
|
callbacks.graph = graph;
|
|
196126
|
-
callbacks.faceAreaFunction = _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea;
|
|
196287
|
+
callbacks.faceAreaFunction = (node) => _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea(node);
|
|
196127
196288
|
// Add all the members in groupA ..
|
|
196128
196289
|
for (const data of dataA) {
|
|
196129
196290
|
if (data.length > 2) {
|
|
@@ -196568,7 +196729,7 @@ class GraphComponent {
|
|
|
196568
196729
|
}
|
|
196569
196730
|
this.faceAreas.length = 0;
|
|
196570
196731
|
if (!faceAreaFunction)
|
|
196571
|
-
faceAreaFunction = _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea;
|
|
196732
|
+
faceAreaFunction = (node) => _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea(node);
|
|
196572
196733
|
for (const f of this.faces) {
|
|
196573
196734
|
this.faceAreas.push(faceAreaFunction(f));
|
|
196574
196735
|
}
|
|
@@ -197066,6 +197227,199 @@ class AppendPlaneIntersectionStrokeHandler extends _NewtonRtoRStrokeHandler__WEB
|
|
|
197066
197227
|
}
|
|
197067
197228
|
|
|
197068
197229
|
|
|
197230
|
+
/***/ }),
|
|
197231
|
+
|
|
197232
|
+
/***/ "../../core/geometry/lib/esm/curve/internalContexts/ChainCollectorContext.js":
|
|
197233
|
+
/*!***********************************************************************************!*\
|
|
197234
|
+
!*** ../../core/geometry/lib/esm/curve/internalContexts/ChainCollectorContext.js ***!
|
|
197235
|
+
\***********************************************************************************/
|
|
197236
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
197237
|
+
|
|
197238
|
+
"use strict";
|
|
197239
|
+
__webpack_require__.r(__webpack_exports__);
|
|
197240
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
197241
|
+
/* harmony export */ ChainCollectorContext: () => (/* binding */ ChainCollectorContext)
|
|
197242
|
+
/* harmony export */ });
|
|
197243
|
+
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
197244
|
+
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
197245
|
+
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
197246
|
+
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
197247
|
+
/*---------------------------------------------------------------------------------------------
|
|
197248
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
197249
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
197250
|
+
*--------------------------------------------------------------------------------------------*/
|
|
197251
|
+
|
|
197252
|
+
|
|
197253
|
+
|
|
197254
|
+
|
|
197255
|
+
/**
|
|
197256
|
+
* Manage a growing array of arrays of curve primitives that are to be joined "head to tail" in paths.
|
|
197257
|
+
* * The caller makes a sequence of calls to announce individual primitives.
|
|
197258
|
+
* * The collector has 2 use cases in mind, controlled by `searchAllPaths` flag on `chainCollectorContext.announceCurvePrimitive`
|
|
197259
|
+
* * (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.
|
|
197260
|
+
* * The collector needs to watch for connection to the most recent path but not search for prior paths to join to instead.
|
|
197261
|
+
* * (b) "mixed" primitives -- primitive order is NOT significant for chain assembly.
|
|
197262
|
+
* * 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.
|
|
197263
|
+
* * The per-curve announcement is
|
|
197264
|
+
* * chainCollector.announceCurvePrimitive (curve, searchAllPaths).
|
|
197265
|
+
* * When all curves have been announced, the call to grab the paths option
|
|
197266
|
+
* * formLoopsIfClosed
|
|
197267
|
+
* * If true, convert closed paths to `Loop`, open paths to `Path`
|
|
197268
|
+
* * If false, convert all paths (open or not) to `Path`
|
|
197269
|
+
* * Usage pattern is
|
|
197270
|
+
* * initialization: `context = new ChainCollectorContext (makeClones: boolean)`
|
|
197271
|
+
* * many times: ` context.announceCurvePrimitive (primitive, searchAllPaths)`
|
|
197272
|
+
* * end: ` result = context.grabResults (formLoopsIfClosed)`
|
|
197273
|
+
* @internal
|
|
197274
|
+
*/
|
|
197275
|
+
class ChainCollectorContext {
|
|
197276
|
+
/**
|
|
197277
|
+
* Push a new chain with an optional first primitive.
|
|
197278
|
+
*/
|
|
197279
|
+
pushNewChain(primitive) {
|
|
197280
|
+
const chain = [];
|
|
197281
|
+
if (primitive)
|
|
197282
|
+
chain.push(primitive);
|
|
197283
|
+
this._chains.push(chain);
|
|
197284
|
+
}
|
|
197285
|
+
findOrCreateTailChain() {
|
|
197286
|
+
if (this._chains.length === 0)
|
|
197287
|
+
this.pushNewChain();
|
|
197288
|
+
return this._chains[this._chains.length - 1];
|
|
197289
|
+
}
|
|
197290
|
+
findAnyChainToConnect(xyz) {
|
|
197291
|
+
for (let chainIndexA = 0; chainIndexA < this._chains.length; chainIndexA++) {
|
|
197292
|
+
const path = this._chains[chainIndexA];
|
|
197293
|
+
this._xyzWork1 = path[path.length - 1].endPoint(this._xyzWork1);
|
|
197294
|
+
if (this._xyzWork1.isAlmostEqual(xyz))
|
|
197295
|
+
return { chainIndex: chainIndexA, atEnd: true };
|
|
197296
|
+
this._xyzWork1 = path[0].startPoint(this._xyzWork1);
|
|
197297
|
+
if (this._xyzWork1.isAlmostEqual(xyz))
|
|
197298
|
+
return { chainIndex: chainIndexA, atEnd: false };
|
|
197299
|
+
}
|
|
197300
|
+
return undefined;
|
|
197301
|
+
}
|
|
197302
|
+
/** Initialize with an empty array of chains.
|
|
197303
|
+
* @param makeClones if true, all CurvePrimitives sent to `announceCurvePrimitive` is immediately cloned. If false, the reference to the original curve is maintained.
|
|
197304
|
+
*/
|
|
197305
|
+
constructor(makeClones) {
|
|
197306
|
+
this._chains = [];
|
|
197307
|
+
this._makeClones = makeClones;
|
|
197308
|
+
}
|
|
197309
|
+
/** Announce a curve primitive
|
|
197310
|
+
* * searchAllChains controls the extent of search for connecting points.
|
|
197311
|
+
* * false ==> only consider connection to most recent chain.
|
|
197312
|
+
* * true ==> search for any connection, reversing direction as needed.
|
|
197313
|
+
* * Otherwise start a new chain.
|
|
197314
|
+
*/
|
|
197315
|
+
announceCurvePrimitive(candidate, searchAllChains = false) {
|
|
197316
|
+
if (candidate) {
|
|
197317
|
+
if (this._makeClones) {
|
|
197318
|
+
const candidate1 = candidate.clone();
|
|
197319
|
+
if (!candidate1 || !(candidate1 instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive))
|
|
197320
|
+
return;
|
|
197321
|
+
this.transferMarkup(candidate, candidate1);
|
|
197322
|
+
candidate = candidate1;
|
|
197323
|
+
}
|
|
197324
|
+
if (!searchAllChains) {
|
|
197325
|
+
const activeChain = this.findOrCreateTailChain();
|
|
197326
|
+
if (activeChain.length === 0 || !ChainCollectorContext.needBreakBetweenPrimitives(activeChain[activeChain.length - 1], candidate))
|
|
197327
|
+
activeChain.push(candidate);
|
|
197328
|
+
else
|
|
197329
|
+
this.pushNewChain(candidate);
|
|
197330
|
+
}
|
|
197331
|
+
else {
|
|
197332
|
+
this._xyzWork0 = candidate.startPoint(this._xyzWork0);
|
|
197333
|
+
let connect = this.findAnyChainToConnect(this._xyzWork0);
|
|
197334
|
+
if (connect) {
|
|
197335
|
+
if (connect.atEnd) {
|
|
197336
|
+
this._chains[connect.chainIndex].push(candidate);
|
|
197337
|
+
}
|
|
197338
|
+
else {
|
|
197339
|
+
candidate.reverseInPlace();
|
|
197340
|
+
this._chains[connect.chainIndex].splice(0, 0, candidate);
|
|
197341
|
+
}
|
|
197342
|
+
}
|
|
197343
|
+
else {
|
|
197344
|
+
this._xyzWork0 = candidate.endPoint(this._xyzWork0);
|
|
197345
|
+
connect = this.findAnyChainToConnect(this._xyzWork0);
|
|
197346
|
+
if (connect) { // START of new primitive ..
|
|
197347
|
+
if (connect.atEnd) {
|
|
197348
|
+
candidate.reverseInPlace();
|
|
197349
|
+
this._chains[connect.chainIndex].push(candidate);
|
|
197350
|
+
}
|
|
197351
|
+
else {
|
|
197352
|
+
this._chains[connect.chainIndex].splice(0, 0, candidate);
|
|
197353
|
+
}
|
|
197354
|
+
}
|
|
197355
|
+
else {
|
|
197356
|
+
this._chains.push([candidate]);
|
|
197357
|
+
}
|
|
197358
|
+
}
|
|
197359
|
+
}
|
|
197360
|
+
}
|
|
197361
|
+
}
|
|
197362
|
+
/** Transfer markup (e.g. startCut, endCut) from source to destination */
|
|
197363
|
+
transferMarkup(source, dest) {
|
|
197364
|
+
if (source && dest) {
|
|
197365
|
+
dest.startCut = source.startCut;
|
|
197366
|
+
dest.endCut = source.endCut;
|
|
197367
|
+
}
|
|
197368
|
+
}
|
|
197369
|
+
/** turn an array of curve primitives into the simplest possible strongly typed curve structure.
|
|
197370
|
+
* * The input array is assumed to be connected appropriately to act as the curves of a Path.
|
|
197371
|
+
* * When a path is created the curves array is CAPTURED.
|
|
197372
|
+
*/
|
|
197373
|
+
promoteArrayToCurves(curves, makeLoopIfClosed) {
|
|
197374
|
+
if (curves.length === 0)
|
|
197375
|
+
return undefined;
|
|
197376
|
+
if (makeLoopIfClosed) {
|
|
197377
|
+
ChainCollectorContext._staticPointA = curves[0].startPoint(ChainCollectorContext._staticPointA);
|
|
197378
|
+
ChainCollectorContext._staticPointB = curves[curves.length - 1].endPoint(ChainCollectorContext._staticPointB);
|
|
197379
|
+
if (ChainCollectorContext._staticPointA.isAlmostEqual(ChainCollectorContext._staticPointB))
|
|
197380
|
+
return _Loop__WEBPACK_IMPORTED_MODULE_1__.Loop.createArray(curves);
|
|
197381
|
+
}
|
|
197382
|
+
if (curves.length === 1)
|
|
197383
|
+
return curves[0];
|
|
197384
|
+
return _Path__WEBPACK_IMPORTED_MODULE_2__.Path.createArray(curves);
|
|
197385
|
+
}
|
|
197386
|
+
/** Return the collected results, structured as the simplest possible type. */
|
|
197387
|
+
grabResult(makeLoopIfClosed = false) {
|
|
197388
|
+
const chains = this._chains;
|
|
197389
|
+
if (chains.length === 0)
|
|
197390
|
+
return undefined;
|
|
197391
|
+
if (chains.length === 1)
|
|
197392
|
+
return this.promoteArrayToCurves(chains[0], makeLoopIfClosed);
|
|
197393
|
+
const bag = _CurveCollection__WEBPACK_IMPORTED_MODULE_3__.BagOfCurves.create();
|
|
197394
|
+
for (const chain of chains) {
|
|
197395
|
+
const q = this.promoteArrayToCurves(chain, makeLoopIfClosed);
|
|
197396
|
+
bag.tryAddChild(q);
|
|
197397
|
+
}
|
|
197398
|
+
return bag;
|
|
197399
|
+
}
|
|
197400
|
+
/** test if there is a break between primitiveA and primitiveB, due to any condition such as
|
|
197401
|
+
* * primitiveA.endCut
|
|
197402
|
+
* * primitiveB.startCut
|
|
197403
|
+
* * physical gap between primitives.
|
|
197404
|
+
*/
|
|
197405
|
+
static needBreakBetweenPrimitives(primitiveA, primitiveB, isXYOnly = false) {
|
|
197406
|
+
if (primitiveA === undefined)
|
|
197407
|
+
return true;
|
|
197408
|
+
if (primitiveB === undefined)
|
|
197409
|
+
return true;
|
|
197410
|
+
if (primitiveA.endCut !== undefined)
|
|
197411
|
+
return true;
|
|
197412
|
+
if (primitiveB.startCut !== undefined)
|
|
197413
|
+
return true;
|
|
197414
|
+
ChainCollectorContext._staticPointA = primitiveA.endPoint(ChainCollectorContext._staticPointA);
|
|
197415
|
+
ChainCollectorContext._staticPointB = primitiveB.startPoint(ChainCollectorContext._staticPointB);
|
|
197416
|
+
return isXYOnly
|
|
197417
|
+
? !ChainCollectorContext._staticPointA.isAlmostEqualXY(ChainCollectorContext._staticPointB)
|
|
197418
|
+
: !ChainCollectorContext._staticPointA.isAlmostEqual(ChainCollectorContext._staticPointB);
|
|
197419
|
+
}
|
|
197420
|
+
}
|
|
197421
|
+
|
|
197422
|
+
|
|
197069
197423
|
/***/ }),
|
|
197070
197424
|
|
|
197071
197425
|
/***/ "../../core/geometry/lib/esm/curve/internalContexts/CloneCurvesContext.js":
|
|
@@ -197666,22 +198020,19 @@ class GapSearchContext extends _CurveProcessor__WEBPACK_IMPORTED_MODULE_0__.Recu
|
|
|
197666
198020
|
"use strict";
|
|
197667
198021
|
__webpack_require__.r(__webpack_exports__);
|
|
197668
198022
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
197669
|
-
/* harmony export */ MultiChainCollector: () => (/* binding */ MultiChainCollector)
|
|
197670
|
-
/* harmony export */ OffsetHelpers: () => (/* binding */ OffsetHelpers)
|
|
198023
|
+
/* harmony export */ MultiChainCollector: () => (/* binding */ MultiChainCollector)
|
|
197671
198024
|
/* harmony export */ });
|
|
197672
|
-
/* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
197673
|
-
/* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
197674
|
-
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
197675
|
-
/* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
|
|
197676
|
-
/* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
197677
|
-
/* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
197678
|
-
/* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
197679
|
-
/* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
197680
|
-
/* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
197681
198025
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
197682
|
-
/* harmony import */ var
|
|
197683
|
-
/* harmony import */ var
|
|
197684
|
-
/* harmony import */ var
|
|
198026
|
+
/* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
|
|
198027
|
+
/* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
198028
|
+
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
198029
|
+
/* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
198030
|
+
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
198031
|
+
/* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
198032
|
+
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
198033
|
+
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
198034
|
+
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
198035
|
+
/* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
197685
198036
|
/*---------------------------------------------------------------------------------------------
|
|
197686
198037
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
197687
198038
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -197700,38 +198051,36 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
197700
198051
|
|
|
197701
198052
|
|
|
197702
198053
|
|
|
197703
|
-
|
|
197704
|
-
|
|
197705
198054
|
/**
|
|
197706
198055
|
* Manage a growing array of arrays of curve primitives that are to be joined "head to tail" in paths.
|
|
197707
198056
|
* * The caller makes a sequence of calls to announce individual primitives.
|
|
197708
|
-
* * This collector (unlike the simpler
|
|
197709
|
-
*
|
|
197710
|
-
* *
|
|
198057
|
+
* * This collector (unlike the simpler [[ChainCollectorContext]]) expects to have inputs arriving in random order, leaving multiple open chains in play at any time.
|
|
198058
|
+
* * When all curves have been announced, the call to `grabResults` restructures the various active chains into Paths (and optionally, Loops).
|
|
198059
|
+
* * Chain formation is dependent upon input fragment order, as a greedy algorithm is employed.
|
|
197711
198060
|
* * Usage pattern is
|
|
197712
|
-
* * initialization: `context = new
|
|
197713
|
-
* * many times
|
|
197714
|
-
* * `
|
|
197715
|
-
* * `
|
|
197716
|
-
* * end:
|
|
198061
|
+
* * initialization: `context = new MultiChainCollector(gapTol, planeTol)`
|
|
198062
|
+
* * many times:
|
|
198063
|
+
* * `context.captureCurve(anyCurve)`
|
|
198064
|
+
* * `context.captureCurvePrimitive(primitive)`
|
|
198065
|
+
* * end: `result = context.grabResult(makeLoopIfClosed)`
|
|
197717
198066
|
* @internal
|
|
197718
198067
|
*/
|
|
197719
198068
|
class MultiChainCollector {
|
|
197720
198069
|
/** Initialize with an empty array of chains.
|
|
197721
|
-
* @param
|
|
197722
|
-
* @param planeTolerance tolerance for considering a
|
|
198070
|
+
* @param gapTolerance tolerance for calling endpoints identical
|
|
198071
|
+
* @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.
|
|
197723
198072
|
*/
|
|
197724
|
-
constructor(
|
|
198073
|
+
constructor(gapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance, planeTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
|
|
197725
198074
|
this._chains = [];
|
|
197726
|
-
this.
|
|
197727
|
-
this.
|
|
197728
|
-
this.
|
|
198075
|
+
this._gapTolerance = gapTolerance;
|
|
198076
|
+
this._snapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance;
|
|
198077
|
+
this._planeTolerance = planeTolerance;
|
|
197729
198078
|
}
|
|
197730
198079
|
/**
|
|
197731
198080
|
* Find a chain (with index _other than_ exceptChainIndex) that starts or ends at xyz
|
|
197732
|
-
* @param xyz
|
|
197733
|
-
* @param tolerance
|
|
197734
|
-
* @param exceptChainIndex index of chain to ignore.
|
|
198081
|
+
* @param xyz endpoint to check
|
|
198082
|
+
* @param tolerance absolute distance tolerance for equating endpoints
|
|
198083
|
+
* @param exceptChainIndex index of chain to ignore. Send -1 to consider all chains.
|
|
197735
198084
|
*/
|
|
197736
198085
|
findAnyChainToConnect(xyz, tolerance, exceptChainIndex = -1) {
|
|
197737
198086
|
for (let chainIndexA = 0; chainIndexA < this._chains.length; chainIndexA++) {
|
|
@@ -197751,31 +198100,91 @@ class MultiChainCollector {
|
|
|
197751
198100
|
* Insert a single curve primitive into the active chains.
|
|
197752
198101
|
* * The primitive is captured (not cloned)
|
|
197753
198102
|
* * The primitive may be reversed in place
|
|
197754
|
-
* @param candidate
|
|
198103
|
+
* @param candidate curve to add to the context
|
|
197755
198104
|
*/
|
|
197756
198105
|
captureCurvePrimitive(candidate) {
|
|
197757
|
-
if (this.
|
|
197758
|
-
|
|
197759
|
-
|
|
198106
|
+
if (this._snapTolerance < this._gapTolerance) {
|
|
198107
|
+
if (this.attachPrimitiveToAnyChain(candidate, this._snapTolerance))
|
|
198108
|
+
return;
|
|
198109
|
+
}
|
|
198110
|
+
if (this.attachPrimitiveToAnyChain(candidate, this._gapTolerance))
|
|
197760
198111
|
return;
|
|
197761
198112
|
this._chains.push([candidate]);
|
|
197762
|
-
return;
|
|
197763
198113
|
}
|
|
197764
198114
|
/**
|
|
197765
198115
|
* Insert any curve into the collection.
|
|
197766
198116
|
* * This recurses into Path, Loop, BagOfCurves etc
|
|
197767
|
-
* *
|
|
197768
|
-
* @param candidate
|
|
198117
|
+
* * All primitives are captured, and may be reversed in place.
|
|
198118
|
+
* @param candidate curve to add to the context
|
|
197769
198119
|
*/
|
|
197770
198120
|
captureCurve(candidate) {
|
|
197771
|
-
if (candidate instanceof
|
|
198121
|
+
if (candidate instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive)
|
|
197772
198122
|
this.captureCurvePrimitive(candidate);
|
|
197773
|
-
else if (candidate instanceof
|
|
198123
|
+
else if (candidate instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_2__.CurveCollection && candidate.children !== undefined) {
|
|
197774
198124
|
for (const c of candidate.children) {
|
|
197775
198125
|
this.captureCurve(c);
|
|
197776
198126
|
}
|
|
197777
198127
|
}
|
|
197778
198128
|
}
|
|
198129
|
+
/** If allowed by the geometry type, move an endpoint. */
|
|
198130
|
+
static simpleEndPointMove(curve, atEnd, to) {
|
|
198131
|
+
if (curve instanceof (_LineSegment3d__WEBPACK_IMPORTED_MODULE_3__.LineSegment3d)) {
|
|
198132
|
+
if (atEnd) {
|
|
198133
|
+
curve.point1Ref.setFrom(to);
|
|
198134
|
+
}
|
|
198135
|
+
else {
|
|
198136
|
+
curve.point0Ref.setFrom(to);
|
|
198137
|
+
}
|
|
198138
|
+
return true;
|
|
198139
|
+
}
|
|
198140
|
+
else if (curve instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_4__.LineString3d && curve.numPoints() > 0) {
|
|
198141
|
+
const i = atEnd ? curve.numPoints() - 1 : 0;
|
|
198142
|
+
curve.packedPoints.setAtCheckedPointIndex(i, to);
|
|
198143
|
+
return true;
|
|
198144
|
+
}
|
|
198145
|
+
return false;
|
|
198146
|
+
}
|
|
198147
|
+
/**
|
|
198148
|
+
* Try to move the end of curve0 and/or the start of curve1 to a common point.
|
|
198149
|
+
* * All z-coordinates are ignored.
|
|
198150
|
+
* @param curve0 first curve, assumed to end close to the start of curve1
|
|
198151
|
+
* @param curve1 second curve, assumed to start close to the end of curve0
|
|
198152
|
+
* @param gapTolerance max distance to move a curve start/end point
|
|
198153
|
+
* @returns whether curve start/end point(s) moved
|
|
198154
|
+
*/
|
|
198155
|
+
static moveHeadOrTail(curve0, curve1, gapTolerance) {
|
|
198156
|
+
const xyz0 = curve0.endPoint();
|
|
198157
|
+
const xyz1 = curve1.startPoint();
|
|
198158
|
+
const minShift = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance * 0.001;
|
|
198159
|
+
const d01 = xyz0.distanceXY(xyz1);
|
|
198160
|
+
if (d01 < minShift)
|
|
198161
|
+
return false;
|
|
198162
|
+
// try lines and linestrings
|
|
198163
|
+
if (d01 < gapTolerance) {
|
|
198164
|
+
if (this.simpleEndPointMove(curve1, false, xyz0) || this.simpleEndPointMove(curve0, true, xyz1))
|
|
198165
|
+
return true;
|
|
198166
|
+
}
|
|
198167
|
+
// try other primitive types
|
|
198168
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_5__.CurveCurve.intersectionXYPairs(curve0, true, curve1, true);
|
|
198169
|
+
const shiftFactor = 5.0;
|
|
198170
|
+
for (const pair of intersections) {
|
|
198171
|
+
const detail0 = pair.detailA;
|
|
198172
|
+
const detail1 = pair.detailB;
|
|
198173
|
+
const distance0 = detail0.point.distanceXY(xyz0);
|
|
198174
|
+
const distance1 = detail1.point.distanceXY(xyz1);
|
|
198175
|
+
if (distance0 < shiftFactor * gapTolerance && distance1 < shiftFactor * gapTolerance) {
|
|
198176
|
+
if (curve0 instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d && curve1 instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
|
|
198177
|
+
const radians0End = curve0.sweep.fractionToRadians(detail0.fraction);
|
|
198178
|
+
curve0.sweep.setStartEndRadians(curve0.sweep.startRadians, radians0End);
|
|
198179
|
+
const radians1Start = curve1.sweep.fractionToRadians(detail1.fraction);
|
|
198180
|
+
curve1.sweep.setStartEndRadians(radians1Start, curve1.sweep.endRadians);
|
|
198181
|
+
return true;
|
|
198182
|
+
}
|
|
198183
|
+
// TODO: other combinations of types
|
|
198184
|
+
}
|
|
198185
|
+
}
|
|
198186
|
+
return false;
|
|
198187
|
+
}
|
|
197779
198188
|
/** Announce a curve primitive
|
|
197780
198189
|
* * If a "nearby" connection is possible, insert the candidate in the chain and force endpoint match.
|
|
197781
198190
|
* * Otherwise start a new chain.
|
|
@@ -197789,7 +198198,7 @@ class MultiChainCollector {
|
|
|
197789
198198
|
const chain = this._chains[connect.chainIndex];
|
|
197790
198199
|
const index0 = chain.length - 1;
|
|
197791
198200
|
this._chains[connect.chainIndex].push(candidate);
|
|
197792
|
-
|
|
198201
|
+
MultiChainCollector.moveHeadOrTail(chain[index0], chain[index0 + 1], this._gapTolerance);
|
|
197793
198202
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
197794
198203
|
return true;
|
|
197795
198204
|
}
|
|
@@ -197797,7 +198206,7 @@ class MultiChainCollector {
|
|
|
197797
198206
|
candidate.reverseInPlace();
|
|
197798
198207
|
const chain = this._chains[connect.chainIndex];
|
|
197799
198208
|
chain.splice(0, 0, candidate);
|
|
197800
|
-
|
|
198209
|
+
MultiChainCollector.moveHeadOrTail(chain[0], chain[1], this._gapTolerance);
|
|
197801
198210
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
197802
198211
|
return true;
|
|
197803
198212
|
}
|
|
@@ -197805,20 +198214,20 @@ class MultiChainCollector {
|
|
|
197805
198214
|
else {
|
|
197806
198215
|
this._xyzWork0 = candidate.endPoint(this._xyzWork0);
|
|
197807
198216
|
connect = this.findAnyChainToConnect(this._xyzWork0, tolerance);
|
|
197808
|
-
if (connect) {
|
|
198217
|
+
if (connect) {
|
|
197809
198218
|
if (connect.atEnd) {
|
|
197810
198219
|
candidate.reverseInPlace();
|
|
197811
198220
|
const chain = this._chains[connect.chainIndex];
|
|
197812
198221
|
const index0 = chain.length - 1;
|
|
197813
198222
|
this._chains[connect.chainIndex].push(candidate);
|
|
197814
|
-
|
|
198223
|
+
MultiChainCollector.moveHeadOrTail(chain[index0], chain[index0 + 1], this._gapTolerance);
|
|
197815
198224
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
197816
198225
|
return true;
|
|
197817
198226
|
}
|
|
197818
198227
|
else {
|
|
197819
198228
|
const chain = this._chains[connect.chainIndex];
|
|
197820
198229
|
chain.splice(0, 0, candidate);
|
|
197821
|
-
|
|
198230
|
+
MultiChainCollector.moveHeadOrTail(chain[0], chain[1], this._gapTolerance);
|
|
197822
198231
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
197823
198232
|
return true;
|
|
197824
198233
|
}
|
|
@@ -197828,10 +198237,13 @@ class MultiChainCollector {
|
|
|
197828
198237
|
return false;
|
|
197829
198238
|
}
|
|
197830
198239
|
/**
|
|
197831
|
-
*
|
|
197832
|
-
* *
|
|
197833
|
-
* *
|
|
197834
|
-
* *
|
|
198240
|
+
* Merge two entries in the chain array.
|
|
198241
|
+
* * Move each primitive from chainB to the end of chainA.
|
|
198242
|
+
* * Clear chainB.
|
|
198243
|
+
* * Move the final chain to chainB index.
|
|
198244
|
+
* * Decrement the array length.
|
|
198245
|
+
* @param chainIndexA index of chainA
|
|
198246
|
+
* @param chainIndexB index of chainB
|
|
197835
198247
|
*/
|
|
197836
198248
|
mergeChainsForwardForward(chainIndexA, chainIndexB) {
|
|
197837
198249
|
const chainA = this._chains[chainIndexA];
|
|
@@ -197839,30 +198251,26 @@ class MultiChainCollector {
|
|
|
197839
198251
|
for (const p of chainB) {
|
|
197840
198252
|
chainA.push(p);
|
|
197841
198253
|
}
|
|
197842
|
-
// chainIndexB is unused
|
|
197843
|
-
chainB.length = 0;
|
|
198254
|
+
chainB.length = 0; // chainIndexB is unused
|
|
197844
198255
|
const lastChainIndex = this._chains.length - 1;
|
|
197845
|
-
if (chainIndexB !== lastChainIndex)
|
|
198256
|
+
if (chainIndexB !== lastChainIndex)
|
|
197846
198257
|
this._chains[chainIndexB] = this._chains[lastChainIndex];
|
|
197847
|
-
|
|
197848
|
-
}
|
|
197849
|
-
else {
|
|
197850
|
-
this._chains.pop();
|
|
197851
|
-
}
|
|
198258
|
+
this._chains.pop();
|
|
197852
198259
|
}
|
|
198260
|
+
/** Reverse the curve chain in place. */
|
|
197853
198261
|
reverseChain(chainIndex) {
|
|
197854
198262
|
const chain = this._chains[chainIndex];
|
|
197855
198263
|
chain.reverse();
|
|
197856
198264
|
for (const p of chain)
|
|
197857
198265
|
p.reverseInPlace();
|
|
197858
198266
|
}
|
|
197859
|
-
|
|
198267
|
+
/** See if the head or tail of chainIndex matches any existing chain. If so, merge the two chains. */
|
|
197860
198268
|
searchAndMergeChainIndex(chainIndex, tolerance) {
|
|
197861
198269
|
// ASSUME valid index of non-empty chain
|
|
197862
198270
|
const chain = this._chains[chainIndex];
|
|
197863
198271
|
const lastIndexInChain = chain.length - 1;
|
|
197864
198272
|
this._xyzWork0 = chain[0].startPoint(this._xyzWork0);
|
|
197865
|
-
//
|
|
198273
|
+
// try start with any other chain
|
|
197866
198274
|
let connect = this.findAnyChainToConnect(this._xyzWork0, tolerance, chainIndex);
|
|
197867
198275
|
if (connect) {
|
|
197868
198276
|
if (!connect.atEnd)
|
|
@@ -197880,9 +198288,11 @@ class MultiChainCollector {
|
|
|
197880
198288
|
return;
|
|
197881
198289
|
}
|
|
197882
198290
|
}
|
|
197883
|
-
/**
|
|
197884
|
-
*
|
|
197885
|
-
*
|
|
198291
|
+
/**
|
|
198292
|
+
* Convert an array of curve primitives into the simplest possible strongly typed curve structure.
|
|
198293
|
+
* @param curves input array, assembled correctly into a single contiguous path, captured by returned object
|
|
198294
|
+
* @param makeLoopIfClosed whether to return a Loop from physically closed curves array, otherwise Path
|
|
198295
|
+
* @return Loop or Path if multiple curves; the primitive if only one curve; undefined if no curves
|
|
197886
198296
|
*/
|
|
197887
198297
|
promoteArrayToCurves(curves, makeLoopIfClosed) {
|
|
197888
198298
|
if (curves.length === 0)
|
|
@@ -197892,39 +198302,37 @@ class MultiChainCollector {
|
|
|
197892
198302
|
const primitiveN = curves[curves.length - 1];
|
|
197893
198303
|
MultiChainCollector._staticPointA = primitive0.startPoint(MultiChainCollector._staticPointA);
|
|
197894
198304
|
MultiChainCollector._staticPointB = primitiveN.endPoint(MultiChainCollector._staticPointB);
|
|
197895
|
-
|
|
197896
|
-
|
|
197897
|
-
// adjust for closure (and get the corrected coordinates)
|
|
197898
|
-
OffsetHelpers.moveHeadOrTail(primitiveN, primitive0, this._endPointShiftTolerance);
|
|
198305
|
+
if (MultiChainCollector.moveHeadOrTail(primitiveN, primitive0, this._gapTolerance)) {
|
|
198306
|
+
// get the corrected coordinates
|
|
197899
198307
|
MultiChainCollector._staticPointA = primitive0.startPoint(MultiChainCollector._staticPointA);
|
|
197900
198308
|
MultiChainCollector._staticPointB = primitiveN.endPoint(MultiChainCollector._staticPointB);
|
|
197901
198309
|
}
|
|
197902
|
-
if (MultiChainCollector._staticPointA.isAlmostEqual(MultiChainCollector._staticPointB)) {
|
|
197903
|
-
const localToWorld =
|
|
198310
|
+
if (MultiChainCollector._staticPointA.isAlmostEqual(MultiChainCollector._staticPointB, this._gapTolerance)) {
|
|
198311
|
+
const localToWorld = _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_7__.FrameBuilder.createRightHandedLocalToWorld(curves);
|
|
197904
198312
|
if (localToWorld) {
|
|
197905
198313
|
const worldToLocal = localToWorld.inverse();
|
|
197906
198314
|
if (worldToLocal) {
|
|
197907
|
-
const range =
|
|
197908
|
-
if (this.
|
|
197909
|
-
return
|
|
198315
|
+
const range = _RegionOps__WEBPACK_IMPORTED_MODULE_8__.RegionOps.curveArrayRange(curves, worldToLocal);
|
|
198316
|
+
if (this._planeTolerance !== undefined && range.zLength() <= this._planeTolerance) {
|
|
198317
|
+
return _Loop__WEBPACK_IMPORTED_MODULE_9__.Loop.createArray(curves);
|
|
197910
198318
|
}
|
|
197911
198319
|
}
|
|
197912
198320
|
}
|
|
197913
|
-
return
|
|
198321
|
+
return _Path__WEBPACK_IMPORTED_MODULE_10__.Path.createArray(curves);
|
|
197914
198322
|
}
|
|
197915
198323
|
}
|
|
197916
198324
|
if (curves.length === 1)
|
|
197917
198325
|
return curves[0];
|
|
197918
|
-
return
|
|
198326
|
+
return _Path__WEBPACK_IMPORTED_MODULE_10__.Path.createArray(curves);
|
|
197919
198327
|
}
|
|
197920
|
-
|
|
197921
|
-
|
|
198328
|
+
/** Stroke the curve chain to a line string, de-duplicate the points. */
|
|
198329
|
+
chainToLineString3d(chain, options) {
|
|
198330
|
+
if (chain.length === 0)
|
|
197922
198331
|
return undefined;
|
|
197923
|
-
const linestring =
|
|
197924
|
-
for (const curve of
|
|
197925
|
-
curve.emitStrokes(linestring);
|
|
197926
|
-
|
|
197927
|
-
}
|
|
198332
|
+
const linestring = _LineString3d__WEBPACK_IMPORTED_MODULE_4__.LineString3d.create();
|
|
198333
|
+
for (const curve of chain)
|
|
198334
|
+
curve.emitStrokes(linestring, options);
|
|
198335
|
+
linestring.removeDuplicatePoints(this._gapTolerance);
|
|
197928
198336
|
return linestring;
|
|
197929
198337
|
}
|
|
197930
198338
|
/** Return the collected results, structured as the simplest possible type. */
|
|
@@ -197934,7 +198342,7 @@ class MultiChainCollector {
|
|
|
197934
198342
|
return undefined;
|
|
197935
198343
|
if (chains.length === 1)
|
|
197936
198344
|
return this.promoteArrayToCurves(chains[0], makeLoopIfClosed);
|
|
197937
|
-
const bag =
|
|
198345
|
+
const bag = _CurveCollection__WEBPACK_IMPORTED_MODULE_2__.BagOfCurves.create();
|
|
197938
198346
|
for (const chain of chains) {
|
|
197939
198347
|
const q = this.promoteArrayToCurves(chain, makeLoopIfClosed);
|
|
197940
198348
|
bag.tryAddChild(q);
|
|
@@ -197942,171 +198350,22 @@ class MultiChainCollector {
|
|
|
197942
198350
|
return bag;
|
|
197943
198351
|
}
|
|
197944
198352
|
/** Return chains as individual calls to announceChain. */
|
|
197945
|
-
announceChainsAsLineString3d(announceChain) {
|
|
198353
|
+
announceChainsAsLineString3d(announceChain, options) {
|
|
197946
198354
|
const chains = this._chains;
|
|
197947
198355
|
if (chains.length === 1) {
|
|
197948
|
-
const ls = this.chainToLineString3d(chains[0]);
|
|
198356
|
+
const ls = this.chainToLineString3d(chains[0], options);
|
|
197949
198357
|
if (ls)
|
|
197950
198358
|
announceChain(ls);
|
|
197951
198359
|
}
|
|
197952
198360
|
else if (chains.length > 1) {
|
|
197953
198361
|
for (const chain of chains) {
|
|
197954
|
-
const ls = this.chainToLineString3d(chain);
|
|
198362
|
+
const ls = this.chainToLineString3d(chain, options);
|
|
197955
198363
|
if (ls)
|
|
197956
198364
|
announceChain(ls);
|
|
197957
198365
|
}
|
|
197958
198366
|
}
|
|
197959
198367
|
}
|
|
197960
198368
|
}
|
|
197961
|
-
/**
|
|
197962
|
-
* Static methods to assist offset sequences.
|
|
197963
|
-
* @internal
|
|
197964
|
-
*/
|
|
197965
|
-
class OffsetHelpers {
|
|
197966
|
-
// recursively sum lengths, allowing CurvePrimitive, CurveCollection, or array of such at any level.
|
|
197967
|
-
static sumLengths(data) {
|
|
197968
|
-
let mySum = 0;
|
|
197969
|
-
if (data instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive) {
|
|
197970
|
-
mySum += data.curveLength();
|
|
197971
|
-
}
|
|
197972
|
-
else if (data instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__.CurveCollection) {
|
|
197973
|
-
mySum += data.sumLengths();
|
|
197974
|
-
}
|
|
197975
|
-
else if (Array.isArray(data)) {
|
|
197976
|
-
for (const data1 of data)
|
|
197977
|
-
mySum += this.sumLengths(data1);
|
|
197978
|
-
}
|
|
197979
|
-
return mySum;
|
|
197980
|
-
}
|
|
197981
|
-
// recursively sum lengths, allowing CurvePrimitive, CurveCollection, or array of such at any level.
|
|
197982
|
-
static extendRange(range, data) {
|
|
197983
|
-
if (data instanceof _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_8__.GeometryQuery) {
|
|
197984
|
-
data.extendRange(range);
|
|
197985
|
-
}
|
|
197986
|
-
else if (Array.isArray(data)) {
|
|
197987
|
-
for (const data1 of data)
|
|
197988
|
-
this.extendRange(range, data1);
|
|
197989
|
-
}
|
|
197990
|
-
return range;
|
|
197991
|
-
}
|
|
197992
|
-
// construct (separately) the offsets of each entry of data (Path, Loop, BagOfCurve, or Array of those)
|
|
197993
|
-
// push all offset geometry into the result array
|
|
197994
|
-
// return summed length
|
|
197995
|
-
static appendOffsets(data, offset, result) {
|
|
197996
|
-
let summedLengths = 0;
|
|
197997
|
-
if (data instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive) {
|
|
197998
|
-
const resultA = _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_9__.CurveChainWireOffsetContext.constructCurveXYOffset(_curve_Path__WEBPACK_IMPORTED_MODULE_6__.Path.create(data), offset);
|
|
197999
|
-
if (resultA) {
|
|
198000
|
-
summedLengths += this.sumLengths(resultA);
|
|
198001
|
-
result.push(resultA);
|
|
198002
|
-
}
|
|
198003
|
-
}
|
|
198004
|
-
else if (data instanceof _curve_Loop__WEBPACK_IMPORTED_MODULE_5__.Loop || data instanceof _curve_Path__WEBPACK_IMPORTED_MODULE_6__.Path) {
|
|
198005
|
-
const resultA = _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_9__.CurveChainWireOffsetContext.constructCurveXYOffset(data, offset);
|
|
198006
|
-
if (resultA) {
|
|
198007
|
-
summedLengths += this.sumLengths(resultA);
|
|
198008
|
-
result.push(resultA);
|
|
198009
|
-
}
|
|
198010
|
-
}
|
|
198011
|
-
else if (data instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__.BagOfCurves) {
|
|
198012
|
-
for (const q of data.children)
|
|
198013
|
-
summedLengths += this.appendOffsets(q, offset, result);
|
|
198014
|
-
}
|
|
198015
|
-
else if (Array.isArray(data)) {
|
|
198016
|
-
for (const q of data)
|
|
198017
|
-
summedLengths += this.appendOffsets(q, offset, result);
|
|
198018
|
-
}
|
|
198019
|
-
return summedLengths;
|
|
198020
|
-
}
|
|
198021
|
-
/**
|
|
198022
|
-
* * Restructure curve fragments as chains and offsets
|
|
198023
|
-
* * Return object with named chains, insideOffsets, outsideOffsets
|
|
198024
|
-
* * BEWARE that if the input is not a loop the classification of outputs is suspect.
|
|
198025
|
-
* @param fragments fragments to be chained
|
|
198026
|
-
* @param offsetDistance offset distance.
|
|
198027
|
-
*/
|
|
198028
|
-
static collectInsideAndOutsideOffsets(fragments, offsetDistance, gapTolerance) {
|
|
198029
|
-
const collector = new MultiChainCollector(gapTolerance);
|
|
198030
|
-
for (const s of fragments) {
|
|
198031
|
-
collector.captureCurve(s);
|
|
198032
|
-
}
|
|
198033
|
-
const myChains = collector.grabResult(true);
|
|
198034
|
-
const myOffsetA = [];
|
|
198035
|
-
const myOffsetB = [];
|
|
198036
|
-
const offsetLengthA = OffsetHelpers.appendOffsets(myChains, offsetDistance, myOffsetA);
|
|
198037
|
-
const offsetLengthB = OffsetHelpers.appendOffsets(myChains, -offsetDistance, myOffsetB);
|
|
198038
|
-
if (offsetLengthA > offsetLengthB) {
|
|
198039
|
-
return { outsideOffsets: myOffsetA, insideOffsets: myOffsetB, chains: myChains };
|
|
198040
|
-
}
|
|
198041
|
-
else {
|
|
198042
|
-
return { insideOffsets: myOffsetA, outsideOffsets: myOffsetB, chains: myChains };
|
|
198043
|
-
}
|
|
198044
|
-
}
|
|
198045
|
-
/**
|
|
198046
|
-
* * Restructure curve fragments as chains and offsets
|
|
198047
|
-
* * BEWARE that if the input is not a loop the classification of outputs is suspect.
|
|
198048
|
-
* @param fragments fragments to be chained
|
|
198049
|
-
* @param gapTolerance distance to be treated as "effectively zero" when joining head-to-tail.
|
|
198050
|
-
*/
|
|
198051
|
-
static collectChains(fragments, gapTolerance, planarTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
|
|
198052
|
-
const collector = new MultiChainCollector(gapTolerance, planarTolerance);
|
|
198053
|
-
for (const s of fragments) {
|
|
198054
|
-
collector.captureCurve(s);
|
|
198055
|
-
}
|
|
198056
|
-
return collector.grabResult(true);
|
|
198057
|
-
}
|
|
198058
|
-
/** If allowed by the geometry type, move an endpoint.
|
|
198059
|
-
*
|
|
198060
|
-
*/
|
|
198061
|
-
static simpleEndPointMove(g, atEnd, to) {
|
|
198062
|
-
if (g instanceof (_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__.LineSegment3d)) {
|
|
198063
|
-
if (atEnd) {
|
|
198064
|
-
g.point1Ref.setFrom(to);
|
|
198065
|
-
}
|
|
198066
|
-
else {
|
|
198067
|
-
g.point0Ref.setFrom(to);
|
|
198068
|
-
}
|
|
198069
|
-
return true;
|
|
198070
|
-
}
|
|
198071
|
-
else if (g instanceof _curve_LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d && g.numPoints() > 0) {
|
|
198072
|
-
const i = atEnd ? g.numPoints() - 1 : 0;
|
|
198073
|
-
g.packedPoints.setAtCheckedPointIndex(i, to);
|
|
198074
|
-
return true;
|
|
198075
|
-
}
|
|
198076
|
-
return false;
|
|
198077
|
-
}
|
|
198078
|
-
// Try to move move tail (end) of g0 and/or head (beginning) of g1 to a common point.
|
|
198079
|
-
static moveHeadOrTail(g0, g1, maxShift) {
|
|
198080
|
-
const xyz0 = g0.endPoint();
|
|
198081
|
-
const xyz1 = g1.startPoint();
|
|
198082
|
-
const minShift = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance * 0.001;
|
|
198083
|
-
const d01 = xyz0.distanceXY(xyz1);
|
|
198084
|
-
if (d01 < minShift)
|
|
198085
|
-
return true;
|
|
198086
|
-
if (this.simpleEndPointMove(g1, false, xyz0) || this.simpleEndPointMove(g0, true, xyz1))
|
|
198087
|
-
return true;
|
|
198088
|
-
// const detail1On0 = g0.closestPoint(xyz1);
|
|
198089
|
-
// const detail0On1 = g1.closestPoint(xyz0);
|
|
198090
|
-
const intersections = _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_11__.CurveCurve.intersectionXYPairs(g0, true, g1, true);
|
|
198091
|
-
const shiftFactor = 5.0;
|
|
198092
|
-
for (const pair of intersections) {
|
|
198093
|
-
const detail0 = pair.detailA;
|
|
198094
|
-
const detail1 = pair.detailB;
|
|
198095
|
-
const distance0 = detail0.point.distanceXY(xyz0);
|
|
198096
|
-
const distance1 = detail1.point.distanceXY(xyz1);
|
|
198097
|
-
if (distance0 < shiftFactor * maxShift && distance1 < shiftFactor * maxShift) {
|
|
198098
|
-
if (g0 instanceof _curve_Arc3d__WEBPACK_IMPORTED_MODULE_12__.Arc3d && g1 instanceof _curve_Arc3d__WEBPACK_IMPORTED_MODULE_12__.Arc3d) {
|
|
198099
|
-
const radians0End = g0.sweep.fractionToRadians(detail0.fraction);
|
|
198100
|
-
g0.sweep.setStartEndRadians(g0.sweep.startRadians, radians0End);
|
|
198101
|
-
const radians1Start = g1.sweep.fractionToRadians(detail1.fraction);
|
|
198102
|
-
g1.sweep.setStartEndRadians(radians1Start, g1.sweep.endRadians);
|
|
198103
|
-
return true;
|
|
198104
|
-
}
|
|
198105
|
-
}
|
|
198106
|
-
}
|
|
198107
|
-
return false;
|
|
198108
|
-
}
|
|
198109
|
-
}
|
|
198110
198369
|
|
|
198111
198370
|
|
|
198112
198371
|
/***/ }),
|
|
@@ -198351,24 +198610,22 @@ class PlaneAltitudeRangeContext extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
198351
198610
|
__webpack_require__.r(__webpack_exports__);
|
|
198352
198611
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
198353
198612
|
/* harmony export */ CurveChainWireOffsetContext: () => (/* binding */ CurveChainWireOffsetContext),
|
|
198354
|
-
/* harmony export */ JointOptions: () => (/* binding */ JointOptions),
|
|
198355
|
-
/* harmony export */ OffsetOptions: () => (/* binding */ OffsetOptions),
|
|
198356
198613
|
/* harmony export */ PolygonWireOffsetContext: () => (/* binding */ PolygonWireOffsetContext)
|
|
198357
198614
|
/* harmony export */ });
|
|
198358
198615
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
198359
|
-
/* harmony import */ var
|
|
198360
|
-
/* harmony import */ var
|
|
198361
|
-
/* harmony import */ var
|
|
198362
|
-
/* harmony import */ var
|
|
198363
|
-
/* harmony import */ var
|
|
198364
|
-
/* harmony import */ var
|
|
198616
|
+
/* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
|
|
198617
|
+
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
198618
|
+
/* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
|
|
198619
|
+
/* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
198620
|
+
/* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
|
|
198621
|
+
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
198365
198622
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
198366
|
-
/* harmony import */ var
|
|
198367
|
-
/* harmony import */ var
|
|
198623
|
+
/* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
198624
|
+
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
198368
198625
|
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
198626
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
198369
198627
|
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
198370
198628
|
/* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
198371
|
-
/* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
198372
198629
|
/*---------------------------------------------------------------------------------------------
|
|
198373
198630
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
198374
198631
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -198404,157 +198661,6 @@ var JointMode;
|
|
|
198404
198661
|
JointMode[JointMode["JustGeometry"] = 3] = "JustGeometry";
|
|
198405
198662
|
JointMode[JointMode["Gap"] = 4] = "Gap";
|
|
198406
198663
|
})(JointMode || (JointMode = {}));
|
|
198407
|
-
/**
|
|
198408
|
-
* Control parameters for joint construction.
|
|
198409
|
-
* * Define a "joint" as the common point between adjacent segments of the input curve.
|
|
198410
|
-
* * Define the "turn angle" at a joint to be the angle in [0,pi] between the first derivatives (tangents) of
|
|
198411
|
-
* the segments at the joint.
|
|
198412
|
-
* * When creating offsets, if an offset needs to do an "outside" turn, the first applicable construction is applied:
|
|
198413
|
-
* * If the turn angle is larger than `options.minArcDegrees`, a circular arc is constructed to offset the joint.
|
|
198414
|
-
* * If the turn angle is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to
|
|
198415
|
-
* single intersection point (to create a sharp corner).
|
|
198416
|
-
* * If the turn angle is larger than `options.maxChamferDegrees`, the joint is offset with a line string whose edges:
|
|
198417
|
-
* * lie outside the arc that would have been created by the first construction
|
|
198418
|
-
* * have uniform turn angle less than `options.maxChamferDegrees`
|
|
198419
|
-
* * touch the arc at their midpoint (except first and last edge).
|
|
198420
|
-
* @public
|
|
198421
|
-
*/
|
|
198422
|
-
class JointOptions {
|
|
198423
|
-
/**
|
|
198424
|
-
* Construct JointOptions.
|
|
198425
|
-
* * leftOffsetDistance is required
|
|
198426
|
-
* * minArcDegrees and maxChamferDegrees are optional.
|
|
198427
|
-
*/
|
|
198428
|
-
constructor(leftOffsetDistance, minArcDegrees = 180, maxChamferDegrees = 90, preserveEllipticalArcs = false, allowSharpestCorners = false) {
|
|
198429
|
-
/**
|
|
198430
|
-
* Smallest arc to construct.
|
|
198431
|
-
* * If this control angle is 180 degrees or more, arcs are never created.
|
|
198432
|
-
*/
|
|
198433
|
-
this.minArcDegrees = 180.0;
|
|
198434
|
-
/** Largest turn angle at which to construct a sharp corner, or largest turn angle in a multi-segment chamfer. */
|
|
198435
|
-
this.maxChamferTurnDegrees = 90;
|
|
198436
|
-
/**
|
|
198437
|
-
* Whether to remove the internal turn angle upper bound for sharp corner construction.
|
|
198438
|
-
* * By default, a sharp corner is not created at a joint when the turn angle is too large, so as to avoid offsets whose
|
|
198439
|
-
* ranges blow up. Internally, this is implemented by applying an upper bound of 120 degrees to `maxChamferTurnDegrees`.
|
|
198440
|
-
* * When `allowSharpestCorners` is true, this internal upper bound is removed, allowing sharp corners for turn angles
|
|
198441
|
-
* up to `maxChamferTurnDegrees`.
|
|
198442
|
-
* * Thus, if you know your input turn angles are no greater than `maxChamferTurnDegrees`, you can create an offset with
|
|
198443
|
-
* sharp corners at each joint by setting `maxChamferTurnDegrees < minArcDegrees` and `allowSharpestCorners` to true.
|
|
198444
|
-
*/
|
|
198445
|
-
this.allowSharpestCorners = false;
|
|
198446
|
-
/** Offset distance, positive to left of base curve. */
|
|
198447
|
-
this.leftOffsetDistance = 0;
|
|
198448
|
-
/** Whether to offset elliptical arcs as elliptical arcs (true) or as B-spline curves (false, default). */
|
|
198449
|
-
this.preserveEllipticalArcs = false;
|
|
198450
|
-
this.leftOffsetDistance = leftOffsetDistance;
|
|
198451
|
-
this.minArcDegrees = minArcDegrees;
|
|
198452
|
-
this.maxChamferTurnDegrees = maxChamferDegrees;
|
|
198453
|
-
this.preserveEllipticalArcs = preserveEllipticalArcs;
|
|
198454
|
-
this.allowSharpestCorners = allowSharpestCorners;
|
|
198455
|
-
}
|
|
198456
|
-
/** Return a deep clone. */
|
|
198457
|
-
clone() {
|
|
198458
|
-
return new JointOptions(this.leftOffsetDistance, this.minArcDegrees, this.maxChamferTurnDegrees, this.preserveEllipticalArcs, this.allowSharpestCorners);
|
|
198459
|
-
}
|
|
198460
|
-
/** Copy values of input options */
|
|
198461
|
-
setFrom(other) {
|
|
198462
|
-
this.leftOffsetDistance = other.leftOffsetDistance;
|
|
198463
|
-
this.minArcDegrees = other.minArcDegrees;
|
|
198464
|
-
this.maxChamferTurnDegrees = other.maxChamferTurnDegrees;
|
|
198465
|
-
this.preserveEllipticalArcs = other.preserveEllipticalArcs;
|
|
198466
|
-
this.allowSharpestCorners = other.allowSharpestCorners;
|
|
198467
|
-
}
|
|
198468
|
-
/**
|
|
198469
|
-
* Parse a number or JointOptions up to JointOptions:
|
|
198470
|
-
* * If leftOffsetDistanceOptions is a number, create a JointOptions with other options set to default values.
|
|
198471
|
-
* * If leftOffsetDistanceOrOptions is a JointOptions, return it unchanged.
|
|
198472
|
-
* @param leftOffsetDistanceOrOptions
|
|
198473
|
-
*/
|
|
198474
|
-
static create(leftOffsetDistanceOrOptions) {
|
|
198475
|
-
if (leftOffsetDistanceOrOptions instanceof JointOptions)
|
|
198476
|
-
return leftOffsetDistanceOrOptions;
|
|
198477
|
-
return new JointOptions(leftOffsetDistanceOrOptions);
|
|
198478
|
-
}
|
|
198479
|
-
/** Return true if the options indicate this amount of turn should be handled with an arc. */
|
|
198480
|
-
needArc(theta) {
|
|
198481
|
-
return Math.abs(theta.degrees) >= this.minArcDegrees;
|
|
198482
|
-
}
|
|
198483
|
-
/** Return the number of corners needed to chamfer the given turn angle. */
|
|
198484
|
-
numChamferPoints(theta) {
|
|
198485
|
-
const degrees = Math.abs(theta.degrees);
|
|
198486
|
-
const minStepDegreesClamp = 10;
|
|
198487
|
-
let maxStepDegreesClamp = 120;
|
|
198488
|
-
if (this.allowSharpestCorners) {
|
|
198489
|
-
maxStepDegreesClamp = this.maxChamferTurnDegrees;
|
|
198490
|
-
}
|
|
198491
|
-
const stepDegrees = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.clamp(this.maxChamferTurnDegrees, minStepDegreesClamp, maxStepDegreesClamp);
|
|
198492
|
-
if (degrees <= stepDegrees)
|
|
198493
|
-
return 1;
|
|
198494
|
-
return Math.ceil(degrees / stepDegrees);
|
|
198495
|
-
}
|
|
198496
|
-
}
|
|
198497
|
-
/**
|
|
198498
|
-
* Options for offsetting a curve.
|
|
198499
|
-
* @public
|
|
198500
|
-
*/
|
|
198501
|
-
class OffsetOptions {
|
|
198502
|
-
/** Options that are provided are captured. */
|
|
198503
|
-
constructor(offsetDistanceOrOptions, strokeOptions) {
|
|
198504
|
-
this.jointOptions = JointOptions.create(offsetDistanceOrOptions);
|
|
198505
|
-
this.strokeOptions = (strokeOptions !== undefined) ? strokeOptions : _StrokeOptions__WEBPACK_IMPORTED_MODULE_1__.StrokeOptions.createForCurves();
|
|
198506
|
-
}
|
|
198507
|
-
get minArcDegrees() {
|
|
198508
|
-
return this.jointOptions.minArcDegrees;
|
|
198509
|
-
}
|
|
198510
|
-
set minArcDegrees(value) {
|
|
198511
|
-
this.jointOptions.minArcDegrees = value;
|
|
198512
|
-
}
|
|
198513
|
-
get maxChamferTurnDegrees() {
|
|
198514
|
-
return this.jointOptions.maxChamferTurnDegrees;
|
|
198515
|
-
}
|
|
198516
|
-
set maxChamferTurnDegrees(value) {
|
|
198517
|
-
this.jointOptions.maxChamferTurnDegrees = value;
|
|
198518
|
-
}
|
|
198519
|
-
get allowSharpestCorners() {
|
|
198520
|
-
return this.jointOptions.allowSharpestCorners;
|
|
198521
|
-
}
|
|
198522
|
-
set allowSharpestCorners(value) {
|
|
198523
|
-
this.jointOptions.allowSharpestCorners = value;
|
|
198524
|
-
}
|
|
198525
|
-
get leftOffsetDistance() {
|
|
198526
|
-
return this.jointOptions.leftOffsetDistance;
|
|
198527
|
-
}
|
|
198528
|
-
set leftOffsetDistance(value) {
|
|
198529
|
-
this.jointOptions.leftOffsetDistance = value;
|
|
198530
|
-
}
|
|
198531
|
-
get preserveEllipticalArcs() {
|
|
198532
|
-
return this.jointOptions.preserveEllipticalArcs;
|
|
198533
|
-
}
|
|
198534
|
-
set preserveEllipticalArcs(value) {
|
|
198535
|
-
this.jointOptions.preserveEllipticalArcs = value;
|
|
198536
|
-
}
|
|
198537
|
-
/**
|
|
198538
|
-
* Convert variant input into OffsetOptions.
|
|
198539
|
-
* * If a JointOptions is provided, it is captured.
|
|
198540
|
-
* * If an OffsetOptions is provided, a reference to it is returned.
|
|
198541
|
-
*/
|
|
198542
|
-
static create(offsetDistanceOrOptions) {
|
|
198543
|
-
if (offsetDistanceOrOptions instanceof OffsetOptions)
|
|
198544
|
-
return offsetDistanceOrOptions;
|
|
198545
|
-
return new OffsetOptions(offsetDistanceOrOptions);
|
|
198546
|
-
}
|
|
198547
|
-
/** Convert variant input into offset distance */
|
|
198548
|
-
static getOffsetDistance(offsetDistanceOrOptions) {
|
|
198549
|
-
if (typeof offsetDistanceOrOptions === "number")
|
|
198550
|
-
return offsetDistanceOrOptions;
|
|
198551
|
-
return offsetDistanceOrOptions.leftOffsetDistance;
|
|
198552
|
-
}
|
|
198553
|
-
/** Return a deep clone. */
|
|
198554
|
-
clone() {
|
|
198555
|
-
return new OffsetOptions(this.jointOptions.clone(), this.strokeOptions.clone());
|
|
198556
|
-
}
|
|
198557
|
-
}
|
|
198558
198664
|
/**
|
|
198559
198665
|
* Description of geometry around a joint.
|
|
198560
198666
|
* @internal
|
|
@@ -198573,9 +198679,9 @@ class Joint {
|
|
|
198573
198679
|
static constructArc(ray0, center, ray1) {
|
|
198574
198680
|
if (center !== undefined && _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(ray0.origin.distance(center), ray1.origin.distance(center))) {
|
|
198575
198681
|
const angle = ray0.direction.angleToXY(ray1.direction);
|
|
198576
|
-
const vector0 =
|
|
198682
|
+
const vector0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.createStartEnd(center, ray0.origin);
|
|
198577
198683
|
const vector90 = vector0.rotate90CCWXY();
|
|
198578
|
-
return
|
|
198684
|
+
return _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d.create(center, vector0, vector90, _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.createStartEndRadians(0.0, angle.radians));
|
|
198579
198685
|
}
|
|
198580
198686
|
return undefined;
|
|
198581
198687
|
}
|
|
@@ -198643,7 +198749,7 @@ class Joint {
|
|
|
198643
198749
|
const pointA = destination[destination.length - 1].endPoint();
|
|
198644
198750
|
const pointB = primitive.startPoint();
|
|
198645
198751
|
if (!pointA.isAlmostEqual(pointB)) {
|
|
198646
|
-
destination.push(
|
|
198752
|
+
destination.push(_LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d.create(pointA, pointB));
|
|
198647
198753
|
}
|
|
198648
198754
|
}
|
|
198649
198755
|
destination.push(primitive);
|
|
@@ -198651,7 +198757,7 @@ class Joint {
|
|
|
198651
198757
|
}
|
|
198652
198758
|
static adjustJointToPrimitives(joint) {
|
|
198653
198759
|
const ls = joint.jointCurve;
|
|
198654
|
-
if (ls instanceof
|
|
198760
|
+
if (ls instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d) {
|
|
198655
198761
|
if (joint.curve0) {
|
|
198656
198762
|
const curvePoint = joint.curve0.endPoint();
|
|
198657
198763
|
const jointPoint0 = ls.startPoint();
|
|
@@ -198719,8 +198825,8 @@ class Joint {
|
|
|
198719
198825
|
if (this.curve0 && this.curve1) {
|
|
198720
198826
|
const ray0 = this.curve0.fractionToPointAndDerivative(1.0);
|
|
198721
198827
|
const ray1 = this.curve1.fractionToPointAndDerivative(0.0);
|
|
198722
|
-
const intersection =
|
|
198723
|
-
if (intersection.approachType ===
|
|
198828
|
+
const intersection = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_6__.Ray3d.closestApproachRay3dRay3d(ray0, ray1); // intersection of the 2 ray lines
|
|
198829
|
+
if (intersection.approachType === _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__.CurveCurveApproachType.Intersection) {
|
|
198724
198830
|
if (intersection.detailA.fraction >= 0.0 && intersection.detailB.fraction <= 0.0) {
|
|
198725
198831
|
this.fraction0 = 1.0;
|
|
198726
198832
|
this.fraction1 = 0.0;
|
|
@@ -198735,7 +198841,7 @@ class Joint {
|
|
|
198735
198841
|
}
|
|
198736
198842
|
const numChamferPoints = options.numChamferPoints(theta); // how many interior points in the linestring
|
|
198737
198843
|
if (numChamferPoints <= 1) { // create sharp corner
|
|
198738
|
-
this.jointCurve =
|
|
198844
|
+
this.jointCurve = _LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d.create(ray0.origin, intersection.detailA.point, ray1.origin);
|
|
198739
198845
|
return;
|
|
198740
198846
|
}
|
|
198741
198847
|
if (numChamferPoints > 1) { // create chamfer corner (a line string)
|
|
@@ -198745,7 +198851,7 @@ class Joint {
|
|
|
198745
198851
|
const arc = Joint.constructArc(ray0, this.curve0.baseCurveEnd, ray1);
|
|
198746
198852
|
if (arc !== undefined) {
|
|
198747
198853
|
const radialFraction = 1 / Math.cos(halfStepRadians);
|
|
198748
|
-
const jointCurve =
|
|
198854
|
+
const jointCurve = _LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d.create();
|
|
198749
198855
|
this.jointCurve = jointCurve;
|
|
198750
198856
|
jointCurve.addPoint(ray0.origin); // possibly extend segment or line string
|
|
198751
198857
|
for (let i = 0; i < numChamferPoints; i++) {
|
|
@@ -198760,7 +198866,7 @@ class Joint {
|
|
|
198760
198866
|
}
|
|
198761
198867
|
// if there is no intersection between the 2 ray lines, fill the gap by a line segment
|
|
198762
198868
|
this.flexure = JointMode.Gap;
|
|
198763
|
-
this.jointCurve =
|
|
198869
|
+
this.jointCurve = _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d.create(this.curve0.fractionToPoint(1.0), this.curve1.fractionToPoint(0.0));
|
|
198764
198870
|
this.fraction0 = 1.0;
|
|
198765
198871
|
this.fraction1 = 0.0;
|
|
198766
198872
|
}
|
|
@@ -198802,11 +198908,11 @@ class Joint {
|
|
|
198802
198908
|
this.fraction1 = 0.0;
|
|
198803
198909
|
this.flexure = JointMode.Trim;
|
|
198804
198910
|
}
|
|
198805
|
-
else if (this.curve0 instanceof
|
|
198911
|
+
else if (this.curve0 instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d && this.curve1 instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d) { // pair of lines
|
|
198806
198912
|
const ray0 = this.curve0.fractionToPointAndDerivative(0.0);
|
|
198807
198913
|
const ray1 = this.curve1.fractionToPointAndDerivative(0.0);
|
|
198808
|
-
const intersection =
|
|
198809
|
-
if (intersection.approachType ===
|
|
198914
|
+
const intersection = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_6__.Ray3d.closestApproachRay3dRay3d(ray0, ray1); // intersection of the 2 ray lines
|
|
198915
|
+
if (intersection.approachType === _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__.CurveCurveApproachType.Intersection) {
|
|
198810
198916
|
this.fraction0 = intersection.detailA.fraction;
|
|
198811
198917
|
this.fraction1 = intersection.detailB.fraction;
|
|
198812
198918
|
if (this.fraction0 >= 1.0 && this.fraction1 <= 0.0) { // need to extend
|
|
@@ -198817,14 +198923,14 @@ class Joint {
|
|
|
198817
198923
|
}
|
|
198818
198924
|
else if (this.fraction0 > 1.0 && this.fraction1 > 1.0) { // need to fill gap with a single line segment
|
|
198819
198925
|
this.flexure = JointMode.Gap;
|
|
198820
|
-
this.jointCurve =
|
|
198926
|
+
this.jointCurve = _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d.create(this.curve0.fractionToPoint(1.0), this.curve1.fractionToPoint(0.0));
|
|
198821
198927
|
this.fraction0 = 1.0;
|
|
198822
198928
|
this.fraction1 = 0.0;
|
|
198823
198929
|
}
|
|
198824
198930
|
}
|
|
198825
198931
|
}
|
|
198826
198932
|
else { // generic pair of curves
|
|
198827
|
-
const intersections =
|
|
198933
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_8__.CurveCurve.intersectionXYPairs(this.curve0, false, this.curve1, false);
|
|
198828
198934
|
const intersectionIndex = this.selectIntersectionIndexByFraction(1.0, 0.0, intersections);
|
|
198829
198935
|
if (intersectionIndex >= 0) { // need to trim
|
|
198830
198936
|
this.flexure = JointMode.Trim;
|
|
@@ -198935,10 +199041,10 @@ class PolygonWireOffsetContext {
|
|
|
198935
199041
|
constructor() { }
|
|
198936
199042
|
// Construct a single offset from base points
|
|
198937
199043
|
static createOffsetSegment(basePointA, basePointB, distance) {
|
|
198938
|
-
|
|
199044
|
+
_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.createStartEnd(basePointA, basePointB, this._unitAlong);
|
|
198939
199045
|
if (this._unitAlong.normalizeInPlace()) {
|
|
198940
199046
|
this._unitAlong.rotate90CCWXY(this._unitPerp);
|
|
198941
|
-
const segment =
|
|
199047
|
+
const segment = _LineSegment3d__WEBPACK_IMPORTED_MODULE_4__.LineSegment3d.create(basePointA.plusScaled(this._unitPerp, distance, this._offsetA), basePointB.plusScaled(this._unitPerp, distance, this._offsetB));
|
|
198942
199048
|
CurveChainWireOffsetContext.applyBasePoints(segment, basePointA.clone(), basePointB.clone());
|
|
198943
199049
|
return segment;
|
|
198944
199050
|
}
|
|
@@ -198964,7 +199070,7 @@ class PolygonWireOffsetContext {
|
|
|
198964
199070
|
wrap = false;
|
|
198965
199071
|
}
|
|
198966
199072
|
/** create raw offsets as a linked list (joint0) */
|
|
198967
|
-
const options = JointOptions.create(leftOffsetDistanceOrOptions);
|
|
199073
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.JointOptions.create(leftOffsetDistanceOrOptions);
|
|
198968
199074
|
const numPoints = points.length;
|
|
198969
199075
|
let fragment0 = PolygonWireOffsetContext.createOffsetSegment(points[0], points[1], options.leftOffsetDistance);
|
|
198970
199076
|
let joint0 = new Joint(undefined, fragment0, points[0]);
|
|
@@ -199000,7 +199106,7 @@ class PolygonWireOffsetContext {
|
|
|
199000
199106
|
}
|
|
199001
199107
|
// Joint.collectPrimitivesFromChain(joint0, result, numPoints);
|
|
199002
199108
|
/** turn the Joint linked list into a CurveCollection (Loop or Path). trimming is done in collectStrokesFromChain */
|
|
199003
|
-
const chain =
|
|
199109
|
+
const chain = _LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d.create();
|
|
199004
199110
|
Joint.collectStrokesFromChain(joint0, chain, numPoints);
|
|
199005
199111
|
const n = chain.packedPoints.length;
|
|
199006
199112
|
if (n > 1) {
|
|
@@ -199012,10 +199118,10 @@ class PolygonWireOffsetContext {
|
|
|
199012
199118
|
return undefined;
|
|
199013
199119
|
}
|
|
199014
199120
|
}
|
|
199015
|
-
PolygonWireOffsetContext._unitAlong =
|
|
199016
|
-
PolygonWireOffsetContext._unitPerp =
|
|
199017
|
-
PolygonWireOffsetContext._offsetA =
|
|
199018
|
-
PolygonWireOffsetContext._offsetB =
|
|
199121
|
+
PolygonWireOffsetContext._unitAlong = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create();
|
|
199122
|
+
PolygonWireOffsetContext._unitPerp = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create();
|
|
199123
|
+
PolygonWireOffsetContext._offsetA = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
|
|
199124
|
+
PolygonWireOffsetContext._offsetB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
|
|
199019
199125
|
|
|
199020
199126
|
/**
|
|
199021
199127
|
* Context for building a wire offset from a Path or Loop of CurvePrimitives
|
|
@@ -199041,41 +199147,39 @@ class CurveChainWireOffsetContext {
|
|
|
199041
199147
|
return cp;
|
|
199042
199148
|
}
|
|
199043
199149
|
/**
|
|
199044
|
-
* Create the offset of a single primitive as viewed in the xy-plane (ignoring z).
|
|
199045
|
-
* *
|
|
199150
|
+
* Create the offset of a single curve primitive as viewed in the xy-plane (ignoring z).
|
|
199151
|
+
* * Each primitive may be labeled (as an `any` object) with start or end point of base curve:
|
|
199046
199152
|
* * `(primitive as any).baseCurveStart: Point3d`
|
|
199047
199153
|
* * `(primitive as any).baseCurveEnd: Point3d`
|
|
199048
|
-
* @param
|
|
199049
|
-
* @param offsetDistanceOrOptions offset distance (positive to left of
|
|
199154
|
+
* @param curve primitive to offset
|
|
199155
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object
|
|
199050
199156
|
*/
|
|
199051
|
-
static createSingleOffsetPrimitiveXY(
|
|
199052
|
-
const offset =
|
|
199157
|
+
static createSingleOffsetPrimitiveXY(curve, offsetDistanceOrOptions) {
|
|
199158
|
+
const offset = curve.constructOffsetXY(offsetDistanceOrOptions);
|
|
199053
199159
|
if (offset === undefined)
|
|
199054
199160
|
return undefined;
|
|
199055
199161
|
// decorate each offset with its base curve's endpoints
|
|
199056
199162
|
if (Array.isArray(offset)) {
|
|
199057
|
-
const basePrims =
|
|
199163
|
+
const basePrims = curve.collectCurvePrimitives(undefined, true, true);
|
|
199058
199164
|
if (basePrims.length !== offset.length)
|
|
199059
199165
|
return undefined; // unexpected aggregate curve type!
|
|
199060
199166
|
for (let i = 0; i < basePrims.length; ++i)
|
|
199061
199167
|
this.applyBasePoints(offset[i], basePrims[i].startPoint(), basePrims[i].endPoint());
|
|
199062
199168
|
return offset;
|
|
199063
199169
|
}
|
|
199064
|
-
return this.applyBasePoints(offset,
|
|
199170
|
+
return this.applyBasePoints(offset, curve.startPoint(), curve.endPoint());
|
|
199065
199171
|
}
|
|
199066
199172
|
/**
|
|
199067
199173
|
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
199068
199174
|
* * The construction will remove "some" local effects of features smaller than the offset distance, but will
|
|
199069
199175
|
* not detect self intersection among widely separated edges.
|
|
199070
|
-
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
199071
|
-
* * See [[JointOptions]] class doc for offset construction rules.
|
|
199072
199176
|
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/Offset
|
|
199073
199177
|
* @param curves base curves.
|
|
199074
199178
|
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
199075
199179
|
*/
|
|
199076
199180
|
static constructCurveXYOffset(curves, offsetDistanceOrOptions) {
|
|
199077
199181
|
const wrap = curves instanceof _Loop__WEBPACK_IMPORTED_MODULE_10__.Loop;
|
|
199078
|
-
const offsetOptions = OffsetOptions.create(offsetDistanceOrOptions);
|
|
199182
|
+
const offsetOptions = _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
199079
199183
|
const simpleOffsets = [];
|
|
199080
199184
|
/** traverse primitives (children of curves) and create simple offsets of each primitive as an array */
|
|
199081
199185
|
for (const c of curves.children) {
|
|
@@ -200562,7 +200666,7 @@ class IntegratedSpiral3d extends _TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_0_
|
|
|
200562
200666
|
static initWorkSpace() {
|
|
200563
200667
|
IntegratedSpiral3d._gaussFraction = new Float64Array(5);
|
|
200564
200668
|
IntegratedSpiral3d._gaussWeight = new Float64Array(5);
|
|
200565
|
-
IntegratedSpiral3d._gaussMapper = _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_3__.Quadrature.setupGauss5;
|
|
200669
|
+
IntegratedSpiral3d._gaussMapper = (xA, xB, xMapped, wMapped) => _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_3__.Quadrature.setupGauss5(xA, xB, xMapped, wMapped);
|
|
200566
200670
|
}
|
|
200567
200671
|
/** Evaluate and sum the gauss quadrature formulas to integrate cos(theta), sin(theta) fractional subset of a reference length.
|
|
200568
200672
|
* (recall that theta is a nonlinear function of the fraction.)
|
|
@@ -201450,7 +201554,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
201450
201554
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
201451
201555
|
/* harmony import */ var _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
|
|
201452
201556
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
201453
|
-
/* harmony import */ var
|
|
201557
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
201454
201558
|
/*---------------------------------------------------------------------------------------------
|
|
201455
201559
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
201456
201560
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -201581,7 +201685,7 @@ class TransitionSpiral3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.Cu
|
|
|
201581
201685
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
201582
201686
|
*/
|
|
201583
201687
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
201584
|
-
const options =
|
|
201688
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_4__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
201585
201689
|
const handler = new _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_5__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
|
|
201586
201690
|
this.emitStrokableParts(handler, options.strokeOptions);
|
|
201587
201691
|
return handler.claimResult();
|
|
@@ -201678,7 +201782,7 @@ class XYCurveEvaluator {
|
|
|
201678
201782
|
static initWorkSpace() {
|
|
201679
201783
|
XYCurveEvaluator._gaussX = new Float64Array(5);
|
|
201680
201784
|
XYCurveEvaluator._gaussWeight = new Float64Array(5);
|
|
201681
|
-
XYCurveEvaluator._gaussMapper = _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_4__.Quadrature.setupGauss5;
|
|
201785
|
+
XYCurveEvaluator._gaussMapper = (xA, xB, xMapped, wMapped) => _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_4__.Quadrature.setupGauss5(xA, xB, xMapped, wMapped);
|
|
201682
201786
|
}
|
|
201683
201787
|
/**
|
|
201684
201788
|
* Integrate between nominal fractions with default gauss rule.
|
|
@@ -205799,7 +205903,7 @@ class GrowableBlockedArray {
|
|
|
205799
205903
|
return ia - ib; // so original order is maintained among duplicates !!!!
|
|
205800
205904
|
}
|
|
205801
205905
|
/** Return an array of block indices sorted per compareLexicalBlock function */
|
|
205802
|
-
sortIndicesLexical(compareBlocks = GrowableBlockedArray.compareLexicalBlock) {
|
|
205906
|
+
sortIndicesLexical(compareBlocks = (dataArray, size, iA, iB) => GrowableBlockedArray.compareLexicalBlock(dataArray, size, iA, iB)) {
|
|
205803
205907
|
const n = this._inUse;
|
|
205804
205908
|
// let numCompare = 0;
|
|
205805
205909
|
const result = new Uint32Array(n);
|
|
@@ -206070,7 +206174,7 @@ class GrowableFloat64Array {
|
|
|
206070
206174
|
* * Uses insertion sort -- fine for small arrays (less than 30), slow for larger arrays
|
|
206071
206175
|
* @param compareMethod comparison method
|
|
206072
206176
|
*/
|
|
206073
|
-
sort(compareMethod = GrowableFloat64Array.compare) {
|
|
206177
|
+
sort(compareMethod = (a, b) => GrowableFloat64Array.compare(a, b)) {
|
|
206074
206178
|
for (let i = 0; i < this._inUse; i++) {
|
|
206075
206179
|
for (let j = i + 1; j < this._inUse; j++) {
|
|
206076
206180
|
const tempI = this._data[i];
|
|
@@ -210183,7 +210287,7 @@ class Matrix3d {
|
|
|
210183
210287
|
PackedMatrix3dOps.multiplyMatrixMatrix(this.coffs, other.coffs, result.coffs);
|
|
210184
210288
|
if (this.inverseState === InverseMatrixState.inverseStored
|
|
210185
210289
|
&& other.inverseState === InverseMatrixState.inverseStored)
|
|
210186
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrix, other.inverseCoffs, this.inverseCoffs);
|
|
210290
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrix(a, b, _result), other.inverseCoffs, this.inverseCoffs);
|
|
210187
210291
|
else if (this.inverseState === InverseMatrixState.singular
|
|
210188
210292
|
|| other.inverseState === InverseMatrixState.singular)
|
|
210189
210293
|
result.inverseState = InverseMatrixState.singular;
|
|
@@ -210201,7 +210305,7 @@ class Matrix3d {
|
|
|
210201
210305
|
result = result ? result : new Matrix3d();
|
|
210202
210306
|
PackedMatrix3dOps.multiplyMatrixMatrix(this.coffs, other.inverseCoffs, Matrix3d._productBuffer);
|
|
210203
210307
|
if (this.inverseState === InverseMatrixState.inverseStored)
|
|
210204
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrix, other.coffs, this.inverseCoffs);
|
|
210308
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrix(a, b, _result), other.coffs, this.inverseCoffs);
|
|
210205
210309
|
else
|
|
210206
210310
|
result.inverseState = InverseMatrixState.unknown;
|
|
210207
210311
|
PackedMatrix3dOps.copy(Matrix3d._productBuffer, result.coffs);
|
|
@@ -210217,7 +210321,7 @@ class Matrix3d {
|
|
|
210217
210321
|
result = result ? result : new Matrix3d();
|
|
210218
210322
|
PackedMatrix3dOps.multiplyMatrixMatrix(this.inverseCoffs, other.coffs, Matrix3d._productBuffer);
|
|
210219
210323
|
if (other.inverseState === InverseMatrixState.inverseStored)
|
|
210220
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrix, other.inverseCoffs, this.coffs);
|
|
210324
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrix(a, b, _result), other.inverseCoffs, this.coffs);
|
|
210221
210325
|
else
|
|
210222
210326
|
result.inverseState = InverseMatrixState.unknown;
|
|
210223
210327
|
PackedMatrix3dOps.copy(Matrix3d._productBuffer, result.coffs);
|
|
@@ -210235,7 +210339,7 @@ class Matrix3d {
|
|
|
210235
210339
|
result = result ? result : new Matrix3d();
|
|
210236
210340
|
PackedMatrix3dOps.multiplyMatrixMatrixTranspose(this.coffs, other.coffs, result.coffs);
|
|
210237
210341
|
if (this.inverseState === InverseMatrixState.inverseStored && other.inverseState === InverseMatrixState.inverseStored)
|
|
210238
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixTransposeMatrix, other.inverseCoffs, this.inverseCoffs);
|
|
210342
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixTransposeMatrix(a, b, _result), other.inverseCoffs, this.inverseCoffs);
|
|
210239
210343
|
else if (this.inverseState === InverseMatrixState.singular || other.inverseState === InverseMatrixState.singular)
|
|
210240
210344
|
result.inverseState = InverseMatrixState.singular;
|
|
210241
210345
|
else
|
|
@@ -210254,7 +210358,7 @@ class Matrix3d {
|
|
|
210254
210358
|
result = result ? result : new Matrix3d();
|
|
210255
210359
|
PackedMatrix3dOps.multiplyMatrixTransposeMatrix(this.coffs, other.coffs, result.coffs);
|
|
210256
210360
|
if (this.inverseState === InverseMatrixState.inverseStored && other.inverseState === InverseMatrixState.inverseStored)
|
|
210257
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrixTranspose, other.inverseCoffs, this.inverseCoffs);
|
|
210361
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrixTranspose(a, b, _result), other.inverseCoffs, this.inverseCoffs);
|
|
210258
210362
|
else if (this.inverseState === InverseMatrixState.singular || other.inverseState === InverseMatrixState.singular)
|
|
210259
210363
|
result.inverseState = InverseMatrixState.singular;
|
|
210260
210364
|
else
|
|
@@ -212580,16 +212684,16 @@ class Point2d extends XY {
|
|
|
212580
212684
|
return Point2d.create(0, 0, result);
|
|
212581
212685
|
}
|
|
212582
212686
|
/**
|
|
212583
|
-
* Starting at this point, move along vector by tangentFraction of
|
|
212584
|
-
*
|
|
212585
|
-
* @param tangentFraction distance to move along
|
|
212586
|
-
* @param leftFraction distance to move perpendicular to
|
|
212687
|
+
* Starting at this point, move along `vector` by `tangentFraction` of its length, and then
|
|
212688
|
+
* by `leftFraction` of its length along the left perpendicular.
|
|
212689
|
+
* @param tangentFraction distance to move along `vector`, as a fraction of its length
|
|
212690
|
+
* @param leftFraction distance to move perpendicular to `vector`, as a fraction of its length
|
|
212587
212691
|
* @param vector the other vector
|
|
212588
212692
|
*/
|
|
212589
|
-
addForwardLeft(tangentFraction, leftFraction, vector) {
|
|
212693
|
+
addForwardLeft(tangentFraction, leftFraction, vector, result) {
|
|
212590
212694
|
const dx = vector.x;
|
|
212591
212695
|
const dy = vector.y;
|
|
212592
|
-
return Point2d.create(this.x + tangentFraction * dx - leftFraction * dy, this.y + tangentFraction * dy + leftFraction * dx);
|
|
212696
|
+
return Point2d.create(this.x + tangentFraction * dx - leftFraction * dy, this.y + tangentFraction * dy + leftFraction * dx, result);
|
|
212593
212697
|
}
|
|
212594
212698
|
/**
|
|
212595
212699
|
* Interpolate at tangentFraction between this instance and point, and then Move by leftFraction
|
|
@@ -212773,11 +212877,10 @@ class Vector2d extends XY {
|
|
|
212773
212877
|
return this.safeDivideOrNull(mag, result);
|
|
212774
212878
|
}
|
|
212775
212879
|
/**
|
|
212776
|
-
* Return fractional projection of
|
|
212777
|
-
* * It's returning the signed projection magnitude divided by the target magnitude. In other words,
|
|
212778
|
-
* it's returning the length of the projection as a fraction of the target magnitude.
|
|
212880
|
+
* Return fractional length of the projection of the instance onto the target vector.
|
|
212779
212881
|
* @param target the target vector
|
|
212780
|
-
* @param defaultFraction the returned value in case magnitude
|
|
212882
|
+
* @param defaultFraction the returned value in case the magnitude of `target` is too small
|
|
212883
|
+
* @returns the signed length of the projection divided by the length of `target`
|
|
212781
212884
|
*/
|
|
212782
212885
|
fractionOfProjectionToVector(target, defaultFraction) {
|
|
212783
212886
|
/*
|
|
@@ -214175,24 +214278,24 @@ class Vector3d extends XYZ {
|
|
|
214175
214278
|
return undefined;
|
|
214176
214279
|
}
|
|
214177
214280
|
/**
|
|
214178
|
-
* Return fractional projection of
|
|
214179
|
-
* *
|
|
214180
|
-
* * To find the projection vector, scale the target vector by the value that this function is returning.
|
|
214281
|
+
* Return fractional length of the projection of the instance onto the target vector.
|
|
214282
|
+
* * To find the projection vector, scale the target vector by the return value.
|
|
214181
214283
|
* * Math details can be found at docs/learning/geometry/PointVector.md
|
|
214182
214284
|
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/ProjectVectorOnVector
|
|
214183
214285
|
* and https://www.itwinjs.org/sandbox/SaeedTorabi/ProjectVectorOnPlane
|
|
214184
214286
|
* @param target the target vector
|
|
214185
|
-
* @param defaultFraction the returned value in case magnitude
|
|
214287
|
+
* @param defaultFraction the returned value in case the magnitude of `target` is too small
|
|
214288
|
+
* @returns the signed length of the projection divided by the length of `target`
|
|
214186
214289
|
* */
|
|
214187
214290
|
fractionOfProjectionToVector(target, defaultFraction = 0) {
|
|
214188
214291
|
/*
|
|
214189
214292
|
* Projection vector is ((this.target)/||target||)(target/||target||) = ((this.target)/||target||^2)target
|
|
214190
214293
|
* This function returns (this.target)/||target||^2
|
|
214191
214294
|
*/
|
|
214192
|
-
const numerator = this.dotProduct(target);
|
|
214193
214295
|
const denominator = target.magnitudeSquared();
|
|
214194
214296
|
if (denominator < _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistanceSquared)
|
|
214195
214297
|
return defaultFraction;
|
|
214298
|
+
const numerator = this.dotProduct(target);
|
|
214196
214299
|
return numerator / denominator;
|
|
214197
214300
|
}
|
|
214198
214301
|
/**
|
|
@@ -215141,7 +215244,7 @@ class Point4dArray {
|
|
|
215141
215244
|
}
|
|
215142
215245
|
/** unpack from xyzw xyzw... array to array of Point3d and array of weight.
|
|
215143
215246
|
*/
|
|
215144
|
-
static unpackFloat64ArrayToPointsAndWeights(data, points, weights, pointFormatter = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create) {
|
|
215247
|
+
static unpackFloat64ArrayToPointsAndWeights(data, points, weights, pointFormatter = (x, y, z) => _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(x, y, z)) {
|
|
215145
215248
|
points.length = 0;
|
|
215146
215249
|
weights.length = 0;
|
|
215147
215250
|
for (let i = 0; i + 3 < data.length; i += 4) {
|
|
@@ -215594,7 +215697,7 @@ class Point3dArray {
|
|
|
215594
215697
|
* @param data point data with various leaf forms such as `[1,2,3]`, `{x:1,y:2,z:3}`, `Point3d`
|
|
215595
215698
|
*/
|
|
215596
215699
|
static cloneDeepJSONNumberArrays(data) {
|
|
215597
|
-
const collector = new _PointStreaming__WEBPACK_IMPORTED_MODULE_7__.PointStringDeepXYZArrayCollector(this.xyzToArray);
|
|
215700
|
+
const collector = new _PointStreaming__WEBPACK_IMPORTED_MODULE_7__.PointStringDeepXYZArrayCollector((x, y, z) => this.xyzToArray(x, y, z));
|
|
215598
215701
|
_PointStreaming__WEBPACK_IMPORTED_MODULE_7__.VariantPointDataStream.streamXYZ(data, collector);
|
|
215599
215702
|
return collector.claimResult();
|
|
215600
215703
|
}
|
|
@@ -215639,7 +215742,7 @@ class Point3dArray {
|
|
|
215639
215742
|
* @param data point data with various leaf forms such as `[1,2,3]`, `{x:1,y:2,z:3}`, `Point3d`
|
|
215640
215743
|
*/
|
|
215641
215744
|
static cloneDeepXYZPoint3dArrays(data) {
|
|
215642
|
-
const collector = new _PointStreaming__WEBPACK_IMPORTED_MODULE_7__.PointStringDeepXYZArrayCollector(_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create);
|
|
215745
|
+
const collector = new _PointStreaming__WEBPACK_IMPORTED_MODULE_7__.PointStringDeepXYZArrayCollector((x, y, z) => _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(x, y, z));
|
|
215643
215746
|
_PointStreaming__WEBPACK_IMPORTED_MODULE_7__.VariantPointDataStream.streamXYZ(data, collector);
|
|
215644
215747
|
return collector.claimResult();
|
|
215645
215748
|
}
|
|
@@ -215682,7 +215785,7 @@ class Point3dArray {
|
|
|
215682
215785
|
let n = points.length;
|
|
215683
215786
|
// Get deep copy
|
|
215684
215787
|
const xy1 = points.slice(0, n);
|
|
215685
|
-
xy1.sort(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan);
|
|
215788
|
+
xy1.sort((a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan(a, b));
|
|
215686
215789
|
if (n < 3) {
|
|
215687
215790
|
for (const p of xy1)
|
|
215688
215791
|
hullPoints.push(p);
|
|
@@ -215707,7 +215810,7 @@ class Point3dArray {
|
|
|
215707
215810
|
const i0 = hullPoints.length - 1;
|
|
215708
215811
|
xy1.length = numInside;
|
|
215709
215812
|
xy1.push(hullPoints[0]); // force first point to be reconsidered as final hull point.
|
|
215710
|
-
xy1.sort(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan);
|
|
215813
|
+
xy1.sort((a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan(a, b));
|
|
215711
215814
|
n = xy1.length;
|
|
215712
215815
|
// xy1.back () is already on stack.
|
|
215713
215816
|
hullPoints.push(xy1[n - 1]);
|
|
@@ -216198,7 +216301,7 @@ class CutLoopMergeContext {
|
|
|
216198
216301
|
sortRay.direction.normalizeInPlace();
|
|
216199
216302
|
for (const loop of this.inputLoops)
|
|
216200
216303
|
loop.setSortCoordinates(sortRay);
|
|
216201
|
-
this.inputLoops.sort(CutLoop.sortFunction);
|
|
216304
|
+
this.inputLoops.sort((loopA, loopB) => CutLoop.sortFunction(loopA, loopB));
|
|
216202
216305
|
}
|
|
216203
216306
|
}
|
|
216204
216307
|
/**
|
|
@@ -216244,9 +216347,8 @@ class CutLoopMergeContext {
|
|
|
216244
216347
|
}
|
|
216245
216348
|
}
|
|
216246
216349
|
}
|
|
216247
|
-
/** Static class for operations that treat an array of points as a polygon (with area!) */
|
|
216248
216350
|
/**
|
|
216249
|
-
* Various
|
|
216351
|
+
* Various static methods to perform computations on an array of points interpreted as a polygon.
|
|
216250
216352
|
* @public
|
|
216251
216353
|
*/
|
|
216252
216354
|
class PolygonOps {
|
|
@@ -219672,6 +219774,163 @@ class Range2d extends RangeBase {
|
|
|
219672
219774
|
}
|
|
219673
219775
|
|
|
219674
219776
|
|
|
219777
|
+
/***/ }),
|
|
219778
|
+
|
|
219779
|
+
/***/ "../../core/geometry/lib/esm/geometry3d/Ray2d.js":
|
|
219780
|
+
/*!*******************************************************!*\
|
|
219781
|
+
!*** ../../core/geometry/lib/esm/geometry3d/Ray2d.js ***!
|
|
219782
|
+
\*******************************************************/
|
|
219783
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
219784
|
+
|
|
219785
|
+
"use strict";
|
|
219786
|
+
__webpack_require__.r(__webpack_exports__);
|
|
219787
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
219788
|
+
/* harmony export */ Ray2d: () => (/* binding */ Ray2d)
|
|
219789
|
+
/* harmony export */ });
|
|
219790
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
219791
|
+
/*---------------------------------------------------------------------------------------------
|
|
219792
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
219793
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
219794
|
+
*--------------------------------------------------------------------------------------------*/
|
|
219795
|
+
/** @packageDocumentation
|
|
219796
|
+
* @module CartesianGeometry
|
|
219797
|
+
*/
|
|
219798
|
+
|
|
219799
|
+
// cspell:word CCWXY, CWXY
|
|
219800
|
+
/**
|
|
219801
|
+
* Ray with xy origin and direction
|
|
219802
|
+
* @public
|
|
219803
|
+
*/
|
|
219804
|
+
class Ray2d {
|
|
219805
|
+
constructor(origin, direction) {
|
|
219806
|
+
this._origin = origin;
|
|
219807
|
+
this._direction = direction;
|
|
219808
|
+
}
|
|
219809
|
+
/** Copy coordinates from origin and direction. */
|
|
219810
|
+
set(origin, direction) {
|
|
219811
|
+
this._origin.setFrom(origin);
|
|
219812
|
+
this._direction.setFrom(direction);
|
|
219813
|
+
}
|
|
219814
|
+
/**
|
|
219815
|
+
* Create from `origin` and `target` points.
|
|
219816
|
+
* @param origin ray origin, cloned
|
|
219817
|
+
* @param target end of ray direction vector. The direction vector is `target - origin`.
|
|
219818
|
+
* @param result optional pre-allocated object to return
|
|
219819
|
+
*/
|
|
219820
|
+
static createOriginAndTarget(origin, target, result) {
|
|
219821
|
+
if (result) {
|
|
219822
|
+
result._origin.setFrom(origin);
|
|
219823
|
+
result._direction.set(target.x - origin.x, target.y - origin.y);
|
|
219824
|
+
return result;
|
|
219825
|
+
}
|
|
219826
|
+
return new Ray2d(origin.clone(), origin.vectorTo(target));
|
|
219827
|
+
}
|
|
219828
|
+
/**
|
|
219829
|
+
* Create by copying coordinates from `origin` and `direction`.
|
|
219830
|
+
* @param origin ray origin
|
|
219831
|
+
* @param direction ray direction
|
|
219832
|
+
* @param result optional pre-allocated object to return
|
|
219833
|
+
*/
|
|
219834
|
+
static createOriginAndDirection(origin, direction, result) {
|
|
219835
|
+
if (result) {
|
|
219836
|
+
result.set(origin, direction);
|
|
219837
|
+
return result;
|
|
219838
|
+
}
|
|
219839
|
+
return new Ray2d(origin.clone(), direction.clone());
|
|
219840
|
+
}
|
|
219841
|
+
/** Create from captured `origin` and `direction`. */
|
|
219842
|
+
static createOriginAndDirectionCapture(origin, direction, result) {
|
|
219843
|
+
if (result) {
|
|
219844
|
+
result._origin = origin;
|
|
219845
|
+
result._direction = direction;
|
|
219846
|
+
return result;
|
|
219847
|
+
}
|
|
219848
|
+
return new Ray2d(origin, direction);
|
|
219849
|
+
}
|
|
219850
|
+
/** Get the reference to the ray origin. */
|
|
219851
|
+
get origin() { return this._origin; }
|
|
219852
|
+
/** Get the reference to the ray direction. */
|
|
219853
|
+
get direction() { return this._direction; }
|
|
219854
|
+
/**
|
|
219855
|
+
* Return a parallel ray to the left of this ray.
|
|
219856
|
+
* @param leftFraction distance between rays, as a fraction of the magnitude of this ray's direction vector
|
|
219857
|
+
*/
|
|
219858
|
+
parallelRay(leftFraction, result) {
|
|
219859
|
+
if (result) {
|
|
219860
|
+
this._origin.addForwardLeft(0.0, leftFraction, this._direction, result._origin);
|
|
219861
|
+
result._direction.setFrom(this._direction);
|
|
219862
|
+
return result;
|
|
219863
|
+
}
|
|
219864
|
+
return new Ray2d(this._origin.addForwardLeft(0.0, leftFraction, this._direction), this._direction.clone());
|
|
219865
|
+
}
|
|
219866
|
+
/** Return a ray with cloned origin and with direction rotated 90 degrees counterclockwise */
|
|
219867
|
+
ccwPerpendicularRay(result) {
|
|
219868
|
+
if (result) {
|
|
219869
|
+
result._origin.setFrom(this._origin);
|
|
219870
|
+
this._direction.rotate90CCWXY(result._direction);
|
|
219871
|
+
return result;
|
|
219872
|
+
}
|
|
219873
|
+
return new Ray2d(this._origin.clone(), this._direction.rotate90CCWXY());
|
|
219874
|
+
}
|
|
219875
|
+
/** Return a ray with cloned origin and with direction rotated 90 degrees clockwise */
|
|
219876
|
+
cwPerpendicularRay(result) {
|
|
219877
|
+
if (result) {
|
|
219878
|
+
result._origin.setFrom(this._origin);
|
|
219879
|
+
this._direction.rotate90CWXY(result._direction);
|
|
219880
|
+
return result;
|
|
219881
|
+
}
|
|
219882
|
+
return new Ray2d(this._origin.clone(), this._direction.rotate90CWXY());
|
|
219883
|
+
}
|
|
219884
|
+
/**
|
|
219885
|
+
* Normalize the direction vector in place.
|
|
219886
|
+
* @param defaultX value to set `this.direction.x` if normalization fails. Default value 1.
|
|
219887
|
+
* @param defaultY value to set `this.direction.y` if normalization fails. Default value 0.
|
|
219888
|
+
* @returns whether normalization succeeded (i.e., direction is nonzero)
|
|
219889
|
+
*/
|
|
219890
|
+
normalizeDirectionInPlace(defaultX = 1, defaultY = 0) {
|
|
219891
|
+
if (this._direction.normalize(this._direction))
|
|
219892
|
+
return true;
|
|
219893
|
+
this._direction.x = defaultX;
|
|
219894
|
+
this._direction.y = defaultY;
|
|
219895
|
+
return false;
|
|
219896
|
+
}
|
|
219897
|
+
/**
|
|
219898
|
+
* Intersect this ray with the unbounded line defined by the given points.
|
|
219899
|
+
* @param linePointA start of the line
|
|
219900
|
+
* @param linePointB end of the line
|
|
219901
|
+
* @returns object with named values:
|
|
219902
|
+
* * `hasIntersection`: whether the intersection exists.
|
|
219903
|
+
* * `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.
|
|
219904
|
+
* * `cross`: the 2D cross product `this.direction x (linePointB - linePointA)`, useful for determining orientation of the line and ray.
|
|
219905
|
+
*/
|
|
219906
|
+
intersectUnboundedLine(linePointA, linePointB) {
|
|
219907
|
+
const lineDirection = linePointA.vectorTo(linePointB);
|
|
219908
|
+
const vector0 = linePointA.vectorTo(this._origin);
|
|
219909
|
+
const h0 = vector0.crossProduct(lineDirection);
|
|
219910
|
+
const dHds = this._direction.crossProduct(lineDirection);
|
|
219911
|
+
// h = h0 + s * dh
|
|
219912
|
+
const ff = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-h0, dHds);
|
|
219913
|
+
const hasIntersection = ff !== undefined;
|
|
219914
|
+
return { hasIntersection, fraction: hasIntersection ? ff : 0.0, cross: dHds };
|
|
219915
|
+
}
|
|
219916
|
+
/** Return the ray fraction where the given point projects onto the ray. */
|
|
219917
|
+
projectionFraction(point) {
|
|
219918
|
+
return this._origin.vectorTo(point).fractionOfProjectionToVector(this._direction);
|
|
219919
|
+
}
|
|
219920
|
+
/** Return the ray fraction where the given point projects onto the perpendicular ray. */
|
|
219921
|
+
perpendicularProjectionFraction(point) {
|
|
219922
|
+
const uv = this._direction.crossProduct(this._origin.vectorTo(point));
|
|
219923
|
+
const uu = this._direction.magnitudeSquared();
|
|
219924
|
+
// Want zero returned if failure case, not undefined
|
|
219925
|
+
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.safeDivideFraction(uv, uu, 0.0);
|
|
219926
|
+
}
|
|
219927
|
+
/** Compute and return origin plus scaled direction. */
|
|
219928
|
+
fractionToPoint(f, result) {
|
|
219929
|
+
return this._origin.plusScaled(this._direction, f, result);
|
|
219930
|
+
}
|
|
219931
|
+
}
|
|
219932
|
+
|
|
219933
|
+
|
|
219675
219934
|
/***/ }),
|
|
219676
219935
|
|
|
219677
219936
|
/***/ "../../core/geometry/lib/esm/geometry3d/Ray3d.js":
|
|
@@ -221355,7 +221614,7 @@ class Transform {
|
|
|
221355
221614
|
const originY = this.origin.y;
|
|
221356
221615
|
const originZ = this.origin.z;
|
|
221357
221616
|
if (result) {
|
|
221358
|
-
const n = Transform.matchArrayLengths(points, result, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
|
|
221617
|
+
const n = Transform.matchArrayLengths(points, result, () => _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero());
|
|
221359
221618
|
for (let i = 0; i < n; i++)
|
|
221360
221619
|
this._matrix.multiplyInverseXYZAsPoint3d(points[i].x - originX, points[i].y - originY, points[i].z - originZ, result[i]);
|
|
221361
221620
|
return result;
|
|
@@ -221385,7 +221644,7 @@ class Transform {
|
|
|
221385
221644
|
*/
|
|
221386
221645
|
multiplyPoint2dArray(points, result) {
|
|
221387
221646
|
if (result) {
|
|
221388
|
-
const n = Transform.matchArrayLengths(points, result, _Point2dVector2d__WEBPACK_IMPORTED_MODULE_4__.Point2d.createZero);
|
|
221647
|
+
const n = Transform.matchArrayLengths(points, result, () => _Point2dVector2d__WEBPACK_IMPORTED_MODULE_4__.Point2d.createZero());
|
|
221389
221648
|
for (let i = 0; i < n; i++)
|
|
221390
221649
|
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix, points[i], result[i]);
|
|
221391
221650
|
return result;
|
|
@@ -221402,7 +221661,7 @@ class Transform {
|
|
|
221402
221661
|
*/
|
|
221403
221662
|
multiplyPoint3dArray(points, result) {
|
|
221404
221663
|
if (result) {
|
|
221405
|
-
const n = Transform.matchArrayLengths(points, result, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
|
|
221664
|
+
const n = Transform.matchArrayLengths(points, result, () => _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero());
|
|
221406
221665
|
for (let i = 0; i < n; i++)
|
|
221407
221666
|
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, points[i], result[i]);
|
|
221408
221667
|
return result;
|
|
@@ -226158,12 +226417,12 @@ class Complex {
|
|
|
226158
226417
|
"use strict";
|
|
226159
226418
|
__webpack_require__.r(__webpack_exports__);
|
|
226160
226419
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
226161
|
-
/* harmony export */ ConvexPolygon2d: () => (/* binding */ ConvexPolygon2d)
|
|
226162
|
-
/* harmony export */ Ray2d: () => (/* binding */ Ray2d)
|
|
226420
|
+
/* harmony export */ ConvexPolygon2d: () => (/* binding */ ConvexPolygon2d)
|
|
226163
226421
|
/* harmony export */ });
|
|
226164
|
-
/* harmony import */ var
|
|
226422
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
226165
226423
|
/* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
|
|
226166
226424
|
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
226425
|
+
/* harmony import */ var _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Ray2d */ "../../core/geometry/lib/esm/geometry3d/Ray2d.js");
|
|
226167
226426
|
/*---------------------------------------------------------------------------------------------
|
|
226168
226427
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
226169
226428
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -226174,97 +226433,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
226174
226433
|
|
|
226175
226434
|
|
|
226176
226435
|
|
|
226177
|
-
|
|
226178
|
-
* Ray with xy origin and direction
|
|
226179
|
-
* @internal
|
|
226180
|
-
*/
|
|
226181
|
-
class Ray2d {
|
|
226182
|
-
constructor(origin, direction) {
|
|
226183
|
-
this._origin = origin;
|
|
226184
|
-
this._direction = direction;
|
|
226185
|
-
}
|
|
226186
|
-
/** Create from 2d `origin` and `target`.
|
|
226187
|
-
* * `target - origin` is the direction vector.
|
|
226188
|
-
*/
|
|
226189
|
-
static createOriginAndTarget(origin, target) {
|
|
226190
|
-
return new Ray2d(origin.clone(), origin.vectorTo(target));
|
|
226191
|
-
}
|
|
226192
|
-
/** Create from (clones of) `origin` point and `direction` vector */
|
|
226193
|
-
static createOriginAndDirection(origin, direction) {
|
|
226194
|
-
return new Ray2d(origin.clone(), direction.clone());
|
|
226195
|
-
}
|
|
226196
|
-
/** Capture `origin` and `direction` as ray member variables. */
|
|
226197
|
-
static createOriginAndDirectionCapture(origin, direction) {
|
|
226198
|
-
return new Ray2d(origin, direction);
|
|
226199
|
-
}
|
|
226200
|
-
/** Get the (REFERENCE TO) the ray origin. */
|
|
226201
|
-
get origin() { return this._origin; }
|
|
226202
|
-
/** Get the (REFERENCE TO) the ray direction. */
|
|
226203
|
-
get direction() { return this._direction; }
|
|
226204
|
-
/**
|
|
226205
|
-
* Return a ray that is parallel at distance to the left, specified as fraction of the ray's direction vector.
|
|
226206
|
-
*/
|
|
226207
|
-
parallelRay(leftFraction) {
|
|
226208
|
-
return new Ray2d(this._origin.addForwardLeft(0.0, leftFraction, this._direction), this._direction);
|
|
226209
|
-
}
|
|
226210
|
-
/** Return a ray with same origin, direction rotated 90 degrees counterclockwise */
|
|
226211
|
-
ccwPerpendicularRay() {
|
|
226212
|
-
return new Ray2d(this._origin, this._direction.rotate90CCWXY());
|
|
226213
|
-
}
|
|
226214
|
-
/** Return a ray with same origin, direction rotated 90 degrees clockwise */
|
|
226215
|
-
cwPerpendicularRay() {
|
|
226216
|
-
return new Ray2d(this._origin, this._direction.rotate90CWXY());
|
|
226217
|
-
}
|
|
226218
|
-
/** Normalize the direction vector in place. */
|
|
226219
|
-
normalizeDirectionInPlace(defaultX = 1, defaultY = 0) {
|
|
226220
|
-
if (this._direction.normalize(this._direction)) {
|
|
226221
|
-
return true;
|
|
226222
|
-
}
|
|
226223
|
-
else {
|
|
226224
|
-
this._direction.x = defaultX;
|
|
226225
|
-
this._direction.y = defaultY;
|
|
226226
|
-
// magnitude = 0.0;
|
|
226227
|
-
return false;
|
|
226228
|
-
}
|
|
226229
|
-
}
|
|
226230
|
-
/**
|
|
226231
|
-
* Intersect this ray (ASSUMED NORMALIZED) with unbounded line defined by points.
|
|
226232
|
-
* (The normalization assumption affects test for parallel vectors.)
|
|
226233
|
-
* Fraction and dHds passed as number[] to use by reference... Sticking to return of true and false in the case fraction is zero after
|
|
226234
|
-
* a true safe divide
|
|
226235
|
-
*/
|
|
226236
|
-
intersectUnboundedLine(linePointA, linePointB, fraction, dHds) {
|
|
226237
|
-
const lineDirection = linePointA.vectorTo(linePointB);
|
|
226238
|
-
const vector0 = linePointA.vectorTo(this._origin);
|
|
226239
|
-
const h0 = vector0.crossProduct(lineDirection);
|
|
226240
|
-
dHds[0] = this._direction.crossProduct(lineDirection);
|
|
226241
|
-
// h = h0 + s * dh
|
|
226242
|
-
const ff = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-h0, dHds[0]);
|
|
226243
|
-
if (ff !== undefined) {
|
|
226244
|
-
fraction[0] = ff;
|
|
226245
|
-
return true;
|
|
226246
|
-
}
|
|
226247
|
-
else {
|
|
226248
|
-
fraction[0] = 0.0;
|
|
226249
|
-
return false;
|
|
226250
|
-
}
|
|
226251
|
-
}
|
|
226252
|
-
/** return the ray fraction where point projects to the ray */
|
|
226253
|
-
projectionFraction(point) {
|
|
226254
|
-
return this._origin.vectorTo(point).fractionOfProjectionToVector(this._direction);
|
|
226255
|
-
}
|
|
226256
|
-
/** return the fraction of projection to the perpendicular ray */
|
|
226257
|
-
perpendicularProjectionFraction(point) {
|
|
226258
|
-
const uv = this._direction.crossProduct(this._origin.vectorTo(point));
|
|
226259
|
-
const uu = this._direction.magnitudeSquared();
|
|
226260
|
-
// Want zero returned if failure case, not undefined
|
|
226261
|
-
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.safeDivideFraction(uv, uu, 0.0);
|
|
226262
|
-
}
|
|
226263
|
-
/** Return point from origin plus a scaled vector */
|
|
226264
|
-
fractionToPoint(f) {
|
|
226265
|
-
return this._origin.plusScaled(this._direction, f);
|
|
226266
|
-
}
|
|
226267
|
-
}
|
|
226436
|
+
|
|
226268
226437
|
/**
|
|
226269
226438
|
* Convex hull of points in 2d.
|
|
226270
226439
|
* @internal
|
|
@@ -226330,7 +226499,7 @@ class ConvexPolygon2d {
|
|
|
226330
226499
|
const xy1 = this._hullPoints[i];
|
|
226331
226500
|
const c = xy0.crossProductToPoints(xy1, xy);
|
|
226332
226501
|
if (c < 0.0) {
|
|
226333
|
-
const ray = Ray2d.createOriginAndTarget(xy0, xy1);
|
|
226502
|
+
const ray = _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_0__.Ray2d.createOriginAndTarget(xy0, xy1);
|
|
226334
226503
|
const s = ray.projectionFraction(xy);
|
|
226335
226504
|
let d = 0.0;
|
|
226336
226505
|
if (s < 0.0)
|
|
@@ -226381,10 +226550,11 @@ class ConvexPolygon2d {
|
|
|
226381
226550
|
return true;
|
|
226382
226551
|
}
|
|
226383
226552
|
/**
|
|
226384
|
-
* Return 2 distances bounding the intersection of the ray with
|
|
226385
|
-
*
|
|
226386
|
-
*
|
|
226387
|
-
*
|
|
226553
|
+
* Return 2 distances bounding the intersection of the ray with this convex hull.
|
|
226554
|
+
* @param ray ray to clip to this convex polygon. ASSUME normalized direction vector, so that ray fractions are distances.
|
|
226555
|
+
* @returns intersection bounds as min and max distances along the ray (from its origin).
|
|
226556
|
+
* * Both negative and positive distances along the ray are possible.
|
|
226557
|
+
* * Range has extreme values if less than 3 points, distanceA > distanceB, or if cross product < 0.
|
|
226388
226558
|
*/
|
|
226389
226559
|
clipRay(ray) {
|
|
226390
226560
|
let distanceA = -Number.MAX_VALUE;
|
|
@@ -226394,16 +226564,15 @@ class ConvexPolygon2d {
|
|
|
226394
226564
|
return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range1d.createNull();
|
|
226395
226565
|
let xy0 = this._hullPoints[n - 1];
|
|
226396
226566
|
for (const xy1 of this._hullPoints) {
|
|
226397
|
-
const
|
|
226398
|
-
|
|
226399
|
-
|
|
226400
|
-
|
|
226401
|
-
|
|
226402
|
-
distanceB = distance[0];
|
|
226567
|
+
const { hasIntersection, fraction, cross } = ray.intersectUnboundedLine(xy0, xy1);
|
|
226568
|
+
if (hasIntersection) {
|
|
226569
|
+
if (cross > 0.0) {
|
|
226570
|
+
if (fraction < distanceB)
|
|
226571
|
+
distanceB = fraction;
|
|
226403
226572
|
}
|
|
226404
226573
|
else {
|
|
226405
|
-
if (
|
|
226406
|
-
distanceA =
|
|
226574
|
+
if (fraction > distanceA)
|
|
226575
|
+
distanceA = fraction;
|
|
226407
226576
|
}
|
|
226408
226577
|
if (distanceA > distanceB)
|
|
226409
226578
|
return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range1d.createNull();
|
|
@@ -226446,7 +226615,7 @@ class ConvexPolygon2d {
|
|
|
226446
226615
|
return undefined;
|
|
226447
226616
|
// Get deep copy
|
|
226448
226617
|
const xy1 = points.slice(0, n);
|
|
226449
|
-
xy1.sort(
|
|
226618
|
+
xy1.sort((a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.lexicalXYLessThan(a, b));
|
|
226450
226619
|
hull.push(xy1[0]); // This is sure to stay
|
|
226451
226620
|
hull.push(xy1[1]); // This one can be removed in loop.
|
|
226452
226621
|
// First sweep creates upper hull
|
|
@@ -226895,7 +227064,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
226895
227064
|
/** @packageDocumentation
|
|
226896
227065
|
* @module Numerics
|
|
226897
227066
|
*/
|
|
226898
|
-
// import { Angle, AngleSweep, Geometry } from "../Geometry";
|
|
226899
227067
|
|
|
226900
227068
|
|
|
226901
227069
|
|
|
@@ -226904,7 +227072,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
226904
227072
|
|
|
226905
227073
|
|
|
226906
227074
|
|
|
226907
|
-
// import { Arc3d } from "../curve/Arc3d";
|
|
226908
227075
|
// cspell:word Cardano
|
|
226909
227076
|
// cspell:word CCminusSS
|
|
226910
227077
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
@@ -228797,19 +228964,19 @@ class GaussMapper {
|
|
|
228797
228964
|
numGaussPoints = 5;
|
|
228798
228965
|
switch (numGaussPoints) {
|
|
228799
228966
|
case 1:
|
|
228800
|
-
this.mapXAndWFunction = Quadrature.setupGauss1;
|
|
228967
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss1(xA, xB, xMapped, wMapped);
|
|
228801
228968
|
break;
|
|
228802
228969
|
case 2:
|
|
228803
|
-
this.mapXAndWFunction = Quadrature.setupGauss2;
|
|
228970
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss2(xA, xB, xMapped, wMapped);
|
|
228804
228971
|
break;
|
|
228805
228972
|
case 3:
|
|
228806
|
-
this.mapXAndWFunction = Quadrature.setupGauss3;
|
|
228973
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss3(xA, xB, xMapped, wMapped);
|
|
228807
228974
|
break;
|
|
228808
228975
|
case 4:
|
|
228809
|
-
this.mapXAndWFunction = Quadrature.setupGauss4;
|
|
228976
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss4(xA, xB, xMapped, wMapped);
|
|
228810
228977
|
break;
|
|
228811
228978
|
default:
|
|
228812
|
-
this.mapXAndWFunction = Quadrature.setupGauss5;
|
|
228979
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss5(xA, xB, xMapped, wMapped);
|
|
228813
228980
|
break;
|
|
228814
228981
|
}
|
|
228815
228982
|
}
|
|
@@ -231285,7 +231452,7 @@ class IndexedEdgeMatcher {
|
|
|
231285
231452
|
}
|
|
231286
231453
|
/** Sort the edge index array. */
|
|
231287
231454
|
sort() {
|
|
231288
|
-
this.edges.sort(SortableEdge.lessThan);
|
|
231455
|
+
this.edges.sort((edgeA, edgeB) => SortableEdge.lessThan(edgeA, edgeB));
|
|
231289
231456
|
}
|
|
231290
231457
|
/** Create a single or compound SortableEdgeCluster in dest. */
|
|
231291
231458
|
collectSortableEdgeCluster(index0, index1, dest) {
|
|
@@ -233668,7 +233835,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
|
|
|
233668
233835
|
* * Rely on the builder's compress step to find common vertex coordinates
|
|
233669
233836
|
* @internal
|
|
233670
233837
|
*/
|
|
233671
|
-
addGraph(graph, needParams, acceptFaceFunction = _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testNodeMaskNotExterior, isEdgeVisibleFunction = _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testMateMaskExterior) {
|
|
233838
|
+
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)) {
|
|
233672
233839
|
let index = 0;
|
|
233673
233840
|
const needNormals = this._options.needNormals;
|
|
233674
233841
|
let normalIndex = 0;
|
|
@@ -233718,7 +233885,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
|
|
|
233718
233885
|
/** Create a polyface containing the faces of a HalfEdgeGraph, with test function to filter faces.
|
|
233719
233886
|
* @internal
|
|
233720
233887
|
*/
|
|
233721
|
-
static graphToPolyface(graph, options, acceptFaceFunction = _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testNodeMaskNotExterior) {
|
|
233888
|
+
static graphToPolyface(graph, options, acceptFaceFunction = (node) => _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testNodeMaskNotExterior(node)) {
|
|
233722
233889
|
const builder = PolyfaceBuilder.create(options);
|
|
233723
233890
|
builder.addGraph(graph, builder.options.needParams, acceptFaceFunction);
|
|
233724
233891
|
builder.endFace();
|
|
@@ -235238,40 +235405,41 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
235238
235405
|
/* harmony export */ PolyfaceQuery: () => (/* binding */ PolyfaceQuery),
|
|
235239
235406
|
/* harmony export */ SweepLineStringToFacetsOptions: () => (/* binding */ SweepLineStringToFacetsOptions)
|
|
235240
235407
|
/* harmony export */ });
|
|
235241
|
-
/* harmony import */ var _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../geometry3d/PointHelpers */ "../../core/geometry/lib/esm/geometry3d/PointHelpers.js");
|
|
235242
235408
|
/* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
235409
|
+
/* harmony import */ var _curve_CurveOps__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../curve/CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
|
|
235243
235410
|
/* harmony import */ var _curve_internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../curve/internalContexts/MultiChainCollector */ "../../core/geometry/lib/esm/curve/internalContexts/MultiChainCollector.js");
|
|
235244
235411
|
/* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
235245
235412
|
/* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
235246
235413
|
/* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
235247
|
-
/* harmony import */ var
|
|
235414
|
+
/* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
235248
235415
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
235249
235416
|
/* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
|
|
235250
|
-
/* harmony import */ var
|
|
235417
|
+
/* harmony import */ var _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../geometry3d/BarycentricTriangle */ "../../core/geometry/lib/esm/geometry3d/BarycentricTriangle.js");
|
|
235418
|
+
/* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
|
|
235251
235419
|
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
235420
|
+
/* harmony import */ var _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../geometry3d/PointHelpers */ "../../core/geometry/lib/esm/geometry3d/PointHelpers.js");
|
|
235252
235421
|
/* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
|
|
235253
|
-
/* harmony import */ var
|
|
235422
|
+
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
235254
235423
|
/* harmony import */ var _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry4d/Matrix4d */ "../../core/geometry/lib/esm/geometry4d/Matrix4d.js");
|
|
235255
235424
|
/* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
|
|
235256
235425
|
/* harmony import */ var _numerics_UnionFind__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../numerics/UnionFind */ "../../core/geometry/lib/esm/numerics/UnionFind.js");
|
|
235257
|
-
/* harmony import */ var
|
|
235258
|
-
/* harmony import */ var
|
|
235259
|
-
/* harmony import */ var
|
|
235260
|
-
/* harmony import */ var
|
|
235261
|
-
/* harmony import */ var
|
|
235426
|
+
/* harmony import */ var _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../topology/ChainMerge */ "../../core/geometry/lib/esm/topology/ChainMerge.js");
|
|
235427
|
+
/* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
|
|
235428
|
+
/* harmony import */ var _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../topology/HalfEdgeGraphFromIndexedLoopsContext */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js");
|
|
235429
|
+
/* harmony import */ var _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../topology/HalfEdgeGraphSearch */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphSearch.js");
|
|
235430
|
+
/* harmony import */ var _topology_Merging__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../topology/Merging */ "../../core/geometry/lib/esm/topology/Merging.js");
|
|
235431
|
+
/* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
|
|
235432
|
+
/* harmony import */ var _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
|
|
235433
|
+
/* harmony import */ var _FacetOrientation__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./FacetOrientation */ "../../core/geometry/lib/esm/polyface/FacetOrientation.js");
|
|
235262
235434
|
/* harmony import */ var _IndexedEdgeMatcher__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./IndexedEdgeMatcher */ "../../core/geometry/lib/esm/polyface/IndexedEdgeMatcher.js");
|
|
235263
235435
|
/* harmony import */ var _IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
|
|
235264
|
-
/* harmony import */ var
|
|
235436
|
+
/* harmony import */ var _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./multiclip/BuildAverageNormalsContext */ "../../core/geometry/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js");
|
|
235437
|
+
/* harmony import */ var _multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./multiclip/OffsetMeshContext */ "../../core/geometry/lib/esm/polyface/multiclip/OffsetMeshContext.js");
|
|
235265
235438
|
/* harmony import */ var _multiclip_SweepLineStringToFacetContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./multiclip/SweepLineStringToFacetContext */ "../../core/geometry/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js");
|
|
235266
|
-
/* harmony import */ var
|
|
235439
|
+
/* harmony import */ var _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./multiclip/XYPointBuckets */ "../../core/geometry/lib/esm/polyface/multiclip/XYPointBuckets.js");
|
|
235267
235440
|
/* harmony import */ var _Polyface__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
|
|
235268
235441
|
/* harmony import */ var _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
235269
|
-
/* harmony import */ var
|
|
235270
|
-
/* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
|
|
235271
|
-
/* harmony import */ var _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../topology/HalfEdgeGraphFromIndexedLoopsContext */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js");
|
|
235272
|
-
/* harmony import */ var _multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./multiclip/OffsetMeshContext */ "../../core/geometry/lib/esm/polyface/multiclip/OffsetMeshContext.js");
|
|
235273
|
-
/* harmony import */ var _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
|
|
235274
|
-
/* harmony import */ var _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../geometry3d/BarycentricTriangle */ "../../core/geometry/lib/esm/geometry3d/BarycentricTriangle.js");
|
|
235442
|
+
/* harmony import */ var _RangeLengthData__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./RangeLengthData */ "../../core/geometry/lib/esm/polyface/RangeLengthData.js");
|
|
235275
235443
|
/*---------------------------------------------------------------------------------------------
|
|
235276
235444
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
235277
235445
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -235312,6 +235480,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
235312
235480
|
|
|
235313
235481
|
|
|
235314
235482
|
|
|
235483
|
+
|
|
235315
235484
|
|
|
235316
235485
|
|
|
235317
235486
|
/**
|
|
@@ -235945,18 +236114,18 @@ class PolyfaceQuery {
|
|
|
235945
236114
|
edges.push(_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d.create(pointA, pointB));
|
|
235946
236115
|
edgeStrings.push([pointA.clone(), pointB.clone()]);
|
|
235947
236116
|
});
|
|
235948
|
-
const chains =
|
|
236117
|
+
const chains = _curve_CurveOps__WEBPACK_IMPORTED_MODULE_17__.CurveOps.collectChains(edges, gapTolerance, planarityTolerance);
|
|
235949
236118
|
if (chains) {
|
|
235950
|
-
const frameBuilder = new
|
|
236119
|
+
const frameBuilder = new _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_18__.FrameBuilder();
|
|
235951
236120
|
frameBuilder.announce(chains);
|
|
235952
236121
|
const frame = frameBuilder.getValidatedFrame(false);
|
|
235953
236122
|
if (frame !== undefined) {
|
|
235954
236123
|
const inverseFrame = frame.inverse();
|
|
235955
236124
|
if (inverseFrame !== undefined) {
|
|
235956
236125
|
inverseFrame.multiplyPoint3dArrayArrayInPlace(edgeStrings);
|
|
235957
|
-
const graph =
|
|
236126
|
+
const graph = _topology_Merging__WEBPACK_IMPORTED_MODULE_19__.HalfEdgeGraphMerge.formGraphFromChains(edgeStrings, true, _topology_Graph__WEBPACK_IMPORTED_MODULE_20__.HalfEdgeMask.BOUNDARY_EDGE);
|
|
235958
236127
|
if (graph) {
|
|
235959
|
-
|
|
236128
|
+
_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);
|
|
235960
236129
|
// this.purgeNullFaces(HalfEdgeMask.EXTERIOR);
|
|
235961
236130
|
const polyface1 = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.graphToPolyface(graph);
|
|
235962
236131
|
builder.addIndexedPolyface(polyface1, false, frame);
|
|
@@ -235969,14 +236138,14 @@ class PolyfaceQuery {
|
|
|
235969
236138
|
}
|
|
235970
236139
|
/**
|
|
235971
236140
|
* Return a mesh with "some" holes filled in with new facets.
|
|
235972
|
-
* *
|
|
235973
|
-
* *
|
|
235974
|
-
* *
|
|
236141
|
+
* * Candidate chains are computed by [[announceBoundaryChainsAsLineString3d]].
|
|
236142
|
+
* * Unclosed chains are rejected.
|
|
236143
|
+
* * Closed chains are triangulated and returned as a mesh.
|
|
235975
236144
|
* * The options structure enforces restrictions on how complicated the hole filling can be:
|
|
235976
236145
|
* * maxEdgesAroundHole -- holes with more edges are skipped
|
|
235977
236146
|
* * maxPerimeter -- holes with larger summed edge lengths are skipped.
|
|
235978
236147
|
* * upVector -- holes that do not have positive area along this view are skipped.
|
|
235979
|
-
* * includeOriginalMesh -- includes the original mesh in the output mesh
|
|
236148
|
+
* * includeOriginalMesh -- includes the original mesh in the output mesh, so the composite mesh is a clone with holes filled
|
|
235980
236149
|
* @param mesh existing mesh
|
|
235981
236150
|
* @param options options controlling the hole fill.
|
|
235982
236151
|
* @param unfilledChains optional array to receive the points around holes that were not filled.
|
|
@@ -235995,11 +236164,11 @@ class PolyfaceQuery {
|
|
|
235995
236164
|
rejected = true;
|
|
235996
236165
|
else if (options.maxEdgesAroundHole !== undefined && points.length > options.maxEdgesAroundHole)
|
|
235997
236166
|
rejected = true;
|
|
235998
|
-
else if (options.maxPerimeter !== undefined &&
|
|
236167
|
+
else if (options.maxPerimeter !== undefined && _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_22__.Point3dArray.sumEdgeLengths(points, false) > options.maxPerimeter)
|
|
235999
236168
|
rejected = true;
|
|
236000
236169
|
else if (options.upVector !== undefined && _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.sumTriangleAreasPerpendicularToUpVector(points, options.upVector) <= 0.0)
|
|
236001
236170
|
rejected = true;
|
|
236002
|
-
if (!rejected &&
|
|
236171
|
+
if (!rejected && _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_23__.SpacePolygonTriangulation.triangulateSimplestSpaceLoop(points, (_loop, triangles) => {
|
|
236003
236172
|
for (const t of triangles)
|
|
236004
236173
|
builder.addPolygon(t);
|
|
236005
236174
|
})) {
|
|
@@ -236025,7 +236194,7 @@ class PolyfaceQuery {
|
|
|
236025
236194
|
}
|
|
236026
236195
|
polyface.setNumWrap(0);
|
|
236027
236196
|
const polyfaces = [];
|
|
236028
|
-
const options =
|
|
236197
|
+
const options = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__.StrokeOptions.createForFacets();
|
|
236029
236198
|
options.needNormals = polyface.normal !== undefined;
|
|
236030
236199
|
options.needParams = polyface.param !== undefined;
|
|
236031
236200
|
options.needColors = polyface.color !== undefined;
|
|
@@ -236048,7 +236217,7 @@ class PolyfaceQuery {
|
|
|
236048
236217
|
return this.cloneFiltered(source.createVisitor(0), filter);
|
|
236049
236218
|
}
|
|
236050
236219
|
source.setNumWrap(0);
|
|
236051
|
-
const options =
|
|
236220
|
+
const options = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__.StrokeOptions.createForFacets();
|
|
236052
236221
|
options.needNormals = source.normal !== undefined;
|
|
236053
236222
|
options.needParams = source.param !== undefined;
|
|
236054
236223
|
options.needColors = source.color !== undefined;
|
|
@@ -236186,7 +236355,7 @@ class PolyfaceQuery {
|
|
|
236186
236355
|
true, true, true); // accept all outputs
|
|
236187
236356
|
let chainContext;
|
|
236188
236357
|
if (options.assembleChains)
|
|
236189
|
-
chainContext =
|
|
236358
|
+
chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__.ChainMergeContext.create();
|
|
236190
236359
|
const context = _multiclip_SweepLineStringToFacetContext__WEBPACK_IMPORTED_MODULE_12__.ClipSweptLineStringContext.create(linestringPoints, options.vectorToEye);
|
|
236191
236360
|
if (context) {
|
|
236192
236361
|
const visitor = polyface.createVisitor(0);
|
|
@@ -236238,7 +236407,7 @@ class PolyfaceQuery {
|
|
|
236238
236407
|
* * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
|
|
236239
236408
|
*/
|
|
236240
236409
|
static async asyncSweepLinestringToFacetsXYReturnChains(linestringPoints, polyface) {
|
|
236241
|
-
const chainContext =
|
|
236410
|
+
const chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__.ChainMergeContext.create();
|
|
236242
236411
|
await Promise.resolve(this.asyncAnnounceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface, (_linestring, _segmentIndex, _polyface, _facetIndex, points, indexA, indexB) => {
|
|
236243
236412
|
chainContext.addSegment(points[indexA], points[indexB]);
|
|
236244
236413
|
}));
|
|
@@ -236254,7 +236423,7 @@ class PolyfaceQuery {
|
|
|
236254
236423
|
if (polyface instanceof _Polyface__WEBPACK_IMPORTED_MODULE_6__.Polyface) {
|
|
236255
236424
|
return this.collectRangeLengthData(polyface.createVisitor(0));
|
|
236256
236425
|
}
|
|
236257
|
-
const rangeData = new
|
|
236426
|
+
const rangeData = new _RangeLengthData__WEBPACK_IMPORTED_MODULE_26__.RangeLengthData();
|
|
236258
236427
|
// polyface is a visitor ...
|
|
236259
236428
|
for (polyface.reset(); polyface.moveToNextFacet();)
|
|
236260
236429
|
rangeData.accumulateGrowableXYZArrayRange(polyface.point);
|
|
@@ -236266,9 +236435,9 @@ class PolyfaceQuery {
|
|
|
236266
236435
|
static cloneWithTVertexFixup(polyface) {
|
|
236267
236436
|
const oldFacetVisitor = polyface.createVisitor(1); // This is to visit the existing facets.
|
|
236268
236437
|
const newFacetVisitor = polyface.createVisitor(0); // This is to build the new facets.
|
|
236269
|
-
const rangeSearcher =
|
|
236438
|
+
const rangeSearcher = _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_27__.XYPointBuckets.create(polyface.data.point, 30);
|
|
236270
236439
|
const builder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create();
|
|
236271
|
-
const edgeRange =
|
|
236440
|
+
const edgeRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d.createNull();
|
|
236272
236441
|
const point0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
236273
236442
|
const point1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
236274
236443
|
const spacePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
@@ -236376,7 +236545,7 @@ class PolyfaceQuery {
|
|
|
236376
236545
|
}
|
|
236377
236546
|
facetIndexAndVertexIndices.push(entry);
|
|
236378
236547
|
}
|
|
236379
|
-
facetIndexAndVertexIndices.sort(this.compareFacetIndexAndVertexIndices);
|
|
236548
|
+
facetIndexAndVertexIndices.sort((arrayA, arrayB) => this.compareFacetIndexAndVertexIndices(arrayA, arrayB));
|
|
236380
236549
|
let i0, i1;
|
|
236381
236550
|
const n = facetIndexAndVertexIndices.length;
|
|
236382
236551
|
const clusterArray = [];
|
|
@@ -236633,7 +236802,7 @@ class PolyfaceQuery {
|
|
|
236633
236802
|
* @internal
|
|
236634
236803
|
*/
|
|
236635
236804
|
static convertToHalfEdgeGraph(mesh) {
|
|
236636
|
-
const builder = new
|
|
236805
|
+
const builder = new _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_29__.HalfEdgeGraphFromIndexedLoopsContext();
|
|
236637
236806
|
const visitor = mesh.createVisitor(0);
|
|
236638
236807
|
for (visitor.reset(); visitor.moveToNextFacet();) {
|
|
236639
236808
|
builder.insertLoop(visitor.pointIndex);
|
|
@@ -236654,14 +236823,14 @@ class PolyfaceQuery {
|
|
|
236654
236823
|
* @param mesh
|
|
236655
236824
|
*/
|
|
236656
236825
|
static reorientVertexOrderAroundFacetsForConsistentOrientation(mesh) {
|
|
236657
|
-
return
|
|
236826
|
+
return _FacetOrientation__WEBPACK_IMPORTED_MODULE_30__.FacetOrientationFixup.doFixup(mesh);
|
|
236658
236827
|
}
|
|
236659
236828
|
/**
|
|
236660
236829
|
* Set up indexed normals with one normal in the plane of each facet of the mesh.
|
|
236661
236830
|
* @param polyface
|
|
236662
236831
|
*/
|
|
236663
236832
|
static buildPerFaceNormals(polyface) {
|
|
236664
|
-
|
|
236833
|
+
_multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__.BuildAverageNormalsContext.buildPerFaceNormals(polyface);
|
|
236665
236834
|
}
|
|
236666
236835
|
/**
|
|
236667
236836
|
* * At each vertex of the mesh
|
|
@@ -236674,7 +236843,7 @@ class PolyfaceQuery {
|
|
|
236674
236843
|
* @param toleranceAngle averaging is done between normals up to this angle.
|
|
236675
236844
|
*/
|
|
236676
236845
|
static buildAverageNormals(polyface, toleranceAngle = _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_1__.Angle.createDegrees(31.0)) {
|
|
236677
|
-
|
|
236846
|
+
_multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__.BuildAverageNormalsContext.buildFastAverageNormals(polyface, toleranceAngle);
|
|
236678
236847
|
}
|
|
236679
236848
|
/**
|
|
236680
236849
|
* Offset the faces of the mesh.
|
|
@@ -236684,9 +236853,9 @@ class PolyfaceQuery {
|
|
|
236684
236853
|
* @returns shifted mesh.
|
|
236685
236854
|
*/
|
|
236686
236855
|
static cloneOffset(source, signedOffsetDistance, offsetOptions = OffsetMeshOptions.create()) {
|
|
236687
|
-
const strokeOptions =
|
|
236856
|
+
const strokeOptions = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__.StrokeOptions.createForFacets();
|
|
236688
236857
|
const offsetBuilder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create(strokeOptions);
|
|
236689
|
-
|
|
236858
|
+
_multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_32__.OffsetMeshContext.buildOffsetMeshWithEdgeChamfers(source, offsetBuilder, signedOffsetDistance, offsetOptions);
|
|
236690
236859
|
return offsetBuilder.claimPolyface();
|
|
236691
236860
|
}
|
|
236692
236861
|
/** Search facets for the first one that intersects the infinite line.
|
|
@@ -236710,17 +236879,17 @@ class PolyfaceQuery {
|
|
|
236710
236879
|
const numEdges = visitor.pointCount; // #vertices = #edges since numWrap is zero
|
|
236711
236880
|
const vertices = visitor.point;
|
|
236712
236881
|
if (3 === numEdges) {
|
|
236713
|
-
const tri = this._workTriangle =
|
|
236882
|
+
const tri = this._workTriangle = _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_33__.BarycentricTriangle.create(vertices.getPoint3dAtUncheckedPointIndex(0), vertices.getPoint3dAtUncheckedPointIndex(1), vertices.getPoint3dAtUncheckedPointIndex(2), this._workTriangle);
|
|
236714
236883
|
const detail3 = this._workTriDetail = tri.intersectRay3d(ray, this._workTriDetail);
|
|
236715
236884
|
tri.snapLocationToEdge(detail3, options?.distanceTolerance, options?.parameterTolerance);
|
|
236716
|
-
detail = this._workFacetDetail3 =
|
|
236885
|
+
detail = this._workFacetDetail3 = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.TriangularFacetLocationDetail.create(visitor.currentReadIndex(), detail3, this._workFacetDetail3);
|
|
236717
236886
|
}
|
|
236718
236887
|
else {
|
|
236719
236888
|
const detailN = this._workPolyDetail = _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.intersectRay3d(vertices, ray, options?.distanceTolerance, this._workPolyDetail);
|
|
236720
236889
|
if (_geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.isConvex(vertices))
|
|
236721
|
-
detail = this._workFacetDetailC =
|
|
236890
|
+
detail = this._workFacetDetailC = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.ConvexFacetLocationDetail.create(visitor.currentReadIndex(), numEdges, detailN, this._workFacetDetailC);
|
|
236722
236891
|
else
|
|
236723
|
-
detail = this._workFacetDetailNC =
|
|
236892
|
+
detail = this._workFacetDetailNC = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.NonConvexFacetLocationDetail.create(visitor.currentReadIndex(), numEdges, detailN, this._workFacetDetailNC);
|
|
236724
236893
|
}
|
|
236725
236894
|
if (detail.isInsideOrOn) { // set optional caches, process the intersection
|
|
236726
236895
|
if (options?.needNormal && visitor.normal)
|
|
@@ -236957,7 +237126,7 @@ class TaggedNumericData {
|
|
|
236957
237126
|
if (this.tagB !== other.tagB)
|
|
236958
237127
|
return false;
|
|
236959
237128
|
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.exactEqualNumberArrays(this.intData, other.intData)
|
|
236960
|
-
&& _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.almostEqualArrays(this.doubleData, other.doubleData, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isAlmostEqualNumber);
|
|
237129
|
+
&& _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.almostEqualArrays(this.doubleData, other.doubleData, (a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isAlmostEqualNumber(a, b));
|
|
236961
237130
|
}
|
|
236962
237131
|
static areAlmostEqual(dataA, dataB) {
|
|
236963
237132
|
if (dataA === undefined && dataB === undefined)
|
|
@@ -237217,7 +237386,7 @@ class BuildAverageNormalsContext {
|
|
|
237217
237386
|
}
|
|
237218
237387
|
}
|
|
237219
237388
|
// Sort by the vertex index so all the sectors around each vertex are clustered . .
|
|
237220
|
-
sectors.sort(SectorData.cbVertexSort);
|
|
237389
|
+
sectors.sort((left, right) => SectorData.cbVertexSort(left, right));
|
|
237221
237390
|
// Walk the sectors around each vertex . ..
|
|
237222
237391
|
// For each unassigned sector
|
|
237223
237392
|
// walk to further sectors of the same vertex with near-parallel normals, accumulating average normal.
|
|
@@ -237250,7 +237419,7 @@ class BuildAverageNormalsContext {
|
|
|
237250
237419
|
}
|
|
237251
237420
|
}
|
|
237252
237421
|
// Resort by original sector index.
|
|
237253
|
-
sectors.sort(SectorData.cbSectorSort);
|
|
237422
|
+
sectors.sort((left, right) => SectorData.cbSectorSort(left, right));
|
|
237254
237423
|
// normalize the sums and emplace in the facets . . .
|
|
237255
237424
|
polyface.data.normalIndex = [];
|
|
237256
237425
|
polyface.data.normal = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArray(sectors.length);
|
|
@@ -248979,9 +249148,7 @@ var IModelJson;
|
|
|
248979
249148
|
return _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_10__.CoordinateXYZ.create(point);
|
|
248980
249149
|
return undefined;
|
|
248981
249150
|
}
|
|
248982
|
-
/** Parse TransitionSpiral content (right side) to TransitionSpiral3d
|
|
248983
|
-
* @alpha
|
|
248984
|
-
*/
|
|
249151
|
+
/** Parse TransitionSpiral content (right side) to TransitionSpiral3d. */
|
|
248985
249152
|
static parseTransitionSpiral(data) {
|
|
248986
249153
|
const axes = Reader.parseOrientation(data, true);
|
|
248987
249154
|
const origin = Reader.parsePoint3dProperty(data, "origin");
|
|
@@ -249619,10 +249786,7 @@ var IModelJson;
|
|
|
249619
249786
|
}
|
|
249620
249787
|
data.xyVectors = [vectorU.toJSON(), vectorV.toJSON()];
|
|
249621
249788
|
}
|
|
249622
|
-
/**
|
|
249623
|
-
* parse properties of a TransitionSpiral.
|
|
249624
|
-
* @alpha
|
|
249625
|
-
*/
|
|
249789
|
+
/** Parse properties of a TransitionSpiral. */
|
|
249626
249790
|
handleTransitionSpiral(data) {
|
|
249627
249791
|
// TODO: HANDLE NONRIGID TRANSFORM !!
|
|
249628
249792
|
// the spiral may have indication of how it was defined. If so, use defined/undefined state of the original data
|
|
@@ -252512,7 +252676,7 @@ class ChainMergeContext {
|
|
|
252512
252676
|
p.sortData = this.primarySortKey(p);
|
|
252513
252677
|
}
|
|
252514
252678
|
const sortArray = this._graph.allHalfEdges.slice();
|
|
252515
|
-
sortArray.sort(ChainMergeContext.nodeCompareSortData);
|
|
252679
|
+
sortArray.sort((nodeA, nodeB) => ChainMergeContext.nodeCompareSortData(nodeA, nodeB));
|
|
252516
252680
|
const xyzTolerance = this._options.tolerance;
|
|
252517
252681
|
// A node is unvisited if it is its own vertex successor !!!
|
|
252518
252682
|
// otherwise the node has already been twisted into a base vertex.
|
|
@@ -254254,7 +254418,7 @@ class HalfEdgeGraphSearch {
|
|
|
254254
254418
|
* @param collectAllNodes flag to pass to the SignedDataSummary constructor to control collection of nodes.
|
|
254255
254419
|
* @param areaFunction function to all to obtain area (or other numeric value)
|
|
254256
254420
|
*/
|
|
254257
|
-
static collectFaceAreaSummary(source, collectAllNodes = false, areaFunction = HalfEdgeGraphSearch.signedFaceArea) {
|
|
254421
|
+
static collectFaceAreaSummary(source, collectAllNodes = false, areaFunction = (node) => HalfEdgeGraphSearch.signedFaceArea(node)) {
|
|
254258
254422
|
const result = new _SignedDataSummary__WEBPACK_IMPORTED_MODULE_0__.SignedDataSummary(collectAllNodes);
|
|
254259
254423
|
let allFaces;
|
|
254260
254424
|
if (source instanceof _Graph__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeGraph)
|
|
@@ -255507,7 +255671,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
255507
255671
|
* @internal
|
|
255508
255672
|
*/
|
|
255509
255673
|
class HalfEdgePriorityQueueWithPartnerArray {
|
|
255510
|
-
constructor(compare = _Merging__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeGraphOps.compareNodesYXUp) {
|
|
255674
|
+
constructor(compare = (a, b) => _Merging__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeGraphOps.compareNodesYXUp(a, b)) {
|
|
255511
255675
|
this.priorityQueue = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.PriorityQueue(compare);
|
|
255512
255676
|
this.activeEdges = [];
|
|
255513
255677
|
}
|
|
@@ -256736,7 +256900,7 @@ class RegularizationContext {
|
|
|
256736
256900
|
}
|
|
256737
256901
|
downwardConnectionFromBottomPeak(node) {
|
|
256738
256902
|
let connectTo;
|
|
256739
|
-
const upFunction = _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp;
|
|
256903
|
+
const upFunction = (a, b) => _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp(a, b);
|
|
256740
256904
|
const upEdgeBase = this.findTopVisibleEdge(node, this.upEdges, 1.0);
|
|
256741
256905
|
const downEdgeBase = this.findTopVisibleEdge(node, this.downEdges, -1.0);
|
|
256742
256906
|
connectTo = this.updateMaxNode(connectTo, upEdgeBase, upFunction);
|
|
@@ -256789,7 +256953,7 @@ class RegularizationContext {
|
|
|
256789
256953
|
*/
|
|
256790
256954
|
runRegularization(upSweep = true, downSweep = true) {
|
|
256791
256955
|
if (upSweep) {
|
|
256792
|
-
this.bottomPeaks.sort(_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp);
|
|
256956
|
+
this.bottomPeaks.sort((a, b) => _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp(a, b));
|
|
256793
256957
|
for (const bottomPeak of this.bottomPeaks) {
|
|
256794
256958
|
// GeometryCoreTestIO.consoleLog("SEARCH", bottomPeak.id, [bottomPeak.x, bottomPeak.y]);
|
|
256795
256959
|
if (!_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.isDownPeak(bottomPeak))
|
|
@@ -256806,7 +256970,7 @@ class RegularizationContext {
|
|
|
256806
256970
|
this.negateXY();
|
|
256807
256971
|
// swap the various p and down seeds ....
|
|
256808
256972
|
this.swapArrays();
|
|
256809
|
-
this.bottomPeaks.sort(_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp);
|
|
256973
|
+
this.bottomPeaks.sort((a, b) => _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp(a, b));
|
|
256810
256974
|
for (const bottomPeak of this.bottomPeaks) {
|
|
256811
256975
|
if (!_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.isDownPeak(bottomPeak))
|
|
256812
256976
|
continue;
|
|
@@ -257749,7 +257913,7 @@ class Triangulator {
|
|
|
257749
257913
|
*
|
|
257750
257914
|
*/
|
|
257751
257915
|
static spliceLeftMostNodesOfHoles(graph, outerNode, leftMostHoleLoopNode) {
|
|
257752
|
-
leftMostHoleLoopNode.sort(Triangulator.compareX);
|
|
257916
|
+
leftMostHoleLoopNode.sort((a, b) => Triangulator.compareX(a, b));
|
|
257753
257917
|
let numFail = 0;
|
|
257754
257918
|
// process holes from left to right
|
|
257755
257919
|
for (const holeStart of leftMostHoleLoopNode) {
|
|
@@ -278819,7 +278983,7 @@ class TestContext {
|
|
|
278819
278983
|
this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
|
|
278820
278984
|
const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
|
|
278821
278985
|
await core_frontend_1.NoRenderApp.startup({
|
|
278822
|
-
applicationVersion: "4.1.0-dev.
|
|
278986
|
+
applicationVersion: "4.1.0-dev.69",
|
|
278823
278987
|
applicationId: this.settings.gprid,
|
|
278824
278988
|
authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
|
|
278825
278989
|
hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
|
|
@@ -281527,7 +281691,7 @@ class Content {
|
|
|
281527
281691
|
if (!json)
|
|
281528
281692
|
return undefined;
|
|
281529
281693
|
if (typeof json === "string")
|
|
281530
|
-
return JSON.parse(json, Content.reviver);
|
|
281694
|
+
return JSON.parse(json, (key, value) => Content.reviver(key, value));
|
|
281531
281695
|
const descriptor = _Descriptor__WEBPACK_IMPORTED_MODULE_0__.Descriptor.fromJSON(json.descriptor);
|
|
281532
281696
|
if (!descriptor)
|
|
281533
281697
|
return undefined;
|
|
@@ -282758,7 +282922,7 @@ class Item {
|
|
|
282758
282922
|
if (!json)
|
|
282759
282923
|
return undefined;
|
|
282760
282924
|
if (typeof json === "string")
|
|
282761
|
-
return JSON.parse(json, Item.reviver);
|
|
282925
|
+
return JSON.parse(json, (key, value) => Item.reviver(key, value));
|
|
282762
282926
|
const item = Object.create(Item.prototype);
|
|
282763
282927
|
const { labelDefinition, ...baseJson } = json;
|
|
282764
282928
|
return Object.assign(item, baseJson, {
|
|
@@ -287804,7 +287968,7 @@ class SelectionScopesManager {
|
|
|
287804
287968
|
const batchIds = (0 === batchIndex && ids.length <= batchEnd) ? ids : ids.slice(batchStart, batchEnd);
|
|
287805
287969
|
batchKeyPromises.push(this._rpcRequestsHandler.computeSelection({ imodel: imodel.getRpcProps(), elementIds: batchIds, scope: scopeProps }));
|
|
287806
287970
|
}
|
|
287807
|
-
const batchKeys = (await Promise.all(batchKeyPromises)).map(_itwin_presentation_common__WEBPACK_IMPORTED_MODULE_0__.KeySet.fromJSON);
|
|
287971
|
+
const batchKeys = (await Promise.all(batchKeyPromises)).map((json) => _itwin_presentation_common__WEBPACK_IMPORTED_MODULE_0__.KeySet.fromJSON(json));
|
|
287808
287972
|
batchKeys.forEach((bk) => keys.add(bk));
|
|
287809
287973
|
return keys;
|
|
287810
287974
|
}
|
|
@@ -288749,8 +288913,7 @@ const isStageLauncher = (item) => {
|
|
|
288749
288913
|
class BackstageItemUtilities {
|
|
288750
288914
|
}
|
|
288751
288915
|
/** Creates a stage launcher backstage item */
|
|
288752
|
-
BackstageItemUtilities.createStageLauncher = (frontstageId, groupPriority, itemPriority, label, subtitle, icon, overrides
|
|
288753
|
-
) => ({
|
|
288916
|
+
BackstageItemUtilities.createStageLauncher = (frontstageId, groupPriority, itemPriority, label, subtitle, icon, overrides) => ({
|
|
288754
288917
|
groupPriority,
|
|
288755
288918
|
icon,
|
|
288756
288919
|
internalData: overrides?.internalData,
|
|
@@ -288762,8 +288925,7 @@ BackstageItemUtilities.createStageLauncher = (frontstageId, groupPriority, itemP
|
|
|
288762
288925
|
...overrides,
|
|
288763
288926
|
});
|
|
288764
288927
|
/** Creates an action backstage item */
|
|
288765
|
-
BackstageItemUtilities.createActionItem = (itemId, groupPriority, itemPriority, execute, label, subtitle, icon, overrides
|
|
288766
|
-
) => ({
|
|
288928
|
+
BackstageItemUtilities.createActionItem = (itemId, groupPriority, itemPriority, execute, label, subtitle, icon, overrides) => ({
|
|
288767
288929
|
execute,
|
|
288768
288930
|
groupPriority,
|
|
288769
288931
|
icon,
|
|
@@ -298193,7 +298355,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
|
|
|
298193
298355
|
/***/ ((module) => {
|
|
298194
298356
|
|
|
298195
298357
|
"use strict";
|
|
298196
|
-
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.1.0-dev.
|
|
298358
|
+
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"}}');
|
|
298197
298359
|
|
|
298198
298360
|
/***/ }),
|
|
298199
298361
|
|