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