@itwin/rpcinterface-full-stack-tests 4.1.0-dev.67 → 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 +1474 -1284
- 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)
|
|
@@ -43399,7 +43399,7 @@ class RpcInterface {
|
|
|
43399
43399
|
// patch difference is fine. If minor versions differ, compatible as long as backend minor version is greater
|
|
43400
43400
|
return difference === "patch" || (difference === "minor" && frontendSemver.minor < backendSemver.minor);
|
|
43401
43401
|
}
|
|
43402
|
-
/** @
|
|
43402
|
+
/** @beta */
|
|
43403
43403
|
constructor(routing = _rpc_core_RpcRoutingToken__WEBPACK_IMPORTED_MODULE_3__.RpcRoutingToken.default) {
|
|
43404
43404
|
this.routing = routing;
|
|
43405
43405
|
this.configuration = _rpc_core_RpcConfiguration__WEBPACK_IMPORTED_MODULE_0__.RpcConfiguration.supply(this);
|
|
@@ -47844,7 +47844,7 @@ var AreaPattern;
|
|
|
47844
47844
|
applyTransform(transform) {
|
|
47845
47845
|
if (transform.isIdentity)
|
|
47846
47846
|
return true;
|
|
47847
|
-
|
|
47847
|
+
let origin = this.origin ? this.origin : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero();
|
|
47848
47848
|
const rMatrix = this.rotation ? this.rotation.toMatrix3d() : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.createIdentity();
|
|
47849
47849
|
if (this.symbolId !== undefined) {
|
|
47850
47850
|
this.space1 = Params.transformPatternSpace(transform, this.space1 ? this.space1 : 0.0, rMatrix, this.angle1);
|
|
@@ -47877,7 +47877,7 @@ var AreaPattern;
|
|
|
47877
47877
|
if (this.space2 && 0 !== this.space2)
|
|
47878
47878
|
this.space2 = Params.transformPatternSpace(transform, this.space2, rMatrix, this.angle2);
|
|
47879
47879
|
}
|
|
47880
|
-
transform.multiplyPoint3d(origin);
|
|
47880
|
+
origin = transform.multiplyPoint3d(origin);
|
|
47881
47881
|
rMatrix.multiplyMatrixMatrix(transform.matrix, rMatrix);
|
|
47882
47882
|
const normalized = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.createRigidFromMatrix3d(rMatrix);
|
|
47883
47883
|
if (!normalized)
|
|
@@ -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,13 +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
|
-
* *
|
|
195487
|
-
* * See [[JointOptions]] class doc for offset construction rules.
|
|
195647
|
+
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/Offset
|
|
195488
195648
|
* @param curves base curves.
|
|
195489
195649
|
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
195490
195650
|
*/
|
|
195491
195651
|
static constructCurveXYOffset(curves, offsetDistanceOrOptions) {
|
|
195492
|
-
|
|
195652
|
+
const offsetOptions = _OffsetOptions__WEBPACK_IMPORTED_MODULE_18__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
195653
|
+
return _CurveOps__WEBPACK_IMPORTED_MODULE_19__.CurveOps.constructCurveXYOffset(curves, offsetOptions);
|
|
195493
195654
|
}
|
|
195494
195655
|
/**
|
|
195495
195656
|
* Test if point (x,y) is IN, OUT or ON a region.
|
|
@@ -195499,7 +195660,7 @@ class RegionOps {
|
|
|
195499
195660
|
* @param y y coordinate of point to test
|
|
195500
195661
|
*/
|
|
195501
195662
|
static testPointInOnOutRegionXY(curves, x, y) {
|
|
195502
|
-
return
|
|
195663
|
+
return _Query_InOutTests__WEBPACK_IMPORTED_MODULE_20__.PointInOnOutContext.testPointInOnOutRegionXY(curves, x, y);
|
|
195503
195664
|
}
|
|
195504
195665
|
/**
|
|
195505
195666
|
* Create curve collection of subtype determined by gaps between the input curves.
|
|
@@ -195523,11 +195684,11 @@ class RegionOps {
|
|
|
195523
195684
|
maxGap = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.maxXY(maxGap, curves[i].endPoint().distance(curves[i + 1].startPoint()));
|
|
195524
195685
|
let collection;
|
|
195525
195686
|
if (_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(maxGap)) {
|
|
195526
|
-
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();
|
|
195527
195688
|
isPath = true;
|
|
195528
195689
|
}
|
|
195529
195690
|
else {
|
|
195530
|
-
collection =
|
|
195691
|
+
collection = _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.BagOfCurves.create();
|
|
195531
195692
|
}
|
|
195532
195693
|
for (const c of curves)
|
|
195533
195694
|
collection.tryAddChild(c);
|
|
@@ -195552,7 +195713,7 @@ class RegionOps {
|
|
|
195552
195713
|
* @param cutterCurves input curves to intersect with `curvesToCut`
|
|
195553
195714
|
*/
|
|
195554
195715
|
static cloneCurvesWithXYSplits(curvesToCut, cutterCurves) {
|
|
195555
|
-
return
|
|
195716
|
+
return _Query_CurveSplitContext__WEBPACK_IMPORTED_MODULE_23__.CurveSplitContext.cloneCurvesWithXYSplits(curvesToCut, cutterCurves);
|
|
195556
195717
|
}
|
|
195557
195718
|
/**
|
|
195558
195719
|
* Create paths assembled from many curves.
|
|
@@ -195563,35 +195724,36 @@ class RegionOps {
|
|
|
195563
195724
|
static splitToPathsBetweenBreaks(source, makeClones) {
|
|
195564
195725
|
if (source === undefined)
|
|
195565
195726
|
return undefined;
|
|
195566
|
-
if (source instanceof
|
|
195727
|
+
if (source instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__.CurvePrimitive)
|
|
195567
195728
|
return source;
|
|
195568
195729
|
// source is a collection . ..
|
|
195569
195730
|
const primitives = source.collectCurvePrimitives();
|
|
195570
|
-
const chainCollector = new
|
|
195731
|
+
const chainCollector = new _internalContexts_ChainCollectorContext__WEBPACK_IMPORTED_MODULE_25__.ChainCollectorContext(makeClones);
|
|
195571
195732
|
for (const primitive of primitives) {
|
|
195572
195733
|
chainCollector.announceCurvePrimitive(primitive);
|
|
195573
195734
|
}
|
|
195574
195735
|
return chainCollector.grabResult();
|
|
195575
195736
|
}
|
|
195576
195737
|
/**
|
|
195577
|
-
* Restructure curve fragments as
|
|
195578
|
-
* *
|
|
195579
|
-
*
|
|
195580
|
-
* @param
|
|
195581
|
-
* @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
|
|
195582
195744
|
* @returns object with named chains, insideOffsets, outsideOffsets
|
|
195583
195745
|
*/
|
|
195584
195746
|
static collectInsideAndOutsideOffsets(fragments, offsetDistance, gapTolerance) {
|
|
195585
|
-
return
|
|
195747
|
+
return _CurveOps__WEBPACK_IMPORTED_MODULE_19__.CurveOps.collectInsideAndOutsideXYOffsets(fragments, offsetDistance, gapTolerance);
|
|
195586
195748
|
}
|
|
195587
195749
|
/**
|
|
195588
|
-
* Restructure curve fragments as
|
|
195750
|
+
* Restructure curve fragments as Paths and Loops.
|
|
195589
195751
|
* @param fragments fragments to be chained
|
|
195590
|
-
* @param gapTolerance
|
|
195591
|
-
* @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]].
|
|
195592
195754
|
*/
|
|
195593
195755
|
static collectChains(fragments, gapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
|
|
195594
|
-
return
|
|
195756
|
+
return _CurveOps__WEBPACK_IMPORTED_MODULE_19__.CurveOps.collectChains(fragments, gapTolerance);
|
|
195595
195757
|
}
|
|
195596
195758
|
/**
|
|
195597
195759
|
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
@@ -195603,17 +195765,17 @@ class RegionOps {
|
|
|
195603
195765
|
const result = { insideParts: [], outsideParts: [], coincidentParts: [] };
|
|
195604
195766
|
const pathWithIntersectionMarkup = RegionOps.cloneCurvesWithXYSplits(curvesToCut, region);
|
|
195605
195767
|
const splitPaths = RegionOps.splitToPathsBetweenBreaks(pathWithIntersectionMarkup, true);
|
|
195606
|
-
if (splitPaths instanceof
|
|
195768
|
+
if (splitPaths instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection) {
|
|
195607
195769
|
for (const child of splitPaths.children) {
|
|
195608
|
-
const pointOnChild =
|
|
195770
|
+
const pointOnChild = _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection.createCurveLocationDetailOnAnyCurvePrimitive(child);
|
|
195609
195771
|
if (pointOnChild) {
|
|
195610
195772
|
const inOnOut = RegionOps.testPointInOnOutRegionXY(region, pointOnChild.point.x, pointOnChild.point.y);
|
|
195611
195773
|
pushToInOnOutArrays(child, inOnOut, result.outsideParts, result.coincidentParts, result.insideParts);
|
|
195612
195774
|
}
|
|
195613
195775
|
}
|
|
195614
195776
|
}
|
|
195615
|
-
else if (splitPaths instanceof
|
|
195616
|
-
const pointOnChild =
|
|
195777
|
+
else if (splitPaths instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__.CurvePrimitive) {
|
|
195778
|
+
const pointOnChild = _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection.createCurveLocationDetailOnAnyCurvePrimitive(splitPaths);
|
|
195617
195779
|
if (pointOnChild) {
|
|
195618
195780
|
const inOnOut = RegionOps.testPointInOnOutRegionXY(region, pointOnChild.point.x, pointOnChild.point.y);
|
|
195619
195781
|
pushToInOnOutArrays(splitPaths, inOnOut, result.outsideParts, result.coincidentParts, result.insideParts);
|
|
@@ -195655,7 +195817,7 @@ class RegionOps {
|
|
|
195655
195817
|
}
|
|
195656
195818
|
else {
|
|
195657
195819
|
dataToUse = _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_15__.GrowableXYZArray.create(data);
|
|
195658
|
-
|
|
195820
|
+
_geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_26__.PolylineCompressionContext.compressInPlaceByShortEdgeLength(dataToUse, _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance);
|
|
195659
195821
|
if (dataToUse.length < (requireClosurePoint ? 5 : 4))
|
|
195660
195822
|
return undefined;
|
|
195661
195823
|
}
|
|
@@ -195666,19 +195828,19 @@ class RegionOps {
|
|
|
195666
195828
|
if (normalVector.normalizeInPlace()
|
|
195667
195829
|
&& vector12.isAlmostEqual(vector03)
|
|
195668
195830
|
&& vector01.isPerpendicularTo(vector03)) {
|
|
195669
|
-
return
|
|
195831
|
+
return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_27__.Transform.createOriginAndMatrixColumns(dataToUse.getPoint3dAtUncheckedPointIndex(0), vector01, vector03, normalVector);
|
|
195670
195832
|
}
|
|
195671
195833
|
}
|
|
195672
195834
|
else if (Array.isArray(data)) {
|
|
195673
|
-
return this.rectangleEdgeTransform(new
|
|
195835
|
+
return this.rectangleEdgeTransform(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_28__.Point3dArrayCarrier(data), requireClosurePoint);
|
|
195674
195836
|
}
|
|
195675
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) {
|
|
195676
195838
|
return this.rectangleEdgeTransform(data.children[0].packedPoints, true);
|
|
195677
195839
|
}
|
|
195678
|
-
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) {
|
|
195679
195841
|
return this.rectangleEdgeTransform(data.children[0].packedPoints, requireClosurePoint);
|
|
195680
195842
|
}
|
|
195681
|
-
else if (data instanceof
|
|
195843
|
+
else if (data instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveChain) {
|
|
195682
195844
|
if (!data.checkForNonLinearPrimitives()) {
|
|
195683
195845
|
// const linestring = LineString3d.create();
|
|
195684
195846
|
const strokes = data.getPackedStrokes();
|
|
@@ -195702,7 +195864,7 @@ class RegionOps {
|
|
|
195702
195864
|
* @param options options for tolerance and selective simplification.
|
|
195703
195865
|
*/
|
|
195704
195866
|
static consolidateAdjacentPrimitives(curves, options) {
|
|
195705
|
-
const context = new
|
|
195867
|
+
const context = new _Query_ConsolidateAdjacentPrimitivesContext__WEBPACK_IMPORTED_MODULE_29__.ConsolidateAdjacentCurvePrimitivesContext(options);
|
|
195706
195868
|
curves.dispatchToGeometryHandler(context);
|
|
195707
195869
|
}
|
|
195708
195870
|
/**
|
|
@@ -195721,13 +195883,13 @@ class RegionOps {
|
|
|
195721
195883
|
const loopAndArea = [];
|
|
195722
195884
|
for (const candidate of loops) {
|
|
195723
195885
|
if (candidate instanceof _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop)
|
|
195724
|
-
|
|
195886
|
+
_geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__.SortablePolygon.pushLoop(loopAndArea, candidate);
|
|
195725
195887
|
else if (candidate instanceof _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_6__.IndexedXYZCollection) {
|
|
195726
195888
|
const loop = _Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(candidate);
|
|
195727
|
-
|
|
195889
|
+
_geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__.SortablePolygon.pushLoop(loopAndArea, loop);
|
|
195728
195890
|
}
|
|
195729
195891
|
}
|
|
195730
|
-
return
|
|
195892
|
+
return _geometry3d_SortablePolygon__WEBPACK_IMPORTED_MODULE_30__.SortablePolygon.sortAsAnyRegion(loopAndArea);
|
|
195731
195893
|
}
|
|
195732
195894
|
/**
|
|
195733
195895
|
* Find all areas bounded by the unstructured, possibly intersecting curves.
|
|
@@ -195752,7 +195914,7 @@ class RegionOps {
|
|
|
195752
195914
|
const primitives = RegionOps.collectCurvePrimitives(curvesAndRegions, undefined, true, true);
|
|
195753
195915
|
const range = this.curveArrayRange(primitives);
|
|
195754
195916
|
const areaTol = this.computeXYAreaTolerance(range, tolerance);
|
|
195755
|
-
const intersections =
|
|
195917
|
+
const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_31__.CurveCurve.allIntersectionsAmongPrimitivesXY(primitives, tolerance);
|
|
195756
195918
|
const graph = _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_12__.PlanarSubdivision.assembleHalfEdgeGraph(primitives, intersections, tolerance);
|
|
195757
195919
|
return _Query_PlanarSubdivision__WEBPACK_IMPORTED_MODULE_12__.PlanarSubdivision.collectSignedLoopSetsInHalfEdgeGraph(graph, areaTol);
|
|
195758
195920
|
}
|
|
@@ -195769,10 +195931,10 @@ class RegionOps {
|
|
|
195769
195931
|
*/
|
|
195770
195932
|
static collectCurvePrimitives(candidates, collectorArray, smallestPossiblePrimitives = false, explodeLinestrings = false) {
|
|
195771
195933
|
const results = collectorArray === undefined ? [] : collectorArray;
|
|
195772
|
-
if (candidates instanceof
|
|
195934
|
+
if (candidates instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__.CurvePrimitive) {
|
|
195773
195935
|
candidates.collectCurvePrimitives(results, smallestPossiblePrimitives, explodeLinestrings);
|
|
195774
195936
|
}
|
|
195775
|
-
else if (candidates instanceof
|
|
195937
|
+
else if (candidates instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_22__.CurveCollection) {
|
|
195776
195938
|
candidates.collectCurvePrimitives(results, smallestPossiblePrimitives, explodeLinestrings);
|
|
195777
195939
|
}
|
|
195778
195940
|
else if (Array.isArray(candidates)) {
|
|
@@ -195810,12 +195972,12 @@ class RegionOps {
|
|
|
195810
195972
|
* @param worldToLocal transform to apply to data before computing its range
|
|
195811
195973
|
*/
|
|
195812
195974
|
static curveArrayRange(data, worldToLocal) {
|
|
195813
|
-
const range =
|
|
195814
|
-
if (data instanceof
|
|
195975
|
+
const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_32__.Range3d.create();
|
|
195976
|
+
if (data instanceof _GeometryQuery__WEBPACK_IMPORTED_MODULE_33__.GeometryQuery)
|
|
195815
195977
|
data.extendRange(range, worldToLocal);
|
|
195816
195978
|
else if (Array.isArray(data)) {
|
|
195817
195979
|
for (const c of data) {
|
|
195818
|
-
if (c instanceof
|
|
195980
|
+
if (c instanceof _GeometryQuery__WEBPACK_IMPORTED_MODULE_33__.GeometryQuery)
|
|
195819
195981
|
c.extendRange(range, worldToLocal);
|
|
195820
195982
|
else if (c instanceof _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_8__.Point3d)
|
|
195821
195983
|
range.extendPoint(c, worldToLocal);
|
|
@@ -196122,7 +196284,7 @@ class RegionOpsFaceToFaceSearch {
|
|
|
196122
196284
|
const baseMask = _topology_Graph__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeMask.BOUNDARY_EDGE | _topology_Graph__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeMask.PRIMARY_EDGE;
|
|
196123
196285
|
const callbacks = RegionBooleanContext.create(opA, opB);
|
|
196124
196286
|
callbacks.graph = graph;
|
|
196125
|
-
callbacks.faceAreaFunction = _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea;
|
|
196287
|
+
callbacks.faceAreaFunction = (node) => _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea(node);
|
|
196126
196288
|
// Add all the members in groupA ..
|
|
196127
196289
|
for (const data of dataA) {
|
|
196128
196290
|
if (data.length > 2) {
|
|
@@ -196567,7 +196729,7 @@ class GraphComponent {
|
|
|
196567
196729
|
}
|
|
196568
196730
|
this.faceAreas.length = 0;
|
|
196569
196731
|
if (!faceAreaFunction)
|
|
196570
|
-
faceAreaFunction = _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea;
|
|
196732
|
+
faceAreaFunction = (node) => _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_4__.HalfEdgeGraphSearch.signedFaceArea(node);
|
|
196571
196733
|
for (const f of this.faces) {
|
|
196572
196734
|
this.faceAreas.push(faceAreaFunction(f));
|
|
196573
196735
|
}
|
|
@@ -197065,6 +197227,199 @@ class AppendPlaneIntersectionStrokeHandler extends _NewtonRtoRStrokeHandler__WEB
|
|
|
197065
197227
|
}
|
|
197066
197228
|
|
|
197067
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
|
+
|
|
197068
197423
|
/***/ }),
|
|
197069
197424
|
|
|
197070
197425
|
/***/ "../../core/geometry/lib/esm/curve/internalContexts/CloneCurvesContext.js":
|
|
@@ -197665,22 +198020,19 @@ class GapSearchContext extends _CurveProcessor__WEBPACK_IMPORTED_MODULE_0__.Recu
|
|
|
197665
198020
|
"use strict";
|
|
197666
198021
|
__webpack_require__.r(__webpack_exports__);
|
|
197667
198022
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
197668
|
-
/* harmony export */ MultiChainCollector: () => (/* binding */ MultiChainCollector)
|
|
197669
|
-
/* harmony export */ OffsetHelpers: () => (/* binding */ OffsetHelpers)
|
|
198023
|
+
/* harmony export */ MultiChainCollector: () => (/* binding */ MultiChainCollector)
|
|
197670
198024
|
/* harmony export */ });
|
|
197671
|
-
/* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
197672
|
-
/* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
197673
|
-
/* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
197674
|
-
/* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
|
|
197675
|
-
/* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
197676
|
-
/* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
197677
|
-
/* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
197678
|
-
/* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
197679
|
-
/* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
197680
198025
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
197681
|
-
/* harmony import */ var
|
|
197682
|
-
/* harmony import */ var
|
|
197683
|
-
/* 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");
|
|
197684
198036
|
/*---------------------------------------------------------------------------------------------
|
|
197685
198037
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
197686
198038
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -197699,38 +198051,36 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
197699
198051
|
|
|
197700
198052
|
|
|
197701
198053
|
|
|
197702
|
-
|
|
197703
|
-
|
|
197704
198054
|
/**
|
|
197705
198055
|
* Manage a growing array of arrays of curve primitives that are to be joined "head to tail" in paths.
|
|
197706
198056
|
* * The caller makes a sequence of calls to announce individual primitives.
|
|
197707
|
-
* * This collector (unlike the simpler
|
|
197708
|
-
*
|
|
197709
|
-
* *
|
|
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.
|
|
197710
198060
|
* * Usage pattern is
|
|
197711
|
-
* * initialization: `context = new
|
|
197712
|
-
* * many times
|
|
197713
|
-
* * `
|
|
197714
|
-
* * `
|
|
197715
|
-
* * 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)`
|
|
197716
198066
|
* @internal
|
|
197717
198067
|
*/
|
|
197718
198068
|
class MultiChainCollector {
|
|
197719
198069
|
/** Initialize with an empty array of chains.
|
|
197720
|
-
* @param
|
|
197721
|
-
* @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.
|
|
197722
198072
|
*/
|
|
197723
|
-
constructor(
|
|
198073
|
+
constructor(gapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance, planeTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
|
|
197724
198074
|
this._chains = [];
|
|
197725
|
-
this.
|
|
197726
|
-
this.
|
|
197727
|
-
this.
|
|
198075
|
+
this._gapTolerance = gapTolerance;
|
|
198076
|
+
this._snapTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance;
|
|
198077
|
+
this._planeTolerance = planeTolerance;
|
|
197728
198078
|
}
|
|
197729
198079
|
/**
|
|
197730
198080
|
* Find a chain (with index _other than_ exceptChainIndex) that starts or ends at xyz
|
|
197731
|
-
* @param xyz
|
|
197732
|
-
* @param tolerance
|
|
197733
|
-
* @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.
|
|
197734
198084
|
*/
|
|
197735
198085
|
findAnyChainToConnect(xyz, tolerance, exceptChainIndex = -1) {
|
|
197736
198086
|
for (let chainIndexA = 0; chainIndexA < this._chains.length; chainIndexA++) {
|
|
@@ -197750,31 +198100,91 @@ class MultiChainCollector {
|
|
|
197750
198100
|
* Insert a single curve primitive into the active chains.
|
|
197751
198101
|
* * The primitive is captured (not cloned)
|
|
197752
198102
|
* * The primitive may be reversed in place
|
|
197753
|
-
* @param candidate
|
|
198103
|
+
* @param candidate curve to add to the context
|
|
197754
198104
|
*/
|
|
197755
198105
|
captureCurvePrimitive(candidate) {
|
|
197756
|
-
if (this.
|
|
197757
|
-
|
|
197758
|
-
|
|
198106
|
+
if (this._snapTolerance < this._gapTolerance) {
|
|
198107
|
+
if (this.attachPrimitiveToAnyChain(candidate, this._snapTolerance))
|
|
198108
|
+
return;
|
|
198109
|
+
}
|
|
198110
|
+
if (this.attachPrimitiveToAnyChain(candidate, this._gapTolerance))
|
|
197759
198111
|
return;
|
|
197760
198112
|
this._chains.push([candidate]);
|
|
197761
|
-
return;
|
|
197762
198113
|
}
|
|
197763
198114
|
/**
|
|
197764
198115
|
* Insert any curve into the collection.
|
|
197765
198116
|
* * This recurses into Path, Loop, BagOfCurves etc
|
|
197766
|
-
* *
|
|
197767
|
-
* @param candidate
|
|
198117
|
+
* * All primitives are captured, and may be reversed in place.
|
|
198118
|
+
* @param candidate curve to add to the context
|
|
197768
198119
|
*/
|
|
197769
198120
|
captureCurve(candidate) {
|
|
197770
|
-
if (candidate instanceof
|
|
198121
|
+
if (candidate instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive)
|
|
197771
198122
|
this.captureCurvePrimitive(candidate);
|
|
197772
|
-
else if (candidate instanceof
|
|
198123
|
+
else if (candidate instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_2__.CurveCollection && candidate.children !== undefined) {
|
|
197773
198124
|
for (const c of candidate.children) {
|
|
197774
198125
|
this.captureCurve(c);
|
|
197775
198126
|
}
|
|
197776
198127
|
}
|
|
197777
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
|
+
}
|
|
197778
198188
|
/** Announce a curve primitive
|
|
197779
198189
|
* * If a "nearby" connection is possible, insert the candidate in the chain and force endpoint match.
|
|
197780
198190
|
* * Otherwise start a new chain.
|
|
@@ -197788,7 +198198,7 @@ class MultiChainCollector {
|
|
|
197788
198198
|
const chain = this._chains[connect.chainIndex];
|
|
197789
198199
|
const index0 = chain.length - 1;
|
|
197790
198200
|
this._chains[connect.chainIndex].push(candidate);
|
|
197791
|
-
|
|
198201
|
+
MultiChainCollector.moveHeadOrTail(chain[index0], chain[index0 + 1], this._gapTolerance);
|
|
197792
198202
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
197793
198203
|
return true;
|
|
197794
198204
|
}
|
|
@@ -197796,7 +198206,7 @@ class MultiChainCollector {
|
|
|
197796
198206
|
candidate.reverseInPlace();
|
|
197797
198207
|
const chain = this._chains[connect.chainIndex];
|
|
197798
198208
|
chain.splice(0, 0, candidate);
|
|
197799
|
-
|
|
198209
|
+
MultiChainCollector.moveHeadOrTail(chain[0], chain[1], this._gapTolerance);
|
|
197800
198210
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
197801
198211
|
return true;
|
|
197802
198212
|
}
|
|
@@ -197804,20 +198214,20 @@ class MultiChainCollector {
|
|
|
197804
198214
|
else {
|
|
197805
198215
|
this._xyzWork0 = candidate.endPoint(this._xyzWork0);
|
|
197806
198216
|
connect = this.findAnyChainToConnect(this._xyzWork0, tolerance);
|
|
197807
|
-
if (connect) {
|
|
198217
|
+
if (connect) {
|
|
197808
198218
|
if (connect.atEnd) {
|
|
197809
198219
|
candidate.reverseInPlace();
|
|
197810
198220
|
const chain = this._chains[connect.chainIndex];
|
|
197811
198221
|
const index0 = chain.length - 1;
|
|
197812
198222
|
this._chains[connect.chainIndex].push(candidate);
|
|
197813
|
-
|
|
198223
|
+
MultiChainCollector.moveHeadOrTail(chain[index0], chain[index0 + 1], this._gapTolerance);
|
|
197814
198224
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
197815
198225
|
return true;
|
|
197816
198226
|
}
|
|
197817
198227
|
else {
|
|
197818
198228
|
const chain = this._chains[connect.chainIndex];
|
|
197819
198229
|
chain.splice(0, 0, candidate);
|
|
197820
|
-
|
|
198230
|
+
MultiChainCollector.moveHeadOrTail(chain[0], chain[1], this._gapTolerance);
|
|
197821
198231
|
this.searchAndMergeChainIndex(connect.chainIndex, tolerance);
|
|
197822
198232
|
return true;
|
|
197823
198233
|
}
|
|
@@ -197827,10 +198237,13 @@ class MultiChainCollector {
|
|
|
197827
198237
|
return false;
|
|
197828
198238
|
}
|
|
197829
198239
|
/**
|
|
197830
|
-
*
|
|
197831
|
-
* *
|
|
197832
|
-
* *
|
|
197833
|
-
* *
|
|
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
|
|
197834
198247
|
*/
|
|
197835
198248
|
mergeChainsForwardForward(chainIndexA, chainIndexB) {
|
|
197836
198249
|
const chainA = this._chains[chainIndexA];
|
|
@@ -197838,30 +198251,26 @@ class MultiChainCollector {
|
|
|
197838
198251
|
for (const p of chainB) {
|
|
197839
198252
|
chainA.push(p);
|
|
197840
198253
|
}
|
|
197841
|
-
// chainIndexB is unused
|
|
197842
|
-
chainB.length = 0;
|
|
198254
|
+
chainB.length = 0; // chainIndexB is unused
|
|
197843
198255
|
const lastChainIndex = this._chains.length - 1;
|
|
197844
|
-
if (chainIndexB !== lastChainIndex)
|
|
198256
|
+
if (chainIndexB !== lastChainIndex)
|
|
197845
198257
|
this._chains[chainIndexB] = this._chains[lastChainIndex];
|
|
197846
|
-
|
|
197847
|
-
}
|
|
197848
|
-
else {
|
|
197849
|
-
this._chains.pop();
|
|
197850
|
-
}
|
|
198258
|
+
this._chains.pop();
|
|
197851
198259
|
}
|
|
198260
|
+
/** Reverse the curve chain in place. */
|
|
197852
198261
|
reverseChain(chainIndex) {
|
|
197853
198262
|
const chain = this._chains[chainIndex];
|
|
197854
198263
|
chain.reverse();
|
|
197855
198264
|
for (const p of chain)
|
|
197856
198265
|
p.reverseInPlace();
|
|
197857
198266
|
}
|
|
197858
|
-
|
|
198267
|
+
/** See if the head or tail of chainIndex matches any existing chain. If so, merge the two chains. */
|
|
197859
198268
|
searchAndMergeChainIndex(chainIndex, tolerance) {
|
|
197860
198269
|
// ASSUME valid index of non-empty chain
|
|
197861
198270
|
const chain = this._chains[chainIndex];
|
|
197862
198271
|
const lastIndexInChain = chain.length - 1;
|
|
197863
198272
|
this._xyzWork0 = chain[0].startPoint(this._xyzWork0);
|
|
197864
|
-
//
|
|
198273
|
+
// try start with any other chain
|
|
197865
198274
|
let connect = this.findAnyChainToConnect(this._xyzWork0, tolerance, chainIndex);
|
|
197866
198275
|
if (connect) {
|
|
197867
198276
|
if (!connect.atEnd)
|
|
@@ -197879,9 +198288,11 @@ class MultiChainCollector {
|
|
|
197879
198288
|
return;
|
|
197880
198289
|
}
|
|
197881
198290
|
}
|
|
197882
|
-
/**
|
|
197883
|
-
*
|
|
197884
|
-
*
|
|
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
|
|
197885
198296
|
*/
|
|
197886
198297
|
promoteArrayToCurves(curves, makeLoopIfClosed) {
|
|
197887
198298
|
if (curves.length === 0)
|
|
@@ -197891,39 +198302,37 @@ class MultiChainCollector {
|
|
|
197891
198302
|
const primitiveN = curves[curves.length - 1];
|
|
197892
198303
|
MultiChainCollector._staticPointA = primitive0.startPoint(MultiChainCollector._staticPointA);
|
|
197893
198304
|
MultiChainCollector._staticPointB = primitiveN.endPoint(MultiChainCollector._staticPointB);
|
|
197894
|
-
|
|
197895
|
-
|
|
197896
|
-
// adjust for closure (and get the corrected coordinates)
|
|
197897
|
-
OffsetHelpers.moveHeadOrTail(primitiveN, primitive0, this._endPointShiftTolerance);
|
|
198305
|
+
if (MultiChainCollector.moveHeadOrTail(primitiveN, primitive0, this._gapTolerance)) {
|
|
198306
|
+
// get the corrected coordinates
|
|
197898
198307
|
MultiChainCollector._staticPointA = primitive0.startPoint(MultiChainCollector._staticPointA);
|
|
197899
198308
|
MultiChainCollector._staticPointB = primitiveN.endPoint(MultiChainCollector._staticPointB);
|
|
197900
198309
|
}
|
|
197901
|
-
if (MultiChainCollector._staticPointA.isAlmostEqual(MultiChainCollector._staticPointB)) {
|
|
197902
|
-
const localToWorld =
|
|
198310
|
+
if (MultiChainCollector._staticPointA.isAlmostEqual(MultiChainCollector._staticPointB, this._gapTolerance)) {
|
|
198311
|
+
const localToWorld = _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_7__.FrameBuilder.createRightHandedLocalToWorld(curves);
|
|
197903
198312
|
if (localToWorld) {
|
|
197904
198313
|
const worldToLocal = localToWorld.inverse();
|
|
197905
198314
|
if (worldToLocal) {
|
|
197906
|
-
const range =
|
|
197907
|
-
if (this.
|
|
197908
|
-
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);
|
|
197909
198318
|
}
|
|
197910
198319
|
}
|
|
197911
198320
|
}
|
|
197912
|
-
return
|
|
198321
|
+
return _Path__WEBPACK_IMPORTED_MODULE_10__.Path.createArray(curves);
|
|
197913
198322
|
}
|
|
197914
198323
|
}
|
|
197915
198324
|
if (curves.length === 1)
|
|
197916
198325
|
return curves[0];
|
|
197917
|
-
return
|
|
198326
|
+
return _Path__WEBPACK_IMPORTED_MODULE_10__.Path.createArray(curves);
|
|
197918
198327
|
}
|
|
197919
|
-
|
|
197920
|
-
|
|
198328
|
+
/** Stroke the curve chain to a line string, de-duplicate the points. */
|
|
198329
|
+
chainToLineString3d(chain, options) {
|
|
198330
|
+
if (chain.length === 0)
|
|
197921
198331
|
return undefined;
|
|
197922
|
-
const linestring =
|
|
197923
|
-
for (const curve of
|
|
197924
|
-
curve.emitStrokes(linestring);
|
|
197925
|
-
|
|
197926
|
-
}
|
|
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);
|
|
197927
198336
|
return linestring;
|
|
197928
198337
|
}
|
|
197929
198338
|
/** Return the collected results, structured as the simplest possible type. */
|
|
@@ -197933,7 +198342,7 @@ class MultiChainCollector {
|
|
|
197933
198342
|
return undefined;
|
|
197934
198343
|
if (chains.length === 1)
|
|
197935
198344
|
return this.promoteArrayToCurves(chains[0], makeLoopIfClosed);
|
|
197936
|
-
const bag =
|
|
198345
|
+
const bag = _CurveCollection__WEBPACK_IMPORTED_MODULE_2__.BagOfCurves.create();
|
|
197937
198346
|
for (const chain of chains) {
|
|
197938
198347
|
const q = this.promoteArrayToCurves(chain, makeLoopIfClosed);
|
|
197939
198348
|
bag.tryAddChild(q);
|
|
@@ -197941,171 +198350,22 @@ class MultiChainCollector {
|
|
|
197941
198350
|
return bag;
|
|
197942
198351
|
}
|
|
197943
198352
|
/** Return chains as individual calls to announceChain. */
|
|
197944
|
-
announceChainsAsLineString3d(announceChain) {
|
|
198353
|
+
announceChainsAsLineString3d(announceChain, options) {
|
|
197945
198354
|
const chains = this._chains;
|
|
197946
198355
|
if (chains.length === 1) {
|
|
197947
|
-
const ls = this.chainToLineString3d(chains[0]);
|
|
198356
|
+
const ls = this.chainToLineString3d(chains[0], options);
|
|
197948
198357
|
if (ls)
|
|
197949
198358
|
announceChain(ls);
|
|
197950
198359
|
}
|
|
197951
198360
|
else if (chains.length > 1) {
|
|
197952
198361
|
for (const chain of chains) {
|
|
197953
|
-
const ls = this.chainToLineString3d(chain);
|
|
198362
|
+
const ls = this.chainToLineString3d(chain, options);
|
|
197954
198363
|
if (ls)
|
|
197955
198364
|
announceChain(ls);
|
|
197956
198365
|
}
|
|
197957
198366
|
}
|
|
197958
198367
|
}
|
|
197959
198368
|
}
|
|
197960
|
-
/**
|
|
197961
|
-
* Static methods to assist offset sequences.
|
|
197962
|
-
* @internal
|
|
197963
|
-
*/
|
|
197964
|
-
class OffsetHelpers {
|
|
197965
|
-
// recursively sum lengths, allowing CurvePrimitive, CurveCollection, or array of such at any level.
|
|
197966
|
-
static sumLengths(data) {
|
|
197967
|
-
let mySum = 0;
|
|
197968
|
-
if (data instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive) {
|
|
197969
|
-
mySum += data.curveLength();
|
|
197970
|
-
}
|
|
197971
|
-
else if (data instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__.CurveCollection) {
|
|
197972
|
-
mySum += data.sumLengths();
|
|
197973
|
-
}
|
|
197974
|
-
else if (Array.isArray(data)) {
|
|
197975
|
-
for (const data1 of data)
|
|
197976
|
-
mySum += this.sumLengths(data1);
|
|
197977
|
-
}
|
|
197978
|
-
return mySum;
|
|
197979
|
-
}
|
|
197980
|
-
// recursively sum lengths, allowing CurvePrimitive, CurveCollection, or array of such at any level.
|
|
197981
|
-
static extendRange(range, data) {
|
|
197982
|
-
if (data instanceof _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_8__.GeometryQuery) {
|
|
197983
|
-
data.extendRange(range);
|
|
197984
|
-
}
|
|
197985
|
-
else if (Array.isArray(data)) {
|
|
197986
|
-
for (const data1 of data)
|
|
197987
|
-
this.extendRange(range, data1);
|
|
197988
|
-
}
|
|
197989
|
-
return range;
|
|
197990
|
-
}
|
|
197991
|
-
// construct (separately) the offsets of each entry of data (Path, Loop, BagOfCurve, or Array of those)
|
|
197992
|
-
// push all offset geometry into the result array
|
|
197993
|
-
// return summed length
|
|
197994
|
-
static appendOffsets(data, offset, result) {
|
|
197995
|
-
let summedLengths = 0;
|
|
197996
|
-
if (data instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive) {
|
|
197997
|
-
const resultA = _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_9__.CurveChainWireOffsetContext.constructCurveXYOffset(_curve_Path__WEBPACK_IMPORTED_MODULE_6__.Path.create(data), offset);
|
|
197998
|
-
if (resultA) {
|
|
197999
|
-
summedLengths += this.sumLengths(resultA);
|
|
198000
|
-
result.push(resultA);
|
|
198001
|
-
}
|
|
198002
|
-
}
|
|
198003
|
-
else if (data instanceof _curve_Loop__WEBPACK_IMPORTED_MODULE_5__.Loop || data instanceof _curve_Path__WEBPACK_IMPORTED_MODULE_6__.Path) {
|
|
198004
|
-
const resultA = _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_9__.CurveChainWireOffsetContext.constructCurveXYOffset(data, offset);
|
|
198005
|
-
if (resultA) {
|
|
198006
|
-
summedLengths += this.sumLengths(resultA);
|
|
198007
|
-
result.push(resultA);
|
|
198008
|
-
}
|
|
198009
|
-
}
|
|
198010
|
-
else if (data instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__.BagOfCurves) {
|
|
198011
|
-
for (const q of data.children)
|
|
198012
|
-
summedLengths += this.appendOffsets(q, offset, result);
|
|
198013
|
-
}
|
|
198014
|
-
else if (Array.isArray(data)) {
|
|
198015
|
-
for (const q of data)
|
|
198016
|
-
summedLengths += this.appendOffsets(q, offset, result);
|
|
198017
|
-
}
|
|
198018
|
-
return summedLengths;
|
|
198019
|
-
}
|
|
198020
|
-
/**
|
|
198021
|
-
* * Restructure curve fragments as chains and offsets
|
|
198022
|
-
* * Return object with named chains, insideOffsets, outsideOffsets
|
|
198023
|
-
* * BEWARE that if the input is not a loop the classification of outputs is suspect.
|
|
198024
|
-
* @param fragments fragments to be chained
|
|
198025
|
-
* @param offsetDistance offset distance.
|
|
198026
|
-
*/
|
|
198027
|
-
static collectInsideAndOutsideOffsets(fragments, offsetDistance, gapTolerance) {
|
|
198028
|
-
const collector = new MultiChainCollector(gapTolerance);
|
|
198029
|
-
for (const s of fragments) {
|
|
198030
|
-
collector.captureCurve(s);
|
|
198031
|
-
}
|
|
198032
|
-
const myChains = collector.grabResult(true);
|
|
198033
|
-
const myOffsetA = [];
|
|
198034
|
-
const myOffsetB = [];
|
|
198035
|
-
const offsetLengthA = OffsetHelpers.appendOffsets(myChains, offsetDistance, myOffsetA);
|
|
198036
|
-
const offsetLengthB = OffsetHelpers.appendOffsets(myChains, -offsetDistance, myOffsetB);
|
|
198037
|
-
if (offsetLengthA > offsetLengthB) {
|
|
198038
|
-
return { outsideOffsets: myOffsetA, insideOffsets: myOffsetB, chains: myChains };
|
|
198039
|
-
}
|
|
198040
|
-
else {
|
|
198041
|
-
return { insideOffsets: myOffsetA, outsideOffsets: myOffsetB, chains: myChains };
|
|
198042
|
-
}
|
|
198043
|
-
}
|
|
198044
|
-
/**
|
|
198045
|
-
* * Restructure curve fragments as chains and offsets
|
|
198046
|
-
* * BEWARE that if the input is not a loop the classification of outputs is suspect.
|
|
198047
|
-
* @param fragments fragments to be chained
|
|
198048
|
-
* @param gapTolerance distance to be treated as "effectively zero" when joining head-to-tail.
|
|
198049
|
-
*/
|
|
198050
|
-
static collectChains(fragments, gapTolerance, planarTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
|
|
198051
|
-
const collector = new MultiChainCollector(gapTolerance, planarTolerance);
|
|
198052
|
-
for (const s of fragments) {
|
|
198053
|
-
collector.captureCurve(s);
|
|
198054
|
-
}
|
|
198055
|
-
return collector.grabResult(true);
|
|
198056
|
-
}
|
|
198057
|
-
/** If allowed by the geometry type, move an endpoint.
|
|
198058
|
-
*
|
|
198059
|
-
*/
|
|
198060
|
-
static simpleEndPointMove(g, atEnd, to) {
|
|
198061
|
-
if (g instanceof (_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__.LineSegment3d)) {
|
|
198062
|
-
if (atEnd) {
|
|
198063
|
-
g.point1Ref.setFrom(to);
|
|
198064
|
-
}
|
|
198065
|
-
else {
|
|
198066
|
-
g.point0Ref.setFrom(to);
|
|
198067
|
-
}
|
|
198068
|
-
return true;
|
|
198069
|
-
}
|
|
198070
|
-
else if (g instanceof _curve_LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d && g.numPoints() > 0) {
|
|
198071
|
-
const i = atEnd ? g.numPoints() - 1 : 0;
|
|
198072
|
-
g.packedPoints.setAtCheckedPointIndex(i, to);
|
|
198073
|
-
return true;
|
|
198074
|
-
}
|
|
198075
|
-
return false;
|
|
198076
|
-
}
|
|
198077
|
-
// Try to move move tail (end) of g0 and/or head (beginning) of g1 to a common point.
|
|
198078
|
-
static moveHeadOrTail(g0, g1, maxShift) {
|
|
198079
|
-
const xyz0 = g0.endPoint();
|
|
198080
|
-
const xyz1 = g1.startPoint();
|
|
198081
|
-
const minShift = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance * 0.001;
|
|
198082
|
-
const d01 = xyz0.distanceXY(xyz1);
|
|
198083
|
-
if (d01 < minShift)
|
|
198084
|
-
return true;
|
|
198085
|
-
if (this.simpleEndPointMove(g1, false, xyz0) || this.simpleEndPointMove(g0, true, xyz1))
|
|
198086
|
-
return true;
|
|
198087
|
-
// const detail1On0 = g0.closestPoint(xyz1);
|
|
198088
|
-
// const detail0On1 = g1.closestPoint(xyz0);
|
|
198089
|
-
const intersections = _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_11__.CurveCurve.intersectionXYPairs(g0, true, g1, true);
|
|
198090
|
-
const shiftFactor = 5.0;
|
|
198091
|
-
for (const pair of intersections) {
|
|
198092
|
-
const detail0 = pair.detailA;
|
|
198093
|
-
const detail1 = pair.detailB;
|
|
198094
|
-
const distance0 = detail0.point.distanceXY(xyz0);
|
|
198095
|
-
const distance1 = detail1.point.distanceXY(xyz1);
|
|
198096
|
-
if (distance0 < shiftFactor * maxShift && distance1 < shiftFactor * maxShift) {
|
|
198097
|
-
if (g0 instanceof _curve_Arc3d__WEBPACK_IMPORTED_MODULE_12__.Arc3d && g1 instanceof _curve_Arc3d__WEBPACK_IMPORTED_MODULE_12__.Arc3d) {
|
|
198098
|
-
const radians0End = g0.sweep.fractionToRadians(detail0.fraction);
|
|
198099
|
-
g0.sweep.setStartEndRadians(g0.sweep.startRadians, radians0End);
|
|
198100
|
-
const radians1Start = g1.sweep.fractionToRadians(detail1.fraction);
|
|
198101
|
-
g1.sweep.setStartEndRadians(radians1Start, g1.sweep.endRadians);
|
|
198102
|
-
return true;
|
|
198103
|
-
}
|
|
198104
|
-
}
|
|
198105
|
-
}
|
|
198106
|
-
return false;
|
|
198107
|
-
}
|
|
198108
|
-
}
|
|
198109
198369
|
|
|
198110
198370
|
|
|
198111
198371
|
/***/ }),
|
|
@@ -198350,24 +198610,22 @@ class PlaneAltitudeRangeContext extends _geometry3d_GeometryHandler__WEBPACK_IMP
|
|
|
198350
198610
|
__webpack_require__.r(__webpack_exports__);
|
|
198351
198611
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
198352
198612
|
/* harmony export */ CurveChainWireOffsetContext: () => (/* binding */ CurveChainWireOffsetContext),
|
|
198353
|
-
/* harmony export */ JointOptions: () => (/* binding */ JointOptions),
|
|
198354
|
-
/* harmony export */ OffsetOptions: () => (/* binding */ OffsetOptions),
|
|
198355
198613
|
/* harmony export */ PolygonWireOffsetContext: () => (/* binding */ PolygonWireOffsetContext)
|
|
198356
198614
|
/* harmony export */ });
|
|
198357
198615
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
198358
|
-
/* harmony import */ var
|
|
198359
|
-
/* harmony import */ var
|
|
198360
|
-
/* harmony import */ var
|
|
198361
|
-
/* harmony import */ var
|
|
198362
|
-
/* harmony import */ var
|
|
198363
|
-
/* 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");
|
|
198364
198622
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
198365
|
-
/* harmony import */ var
|
|
198366
|
-
/* 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");
|
|
198367
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");
|
|
198368
198627
|
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
198369
198628
|
/* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
198370
|
-
/* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
198371
198629
|
/*---------------------------------------------------------------------------------------------
|
|
198372
198630
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
198373
198631
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -198403,158 +198661,6 @@ var JointMode;
|
|
|
198403
198661
|
JointMode[JointMode["JustGeometry"] = 3] = "JustGeometry";
|
|
198404
198662
|
JointMode[JointMode["Gap"] = 4] = "Gap";
|
|
198405
198663
|
})(JointMode || (JointMode = {}));
|
|
198406
|
-
/**
|
|
198407
|
-
* Control parameters for joint construction.
|
|
198408
|
-
* * Define a "joint" as the common point between adjacent segments of the input curve.
|
|
198409
|
-
* * Define the "turn angle" at a joint to be the angle in [0,pi] between the first derivatives (tangents) of
|
|
198410
|
-
* the segments at the joint.
|
|
198411
|
-
* * When creating offsets, if an offset needs to do an "outside" turn, the first applicable construction is applied:
|
|
198412
|
-
* * If the turn angle is larger than `options.minArcDegrees`, a circular arc is constructed to offset the joint.
|
|
198413
|
-
* * If the turn angle is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to
|
|
198414
|
-
* single intersection point (to create a sharp corner).
|
|
198415
|
-
* * If the turn angle is larger than `options.maxChamferDegrees`, the joint is offset with a line string whose edges:
|
|
198416
|
-
* * lie outside the arc that would have been created by the first construction
|
|
198417
|
-
* * have uniform turn angle less than `options.maxChamferDegrees`
|
|
198418
|
-
* * touch the arc at their midpoint (except first and last edge).
|
|
198419
|
-
* @public
|
|
198420
|
-
*/
|
|
198421
|
-
class JointOptions {
|
|
198422
|
-
/**
|
|
198423
|
-
* Construct JointOptions.
|
|
198424
|
-
* * leftOffsetDistance is required
|
|
198425
|
-
* * minArcDegrees and maxChamferDegrees are optional.
|
|
198426
|
-
*/
|
|
198427
|
-
constructor(leftOffsetDistance, minArcDegrees = 180, maxChamferDegrees = 90, preserveEllipticalArcs = false, allowSharpestCorners = false) {
|
|
198428
|
-
/**
|
|
198429
|
-
* Smallest arc to construct.
|
|
198430
|
-
* * If this control angle is 180 degrees or more, arcs are never created.
|
|
198431
|
-
*/
|
|
198432
|
-
this.minArcDegrees = 180.0;
|
|
198433
|
-
/** Largest turn angle at which to construct a sharp corner, or largest turn angle in a multi-segment chamfer. */
|
|
198434
|
-
this.maxChamferTurnDegrees = 90;
|
|
198435
|
-
/**
|
|
198436
|
-
* Whether to remove the internal turn angle upper bound for sharp corner construction.
|
|
198437
|
-
* * By default, a sharp corner is not created at a joint when the turn angle is too large, so as to avoid offsets whose
|
|
198438
|
-
* ranges blow up. Internally, this is implemented by applying an upper bound of 120 degrees to `maxChamferTurnDegrees`.
|
|
198439
|
-
* * When `allowSharpestCorners` is true, this internal upper bound is removed, allowing sharp corners for turn angles
|
|
198440
|
-
* up to `maxChamferTurnDegrees`.
|
|
198441
|
-
* * Thus, if you know your input turn angles are no greater than `maxChamferTurnDegrees`, you can create an offset
|
|
198442
|
-
* with sharp corners at each joint by setting `minArcDegrees` to 180 and `allowSharpestCorners` to true.
|
|
198443
|
-
*/
|
|
198444
|
-
this.allowSharpestCorners = false;
|
|
198445
|
-
/** Offset distance, positive to left of base curve. */
|
|
198446
|
-
this.leftOffsetDistance = 0;
|
|
198447
|
-
/** Whether to offset elliptical arcs as elliptical arcs (true) or as B-spline curves (false, default). */
|
|
198448
|
-
this.preserveEllipticalArcs = false;
|
|
198449
|
-
this.leftOffsetDistance = leftOffsetDistance;
|
|
198450
|
-
this.minArcDegrees = minArcDegrees;
|
|
198451
|
-
this.maxChamferTurnDegrees = maxChamferDegrees;
|
|
198452
|
-
this.preserveEllipticalArcs = preserveEllipticalArcs;
|
|
198453
|
-
this.allowSharpestCorners = allowSharpestCorners;
|
|
198454
|
-
}
|
|
198455
|
-
/** Return a deep clone. */
|
|
198456
|
-
clone() {
|
|
198457
|
-
return new JointOptions(this.leftOffsetDistance, this.minArcDegrees, this.maxChamferTurnDegrees, this.preserveEllipticalArcs, this.allowSharpestCorners);
|
|
198458
|
-
}
|
|
198459
|
-
/** Copy values of input options */
|
|
198460
|
-
setFrom(other) {
|
|
198461
|
-
this.leftOffsetDistance = other.leftOffsetDistance;
|
|
198462
|
-
this.minArcDegrees = other.minArcDegrees;
|
|
198463
|
-
this.maxChamferTurnDegrees = other.maxChamferTurnDegrees;
|
|
198464
|
-
this.preserveEllipticalArcs = other.preserveEllipticalArcs;
|
|
198465
|
-
this.allowSharpestCorners = other.allowSharpestCorners;
|
|
198466
|
-
}
|
|
198467
|
-
/**
|
|
198468
|
-
* Parse a number or JointOptions up to JointOptions:
|
|
198469
|
-
* * If leftOffsetDistanceOptions is a number, create a JointOptions with other options set to default values.
|
|
198470
|
-
* * If leftOffsetDistanceOrOptions is a JointOptions, return it unchanged.
|
|
198471
|
-
* @param leftOffsetDistanceOrOptions
|
|
198472
|
-
*/
|
|
198473
|
-
static create(leftOffsetDistanceOrOptions) {
|
|
198474
|
-
if (leftOffsetDistanceOrOptions instanceof JointOptions)
|
|
198475
|
-
return leftOffsetDistanceOrOptions;
|
|
198476
|
-
return new JointOptions(leftOffsetDistanceOrOptions);
|
|
198477
|
-
}
|
|
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,40 +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
|
-
* *
|
|
199071
|
-
* * See [[JointOptions]] class doc for offset construction rules.
|
|
199176
|
+
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/Offset
|
|
199072
199177
|
* @param curves base curves.
|
|
199073
199178
|
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
199074
199179
|
*/
|
|
199075
199180
|
static constructCurveXYOffset(curves, offsetDistanceOrOptions) {
|
|
199076
199181
|
const wrap = curves instanceof _Loop__WEBPACK_IMPORTED_MODULE_10__.Loop;
|
|
199077
|
-
const offsetOptions = OffsetOptions.create(offsetDistanceOrOptions);
|
|
199182
|
+
const offsetOptions = _OffsetOptions__WEBPACK_IMPORTED_MODULE_9__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
199078
199183
|
const simpleOffsets = [];
|
|
199079
199184
|
/** traverse primitives (children of curves) and create simple offsets of each primitive as an array */
|
|
199080
199185
|
for (const c of curves.children) {
|
|
@@ -200561,7 +200666,7 @@ class IntegratedSpiral3d extends _TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_0_
|
|
|
200561
200666
|
static initWorkSpace() {
|
|
200562
200667
|
IntegratedSpiral3d._gaussFraction = new Float64Array(5);
|
|
200563
200668
|
IntegratedSpiral3d._gaussWeight = new Float64Array(5);
|
|
200564
|
-
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);
|
|
200565
200670
|
}
|
|
200566
200671
|
/** Evaluate and sum the gauss quadrature formulas to integrate cos(theta), sin(theta) fractional subset of a reference length.
|
|
200567
200672
|
* (recall that theta is a nonlinear function of the fraction.)
|
|
@@ -201449,7 +201554,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
201449
201554
|
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
201450
201555
|
/* harmony import */ var _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
|
|
201451
201556
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
201452
|
-
/* harmony import */ var
|
|
201557
|
+
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
201453
201558
|
/*---------------------------------------------------------------------------------------------
|
|
201454
201559
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
201455
201560
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -201580,7 +201685,7 @@ class TransitionSpiral3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.Cu
|
|
|
201580
201685
|
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
201581
201686
|
*/
|
|
201582
201687
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
201583
|
-
const options =
|
|
201688
|
+
const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_4__.OffsetOptions.create(offsetDistanceOrOptions);
|
|
201584
201689
|
const handler = new _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_5__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
|
|
201585
201690
|
this.emitStrokableParts(handler, options.strokeOptions);
|
|
201586
201691
|
return handler.claimResult();
|
|
@@ -201677,7 +201782,7 @@ class XYCurveEvaluator {
|
|
|
201677
201782
|
static initWorkSpace() {
|
|
201678
201783
|
XYCurveEvaluator._gaussX = new Float64Array(5);
|
|
201679
201784
|
XYCurveEvaluator._gaussWeight = new Float64Array(5);
|
|
201680
|
-
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);
|
|
201681
201786
|
}
|
|
201682
201787
|
/**
|
|
201683
201788
|
* Integrate between nominal fractions with default gauss rule.
|
|
@@ -205798,7 +205903,7 @@ class GrowableBlockedArray {
|
|
|
205798
205903
|
return ia - ib; // so original order is maintained among duplicates !!!!
|
|
205799
205904
|
}
|
|
205800
205905
|
/** Return an array of block indices sorted per compareLexicalBlock function */
|
|
205801
|
-
sortIndicesLexical(compareBlocks = GrowableBlockedArray.compareLexicalBlock) {
|
|
205906
|
+
sortIndicesLexical(compareBlocks = (dataArray, size, iA, iB) => GrowableBlockedArray.compareLexicalBlock(dataArray, size, iA, iB)) {
|
|
205802
205907
|
const n = this._inUse;
|
|
205803
205908
|
// let numCompare = 0;
|
|
205804
205909
|
const result = new Uint32Array(n);
|
|
@@ -206069,7 +206174,7 @@ class GrowableFloat64Array {
|
|
|
206069
206174
|
* * Uses insertion sort -- fine for small arrays (less than 30), slow for larger arrays
|
|
206070
206175
|
* @param compareMethod comparison method
|
|
206071
206176
|
*/
|
|
206072
|
-
sort(compareMethod = GrowableFloat64Array.compare) {
|
|
206177
|
+
sort(compareMethod = (a, b) => GrowableFloat64Array.compare(a, b)) {
|
|
206073
206178
|
for (let i = 0; i < this._inUse; i++) {
|
|
206074
206179
|
for (let j = i + 1; j < this._inUse; j++) {
|
|
206075
206180
|
const tempI = this._data[i];
|
|
@@ -210182,7 +210287,7 @@ class Matrix3d {
|
|
|
210182
210287
|
PackedMatrix3dOps.multiplyMatrixMatrix(this.coffs, other.coffs, result.coffs);
|
|
210183
210288
|
if (this.inverseState === InverseMatrixState.inverseStored
|
|
210184
210289
|
&& other.inverseState === InverseMatrixState.inverseStored)
|
|
210185
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrix, other.inverseCoffs, this.inverseCoffs);
|
|
210290
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrix(a, b, _result), other.inverseCoffs, this.inverseCoffs);
|
|
210186
210291
|
else if (this.inverseState === InverseMatrixState.singular
|
|
210187
210292
|
|| other.inverseState === InverseMatrixState.singular)
|
|
210188
210293
|
result.inverseState = InverseMatrixState.singular;
|
|
@@ -210200,7 +210305,7 @@ class Matrix3d {
|
|
|
210200
210305
|
result = result ? result : new Matrix3d();
|
|
210201
210306
|
PackedMatrix3dOps.multiplyMatrixMatrix(this.coffs, other.inverseCoffs, Matrix3d._productBuffer);
|
|
210202
210307
|
if (this.inverseState === InverseMatrixState.inverseStored)
|
|
210203
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrix, other.coffs, this.inverseCoffs);
|
|
210308
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrix(a, b, _result), other.coffs, this.inverseCoffs);
|
|
210204
210309
|
else
|
|
210205
210310
|
result.inverseState = InverseMatrixState.unknown;
|
|
210206
210311
|
PackedMatrix3dOps.copy(Matrix3d._productBuffer, result.coffs);
|
|
@@ -210216,7 +210321,7 @@ class Matrix3d {
|
|
|
210216
210321
|
result = result ? result : new Matrix3d();
|
|
210217
210322
|
PackedMatrix3dOps.multiplyMatrixMatrix(this.inverseCoffs, other.coffs, Matrix3d._productBuffer);
|
|
210218
210323
|
if (other.inverseState === InverseMatrixState.inverseStored)
|
|
210219
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrix, other.inverseCoffs, this.coffs);
|
|
210324
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrix(a, b, _result), other.inverseCoffs, this.coffs);
|
|
210220
210325
|
else
|
|
210221
210326
|
result.inverseState = InverseMatrixState.unknown;
|
|
210222
210327
|
PackedMatrix3dOps.copy(Matrix3d._productBuffer, result.coffs);
|
|
@@ -210234,7 +210339,7 @@ class Matrix3d {
|
|
|
210234
210339
|
result = result ? result : new Matrix3d();
|
|
210235
210340
|
PackedMatrix3dOps.multiplyMatrixMatrixTranspose(this.coffs, other.coffs, result.coffs);
|
|
210236
210341
|
if (this.inverseState === InverseMatrixState.inverseStored && other.inverseState === InverseMatrixState.inverseStored)
|
|
210237
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixTransposeMatrix, other.inverseCoffs, this.inverseCoffs);
|
|
210342
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixTransposeMatrix(a, b, _result), other.inverseCoffs, this.inverseCoffs);
|
|
210238
210343
|
else if (this.inverseState === InverseMatrixState.singular || other.inverseState === InverseMatrixState.singular)
|
|
210239
210344
|
result.inverseState = InverseMatrixState.singular;
|
|
210240
210345
|
else
|
|
@@ -210253,7 +210358,7 @@ class Matrix3d {
|
|
|
210253
210358
|
result = result ? result : new Matrix3d();
|
|
210254
210359
|
PackedMatrix3dOps.multiplyMatrixTransposeMatrix(this.coffs, other.coffs, result.coffs);
|
|
210255
210360
|
if (this.inverseState === InverseMatrixState.inverseStored && other.inverseState === InverseMatrixState.inverseStored)
|
|
210256
|
-
result.finishInverseCoffs(PackedMatrix3dOps.multiplyMatrixMatrixTranspose, other.inverseCoffs, this.inverseCoffs);
|
|
210361
|
+
result.finishInverseCoffs((a, b, _result) => PackedMatrix3dOps.multiplyMatrixMatrixTranspose(a, b, _result), other.inverseCoffs, this.inverseCoffs);
|
|
210257
210362
|
else if (this.inverseState === InverseMatrixState.singular || other.inverseState === InverseMatrixState.singular)
|
|
210258
210363
|
result.inverseState = InverseMatrixState.singular;
|
|
210259
210364
|
else
|
|
@@ -211436,24 +211541,27 @@ class Plane3d {
|
|
|
211436
211541
|
isPointInPlane(spacePoint, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
|
|
211437
211542
|
return Math.abs(this.altitude(spacePoint)) <= tolerance;
|
|
211438
211543
|
}
|
|
211439
|
-
/**
|
|
211440
|
-
*
|
|
211544
|
+
/**
|
|
211545
|
+
* Return a value -1, 0, 1 giving a signed indicator of whether the toleranced altitude of the point is
|
|
211546
|
+
* negative, near zero, or positive.
|
|
211441
211547
|
*
|
|
211442
|
-
|
|
211548
|
+
*/
|
|
211443
211549
|
classifyAltitude(point, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
|
|
211444
211550
|
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.split3Way01(this.altitude(point), tolerance);
|
|
211445
211551
|
}
|
|
211446
|
-
/**
|
|
211447
|
-
*
|
|
211552
|
+
/**
|
|
211553
|
+
* Return a value -1, 0, 1 giving a signed indicator of whether the toleranced altitude of x,y,z is
|
|
211554
|
+
* negative, near zero, or positive.
|
|
211448
211555
|
*
|
|
211449
|
-
|
|
211556
|
+
*/
|
|
211450
211557
|
classifyAltitudeXYZ(x, y, z, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
|
|
211451
211558
|
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.split3Way01(this.altitudeXYZ(x, y, z), tolerance);
|
|
211452
211559
|
}
|
|
211453
211560
|
/**
|
|
211454
211561
|
* Return the unit normal for the plane.
|
|
211455
211562
|
* * The abstract base class implementation assembles the normal from normalX, normalY, normalZ calls.
|
|
211456
|
-
* * Derived classes should (but are not required to) override for maximum efficiency if the separate normal calls
|
|
211563
|
+
* * Derived classes should (but are not required to) override for maximum efficiency if the separate normal calls
|
|
211564
|
+
* cause repeated normalization.
|
|
211457
211565
|
* @param result
|
|
211458
211566
|
*/
|
|
211459
211567
|
getUnitNormal(result) {
|
|
@@ -211464,7 +211572,7 @@ class Plane3d {
|
|
|
211464
211572
|
* * Default implementation projects the origin (0,0,0) to the plane.
|
|
211465
211573
|
* * Classes that have a preferred origin for their plane should override.
|
|
211466
211574
|
* * Classes with a purely implicit equation of their plane can accept the default implementation
|
|
211467
|
-
|
|
211575
|
+
*/
|
|
211468
211576
|
getAnyPointOnPlane(result) {
|
|
211469
211577
|
return this.projectPointToPlane(_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(0, 0, 0), result);
|
|
211470
211578
|
}
|
|
@@ -211545,7 +211653,8 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211545
211653
|
return Plane3dByOriginAndUnitNormal._create(origin.x, origin.y, origin.z, 0, 1, 0);
|
|
211546
211654
|
return Plane3dByOriginAndUnitNormal._create(0, 0, 0, 0, 1, 0);
|
|
211547
211655
|
}
|
|
211548
|
-
/**
|
|
211656
|
+
/**
|
|
211657
|
+
* Create a new Plane3dByOriginAndUnitNormal with given origin and normal.
|
|
211549
211658
|
* * The inputs are NOT captured.
|
|
211550
211659
|
* * Returns undefined if `normal.normalize()` returns undefined.
|
|
211551
211660
|
*/
|
|
@@ -211561,7 +211670,8 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211561
211670
|
return undefined;
|
|
211562
211671
|
return new Plane3dByOriginAndUnitNormal(origin.clone(), normalized);
|
|
211563
211672
|
}
|
|
211564
|
-
/**
|
|
211673
|
+
/**
|
|
211674
|
+
* Create a new Plane3dByOriginAndUnitNormal from a variety of plane types.
|
|
211565
211675
|
* * The inputs are NOT captured.
|
|
211566
211676
|
* * Returns undefined if `source.getUnitNormal()` returns undefined.
|
|
211567
211677
|
*/
|
|
@@ -211580,7 +211690,8 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211580
211690
|
const origin = source.getAnyPointOnPlane();
|
|
211581
211691
|
return new Plane3dByOriginAndUnitNormal(origin, normal);
|
|
211582
211692
|
}
|
|
211583
|
-
/**
|
|
211693
|
+
/**
|
|
211694
|
+
* Create a new Plane3dByOriginAndUnitNormal with direct coordinates of origin and normal.
|
|
211584
211695
|
* * Returns undefined if the normal vector is all zeros.
|
|
211585
211696
|
* * If unable to normalize return undefined. (And if result is given it is left unchanged)
|
|
211586
211697
|
*/
|
|
@@ -211595,7 +211706,9 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211595
211706
|
}
|
|
211596
211707
|
return new Plane3dByOriginAndUnitNormal(_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(ax, ay, az), _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(ux / magU, uy / magU, uz / magU));
|
|
211597
211708
|
}
|
|
211598
|
-
/**
|
|
211709
|
+
/**
|
|
211710
|
+
* Create a new Plane3dByOriginAndUnitNormal with unit normal (a) in the xy plane (b) perpendicular to the line
|
|
211711
|
+
* defined by xy parts of origin to target.
|
|
211599
211712
|
* * origin and normal both have z = 0.
|
|
211600
211713
|
* * The inputs are NOT captured.
|
|
211601
211714
|
* * Returns undefined if the normal vector is all zeros.
|
|
@@ -211605,7 +211718,8 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211605
211718
|
const uy = target.y - origin.y;
|
|
211606
211719
|
return this.createXYZUVW(origin.x, origin.y, 0.0, uy, -ux, 0.0, result);
|
|
211607
211720
|
}
|
|
211608
|
-
/**
|
|
211721
|
+
/**
|
|
211722
|
+
* Create a new Plane3dByOriginAndUnitNormal with xy origin (at z=0) and normal angle in xy plane.
|
|
211609
211723
|
* * Returns undefined if the normal vector is all zeros.
|
|
211610
211724
|
*/
|
|
211611
211725
|
static createXYAngle(x, y, normalAngleFromX, result) {
|
|
@@ -211616,7 +211730,8 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211616
211730
|
}
|
|
211617
211731
|
return new Plane3dByOriginAndUnitNormal(_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(x, y, 0), _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(normalAngleFromX.cos(), normalAngleFromX.sin()));
|
|
211618
211732
|
}
|
|
211619
|
-
/**
|
|
211733
|
+
/**
|
|
211734
|
+
* Create a plane defined by two points and an in-plane vector.
|
|
211620
211735
|
* @param pointA any point in the plane
|
|
211621
211736
|
* @param pointB any other point in the plane
|
|
211622
211737
|
* @param vector any vector in the plane but not parallel to the vector from pointA to pointB
|
|
@@ -211627,7 +211742,8 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211627
211742
|
return new Plane3dByOriginAndUnitNormal(pointA, cross);
|
|
211628
211743
|
return undefined;
|
|
211629
211744
|
}
|
|
211630
|
-
/**
|
|
211745
|
+
/**
|
|
211746
|
+
* Create a plane defined by three points.
|
|
211631
211747
|
* @param pointA any point in the plane. This will be the origin.
|
|
211632
211748
|
* @param pointB any other point in the plane
|
|
211633
211749
|
* @param pointC any third point in the plane but not on the line of pointA and pointB
|
|
@@ -211638,7 +211754,8 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211638
211754
|
return new Plane3dByOriginAndUnitNormal(pointA, cross);
|
|
211639
211755
|
return undefined;
|
|
211640
211756
|
}
|
|
211641
|
-
/**
|
|
211757
|
+
/**
|
|
211758
|
+
* Create a plane defined by a point and two vectors in the plane
|
|
211642
211759
|
* @param pointA any point in the plane
|
|
211643
211760
|
* @param vectorB any vector in the plane
|
|
211644
211761
|
* @param vectorC any vector in the plane but not parallel to vectorB
|
|
@@ -211649,7 +211766,7 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211649
211766
|
return new Plane3dByOriginAndUnitNormal(pointA, cross);
|
|
211650
211767
|
return undefined;
|
|
211651
211768
|
}
|
|
211652
|
-
/**
|
|
211769
|
+
/** Test for (toleranced) equality with `other` */
|
|
211653
211770
|
isAlmostEqual(other) {
|
|
211654
211771
|
return this._origin.isAlmostEqual(other._origin) && this._normal.isAlmostEqual(other._normal);
|
|
211655
211772
|
}
|
|
@@ -211668,8 +211785,11 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211668
211785
|
* Convert to a JSON object.
|
|
211669
211786
|
* @return {*} [origin,normal]
|
|
211670
211787
|
*/
|
|
211671
|
-
toJSON() {
|
|
211672
|
-
|
|
211788
|
+
toJSON() {
|
|
211789
|
+
return { origin: this._origin.toJSON(), normal: this._normal.toJSON() };
|
|
211790
|
+
}
|
|
211791
|
+
/**
|
|
211792
|
+
* Create a new Plane3dByOriginAndUnitNormal from json fragment.
|
|
211673
211793
|
* * See `Plane3dByOriginAndUnitNormal.setFromJSON`
|
|
211674
211794
|
*/
|
|
211675
211795
|
static fromJSON(json) {
|
|
@@ -211678,10 +211798,15 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211678
211798
|
return result;
|
|
211679
211799
|
}
|
|
211680
211800
|
/** Return a reference to the origin. */
|
|
211681
|
-
getOriginRef() {
|
|
211801
|
+
getOriginRef() {
|
|
211802
|
+
return this._origin;
|
|
211803
|
+
}
|
|
211682
211804
|
/** Return a reference to the unit normal. */
|
|
211683
|
-
getNormalRef() {
|
|
211684
|
-
|
|
211805
|
+
getNormalRef() {
|
|
211806
|
+
return this._normal;
|
|
211807
|
+
}
|
|
211808
|
+
/**
|
|
211809
|
+
* Return coordinate axes (as a transform) with
|
|
211685
211810
|
* * origin at plane origin
|
|
211686
211811
|
* * z axis in direction of plane normal.
|
|
211687
211812
|
* * x,y axes in plane.
|
|
@@ -211690,8 +211815,7 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211690
211815
|
const axes = _Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createRigidHeadsUp(this._normal, _Geometry__WEBPACK_IMPORTED_MODULE_2__.AxisOrder.ZXY);
|
|
211691
211816
|
return _Transform__WEBPACK_IMPORTED_MODULE_4__.Transform.createRefs(this._origin.clone(), axes);
|
|
211692
211817
|
}
|
|
211693
|
-
/** Return a (singular) transform which projects points to this plane.
|
|
211694
|
-
*/
|
|
211818
|
+
/** Return a (singular) transform which projects points to this plane. */
|
|
211695
211819
|
getProjectionToPlane() {
|
|
211696
211820
|
const axes = _Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createIdentity();
|
|
211697
211821
|
axes.addScaledOuterProductInPlace(this._normal, this._normal, -1.0);
|
|
@@ -211703,7 +211827,7 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211703
211827
|
this._origin.setFrom(origin);
|
|
211704
211828
|
this._normal.setFrom(normal);
|
|
211705
211829
|
}
|
|
211706
|
-
/**
|
|
211830
|
+
/** Return a deep clone (point and normal cloned) */
|
|
211707
211831
|
clone(result) {
|
|
211708
211832
|
if (result) {
|
|
211709
211833
|
result.set(this._origin, this._normal);
|
|
@@ -211733,51 +211857,56 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211733
211857
|
this.set(source._origin, source._normal);
|
|
211734
211858
|
}
|
|
211735
211859
|
/** Return the altitude of spacePoint above or below the plane. (Below is negative) */
|
|
211736
|
-
altitude(spacePoint) {
|
|
211860
|
+
altitude(spacePoint) {
|
|
211861
|
+
return this._normal.dotProductStartEnd(this._origin, spacePoint);
|
|
211862
|
+
}
|
|
211737
211863
|
/** Return the altitude of point (x,y) given xy parts using only the xy parts of origin and unit normal */
|
|
211738
211864
|
altitudeXY(x, y) {
|
|
211739
211865
|
return (x - this._origin.x) * this._normal.x + (y - this._origin.y) * this._normal.y;
|
|
211740
211866
|
}
|
|
211741
|
-
/**
|
|
211742
|
-
|
|
211743
|
-
|
|
211744
|
-
|
|
211745
|
-
/**
|
|
211746
|
-
|
|
211747
|
-
|
|
211748
|
-
|
|
211749
|
-
/**
|
|
211750
|
-
|
|
211751
|
-
|
|
211752
|
-
|
|
211753
|
-
/**
|
|
211754
|
-
* Return (a clone of) the unit normal.
|
|
211755
|
-
*/
|
|
211867
|
+
/** Return the x component of the normal used to evaluate altitude. */
|
|
211868
|
+
normalX() {
|
|
211869
|
+
return this._normal.x;
|
|
211870
|
+
}
|
|
211871
|
+
/** Return the x component of the normal used to evaluate altitude. */
|
|
211872
|
+
normalY() {
|
|
211873
|
+
return this._normal.y;
|
|
211874
|
+
}
|
|
211875
|
+
/** Return the z component of the normal used to evaluate altitude. */
|
|
211876
|
+
normalZ() {
|
|
211877
|
+
return this._normal.z;
|
|
211878
|
+
}
|
|
211879
|
+
/** Return (a clone of) the unit normal. */
|
|
211756
211880
|
getUnitNormal(result) {
|
|
211757
211881
|
return this._normal.clone(result);
|
|
211758
211882
|
}
|
|
211759
|
-
/**
|
|
211760
|
-
* Return (a clone of) the origin.
|
|
211761
|
-
*/
|
|
211883
|
+
/** Return (a clone of) the origin. */
|
|
211762
211884
|
getAnyPointOnPlane(result) {
|
|
211885
|
+
// This function returns the plane origin. In general, a point x is on the plane if and only if (x-o).n = 0.
|
|
211763
211886
|
return this._origin.clone(result);
|
|
211764
211887
|
}
|
|
211765
211888
|
/** Return the signed altitude of weighted spacePoint above or below the plane. (Below is negative) */
|
|
211766
211889
|
weightedAltitude(spacePoint) {
|
|
211767
211890
|
return this._normal.dotProductStart3dEnd4d(this._origin, spacePoint);
|
|
211768
211891
|
}
|
|
211769
|
-
/**
|
|
211892
|
+
/** Return any point at specified (signed) altitude. */
|
|
211770
211893
|
altitudeToPoint(altitude, result) {
|
|
211771
211894
|
return this._origin.plusScaled(this._normal, altitude, result);
|
|
211772
211895
|
}
|
|
211773
|
-
/**
|
|
211896
|
+
/**
|
|
211897
|
+
* Return the dot product of spaceVector with the plane's unit normal. This tells the rate of change of altitude
|
|
211774
211898
|
* for a point moving at speed one along the spaceVector.
|
|
211775
211899
|
*/
|
|
211776
|
-
velocityXYZ(x, y, z) {
|
|
211777
|
-
|
|
211900
|
+
velocityXYZ(x, y, z) {
|
|
211901
|
+
return this._normal.dotProductXYZ(x, y, z);
|
|
211902
|
+
}
|
|
211903
|
+
/**
|
|
211904
|
+
* Return the dot product of spaceVector with the plane's unit normal. This tells the rate of change of altitude
|
|
211778
211905
|
* for a point moving at speed one along the spaceVector.
|
|
211779
211906
|
*/
|
|
211780
|
-
velocity(spaceVector) {
|
|
211907
|
+
velocity(spaceVector) {
|
|
211908
|
+
return this._normal.dotProduct(spaceVector);
|
|
211909
|
+
}
|
|
211781
211910
|
/** Return the altitude of a point given as separate x,y,z components. */
|
|
211782
211911
|
altitudeXYZ(x, y, z) {
|
|
211783
211912
|
return this._normal.dotProductStartEndXYZ(this._origin, x, y, z);
|
|
@@ -211790,9 +211919,10 @@ class Plane3dByOriginAndUnitNormal extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__
|
|
|
211790
211919
|
projectPointToPlane(spacePoint, result) {
|
|
211791
211920
|
return spacePoint.plusScaled(this._normal, -this._normal.dotProductStartEnd(this._origin, spacePoint), result);
|
|
211792
211921
|
}
|
|
211793
|
-
/**
|
|
211922
|
+
/**
|
|
211923
|
+
* Returns true if spacePoint is within distance tolerance of the plane.
|
|
211794
211924
|
* * This logic is identical to the [[Plane3d]] method but avoids a level of function call.
|
|
211795
|
-
|
|
211925
|
+
*/
|
|
211796
211926
|
isPointInPlane(spacePoint, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
|
|
211797
211927
|
const altitude = this._normal.dotProductStartEnd(this._origin, spacePoint);
|
|
211798
211928
|
return Math.abs(altitude) <= tolerance;
|
|
@@ -212070,6 +212200,8 @@ class Plane3dByOriginAndVectors extends _Plane3d__WEBPACK_IMPORTED_MODULE_0__.Pl
|
|
|
212070
212200
|
* Return some point on the plane.
|
|
212071
212201
|
*/
|
|
212072
212202
|
getAnyPointOnPlane(result) {
|
|
212203
|
+
// This function returns the plane origin. In general, a point x is on the plane if
|
|
212204
|
+
// and only if x = o + a*u + b*v, where a and b are scalars.
|
|
212073
212205
|
return this.origin.clone(result);
|
|
212074
212206
|
}
|
|
212075
212207
|
/** Return (if possible) a ray with origin at plane origin, direction as unit normal to the plane */
|
|
@@ -212552,16 +212684,16 @@ class Point2d extends XY {
|
|
|
212552
212684
|
return Point2d.create(0, 0, result);
|
|
212553
212685
|
}
|
|
212554
212686
|
/**
|
|
212555
|
-
* Starting at this point, move along vector by tangentFraction of
|
|
212556
|
-
*
|
|
212557
|
-
* @param tangentFraction distance to move along
|
|
212558
|
-
* @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
|
|
212559
212691
|
* @param vector the other vector
|
|
212560
212692
|
*/
|
|
212561
|
-
addForwardLeft(tangentFraction, leftFraction, vector) {
|
|
212693
|
+
addForwardLeft(tangentFraction, leftFraction, vector, result) {
|
|
212562
212694
|
const dx = vector.x;
|
|
212563
212695
|
const dy = vector.y;
|
|
212564
|
-
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);
|
|
212565
212697
|
}
|
|
212566
212698
|
/**
|
|
212567
212699
|
* Interpolate at tangentFraction between this instance and point, and then Move by leftFraction
|
|
@@ -212745,11 +212877,10 @@ class Vector2d extends XY {
|
|
|
212745
212877
|
return this.safeDivideOrNull(mag, result);
|
|
212746
212878
|
}
|
|
212747
212879
|
/**
|
|
212748
|
-
* Return fractional projection of
|
|
212749
|
-
* * It's returning the signed projection magnitude divided by the target magnitude. In other words,
|
|
212750
|
-
* 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.
|
|
212751
212881
|
* @param target the target vector
|
|
212752
|
-
* @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`
|
|
212753
212884
|
*/
|
|
212754
212885
|
fractionOfProjectionToVector(target, defaultFraction) {
|
|
212755
212886
|
/*
|
|
@@ -214147,24 +214278,24 @@ class Vector3d extends XYZ {
|
|
|
214147
214278
|
return undefined;
|
|
214148
214279
|
}
|
|
214149
214280
|
/**
|
|
214150
|
-
* Return fractional projection of
|
|
214151
|
-
* *
|
|
214152
|
-
* * 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.
|
|
214153
214283
|
* * Math details can be found at docs/learning/geometry/PointVector.md
|
|
214154
214284
|
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/ProjectVectorOnVector
|
|
214155
214285
|
* and https://www.itwinjs.org/sandbox/SaeedTorabi/ProjectVectorOnPlane
|
|
214156
214286
|
* @param target the target vector
|
|
214157
|
-
* @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`
|
|
214158
214289
|
* */
|
|
214159
214290
|
fractionOfProjectionToVector(target, defaultFraction = 0) {
|
|
214160
214291
|
/*
|
|
214161
214292
|
* Projection vector is ((this.target)/||target||)(target/||target||) = ((this.target)/||target||^2)target
|
|
214162
214293
|
* This function returns (this.target)/||target||^2
|
|
214163
214294
|
*/
|
|
214164
|
-
const numerator = this.dotProduct(target);
|
|
214165
214295
|
const denominator = target.magnitudeSquared();
|
|
214166
214296
|
if (denominator < _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistanceSquared)
|
|
214167
214297
|
return defaultFraction;
|
|
214298
|
+
const numerator = this.dotProduct(target);
|
|
214168
214299
|
return numerator / denominator;
|
|
214169
214300
|
}
|
|
214170
214301
|
/**
|
|
@@ -215113,7 +215244,7 @@ class Point4dArray {
|
|
|
215113
215244
|
}
|
|
215114
215245
|
/** unpack from xyzw xyzw... array to array of Point3d and array of weight.
|
|
215115
215246
|
*/
|
|
215116
|
-
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)) {
|
|
215117
215248
|
points.length = 0;
|
|
215118
215249
|
weights.length = 0;
|
|
215119
215250
|
for (let i = 0; i + 3 < data.length; i += 4) {
|
|
@@ -215566,7 +215697,7 @@ class Point3dArray {
|
|
|
215566
215697
|
* @param data point data with various leaf forms such as `[1,2,3]`, `{x:1,y:2,z:3}`, `Point3d`
|
|
215567
215698
|
*/
|
|
215568
215699
|
static cloneDeepJSONNumberArrays(data) {
|
|
215569
|
-
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));
|
|
215570
215701
|
_PointStreaming__WEBPACK_IMPORTED_MODULE_7__.VariantPointDataStream.streamXYZ(data, collector);
|
|
215571
215702
|
return collector.claimResult();
|
|
215572
215703
|
}
|
|
@@ -215611,7 +215742,7 @@ class Point3dArray {
|
|
|
215611
215742
|
* @param data point data with various leaf forms such as `[1,2,3]`, `{x:1,y:2,z:3}`, `Point3d`
|
|
215612
215743
|
*/
|
|
215613
215744
|
static cloneDeepXYZPoint3dArrays(data) {
|
|
215614
|
-
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));
|
|
215615
215746
|
_PointStreaming__WEBPACK_IMPORTED_MODULE_7__.VariantPointDataStream.streamXYZ(data, collector);
|
|
215616
215747
|
return collector.claimResult();
|
|
215617
215748
|
}
|
|
@@ -215654,7 +215785,7 @@ class Point3dArray {
|
|
|
215654
215785
|
let n = points.length;
|
|
215655
215786
|
// Get deep copy
|
|
215656
215787
|
const xy1 = points.slice(0, n);
|
|
215657
|
-
xy1.sort(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan);
|
|
215788
|
+
xy1.sort((a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan(a, b));
|
|
215658
215789
|
if (n < 3) {
|
|
215659
215790
|
for (const p of xy1)
|
|
215660
215791
|
hullPoints.push(p);
|
|
@@ -215679,7 +215810,7 @@ class Point3dArray {
|
|
|
215679
215810
|
const i0 = hullPoints.length - 1;
|
|
215680
215811
|
xy1.length = numInside;
|
|
215681
215812
|
xy1.push(hullPoints[0]); // force first point to be reconsidered as final hull point.
|
|
215682
|
-
xy1.sort(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan);
|
|
215813
|
+
xy1.sort((a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.lexicalXYLessThan(a, b));
|
|
215683
215814
|
n = xy1.length;
|
|
215684
215815
|
// xy1.back () is already on stack.
|
|
215685
215816
|
hullPoints.push(xy1[n - 1]);
|
|
@@ -216170,7 +216301,7 @@ class CutLoopMergeContext {
|
|
|
216170
216301
|
sortRay.direction.normalizeInPlace();
|
|
216171
216302
|
for (const loop of this.inputLoops)
|
|
216172
216303
|
loop.setSortCoordinates(sortRay);
|
|
216173
|
-
this.inputLoops.sort(CutLoop.sortFunction);
|
|
216304
|
+
this.inputLoops.sort((loopA, loopB) => CutLoop.sortFunction(loopA, loopB));
|
|
216174
216305
|
}
|
|
216175
216306
|
}
|
|
216176
216307
|
/**
|
|
@@ -216216,9 +216347,8 @@ class CutLoopMergeContext {
|
|
|
216216
216347
|
}
|
|
216217
216348
|
}
|
|
216218
216349
|
}
|
|
216219
|
-
/** Static class for operations that treat an array of points as a polygon (with area!) */
|
|
216220
216350
|
/**
|
|
216221
|
-
* Various
|
|
216351
|
+
* Various static methods to perform computations on an array of points interpreted as a polygon.
|
|
216222
216352
|
* @public
|
|
216223
216353
|
*/
|
|
216224
216354
|
class PolygonOps {
|
|
@@ -219644,6 +219774,163 @@ class Range2d extends RangeBase {
|
|
|
219644
219774
|
}
|
|
219645
219775
|
|
|
219646
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
|
+
|
|
219647
219934
|
/***/ }),
|
|
219648
219935
|
|
|
219649
219936
|
/***/ "../../core/geometry/lib/esm/geometry3d/Ray3d.js":
|
|
@@ -220991,7 +221278,7 @@ class Transform {
|
|
|
220991
221278
|
/**
|
|
220992
221279
|
* Create a Transform with translation provided by x,y,z parts.
|
|
220993
221280
|
* * Translation Transform maps any vector `v` to `v + p` where `p = (x,y,z)`
|
|
220994
|
-
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/
|
|
221281
|
+
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/CubeTransform
|
|
220995
221282
|
* @param x x part of translation
|
|
220996
221283
|
* @param y y part of translation
|
|
220997
221284
|
* @param z z part of translation
|
|
@@ -221004,7 +221291,7 @@ class Transform {
|
|
|
221004
221291
|
/**
|
|
221005
221292
|
* Create a Transform with specified `translation` part.
|
|
221006
221293
|
* * Translation Transform maps any vector `v` to `v + translation`
|
|
221007
|
-
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/
|
|
221294
|
+
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/CubeTransform
|
|
221008
221295
|
* @param translation x,y,z parts of the translation
|
|
221009
221296
|
* @param result optional pre-allocated Transform
|
|
221010
221297
|
* @returns new or updated transform
|
|
@@ -221127,7 +221414,7 @@ class Transform {
|
|
|
221127
221414
|
* Create a Transform which leaves the fixedPoint unchanged and scales everything else around it by
|
|
221128
221415
|
* a single scale factor. The returned Transform maps a point `p` to `M*p + (f - M*f)`
|
|
221129
221416
|
* where `f` is the fixedPoint and M is the scale matrix (i.e., `Tp = M*(p-f) + f`).
|
|
221130
|
-
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/
|
|
221417
|
+
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/CubeTransform
|
|
221131
221418
|
*/
|
|
221132
221419
|
static createScaleAboutPoint(fixedPoint, scale, result) {
|
|
221133
221420
|
const matrix = _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.createScale(scale, scale, scale);
|
|
@@ -221327,7 +221614,7 @@ class Transform {
|
|
|
221327
221614
|
const originY = this.origin.y;
|
|
221328
221615
|
const originZ = this.origin.z;
|
|
221329
221616
|
if (result) {
|
|
221330
|
-
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());
|
|
221331
221618
|
for (let i = 0; i < n; i++)
|
|
221332
221619
|
this._matrix.multiplyInverseXYZAsPoint3d(points[i].x - originX, points[i].y - originY, points[i].z - originZ, result[i]);
|
|
221333
221620
|
return result;
|
|
@@ -221357,7 +221644,7 @@ class Transform {
|
|
|
221357
221644
|
*/
|
|
221358
221645
|
multiplyPoint2dArray(points, result) {
|
|
221359
221646
|
if (result) {
|
|
221360
|
-
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());
|
|
221361
221648
|
for (let i = 0; i < n; i++)
|
|
221362
221649
|
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix, points[i], result[i]);
|
|
221363
221650
|
return result;
|
|
@@ -221374,7 +221661,7 @@ class Transform {
|
|
|
221374
221661
|
*/
|
|
221375
221662
|
multiplyPoint3dArray(points, result) {
|
|
221376
221663
|
if (result) {
|
|
221377
|
-
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());
|
|
221378
221665
|
for (let i = 0; i < n; i++)
|
|
221379
221666
|
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, points[i], result[i]);
|
|
221380
221667
|
return result;
|
|
@@ -226130,12 +226417,12 @@ class Complex {
|
|
|
226130
226417
|
"use strict";
|
|
226131
226418
|
__webpack_require__.r(__webpack_exports__);
|
|
226132
226419
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
226133
|
-
/* harmony export */ ConvexPolygon2d: () => (/* binding */ ConvexPolygon2d)
|
|
226134
|
-
/* harmony export */ Ray2d: () => (/* binding */ Ray2d)
|
|
226420
|
+
/* harmony export */ ConvexPolygon2d: () => (/* binding */ ConvexPolygon2d)
|
|
226135
226421
|
/* harmony export */ });
|
|
226136
|
-
/* harmony import */ var
|
|
226422
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
226137
226423
|
/* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
|
|
226138
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");
|
|
226139
226426
|
/*---------------------------------------------------------------------------------------------
|
|
226140
226427
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
226141
226428
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -226146,97 +226433,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
226146
226433
|
|
|
226147
226434
|
|
|
226148
226435
|
|
|
226149
|
-
|
|
226150
|
-
* Ray with xy origin and direction
|
|
226151
|
-
* @internal
|
|
226152
|
-
*/
|
|
226153
|
-
class Ray2d {
|
|
226154
|
-
constructor(origin, direction) {
|
|
226155
|
-
this._origin = origin;
|
|
226156
|
-
this._direction = direction;
|
|
226157
|
-
}
|
|
226158
|
-
/** Create from 2d `origin` and `target`.
|
|
226159
|
-
* * `target - origin` is the direction vector.
|
|
226160
|
-
*/
|
|
226161
|
-
static createOriginAndTarget(origin, target) {
|
|
226162
|
-
return new Ray2d(origin.clone(), origin.vectorTo(target));
|
|
226163
|
-
}
|
|
226164
|
-
/** Create from (clones of) `origin` point and `direction` vector */
|
|
226165
|
-
static createOriginAndDirection(origin, direction) {
|
|
226166
|
-
return new Ray2d(origin.clone(), direction.clone());
|
|
226167
|
-
}
|
|
226168
|
-
/** Capture `origin` and `direction` as ray member variables. */
|
|
226169
|
-
static createOriginAndDirectionCapture(origin, direction) {
|
|
226170
|
-
return new Ray2d(origin, direction);
|
|
226171
|
-
}
|
|
226172
|
-
/** Get the (REFERENCE TO) the ray origin. */
|
|
226173
|
-
get origin() { return this._origin; }
|
|
226174
|
-
/** Get the (REFERENCE TO) the ray direction. */
|
|
226175
|
-
get direction() { return this._direction; }
|
|
226176
|
-
/**
|
|
226177
|
-
* Return a ray that is parallel at distance to the left, specified as fraction of the ray's direction vector.
|
|
226178
|
-
*/
|
|
226179
|
-
parallelRay(leftFraction) {
|
|
226180
|
-
return new Ray2d(this._origin.addForwardLeft(0.0, leftFraction, this._direction), this._direction);
|
|
226181
|
-
}
|
|
226182
|
-
/** Return a ray with same origin, direction rotated 90 degrees counterclockwise */
|
|
226183
|
-
ccwPerpendicularRay() {
|
|
226184
|
-
return new Ray2d(this._origin, this._direction.rotate90CCWXY());
|
|
226185
|
-
}
|
|
226186
|
-
/** Return a ray with same origin, direction rotated 90 degrees clockwise */
|
|
226187
|
-
cwPerpendicularRay() {
|
|
226188
|
-
return new Ray2d(this._origin, this._direction.rotate90CWXY());
|
|
226189
|
-
}
|
|
226190
|
-
/** Normalize the direction vector in place. */
|
|
226191
|
-
normalizeDirectionInPlace(defaultX = 1, defaultY = 0) {
|
|
226192
|
-
if (this._direction.normalize(this._direction)) {
|
|
226193
|
-
return true;
|
|
226194
|
-
}
|
|
226195
|
-
else {
|
|
226196
|
-
this._direction.x = defaultX;
|
|
226197
|
-
this._direction.y = defaultY;
|
|
226198
|
-
// magnitude = 0.0;
|
|
226199
|
-
return false;
|
|
226200
|
-
}
|
|
226201
|
-
}
|
|
226202
|
-
/**
|
|
226203
|
-
* Intersect this ray (ASSUMED NORMALIZED) with unbounded line defined by points.
|
|
226204
|
-
* (The normalization assumption affects test for parallel vectors.)
|
|
226205
|
-
* Fraction and dHds passed as number[] to use by reference... Sticking to return of true and false in the case fraction is zero after
|
|
226206
|
-
* a true safe divide
|
|
226207
|
-
*/
|
|
226208
|
-
intersectUnboundedLine(linePointA, linePointB, fraction, dHds) {
|
|
226209
|
-
const lineDirection = linePointA.vectorTo(linePointB);
|
|
226210
|
-
const vector0 = linePointA.vectorTo(this._origin);
|
|
226211
|
-
const h0 = vector0.crossProduct(lineDirection);
|
|
226212
|
-
dHds[0] = this._direction.crossProduct(lineDirection);
|
|
226213
|
-
// h = h0 + s * dh
|
|
226214
|
-
const ff = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-h0, dHds[0]);
|
|
226215
|
-
if (ff !== undefined) {
|
|
226216
|
-
fraction[0] = ff;
|
|
226217
|
-
return true;
|
|
226218
|
-
}
|
|
226219
|
-
else {
|
|
226220
|
-
fraction[0] = 0.0;
|
|
226221
|
-
return false;
|
|
226222
|
-
}
|
|
226223
|
-
}
|
|
226224
|
-
/** return the ray fraction where point projects to the ray */
|
|
226225
|
-
projectionFraction(point) {
|
|
226226
|
-
return this._origin.vectorTo(point).fractionOfProjectionToVector(this._direction);
|
|
226227
|
-
}
|
|
226228
|
-
/** return the fraction of projection to the perpendicular ray */
|
|
226229
|
-
perpendicularProjectionFraction(point) {
|
|
226230
|
-
const uv = this._direction.crossProduct(this._origin.vectorTo(point));
|
|
226231
|
-
const uu = this._direction.magnitudeSquared();
|
|
226232
|
-
// Want zero returned if failure case, not undefined
|
|
226233
|
-
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.safeDivideFraction(uv, uu, 0.0);
|
|
226234
|
-
}
|
|
226235
|
-
/** Return point from origin plus a scaled vector */
|
|
226236
|
-
fractionToPoint(f) {
|
|
226237
|
-
return this._origin.plusScaled(this._direction, f);
|
|
226238
|
-
}
|
|
226239
|
-
}
|
|
226436
|
+
|
|
226240
226437
|
/**
|
|
226241
226438
|
* Convex hull of points in 2d.
|
|
226242
226439
|
* @internal
|
|
@@ -226302,7 +226499,7 @@ class ConvexPolygon2d {
|
|
|
226302
226499
|
const xy1 = this._hullPoints[i];
|
|
226303
226500
|
const c = xy0.crossProductToPoints(xy1, xy);
|
|
226304
226501
|
if (c < 0.0) {
|
|
226305
|
-
const ray = Ray2d.createOriginAndTarget(xy0, xy1);
|
|
226502
|
+
const ray = _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_0__.Ray2d.createOriginAndTarget(xy0, xy1);
|
|
226306
226503
|
const s = ray.projectionFraction(xy);
|
|
226307
226504
|
let d = 0.0;
|
|
226308
226505
|
if (s < 0.0)
|
|
@@ -226353,10 +226550,11 @@ class ConvexPolygon2d {
|
|
|
226353
226550
|
return true;
|
|
226354
226551
|
}
|
|
226355
226552
|
/**
|
|
226356
|
-
* Return 2 distances bounding the intersection of the ray with
|
|
226357
|
-
*
|
|
226358
|
-
*
|
|
226359
|
-
*
|
|
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.
|
|
226360
226558
|
*/
|
|
226361
226559
|
clipRay(ray) {
|
|
226362
226560
|
let distanceA = -Number.MAX_VALUE;
|
|
@@ -226366,16 +226564,15 @@ class ConvexPolygon2d {
|
|
|
226366
226564
|
return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range1d.createNull();
|
|
226367
226565
|
let xy0 = this._hullPoints[n - 1];
|
|
226368
226566
|
for (const xy1 of this._hullPoints) {
|
|
226369
|
-
const
|
|
226370
|
-
|
|
226371
|
-
|
|
226372
|
-
|
|
226373
|
-
|
|
226374
|
-
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;
|
|
226375
226572
|
}
|
|
226376
226573
|
else {
|
|
226377
|
-
if (
|
|
226378
|
-
distanceA =
|
|
226574
|
+
if (fraction > distanceA)
|
|
226575
|
+
distanceA = fraction;
|
|
226379
226576
|
}
|
|
226380
226577
|
if (distanceA > distanceB)
|
|
226381
226578
|
return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range1d.createNull();
|
|
@@ -226418,7 +226615,7 @@ class ConvexPolygon2d {
|
|
|
226418
226615
|
return undefined;
|
|
226419
226616
|
// Get deep copy
|
|
226420
226617
|
const xy1 = points.slice(0, n);
|
|
226421
|
-
xy1.sort(
|
|
226618
|
+
xy1.sort((a, b) => _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.lexicalXYLessThan(a, b));
|
|
226422
226619
|
hull.push(xy1[0]); // This is sure to stay
|
|
226423
226620
|
hull.push(xy1[1]); // This one can be removed in loop.
|
|
226424
226621
|
// First sweep creates upper hull
|
|
@@ -226867,7 +227064,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
226867
227064
|
/** @packageDocumentation
|
|
226868
227065
|
* @module Numerics
|
|
226869
227066
|
*/
|
|
226870
|
-
// import { Angle, AngleSweep, Geometry } from "../Geometry";
|
|
226871
227067
|
|
|
226872
227068
|
|
|
226873
227069
|
|
|
@@ -226876,7 +227072,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
226876
227072
|
|
|
226877
227073
|
|
|
226878
227074
|
|
|
226879
|
-
// import { Arc3d } from "../curve/Arc3d";
|
|
226880
227075
|
// cspell:word Cardano
|
|
226881
227076
|
// cspell:word CCminusSS
|
|
226882
227077
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
@@ -228769,19 +228964,19 @@ class GaussMapper {
|
|
|
228769
228964
|
numGaussPoints = 5;
|
|
228770
228965
|
switch (numGaussPoints) {
|
|
228771
228966
|
case 1:
|
|
228772
|
-
this.mapXAndWFunction = Quadrature.setupGauss1;
|
|
228967
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss1(xA, xB, xMapped, wMapped);
|
|
228773
228968
|
break;
|
|
228774
228969
|
case 2:
|
|
228775
|
-
this.mapXAndWFunction = Quadrature.setupGauss2;
|
|
228970
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss2(xA, xB, xMapped, wMapped);
|
|
228776
228971
|
break;
|
|
228777
228972
|
case 3:
|
|
228778
|
-
this.mapXAndWFunction = Quadrature.setupGauss3;
|
|
228973
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss3(xA, xB, xMapped, wMapped);
|
|
228779
228974
|
break;
|
|
228780
228975
|
case 4:
|
|
228781
|
-
this.mapXAndWFunction = Quadrature.setupGauss4;
|
|
228976
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss4(xA, xB, xMapped, wMapped);
|
|
228782
228977
|
break;
|
|
228783
228978
|
default:
|
|
228784
|
-
this.mapXAndWFunction = Quadrature.setupGauss5;
|
|
228979
|
+
this.mapXAndWFunction = (xA, xB, xMapped, wMapped) => Quadrature.setupGauss5(xA, xB, xMapped, wMapped);
|
|
228785
228980
|
break;
|
|
228786
228981
|
}
|
|
228787
228982
|
}
|
|
@@ -231257,7 +231452,7 @@ class IndexedEdgeMatcher {
|
|
|
231257
231452
|
}
|
|
231258
231453
|
/** Sort the edge index array. */
|
|
231259
231454
|
sort() {
|
|
231260
|
-
this.edges.sort(SortableEdge.lessThan);
|
|
231455
|
+
this.edges.sort((edgeA, edgeB) => SortableEdge.lessThan(edgeA, edgeB));
|
|
231261
231456
|
}
|
|
231262
231457
|
/** Create a single or compound SortableEdgeCluster in dest. */
|
|
231263
231458
|
collectSortableEdgeCluster(index0, index1, dest) {
|
|
@@ -233640,7 +233835,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
|
|
|
233640
233835
|
* * Rely on the builder's compress step to find common vertex coordinates
|
|
233641
233836
|
* @internal
|
|
233642
233837
|
*/
|
|
233643
|
-
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)) {
|
|
233644
233839
|
let index = 0;
|
|
233645
233840
|
const needNormals = this._options.needNormals;
|
|
233646
233841
|
let normalIndex = 0;
|
|
@@ -233690,7 +233885,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
|
|
|
233690
233885
|
/** Create a polyface containing the faces of a HalfEdgeGraph, with test function to filter faces.
|
|
233691
233886
|
* @internal
|
|
233692
233887
|
*/
|
|
233693
|
-
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)) {
|
|
233694
233889
|
const builder = PolyfaceBuilder.create(options);
|
|
233695
233890
|
builder.addGraph(graph, builder.options.needParams, acceptFaceFunction);
|
|
233696
233891
|
builder.endFace();
|
|
@@ -235210,40 +235405,41 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
235210
235405
|
/* harmony export */ PolyfaceQuery: () => (/* binding */ PolyfaceQuery),
|
|
235211
235406
|
/* harmony export */ SweepLineStringToFacetsOptions: () => (/* binding */ SweepLineStringToFacetsOptions)
|
|
235212
235407
|
/* harmony export */ });
|
|
235213
|
-
/* harmony import */ var _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../geometry3d/PointHelpers */ "../../core/geometry/lib/esm/geometry3d/PointHelpers.js");
|
|
235214
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");
|
|
235215
235410
|
/* harmony import */ var _curve_internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../curve/internalContexts/MultiChainCollector */ "../../core/geometry/lib/esm/curve/internalContexts/MultiChainCollector.js");
|
|
235216
235411
|
/* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
235217
235412
|
/* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
235218
235413
|
/* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
235219
|
-
/* harmony import */ var
|
|
235414
|
+
/* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
|
|
235220
235415
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
235221
235416
|
/* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
|
|
235222
|
-
/* 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");
|
|
235223
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");
|
|
235224
235421
|
/* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
|
|
235225
|
-
/* harmony import */ var
|
|
235422
|
+
/* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
|
|
235226
235423
|
/* harmony import */ var _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry4d/Matrix4d */ "../../core/geometry/lib/esm/geometry4d/Matrix4d.js");
|
|
235227
235424
|
/* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
|
|
235228
235425
|
/* harmony import */ var _numerics_UnionFind__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../numerics/UnionFind */ "../../core/geometry/lib/esm/numerics/UnionFind.js");
|
|
235229
|
-
/* harmony import */ var
|
|
235230
|
-
/* harmony import */ var
|
|
235231
|
-
/* harmony import */ var
|
|
235232
|
-
/* harmony import */ var
|
|
235233
|
-
/* 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");
|
|
235234
235434
|
/* harmony import */ var _IndexedEdgeMatcher__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./IndexedEdgeMatcher */ "../../core/geometry/lib/esm/polyface/IndexedEdgeMatcher.js");
|
|
235235
235435
|
/* harmony import */ var _IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
|
|
235236
|
-
/* 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");
|
|
235237
235438
|
/* harmony import */ var _multiclip_SweepLineStringToFacetContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./multiclip/SweepLineStringToFacetContext */ "../../core/geometry/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js");
|
|
235238
|
-
/* 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");
|
|
235239
235440
|
/* harmony import */ var _Polyface__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
|
|
235240
235441
|
/* harmony import */ var _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
235241
|
-
/* harmony import */ var
|
|
235242
|
-
/* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
|
|
235243
|
-
/* harmony import */ var _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../topology/HalfEdgeGraphFromIndexedLoopsContext */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js");
|
|
235244
|
-
/* harmony import */ var _multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./multiclip/OffsetMeshContext */ "../../core/geometry/lib/esm/polyface/multiclip/OffsetMeshContext.js");
|
|
235245
|
-
/* harmony import */ var _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
|
|
235246
|
-
/* 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");
|
|
235247
235443
|
/*---------------------------------------------------------------------------------------------
|
|
235248
235444
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
235249
235445
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -235284,6 +235480,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
235284
235480
|
|
|
235285
235481
|
|
|
235286
235482
|
|
|
235483
|
+
|
|
235287
235484
|
|
|
235288
235485
|
|
|
235289
235486
|
/**
|
|
@@ -235917,18 +236114,18 @@ class PolyfaceQuery {
|
|
|
235917
236114
|
edges.push(_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d.create(pointA, pointB));
|
|
235918
236115
|
edgeStrings.push([pointA.clone(), pointB.clone()]);
|
|
235919
236116
|
});
|
|
235920
|
-
const chains =
|
|
236117
|
+
const chains = _curve_CurveOps__WEBPACK_IMPORTED_MODULE_17__.CurveOps.collectChains(edges, gapTolerance, planarityTolerance);
|
|
235921
236118
|
if (chains) {
|
|
235922
|
-
const frameBuilder = new
|
|
236119
|
+
const frameBuilder = new _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_18__.FrameBuilder();
|
|
235923
236120
|
frameBuilder.announce(chains);
|
|
235924
236121
|
const frame = frameBuilder.getValidatedFrame(false);
|
|
235925
236122
|
if (frame !== undefined) {
|
|
235926
236123
|
const inverseFrame = frame.inverse();
|
|
235927
236124
|
if (inverseFrame !== undefined) {
|
|
235928
236125
|
inverseFrame.multiplyPoint3dArrayArrayInPlace(edgeStrings);
|
|
235929
|
-
const graph =
|
|
236126
|
+
const graph = _topology_Merging__WEBPACK_IMPORTED_MODULE_19__.HalfEdgeGraphMerge.formGraphFromChains(edgeStrings, true, _topology_Graph__WEBPACK_IMPORTED_MODULE_20__.HalfEdgeMask.BOUNDARY_EDGE);
|
|
235930
236127
|
if (graph) {
|
|
235931
|
-
|
|
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);
|
|
235932
236129
|
// this.purgeNullFaces(HalfEdgeMask.EXTERIOR);
|
|
235933
236130
|
const polyface1 = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.graphToPolyface(graph);
|
|
235934
236131
|
builder.addIndexedPolyface(polyface1, false, frame);
|
|
@@ -235941,14 +236138,14 @@ class PolyfaceQuery {
|
|
|
235941
236138
|
}
|
|
235942
236139
|
/**
|
|
235943
236140
|
* Return a mesh with "some" holes filled in with new facets.
|
|
235944
|
-
* *
|
|
235945
|
-
* *
|
|
235946
|
-
* *
|
|
236141
|
+
* * Candidate chains are computed by [[announceBoundaryChainsAsLineString3d]].
|
|
236142
|
+
* * Unclosed chains are rejected.
|
|
236143
|
+
* * Closed chains are triangulated and returned as a mesh.
|
|
235947
236144
|
* * The options structure enforces restrictions on how complicated the hole filling can be:
|
|
235948
236145
|
* * maxEdgesAroundHole -- holes with more edges are skipped
|
|
235949
236146
|
* * maxPerimeter -- holes with larger summed edge lengths are skipped.
|
|
235950
236147
|
* * upVector -- holes that do not have positive area along this view are skipped.
|
|
235951
|
-
* * 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
|
|
235952
236149
|
* @param mesh existing mesh
|
|
235953
236150
|
* @param options options controlling the hole fill.
|
|
235954
236151
|
* @param unfilledChains optional array to receive the points around holes that were not filled.
|
|
@@ -235967,11 +236164,11 @@ class PolyfaceQuery {
|
|
|
235967
236164
|
rejected = true;
|
|
235968
236165
|
else if (options.maxEdgesAroundHole !== undefined && points.length > options.maxEdgesAroundHole)
|
|
235969
236166
|
rejected = true;
|
|
235970
|
-
else if (options.maxPerimeter !== undefined &&
|
|
236167
|
+
else if (options.maxPerimeter !== undefined && _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_22__.Point3dArray.sumEdgeLengths(points, false) > options.maxPerimeter)
|
|
235971
236168
|
rejected = true;
|
|
235972
236169
|
else if (options.upVector !== undefined && _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.sumTriangleAreasPerpendicularToUpVector(points, options.upVector) <= 0.0)
|
|
235973
236170
|
rejected = true;
|
|
235974
|
-
if (!rejected &&
|
|
236171
|
+
if (!rejected && _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_23__.SpacePolygonTriangulation.triangulateSimplestSpaceLoop(points, (_loop, triangles) => {
|
|
235975
236172
|
for (const t of triangles)
|
|
235976
236173
|
builder.addPolygon(t);
|
|
235977
236174
|
})) {
|
|
@@ -235997,7 +236194,7 @@ class PolyfaceQuery {
|
|
|
235997
236194
|
}
|
|
235998
236195
|
polyface.setNumWrap(0);
|
|
235999
236196
|
const polyfaces = [];
|
|
236000
|
-
const options =
|
|
236197
|
+
const options = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__.StrokeOptions.createForFacets();
|
|
236001
236198
|
options.needNormals = polyface.normal !== undefined;
|
|
236002
236199
|
options.needParams = polyface.param !== undefined;
|
|
236003
236200
|
options.needColors = polyface.color !== undefined;
|
|
@@ -236020,7 +236217,7 @@ class PolyfaceQuery {
|
|
|
236020
236217
|
return this.cloneFiltered(source.createVisitor(0), filter);
|
|
236021
236218
|
}
|
|
236022
236219
|
source.setNumWrap(0);
|
|
236023
|
-
const options =
|
|
236220
|
+
const options = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__.StrokeOptions.createForFacets();
|
|
236024
236221
|
options.needNormals = source.normal !== undefined;
|
|
236025
236222
|
options.needParams = source.param !== undefined;
|
|
236026
236223
|
options.needColors = source.color !== undefined;
|
|
@@ -236158,7 +236355,7 @@ class PolyfaceQuery {
|
|
|
236158
236355
|
true, true, true); // accept all outputs
|
|
236159
236356
|
let chainContext;
|
|
236160
236357
|
if (options.assembleChains)
|
|
236161
|
-
chainContext =
|
|
236358
|
+
chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__.ChainMergeContext.create();
|
|
236162
236359
|
const context = _multiclip_SweepLineStringToFacetContext__WEBPACK_IMPORTED_MODULE_12__.ClipSweptLineStringContext.create(linestringPoints, options.vectorToEye);
|
|
236163
236360
|
if (context) {
|
|
236164
236361
|
const visitor = polyface.createVisitor(0);
|
|
@@ -236210,7 +236407,7 @@ class PolyfaceQuery {
|
|
|
236210
236407
|
* * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
|
|
236211
236408
|
*/
|
|
236212
236409
|
static async asyncSweepLinestringToFacetsXYReturnChains(linestringPoints, polyface) {
|
|
236213
|
-
const chainContext =
|
|
236410
|
+
const chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__.ChainMergeContext.create();
|
|
236214
236411
|
await Promise.resolve(this.asyncAnnounceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface, (_linestring, _segmentIndex, _polyface, _facetIndex, points, indexA, indexB) => {
|
|
236215
236412
|
chainContext.addSegment(points[indexA], points[indexB]);
|
|
236216
236413
|
}));
|
|
@@ -236226,7 +236423,7 @@ class PolyfaceQuery {
|
|
|
236226
236423
|
if (polyface instanceof _Polyface__WEBPACK_IMPORTED_MODULE_6__.Polyface) {
|
|
236227
236424
|
return this.collectRangeLengthData(polyface.createVisitor(0));
|
|
236228
236425
|
}
|
|
236229
|
-
const rangeData = new
|
|
236426
|
+
const rangeData = new _RangeLengthData__WEBPACK_IMPORTED_MODULE_26__.RangeLengthData();
|
|
236230
236427
|
// polyface is a visitor ...
|
|
236231
236428
|
for (polyface.reset(); polyface.moveToNextFacet();)
|
|
236232
236429
|
rangeData.accumulateGrowableXYZArrayRange(polyface.point);
|
|
@@ -236238,9 +236435,9 @@ class PolyfaceQuery {
|
|
|
236238
236435
|
static cloneWithTVertexFixup(polyface) {
|
|
236239
236436
|
const oldFacetVisitor = polyface.createVisitor(1); // This is to visit the existing facets.
|
|
236240
236437
|
const newFacetVisitor = polyface.createVisitor(0); // This is to build the new facets.
|
|
236241
|
-
const rangeSearcher =
|
|
236438
|
+
const rangeSearcher = _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_27__.XYPointBuckets.create(polyface.data.point, 30);
|
|
236242
236439
|
const builder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create();
|
|
236243
|
-
const edgeRange =
|
|
236440
|
+
const edgeRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d.createNull();
|
|
236244
236441
|
const point0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
236245
236442
|
const point1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
236246
236443
|
const spacePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
@@ -236348,7 +236545,7 @@ class PolyfaceQuery {
|
|
|
236348
236545
|
}
|
|
236349
236546
|
facetIndexAndVertexIndices.push(entry);
|
|
236350
236547
|
}
|
|
236351
|
-
facetIndexAndVertexIndices.sort(this.compareFacetIndexAndVertexIndices);
|
|
236548
|
+
facetIndexAndVertexIndices.sort((arrayA, arrayB) => this.compareFacetIndexAndVertexIndices(arrayA, arrayB));
|
|
236352
236549
|
let i0, i1;
|
|
236353
236550
|
const n = facetIndexAndVertexIndices.length;
|
|
236354
236551
|
const clusterArray = [];
|
|
@@ -236605,7 +236802,7 @@ class PolyfaceQuery {
|
|
|
236605
236802
|
* @internal
|
|
236606
236803
|
*/
|
|
236607
236804
|
static convertToHalfEdgeGraph(mesh) {
|
|
236608
|
-
const builder = new
|
|
236805
|
+
const builder = new _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_29__.HalfEdgeGraphFromIndexedLoopsContext();
|
|
236609
236806
|
const visitor = mesh.createVisitor(0);
|
|
236610
236807
|
for (visitor.reset(); visitor.moveToNextFacet();) {
|
|
236611
236808
|
builder.insertLoop(visitor.pointIndex);
|
|
@@ -236626,14 +236823,14 @@ class PolyfaceQuery {
|
|
|
236626
236823
|
* @param mesh
|
|
236627
236824
|
*/
|
|
236628
236825
|
static reorientVertexOrderAroundFacetsForConsistentOrientation(mesh) {
|
|
236629
|
-
return
|
|
236826
|
+
return _FacetOrientation__WEBPACK_IMPORTED_MODULE_30__.FacetOrientationFixup.doFixup(mesh);
|
|
236630
236827
|
}
|
|
236631
236828
|
/**
|
|
236632
236829
|
* Set up indexed normals with one normal in the plane of each facet of the mesh.
|
|
236633
236830
|
* @param polyface
|
|
236634
236831
|
*/
|
|
236635
236832
|
static buildPerFaceNormals(polyface) {
|
|
236636
|
-
|
|
236833
|
+
_multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__.BuildAverageNormalsContext.buildPerFaceNormals(polyface);
|
|
236637
236834
|
}
|
|
236638
236835
|
/**
|
|
236639
236836
|
* * At each vertex of the mesh
|
|
@@ -236646,7 +236843,7 @@ class PolyfaceQuery {
|
|
|
236646
236843
|
* @param toleranceAngle averaging is done between normals up to this angle.
|
|
236647
236844
|
*/
|
|
236648
236845
|
static buildAverageNormals(polyface, toleranceAngle = _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_1__.Angle.createDegrees(31.0)) {
|
|
236649
|
-
|
|
236846
|
+
_multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__.BuildAverageNormalsContext.buildFastAverageNormals(polyface, toleranceAngle);
|
|
236650
236847
|
}
|
|
236651
236848
|
/**
|
|
236652
236849
|
* Offset the faces of the mesh.
|
|
@@ -236656,9 +236853,9 @@ class PolyfaceQuery {
|
|
|
236656
236853
|
* @returns shifted mesh.
|
|
236657
236854
|
*/
|
|
236658
236855
|
static cloneOffset(source, signedOffsetDistance, offsetOptions = OffsetMeshOptions.create()) {
|
|
236659
|
-
const strokeOptions =
|
|
236856
|
+
const strokeOptions = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__.StrokeOptions.createForFacets();
|
|
236660
236857
|
const offsetBuilder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create(strokeOptions);
|
|
236661
|
-
|
|
236858
|
+
_multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_32__.OffsetMeshContext.buildOffsetMeshWithEdgeChamfers(source, offsetBuilder, signedOffsetDistance, offsetOptions);
|
|
236662
236859
|
return offsetBuilder.claimPolyface();
|
|
236663
236860
|
}
|
|
236664
236861
|
/** Search facets for the first one that intersects the infinite line.
|
|
@@ -236682,17 +236879,17 @@ class PolyfaceQuery {
|
|
|
236682
236879
|
const numEdges = visitor.pointCount; // #vertices = #edges since numWrap is zero
|
|
236683
236880
|
const vertices = visitor.point;
|
|
236684
236881
|
if (3 === numEdges) {
|
|
236685
|
-
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);
|
|
236686
236883
|
const detail3 = this._workTriDetail = tri.intersectRay3d(ray, this._workTriDetail);
|
|
236687
236884
|
tri.snapLocationToEdge(detail3, options?.distanceTolerance, options?.parameterTolerance);
|
|
236688
|
-
detail = this._workFacetDetail3 =
|
|
236885
|
+
detail = this._workFacetDetail3 = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.TriangularFacetLocationDetail.create(visitor.currentReadIndex(), detail3, this._workFacetDetail3);
|
|
236689
236886
|
}
|
|
236690
236887
|
else {
|
|
236691
236888
|
const detailN = this._workPolyDetail = _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.intersectRay3d(vertices, ray, options?.distanceTolerance, this._workPolyDetail);
|
|
236692
236889
|
if (_geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.isConvex(vertices))
|
|
236693
|
-
detail = this._workFacetDetailC =
|
|
236890
|
+
detail = this._workFacetDetailC = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.ConvexFacetLocationDetail.create(visitor.currentReadIndex(), numEdges, detailN, this._workFacetDetailC);
|
|
236694
236891
|
else
|
|
236695
|
-
detail = this._workFacetDetailNC =
|
|
236892
|
+
detail = this._workFacetDetailNC = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.NonConvexFacetLocationDetail.create(visitor.currentReadIndex(), numEdges, detailN, this._workFacetDetailNC);
|
|
236696
236893
|
}
|
|
236697
236894
|
if (detail.isInsideOrOn) { // set optional caches, process the intersection
|
|
236698
236895
|
if (options?.needNormal && visitor.normal)
|
|
@@ -236929,7 +237126,7 @@ class TaggedNumericData {
|
|
|
236929
237126
|
if (this.tagB !== other.tagB)
|
|
236930
237127
|
return false;
|
|
236931
237128
|
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.exactEqualNumberArrays(this.intData, other.intData)
|
|
236932
|
-
&& _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));
|
|
236933
237130
|
}
|
|
236934
237131
|
static areAlmostEqual(dataA, dataB) {
|
|
236935
237132
|
if (dataA === undefined && dataB === undefined)
|
|
@@ -237189,7 +237386,7 @@ class BuildAverageNormalsContext {
|
|
|
237189
237386
|
}
|
|
237190
237387
|
}
|
|
237191
237388
|
// Sort by the vertex index so all the sectors around each vertex are clustered . .
|
|
237192
|
-
sectors.sort(SectorData.cbVertexSort);
|
|
237389
|
+
sectors.sort((left, right) => SectorData.cbVertexSort(left, right));
|
|
237193
237390
|
// Walk the sectors around each vertex . ..
|
|
237194
237391
|
// For each unassigned sector
|
|
237195
237392
|
// walk to further sectors of the same vertex with near-parallel normals, accumulating average normal.
|
|
@@ -237222,7 +237419,7 @@ class BuildAverageNormalsContext {
|
|
|
237222
237419
|
}
|
|
237223
237420
|
}
|
|
237224
237421
|
// Resort by original sector index.
|
|
237225
|
-
sectors.sort(SectorData.cbSectorSort);
|
|
237422
|
+
sectors.sort((left, right) => SectorData.cbSectorSort(left, right));
|
|
237226
237423
|
// normalize the sums and emplace in the facets . . .
|
|
237227
237424
|
polyface.data.normalIndex = [];
|
|
237228
237425
|
polyface.data.normal = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArray(sectors.length);
|
|
@@ -248951,9 +249148,7 @@ var IModelJson;
|
|
|
248951
249148
|
return _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_10__.CoordinateXYZ.create(point);
|
|
248952
249149
|
return undefined;
|
|
248953
249150
|
}
|
|
248954
|
-
/** Parse TransitionSpiral content (right side) to TransitionSpiral3d
|
|
248955
|
-
* @alpha
|
|
248956
|
-
*/
|
|
249151
|
+
/** Parse TransitionSpiral content (right side) to TransitionSpiral3d. */
|
|
248957
249152
|
static parseTransitionSpiral(data) {
|
|
248958
249153
|
const axes = Reader.parseOrientation(data, true);
|
|
248959
249154
|
const origin = Reader.parsePoint3dProperty(data, "origin");
|
|
@@ -249591,10 +249786,7 @@ var IModelJson;
|
|
|
249591
249786
|
}
|
|
249592
249787
|
data.xyVectors = [vectorU.toJSON(), vectorV.toJSON()];
|
|
249593
249788
|
}
|
|
249594
|
-
/**
|
|
249595
|
-
* parse properties of a TransitionSpiral.
|
|
249596
|
-
* @alpha
|
|
249597
|
-
*/
|
|
249789
|
+
/** Parse properties of a TransitionSpiral. */
|
|
249598
249790
|
handleTransitionSpiral(data) {
|
|
249599
249791
|
// TODO: HANDLE NONRIGID TRANSFORM !!
|
|
249600
249792
|
// the spiral may have indication of how it was defined. If so, use defined/undefined state of the original data
|
|
@@ -252484,7 +252676,7 @@ class ChainMergeContext {
|
|
|
252484
252676
|
p.sortData = this.primarySortKey(p);
|
|
252485
252677
|
}
|
|
252486
252678
|
const sortArray = this._graph.allHalfEdges.slice();
|
|
252487
|
-
sortArray.sort(ChainMergeContext.nodeCompareSortData);
|
|
252679
|
+
sortArray.sort((nodeA, nodeB) => ChainMergeContext.nodeCompareSortData(nodeA, nodeB));
|
|
252488
252680
|
const xyzTolerance = this._options.tolerance;
|
|
252489
252681
|
// A node is unvisited if it is its own vertex successor !!!
|
|
252490
252682
|
// otherwise the node has already been twisted into a base vertex.
|
|
@@ -254226,7 +254418,7 @@ class HalfEdgeGraphSearch {
|
|
|
254226
254418
|
* @param collectAllNodes flag to pass to the SignedDataSummary constructor to control collection of nodes.
|
|
254227
254419
|
* @param areaFunction function to all to obtain area (or other numeric value)
|
|
254228
254420
|
*/
|
|
254229
|
-
static collectFaceAreaSummary(source, collectAllNodes = false, areaFunction = HalfEdgeGraphSearch.signedFaceArea) {
|
|
254421
|
+
static collectFaceAreaSummary(source, collectAllNodes = false, areaFunction = (node) => HalfEdgeGraphSearch.signedFaceArea(node)) {
|
|
254230
254422
|
const result = new _SignedDataSummary__WEBPACK_IMPORTED_MODULE_0__.SignedDataSummary(collectAllNodes);
|
|
254231
254423
|
let allFaces;
|
|
254232
254424
|
if (source instanceof _Graph__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeGraph)
|
|
@@ -255479,7 +255671,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
255479
255671
|
* @internal
|
|
255480
255672
|
*/
|
|
255481
255673
|
class HalfEdgePriorityQueueWithPartnerArray {
|
|
255482
|
-
constructor(compare = _Merging__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeGraphOps.compareNodesYXUp) {
|
|
255674
|
+
constructor(compare = (a, b) => _Merging__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeGraphOps.compareNodesYXUp(a, b)) {
|
|
255483
255675
|
this.priorityQueue = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.PriorityQueue(compare);
|
|
255484
255676
|
this.activeEdges = [];
|
|
255485
255677
|
}
|
|
@@ -256708,7 +256900,7 @@ class RegularizationContext {
|
|
|
256708
256900
|
}
|
|
256709
256901
|
downwardConnectionFromBottomPeak(node) {
|
|
256710
256902
|
let connectTo;
|
|
256711
|
-
const upFunction = _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp;
|
|
256903
|
+
const upFunction = (a, b) => _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp(a, b);
|
|
256712
256904
|
const upEdgeBase = this.findTopVisibleEdge(node, this.upEdges, 1.0);
|
|
256713
256905
|
const downEdgeBase = this.findTopVisibleEdge(node, this.downEdges, -1.0);
|
|
256714
256906
|
connectTo = this.updateMaxNode(connectTo, upEdgeBase, upFunction);
|
|
@@ -256761,7 +256953,7 @@ class RegularizationContext {
|
|
|
256761
256953
|
*/
|
|
256762
256954
|
runRegularization(upSweep = true, downSweep = true) {
|
|
256763
256955
|
if (upSweep) {
|
|
256764
|
-
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));
|
|
256765
256957
|
for (const bottomPeak of this.bottomPeaks) {
|
|
256766
256958
|
// GeometryCoreTestIO.consoleLog("SEARCH", bottomPeak.id, [bottomPeak.x, bottomPeak.y]);
|
|
256767
256959
|
if (!_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.isDownPeak(bottomPeak))
|
|
@@ -256778,7 +256970,7 @@ class RegularizationContext {
|
|
|
256778
256970
|
this.negateXY();
|
|
256779
256971
|
// swap the various p and down seeds ....
|
|
256780
256972
|
this.swapArrays();
|
|
256781
|
-
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));
|
|
256782
256974
|
for (const bottomPeak of this.bottomPeaks) {
|
|
256783
256975
|
if (!_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.isDownPeak(bottomPeak))
|
|
256784
256976
|
continue;
|
|
@@ -257721,7 +257913,7 @@ class Triangulator {
|
|
|
257721
257913
|
*
|
|
257722
257914
|
*/
|
|
257723
257915
|
static spliceLeftMostNodesOfHoles(graph, outerNode, leftMostHoleLoopNode) {
|
|
257724
|
-
leftMostHoleLoopNode.sort(Triangulator.compareX);
|
|
257916
|
+
leftMostHoleLoopNode.sort((a, b) => Triangulator.compareX(a, b));
|
|
257725
257917
|
let numFail = 0;
|
|
257726
257918
|
// process holes from left to right
|
|
257727
257919
|
for (const holeStart of leftMostHoleLoopNode) {
|
|
@@ -278791,7 +278983,7 @@ class TestContext {
|
|
|
278791
278983
|
this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
|
|
278792
278984
|
const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
|
|
278793
278985
|
await core_frontend_1.NoRenderApp.startup({
|
|
278794
|
-
applicationVersion: "4.1.0-dev.
|
|
278986
|
+
applicationVersion: "4.1.0-dev.69",
|
|
278795
278987
|
applicationId: this.settings.gprid,
|
|
278796
278988
|
authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
|
|
278797
278989
|
hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
|
|
@@ -281499,7 +281691,7 @@ class Content {
|
|
|
281499
281691
|
if (!json)
|
|
281500
281692
|
return undefined;
|
|
281501
281693
|
if (typeof json === "string")
|
|
281502
|
-
return JSON.parse(json, Content.reviver);
|
|
281694
|
+
return JSON.parse(json, (key, value) => Content.reviver(key, value));
|
|
281503
281695
|
const descriptor = _Descriptor__WEBPACK_IMPORTED_MODULE_0__.Descriptor.fromJSON(json.descriptor);
|
|
281504
281696
|
if (!descriptor)
|
|
281505
281697
|
return undefined;
|
|
@@ -282730,7 +282922,7 @@ class Item {
|
|
|
282730
282922
|
if (!json)
|
|
282731
282923
|
return undefined;
|
|
282732
282924
|
if (typeof json === "string")
|
|
282733
|
-
return JSON.parse(json, Item.reviver);
|
|
282925
|
+
return JSON.parse(json, (key, value) => Item.reviver(key, value));
|
|
282734
282926
|
const item = Object.create(Item.prototype);
|
|
282735
282927
|
const { labelDefinition, ...baseJson } = json;
|
|
282736
282928
|
return Object.assign(item, baseJson, {
|
|
@@ -287776,7 +287968,7 @@ class SelectionScopesManager {
|
|
|
287776
287968
|
const batchIds = (0 === batchIndex && ids.length <= batchEnd) ? ids : ids.slice(batchStart, batchEnd);
|
|
287777
287969
|
batchKeyPromises.push(this._rpcRequestsHandler.computeSelection({ imodel: imodel.getRpcProps(), elementIds: batchIds, scope: scopeProps }));
|
|
287778
287970
|
}
|
|
287779
|
-
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));
|
|
287780
287972
|
batchKeys.forEach((bk) => keys.add(bk));
|
|
287781
287973
|
return keys;
|
|
287782
287974
|
}
|
|
@@ -288721,8 +288913,7 @@ const isStageLauncher = (item) => {
|
|
|
288721
288913
|
class BackstageItemUtilities {
|
|
288722
288914
|
}
|
|
288723
288915
|
/** Creates a stage launcher backstage item */
|
|
288724
|
-
BackstageItemUtilities.createStageLauncher = (frontstageId, groupPriority, itemPriority, label, subtitle, icon, overrides
|
|
288725
|
-
) => ({
|
|
288916
|
+
BackstageItemUtilities.createStageLauncher = (frontstageId, groupPriority, itemPriority, label, subtitle, icon, overrides) => ({
|
|
288726
288917
|
groupPriority,
|
|
288727
288918
|
icon,
|
|
288728
288919
|
internalData: overrides?.internalData,
|
|
@@ -288734,8 +288925,7 @@ BackstageItemUtilities.createStageLauncher = (frontstageId, groupPriority, itemP
|
|
|
288734
288925
|
...overrides,
|
|
288735
288926
|
});
|
|
288736
288927
|
/** Creates an action backstage item */
|
|
288737
|
-
BackstageItemUtilities.createActionItem = (itemId, groupPriority, itemPriority, execute, label, subtitle, icon, overrides
|
|
288738
|
-
) => ({
|
|
288928
|
+
BackstageItemUtilities.createActionItem = (itemId, groupPriority, itemPriority, execute, label, subtitle, icon, overrides) => ({
|
|
288739
288929
|
execute,
|
|
288740
288930
|
groupPriority,
|
|
288741
288931
|
icon,
|
|
@@ -298165,7 +298355,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
|
|
|
298165
298355
|
/***/ ((module) => {
|
|
298166
298356
|
|
|
298167
298357
|
"use strict";
|
|
298168
|
-
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"}}');
|
|
298169
298359
|
|
|
298170
298360
|
/***/ }),
|
|
298171
298361
|
|