@itwin/ecschema-rpcinterface-tests 5.0.0-dev.16 → 5.0.0-dev.20
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/_bea9.bundled-tests.js.map +1 -1
- package/lib/dist/bundled-tests.js +284 -195
- 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_1_6_node_modules_loaders_gl_draco_di-0642a6.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_meshoptimizer_0_20_0_node_modules_meshoptimizer_index_m-a5ae61.bundled-tests.js.map +1 -1
- package/package.json +16 -16
|
@@ -191086,6 +191086,28 @@ class CurveChain extends CurveCollection {
|
|
|
191086
191086
|
else
|
|
191087
191087
|
return undefined;
|
|
191088
191088
|
}
|
|
191089
|
+
/**
|
|
191090
|
+
* Return the start point and derivative of the first child of the curve chain.
|
|
191091
|
+
* * For queries interior to the chain, use [[CurveChainWithDistanceIndex.fractionToPointAndDerivative]].
|
|
191092
|
+
*/
|
|
191093
|
+
startPointAndDerivative(result) {
|
|
191094
|
+
const firstChild = this.getChild(0);
|
|
191095
|
+
if (firstChild)
|
|
191096
|
+
return firstChild.fractionToPointAndDerivative(0.0, result);
|
|
191097
|
+
else
|
|
191098
|
+
return undefined;
|
|
191099
|
+
}
|
|
191100
|
+
/**
|
|
191101
|
+
* Return the end point and derivative of the last child of the curve chain.
|
|
191102
|
+
* * For queries interior to the chain, use [[CurveChainWithDistanceIndex.fractionToPointAndDerivative]].
|
|
191103
|
+
*/
|
|
191104
|
+
endPointAndDerivative(result) {
|
|
191105
|
+
const lastChild = this.getChild(this._curves.length - 1);
|
|
191106
|
+
if (lastChild)
|
|
191107
|
+
return lastChild.fractionToPointAndDerivative(1.0, result);
|
|
191108
|
+
else
|
|
191109
|
+
return undefined;
|
|
191110
|
+
}
|
|
191089
191111
|
/**
|
|
191090
191112
|
* Return the curve primitive at the given `index`, optionally using `modulo` to map `index` to the cyclic indexing.
|
|
191091
191113
|
* * In particular, `-1` is the final curve.
|
|
@@ -191557,20 +191579,20 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
191557
191579
|
/* harmony export */ "MiteredSweepOutputSelect": () => (/* binding */ MiteredSweepOutputSelect)
|
|
191558
191580
|
/* harmony export */ });
|
|
191559
191581
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
191560
|
-
/* harmony import */ var
|
|
191582
|
+
/* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
|
|
191561
191583
|
/* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
|
|
191562
191584
|
/* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
|
|
191563
|
-
/* harmony import */ var
|
|
191585
|
+
/* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
|
|
191564
191586
|
/* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
|
|
191565
191587
|
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
191566
|
-
/* harmony import */ var
|
|
191567
|
-
/* harmony import */ var
|
|
191568
|
-
/* harmony import */ var
|
|
191569
|
-
/* harmony import */ var
|
|
191570
|
-
/* harmony import */ var
|
|
191588
|
+
/* harmony import */ var _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../geometry3d/PolylineOps */ "../../core/geometry/lib/esm/geometry3d/PolylineOps.js");
|
|
191589
|
+
/* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
|
|
191590
|
+
/* harmony import */ var _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../geometry3d/Segment1d */ "../../core/geometry/lib/esm/geometry3d/Segment1d.js");
|
|
191591
|
+
/* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
|
|
191592
|
+
/* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
|
|
191571
191593
|
/* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
|
|
191572
191594
|
/* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
|
|
191573
|
-
/* harmony import */ var
|
|
191595
|
+
/* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
|
|
191574
191596
|
/* harmony import */ var _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../solid/TorusPipe */ "../../core/geometry/lib/esm/solid/TorusPipe.js");
|
|
191575
191597
|
/* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
|
|
191576
191598
|
/* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
|
|
@@ -191580,7 +191602,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
191580
191602
|
/* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
|
|
191581
191603
|
/* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
|
|
191582
191604
|
/* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
|
|
191583
|
-
/* harmony import */ var
|
|
191605
|
+
/* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
|
|
191606
|
+
/* harmony import */ var _spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./spiral/IntegratedSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/IntegratedSpiral3d.js");
|
|
191584
191607
|
/*---------------------------------------------------------------------------------------------
|
|
191585
191608
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
191586
191609
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -191588,7 +191611,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
191588
191611
|
/** @packageDocumentation
|
|
191589
191612
|
* @module Curve
|
|
191590
191613
|
*/
|
|
191591
|
-
|
|
191614
|
+
|
|
191592
191615
|
|
|
191593
191616
|
|
|
191594
191617
|
|
|
@@ -191627,6 +191650,7 @@ var MiteredSweepOutputSelect;
|
|
|
191627
191650
|
/** Output planes and sections, as well as the assembled ruled sweep and its stroked mesh. */
|
|
191628
191651
|
MiteredSweepOutputSelect[MiteredSweepOutputSelect["AlsoMesh"] = 2] = "AlsoMesh";
|
|
191629
191652
|
})(MiteredSweepOutputSelect || (MiteredSweepOutputSelect = {}));
|
|
191653
|
+
;
|
|
191630
191654
|
/**
|
|
191631
191655
|
* The `CurveFactory` class contains methods for specialized curve constructions.
|
|
191632
191656
|
* @public
|
|
@@ -191932,75 +191956,132 @@ class CurveFactory {
|
|
|
191932
191956
|
}
|
|
191933
191957
|
return arcs;
|
|
191934
191958
|
}
|
|
191959
|
+
/** For a smooth curve, stroke and return unnormalized start/end tangents. */
|
|
191960
|
+
static strokeSmoothCurve(curve, options) {
|
|
191961
|
+
let startTangent, endTangent;
|
|
191962
|
+
if (curve instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_12__.CurvePrimitive) {
|
|
191963
|
+
startTangent = curve.fractionToPointAndDerivative(0.0).direction;
|
|
191964
|
+
endTangent = curve.fractionToPointAndDerivative(1.0).direction;
|
|
191965
|
+
const strokes = _LineString3d__WEBPACK_IMPORTED_MODULE_4__.LineString3d.create();
|
|
191966
|
+
curve.emitStrokes(strokes, options);
|
|
191967
|
+
curve = strokes.packedPoints;
|
|
191968
|
+
}
|
|
191969
|
+
else if (curve instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveChain) {
|
|
191970
|
+
startTangent = curve.startPointAndDerivative()?.direction;
|
|
191971
|
+
endTangent = curve.endPointAndDerivative()?.direction;
|
|
191972
|
+
const strokes = curve.getPackedStrokes(options);
|
|
191973
|
+
if (!strokes)
|
|
191974
|
+
return undefined;
|
|
191975
|
+
curve = strokes;
|
|
191976
|
+
}
|
|
191977
|
+
else if (Array.isArray(curve))
|
|
191978
|
+
curve = new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_3__.Point3dArrayCarrier(curve);
|
|
191979
|
+
return { strokes: curve, startTangent, endTangent };
|
|
191980
|
+
}
|
|
191935
191981
|
/**
|
|
191936
|
-
*
|
|
191937
|
-
* *
|
|
191938
|
-
|
|
191939
|
-
|
|
191940
|
-
|
|
191941
|
-
|
|
191942
|
-
|
|
191943
|
-
|
|
191944
|
-
|
|
191945
|
-
|
|
191946
|
-
|
|
191947
|
-
|
|
191948
|
-
|
|
191949
|
-
|
|
191982
|
+
* Align two bisector plane normals to given smooth rail tangents or optional overrides.
|
|
191983
|
+
* * Optionally average the normals for physically closed rail.
|
|
191984
|
+
*/
|
|
191985
|
+
static alignFirstAndLastBisectorPlanes(firstPlane, lastPlane, smoothRailData, options) {
|
|
191986
|
+
const normal0 = options?.startTangent ?? (smoothRailData?.startTangent ?? firstPlane.getNormalRef());
|
|
191987
|
+
const normal1 = options?.endTangent ?? (smoothRailData?.endTangent ?? lastPlane.getNormalRef());
|
|
191988
|
+
if (options?.wrapIfPhysicallyClosed && firstPlane.getOriginRef().isAlmostEqual(lastPlane.getOriginRef())) {
|
|
191989
|
+
const avgNormal = normal0.plus(normal1);
|
|
191990
|
+
if (avgNormal.tryNormalizeInPlace()) { // ignore cusp at seam
|
|
191991
|
+
firstPlane.getNormalRef().setFrom(avgNormal);
|
|
191992
|
+
lastPlane.getNormalRef().setFrom(avgNormal);
|
|
191993
|
+
return;
|
|
191994
|
+
}
|
|
191995
|
+
}
|
|
191996
|
+
if (normal0.tryNormalizeInPlace())
|
|
191997
|
+
firstPlane.getNormalRef().setFrom(normal0);
|
|
191998
|
+
if (normal1.tryNormalizeInPlace())
|
|
191999
|
+
lastPlane.getNormalRef().setFrom(normal1);
|
|
192000
|
+
}
|
|
192001
|
+
/** Reverse a closed curve or region if necessary so that its orientation is CCW with respect to the plane normal. */
|
|
192002
|
+
static alignClosedCurveToPlane(curve, planeNormal) {
|
|
192003
|
+
let closedCurve;
|
|
192004
|
+
if (curve instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_12__.CurvePrimitive) {
|
|
192005
|
+
if (curve.startPoint().isAlmostEqual(curve.endPoint()))
|
|
192006
|
+
closedCurve = _Loop__WEBPACK_IMPORTED_MODULE_6__.Loop.create(curve);
|
|
192007
|
+
}
|
|
192008
|
+
else if (curve.isAnyRegion())
|
|
192009
|
+
closedCurve = curve;
|
|
192010
|
+
if (closedCurve) {
|
|
192011
|
+
// The alignment condition is equivalent to positive projected curve area computed wrt to the plane normal.
|
|
192012
|
+
const toLocal = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_15__.Matrix3d.createRigidHeadsUp(planeNormal).transpose();
|
|
192013
|
+
const projection = closedCurve.cloneTransformed(_geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createOriginAndMatrix(undefined, toLocal));
|
|
192014
|
+
if (projection) { // now we can ignore z-coords
|
|
192015
|
+
const areaXY = _RegionOps__WEBPACK_IMPORTED_MODULE_17__.RegionOps.computeXYArea(projection);
|
|
192016
|
+
if (areaXY && areaXY < 0)
|
|
192017
|
+
curve.reverseInPlace();
|
|
192018
|
+
}
|
|
192019
|
+
}
|
|
192020
|
+
}
|
|
192021
|
+
/**
|
|
192022
|
+
* Projection to target plane, constructing sweep direction from two given planes.
|
|
192023
|
+
* * If successful, push the target plane and swept section to the output arrays and return the swept section.
|
|
192024
|
+
* * If unsuccessful, leave the output arrays alone and return the input section.
|
|
192025
|
+
*/
|
|
192026
|
+
static doSweepToPlane(output, edgePlane0, edgePlane1, targetPlane, section) {
|
|
192027
|
+
const sweepVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createStartEnd(edgePlane0.getOriginRef(), edgePlane1.getOriginRef());
|
|
192028
|
+
const transform = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createFlattenAlongVectorToPlane(sweepVector, targetPlane.getOriginRef(), targetPlane.getNormalRef());
|
|
192029
|
+
if (transform === undefined)
|
|
192030
|
+
return section;
|
|
192031
|
+
const transformedSection = section.cloneTransformed(transform);
|
|
192032
|
+
if (transformedSection === undefined)
|
|
192033
|
+
return section;
|
|
192034
|
+
output.planes.push(targetPlane);
|
|
192035
|
+
output.sections.push(transformedSection);
|
|
192036
|
+
return transformedSection;
|
|
192037
|
+
}
|
|
192038
|
+
/**
|
|
192039
|
+
* Sweep the `initialSection` along each segment of the (stroked) `centerline` until it hits the bisector plane at
|
|
192040
|
+
* the next vertex.
|
|
192041
|
+
* * For best results, the caller should place `initialSection` in a plane perpendicular to the `centerline`
|
|
192042
|
+
* start tangent.
|
|
192043
|
+
* * This plane is commonly (but not necessarily) through the centerline start point itself.
|
|
192044
|
+
* * To compute the sections, `initialSection` is projected in the direction of the centerline start tangent onto
|
|
192045
|
+
* the first bisector plane at the centerline start. The result of this projection will be likewise projected onto
|
|
192046
|
+
* the second plane, and so on in sequence.
|
|
192047
|
+
* * By default, the first/last bisector plane normals are set to the centerline start/end tangents. The caller can
|
|
192048
|
+
* override these with tangents supplied in `options`. If the centerline is physically closed and
|
|
192049
|
+
* `options.wrapIfPhysicallyClosed` is true, the first and last plane normals are averaged and equated.
|
|
192050
|
+
* * The centerline path does NOT have to be planar, however non-planarity will result in twisting of the sections
|
|
192051
|
+
* in the bisector planes.
|
|
192052
|
+
* @param centerline sweep path. Will be stroked if smooth.
|
|
191950
192053
|
* @param initialSection profile curve to be swept. As noted above, this should be on a plane perpendicular to the
|
|
191951
|
-
*
|
|
192054
|
+
* centerline start tangent.
|
|
191952
192055
|
* @param options options for computation and output.
|
|
191953
|
-
* @return array of sections,
|
|
192056
|
+
* @return array of sections, formed from projecting `initialSection` successively onto the bisector planes.
|
|
191954
192057
|
*/
|
|
191955
192058
|
static createMiteredSweepSections(centerline, initialSection, options) {
|
|
192059
|
+
const rail = this.strokeSmoothCurve(centerline, options.strokeOptions);
|
|
192060
|
+
if (!rail)
|
|
192061
|
+
return undefined;
|
|
192062
|
+
const planes = _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_18__.PolylineOps.createBisectorPlanesForDistinctPoints(rail.strokes);
|
|
192063
|
+
if (!planes || planes.length < 2)
|
|
192064
|
+
return undefined;
|
|
192065
|
+
this.alignFirstAndLastBisectorPlanes(planes[0], planes[planes.length - 1], rail, options);
|
|
192066
|
+
// RuledSweep facet construction assumes the contours are oriented CCW with respect to the sweep direction so that
|
|
192067
|
+
// facet normals point outward. We only have to align the first contour; the rest will inherit its orientation.
|
|
192068
|
+
this.alignClosedCurveToPlane(initialSection, planes[0].getNormalRef());
|
|
191956
192069
|
const sectionData = { sections: [], planes: [] };
|
|
191957
|
-
|
|
191958
|
-
|
|
191959
|
-
|
|
191960
|
-
|
|
191961
|
-
const
|
|
191962
|
-
|
|
191963
|
-
|
|
191964
|
-
|
|
191965
|
-
|
|
191966
|
-
|
|
191967
|
-
|
|
191968
|
-
if (endTang?.tryNormalizeInPlace())
|
|
191969
|
-
lastPlane.getNormalRef().setFrom(endTang);
|
|
191970
|
-
}
|
|
191971
|
-
// Projection to target plane, constructing sweep direction from two given planes.
|
|
191972
|
-
// If successful, push the target plane and swept section to the output arrays and return the swept section.
|
|
191973
|
-
// If unsuccessful, leave the output arrays alone and return the input section.
|
|
191974
|
-
const doSweepToPlane = function (edgePlane0, edgePlane1, targetPlane, section) {
|
|
191975
|
-
const sweepVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createStartEnd(edgePlane0.getOriginRef(), edgePlane1.getOriginRef());
|
|
191976
|
-
const transform = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_17__.Transform.createFlattenAlongVectorToPlane(sweepVector, targetPlane.getOriginRef(), targetPlane.getNormalRef());
|
|
191977
|
-
if (transform === undefined)
|
|
191978
|
-
return section;
|
|
191979
|
-
const transformedSection = section.cloneTransformed(transform);
|
|
191980
|
-
if (transformedSection === undefined)
|
|
191981
|
-
return section;
|
|
191982
|
-
sectionData.planes.push(targetPlane);
|
|
191983
|
-
sectionData.sections.push(transformedSection);
|
|
191984
|
-
return transformedSection;
|
|
191985
|
-
};
|
|
191986
|
-
let currentSection = doSweepToPlane(planes[0], planes[1], planes[0], initialSection);
|
|
191987
|
-
for (let i = 1; i < planes.length; i++) {
|
|
191988
|
-
currentSection = doSweepToPlane(planes[i - 1], planes[i], planes[i], currentSection);
|
|
191989
|
-
}
|
|
191990
|
-
if (options.outputSelect) {
|
|
191991
|
-
const ruledSweep = _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_18__.RuledSweep.create(sectionData.sections, options.capped ?? false);
|
|
191992
|
-
if (ruledSweep) {
|
|
191993
|
-
sectionData.ruledSweep = ruledSweep;
|
|
191994
|
-
if (MiteredSweepOutputSelect.AlsoMesh === options.outputSelect) {
|
|
191995
|
-
const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_13__.PolyfaceBuilder.create(options.strokeOptions);
|
|
191996
|
-
builder.addRuledSweep(ruledSweep);
|
|
191997
|
-
sectionData.mesh = builder.claimPolyface();
|
|
191998
|
-
}
|
|
192070
|
+
let currentSection = this.doSweepToPlane(sectionData, planes[0], planes[1], planes[0], initialSection);
|
|
192071
|
+
for (let i = 1; i < planes.length; i++)
|
|
192072
|
+
currentSection = this.doSweepToPlane(sectionData, planes[i - 1], planes[i], planes[i], currentSection);
|
|
192073
|
+
if (options.outputSelect) {
|
|
192074
|
+
const ruledSweep = _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_19__.RuledSweep.create(sectionData.sections, options.capped ?? false);
|
|
192075
|
+
if (ruledSweep) {
|
|
192076
|
+
sectionData.ruledSweep = ruledSweep;
|
|
192077
|
+
if (MiteredSweepOutputSelect.AlsoMesh === options.outputSelect) {
|
|
192078
|
+
const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_13__.PolyfaceBuilder.create(options.strokeOptions);
|
|
192079
|
+
builder.addRuledSweep(ruledSweep);
|
|
192080
|
+
sectionData.mesh = builder.claimPolyface();
|
|
191999
192081
|
}
|
|
192000
192082
|
}
|
|
192001
|
-
return sectionData;
|
|
192002
192083
|
}
|
|
192003
|
-
return
|
|
192084
|
+
return sectionData;
|
|
192004
192085
|
}
|
|
192005
192086
|
/**
|
|
192006
192087
|
* Create a circular arc from start point, tangent at start, radius, optional plane normal, arc sweep.
|
|
@@ -192032,25 +192113,25 @@ class CurveFactory {
|
|
|
192032
192113
|
const lineTurnRadians = vectorAB.angleToXY(vectorBC0);
|
|
192033
192114
|
const spiralTurnRadians = 0.5 * lineTurnRadians.radians;
|
|
192034
192115
|
const radiansBC = radiansAB + lineTurnRadians.radians;
|
|
192035
|
-
const axesA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_15__.Matrix3d.createRotationAroundAxisIndex(_Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisIndex.Z,
|
|
192036
|
-
const frameA =
|
|
192116
|
+
const axesA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_15__.Matrix3d.createRotationAroundAxisIndex(_Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisIndex.Z, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(radiansAB));
|
|
192117
|
+
const frameA = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createRefs(startPoint.clone(), axesA);
|
|
192037
192118
|
// We know how much it has to turn, and but not the length or end radius.
|
|
192038
192119
|
// make a spiral of referenceLength and scale it back to the junction line
|
|
192039
|
-
const spiralARefLength =
|
|
192120
|
+
const spiralARefLength = _spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_21__.IntegratedSpiral3d.createFrom4OutOf5(spiralType, 0.0, undefined, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(0), _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(spiralTurnRadians), referenceLength, undefined, frameA);
|
|
192040
192121
|
if (spiralARefLength) {
|
|
192041
192122
|
const midPlanePerpendicularRadians = radiansAB + spiralTurnRadians;
|
|
192042
|
-
const midPlanePerpendicularVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createPolar(1.0,
|
|
192123
|
+
const midPlanePerpendicularVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createPolar(1.0, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(midPlanePerpendicularRadians));
|
|
192043
192124
|
const altitudeB = midPlanePerpendicularVector.dotProductStartEnd(startPoint, shoulderPoint);
|
|
192044
192125
|
const altitudeSpiralEnd = midPlanePerpendicularVector.dotProductStartEnd(startPoint, spiralARefLength.endPoint());
|
|
192045
192126
|
const scaleFactor = altitudeB / altitudeSpiralEnd;
|
|
192046
|
-
const spiralA =
|
|
192127
|
+
const spiralA = _spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_21__.IntegratedSpiral3d.createFrom4OutOf5(spiralType, 0.0, undefined, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(0), _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(spiralTurnRadians), referenceLength * scaleFactor, undefined, frameA);
|
|
192047
192128
|
const distanceAB = vectorAB.magnitude();
|
|
192048
192129
|
const vectorBC = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createStartEnd(shoulderPoint, targetPoint);
|
|
192049
192130
|
vectorBC.scaleToLength(distanceAB, vectorBC);
|
|
192050
192131
|
const pointC = shoulderPoint.plus(vectorBC);
|
|
192051
|
-
const axesC = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_15__.Matrix3d.createRotationAroundAxisIndex(_Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisIndex.Z,
|
|
192052
|
-
const frameC =
|
|
192053
|
-
const spiralC =
|
|
192132
|
+
const axesC = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_15__.Matrix3d.createRotationAroundAxisIndex(_Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisIndex.Z, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(radiansBC + Math.PI));
|
|
192133
|
+
const frameC = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createRefs(pointC, axesC);
|
|
192134
|
+
const spiralC = _spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_21__.IntegratedSpiral3d.createFrom4OutOf5(spiralType, 0, -spiralA.radius01.x1, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.zero(), undefined, spiralA.curveLength(), _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_22__.Segment1d.create(1, 0), frameC);
|
|
192054
192135
|
return [spiralA, spiralC];
|
|
192055
192136
|
}
|
|
192056
192137
|
return undefined;
|
|
@@ -192073,7 +192154,7 @@ class CurveFactory {
|
|
|
192073
192154
|
const spiralTurnRadians = 0.5 * lineTurnAngle.radians;
|
|
192074
192155
|
const bisectorRadians = 0.5 * (Math.PI - lineTurnAngle.radians);
|
|
192075
192156
|
const radiansCB = Math.atan2(-vectorBC.y, -vectorBC.x);
|
|
192076
|
-
const spiralAB0 =
|
|
192157
|
+
const spiralAB0 = _spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_21__.IntegratedSpiral3d.createFrom4OutOf5(spiralType, 0, undefined, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.zero(), _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(spiralTurnRadians), spiralLength, undefined, _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createIdentity());
|
|
192077
192158
|
if (spiralAB0) {
|
|
192078
192159
|
const localEndPoint = spiralAB0.fractionToPoint(1);
|
|
192079
192160
|
const distanceAB = pointA.distance(pointB);
|
|
@@ -192084,14 +192165,14 @@ class CurveFactory {
|
|
|
192084
192165
|
const xFractionAB = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(distanceAB - distanceBE - localEndPoint.x, distanceAB);
|
|
192085
192166
|
const xFractionCB = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(distanceCB - distanceBE - localEndPoint.x, distanceCB);
|
|
192086
192167
|
if (xFractionAB !== undefined && xFractionCB !== undefined) {
|
|
192087
|
-
const axesA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_15__.Matrix3d.createRotationAroundAxisIndex(_Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisIndex.Z,
|
|
192168
|
+
const axesA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_15__.Matrix3d.createRotationAroundAxisIndex(_Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisIndex.Z, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(radiansAB));
|
|
192088
192169
|
const frameAOrigin = pointA.interpolate(xFractionAB, pointB);
|
|
192089
|
-
const frameA =
|
|
192090
|
-
const spiralAB =
|
|
192091
|
-
const axesB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_15__.Matrix3d.createRotationAroundAxisIndex(_Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisIndex.Z,
|
|
192170
|
+
const frameA = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createRefs(frameAOrigin, axesA);
|
|
192171
|
+
const spiralAB = _spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_21__.IntegratedSpiral3d.createFrom4OutOf5(spiralType, 0, undefined, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.zero(), _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(spiralTurnRadians), spiralLength, undefined, frameA);
|
|
192172
|
+
const axesB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_15__.Matrix3d.createRotationAroundAxisIndex(_Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisIndex.Z, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(radiansCB));
|
|
192092
192173
|
const frameBOrigin = pointC.interpolate(xFractionCB, pointB);
|
|
192093
|
-
const frameB =
|
|
192094
|
-
const spiralBC =
|
|
192174
|
+
const frameB = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createRefs(frameBOrigin, axesB);
|
|
192175
|
+
const spiralBC = _spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_21__.IntegratedSpiral3d.createFrom4OutOf5(spiralType, 0, undefined, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.zero(), _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.createRadians(-spiralTurnRadians), spiralLength, undefined, frameB);
|
|
192095
192176
|
return [spiralAB, spiralBC];
|
|
192096
192177
|
}
|
|
192097
192178
|
}
|
|
@@ -192123,8 +192204,8 @@ class CurveFactory {
|
|
|
192123
192204
|
const sideB = -sideA;
|
|
192124
192205
|
const radiusA = sideA * Math.abs(arcRadius);
|
|
192125
192206
|
const radiusB = sideB * Math.abs(arcRadius);
|
|
192126
|
-
const spiralA =
|
|
192127
|
-
const spiralB =
|
|
192207
|
+
const spiralA = _spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_21__.IntegratedSpiral3d.createFrom4OutOf5(spiralType, 0, radiusA, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.zero(), undefined, lengthA, undefined, _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createIdentity());
|
|
192208
|
+
const spiralB = _spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_21__.IntegratedSpiral3d.createFrom4OutOf5(spiralType, 0, radiusB, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_20__.Angle.zero(), undefined, lengthB, undefined, _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createIdentity());
|
|
192128
192209
|
const spiralEndA = spiralA.fractionToPointAndUnitTangent(1.0);
|
|
192129
192210
|
const spiralEndB = spiralB.fractionToPointAndUnitTangent(1.0);
|
|
192130
192211
|
// From the end of spiral, step away to arc center (and this is in local coordinates of each spiral)
|
|
@@ -192135,12 +192216,12 @@ class CurveFactory {
|
|
|
192135
192216
|
// Those local coordinates are rotated to unitAB and unitBC ...
|
|
192136
192217
|
const vectorA = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createAdd2Scaled(unitAB, sA, unitPerpAB, tA);
|
|
192137
192218
|
const vectorB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createAdd2Scaled(unitCB, sB, unitPerpCB, tB);
|
|
192138
|
-
const uv =
|
|
192139
|
-
if (
|
|
192219
|
+
const uv = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_23__.Vector2d.create();
|
|
192220
|
+
if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_24__.SmallSystem.linearSystem2d(unitAB.x, -unitCB.x, unitAB.y, -unitCB.y, vectorB.x - vectorA.x, vectorB.y - vectorA.y, uv)) {
|
|
192140
192221
|
const tangencyAB = pointB.plusScaled(unitAB, uv.x);
|
|
192141
192222
|
const tangencyCB = pointB.plusScaled(unitCB, uv.y);
|
|
192142
|
-
const frameA =
|
|
192143
|
-
const frameB =
|
|
192223
|
+
const frameA = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createOriginAndMatrixColumns(tangencyAB, unitAB, unitPerpAB, _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.unitZ());
|
|
192224
|
+
const frameB = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_16__.Transform.createOriginAndMatrixColumns(tangencyCB, unitCB, unitPerpCB, _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.unitZ());
|
|
192144
192225
|
spiralA.tryTransformInPlace(frameA);
|
|
192145
192226
|
spiralB.tryTransformInPlace(frameB);
|
|
192146
192227
|
const rayA1 = spiralA.fractionToPointAndUnitTangent(1.0);
|
|
@@ -192167,9 +192248,9 @@ class CurveFactory {
|
|
|
192167
192248
|
const normalCx = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(normalAy, normalAz, normalBy, normalBz);
|
|
192168
192249
|
const normalCy = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(normalAz, normalAx, normalBz, normalBx);
|
|
192169
192250
|
const normalCz = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(normalAx, normalAy, normalBx, normalBy);
|
|
192170
|
-
const rayOrigin =
|
|
192251
|
+
const rayOrigin = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_24__.SmallSystem.linearSystem3d(normalAx, normalAy, normalAz, normalBx, normalBy, normalBz, normalCx, normalCy, normalCz, -altitudeA, -altitudeB, 0.0);
|
|
192171
192252
|
if (rayOrigin !== undefined) {
|
|
192172
|
-
return
|
|
192253
|
+
return _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_25__.Ray3d.createXYZUVW(rayOrigin.x, rayOrigin.y, rayOrigin.z, normalCx, normalCy, normalCz);
|
|
192173
192254
|
}
|
|
192174
192255
|
return undefined;
|
|
192175
192256
|
}
|
|
@@ -212361,10 +212442,10 @@ class FrameBuilder {
|
|
|
212361
212442
|
this.announcePoint(data.endPoint());
|
|
212362
212443
|
}
|
|
212363
212444
|
else if (data instanceof _curve_Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
|
|
212364
|
-
const
|
|
212365
|
-
this.announcePoint(
|
|
212366
|
-
this.announceVector(
|
|
212367
|
-
this.announceVector(
|
|
212445
|
+
const plane = data.fractionToPointAnd2Derivatives(0.0);
|
|
212446
|
+
this.announcePoint(plane.origin);
|
|
212447
|
+
this.announceVector(plane.vectorU);
|
|
212448
|
+
this.announceVector(plane.vectorV);
|
|
212368
212449
|
}
|
|
212369
212450
|
else if (data instanceof _curve_LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d) {
|
|
212370
212451
|
for (const point of data.points) {
|
|
@@ -222262,8 +222343,8 @@ class Vector3d extends XYZ {
|
|
|
222262
222343
|
* * The input tolerances in `options`, if given, are considered to be squared for efficiency's sake,
|
|
222263
222344
|
* so if you have a distance or angle tolerance t, you should pass in t * t.
|
|
222264
222345
|
* @param other second vector in comparison
|
|
222265
|
-
* @param oppositeIsParallel whether to consider diametrically opposed vectors as parallel
|
|
222266
|
-
* @param returnValueIfAnInputIsZeroLength if either vector is near zero length, return this value.
|
|
222346
|
+
* @param oppositeIsParallel whether to consider diametrically opposed vectors as parallel. Default false.
|
|
222347
|
+
* @param returnValueIfAnInputIsZeroLength if either vector is near zero length, return this value. Default false.
|
|
222267
222348
|
* @param options optional radian and distance tolerances.
|
|
222268
222349
|
*/
|
|
222269
222350
|
isParallelTo(other, oppositeIsParallel = false, returnValueIfAnInputIsZeroLength = false, options) {
|
|
@@ -224159,8 +224240,8 @@ class PolygonOps {
|
|
|
224159
224240
|
}
|
|
224160
224241
|
/**
|
|
224161
224242
|
* Return a Ray3d with (assuming the polygon is planar and not self-intersecting):
|
|
224162
|
-
* * `origin` at the centroid of the (3D) polygon
|
|
224163
|
-
* * `direction` is the unit vector perpendicular to the plane
|
|
224243
|
+
* * `origin` at the centroid of the (3D) polygon,
|
|
224244
|
+
* * `direction` is the unit vector perpendicular to the plane,
|
|
224164
224245
|
* * `a` is the area.
|
|
224165
224246
|
* @param points
|
|
224166
224247
|
*/
|
|
@@ -225909,7 +225990,7 @@ class PolylineOps {
|
|
|
225909
225990
|
* * If there are one or fewer distinct input points, the return is undefined.
|
|
225910
225991
|
* @param centerline points to reside in output planes.
|
|
225911
225992
|
* @param wrapIfPhysicallyClosed if true and the first and last centerline points are the same, then the first and last
|
|
225912
|
-
* output planes are averaged and equated (cloned).
|
|
225993
|
+
* output planes are averaged and equated (cloned). Default false.
|
|
225913
225994
|
*/
|
|
225914
225995
|
static createBisectorPlanesForDistinctPoints(centerline, wrapIfPhysicallyClosed = false) {
|
|
225915
225996
|
const packedPoints = PolylineOps.compressShortEdges(centerline, 2.0 * _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.smallMetricDistance); // double the tolerance to ensure normalized vectors exist.
|
|
@@ -231193,8 +231274,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
231193
231274
|
/** @packageDocumentation
|
|
231194
231275
|
* @module Numerics
|
|
231195
231276
|
*/
|
|
231196
|
-
// import { Point2d } from "./Geometry2d";
|
|
231197
231277
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
231278
|
+
// cspell:word ABAT
|
|
231198
231279
|
|
|
231199
231280
|
|
|
231200
231281
|
|
|
@@ -231207,58 +231288,55 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
231207
231288
|
* * origin = local origin used as moments are summed.
|
|
231208
231289
|
* * sums = array of summed moments.
|
|
231209
231290
|
* * The [i,j] entry of the sums is a summed or integrated moment for product of axis i and j.
|
|
231210
|
-
* * axes 0,1,2 are x,y,z
|
|
231291
|
+
* * axes 0,1,2 are x,y,z.
|
|
231211
231292
|
* * e.g. entry [0,1] is summed product xy
|
|
231212
231293
|
* * axis 3 is "w", which is 1 in sums.
|
|
231213
|
-
* * e.g. entry 03 is summed x
|
|
231214
|
-
* * In this level
|
|
231294
|
+
* * e.g. entry 03 is summed x.
|
|
231295
|
+
* * In this level:
|
|
231215
231296
|
* * the `absoluteQuantity` member is undefined.
|
|
231216
231297
|
* * the `localToWorldMap` and `radiiOfGyration` are created by have undefined contents.
|
|
231217
|
-
* * Second level: after a call to inertiaProductsToPrincipalAxes, the `localToWorldMap`, `absoluteQuantity` and
|
|
231298
|
+
* * Second level: after a call to inertiaProductsToPrincipalAxes, the `localToWorldMap`, `absoluteQuantity` and
|
|
231299
|
+
* `radiiOfGyration` are filled in.
|
|
231218
231300
|
* @public
|
|
231219
231301
|
*/
|
|
231220
231302
|
class MomentData {
|
|
231221
|
-
/**
|
|
231222
|
-
*
|
|
231303
|
+
/**
|
|
231304
|
+
* Return the lower-right (3,3) entry in the sums.
|
|
231305
|
+
* * This is the quantity (i.e. length, area, or volume) summed.
|
|
231223
231306
|
*/
|
|
231224
|
-
get quantitySum() {
|
|
231225
|
-
|
|
231307
|
+
get quantitySum() {
|
|
231308
|
+
return this.sums.atIJ(3, 3);
|
|
231309
|
+
}
|
|
231310
|
+
/**
|
|
231311
|
+
* Return a scale factor to make these sums match the target orientation sign.
|
|
231226
231312
|
* * 1.0 if `this.quantitySum` has the same sign as `targetSign`.
|
|
231227
231313
|
* * -1.0 if `this.quantitySum` has the opposite sign from `targetSign`
|
|
231228
231314
|
*/
|
|
231229
231315
|
signFactor(targetSign) {
|
|
231230
231316
|
return targetSign * this.quantitySum > 0 ? 1.0 : -1.0;
|
|
231231
231317
|
}
|
|
231232
|
-
/**
|
|
231233
|
-
* If `this.needOrigin` flag is set, copy `origin` to `this.origin` and clear the flag.
|
|
231234
|
-
*
|
|
231235
|
-
*/
|
|
231318
|
+
/** If `this.needOrigin` flag is set, copy `origin` to `this.origin` and clear the flag. */
|
|
231236
231319
|
setOriginIfNeeded(origin) {
|
|
231237
231320
|
if (this.needOrigin) {
|
|
231238
231321
|
this.origin.setFromPoint3d(origin);
|
|
231239
231322
|
this.needOrigin = false;
|
|
231240
231323
|
}
|
|
231241
231324
|
}
|
|
231242
|
-
/**
|
|
231243
|
-
* If `this.needOrigin` flag is set, copy `origin` to `this.origin` and clear the flag.
|
|
231244
|
-
*
|
|
231245
|
-
*/
|
|
231325
|
+
/** If `this.needOrigin` flag is set, copy `origin` to `this.origin` and clear the flag. */
|
|
231246
231326
|
setOriginFromGrowableXYZArrayIfNeeded(points) {
|
|
231247
231327
|
if (this.needOrigin && points.length > 0) {
|
|
231248
231328
|
points.getPoint3dAtCheckedPointIndex(0, this.origin);
|
|
231249
231329
|
this.needOrigin = false;
|
|
231250
231330
|
}
|
|
231251
231331
|
}
|
|
231252
|
-
/**
|
|
231253
|
-
* If `this.needOrigin` flag is set, copy `origin` to `this.origin` and clear the flag.
|
|
231254
|
-
*
|
|
231255
|
-
*/
|
|
231332
|
+
/** If `this.needOrigin` flag is set, copy `origin` to `this.origin` and clear the flag. */
|
|
231256
231333
|
setOriginXYZIfNeeded(x, y, z) {
|
|
231257
231334
|
if (this.needOrigin) {
|
|
231258
231335
|
this.origin.set(x, y, z);
|
|
231259
231336
|
this.needOrigin = false;
|
|
231260
231337
|
}
|
|
231261
231338
|
}
|
|
231339
|
+
/** Constructor. */
|
|
231262
231340
|
constructor() {
|
|
231263
231341
|
this._point0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
231264
231342
|
this._point1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
|
|
@@ -231270,12 +231348,13 @@ class MomentData {
|
|
|
231270
231348
|
this.absoluteQuantity = 0.1; // so optimizer sees its type
|
|
231271
231349
|
this.absoluteQuantity = undefined;
|
|
231272
231350
|
}
|
|
231273
|
-
/**
|
|
231274
|
-
*
|
|
231351
|
+
/**
|
|
231352
|
+
* Create moments with optional origin.
|
|
231353
|
+
* * Origin and needOrigin are quirky.
|
|
231275
231354
|
* * (undefined, true) sets up to use first incoming point as origin.
|
|
231276
|
-
* * (origin) sets up to use that durable origin, set needsOrigin flag false
|
|
231277
|
-
* * (origin, true) the "true" is meaningless
|
|
231278
|
-
* * (undefined, false) makes 000 the durable origin
|
|
231355
|
+
* * (origin) sets up to use that durable origin, set needsOrigin flag false.
|
|
231356
|
+
* * (origin, true) the "true" is meaningless.
|
|
231357
|
+
* * (undefined, false) makes 000 the durable origin.
|
|
231279
231358
|
*/
|
|
231280
231359
|
static create(origin, needOrigin = false) {
|
|
231281
231360
|
const data = new MomentData();
|
|
@@ -231287,8 +231366,8 @@ class MomentData {
|
|
|
231287
231366
|
return data;
|
|
231288
231367
|
}
|
|
231289
231368
|
/**
|
|
231290
|
-
* Return the formal tensor of integrated values `[yy+zz,xy,xz][yx,xx+zz,yz][zx,xy,xx+yy]
|
|
231291
|
-
* @param products matrix of (integrated) `[xx,xy,xz][yx,yy,yz][zx,xy,zz]
|
|
231369
|
+
* Return the formal tensor of integrated values `[yy+zz,xy,xz][yx,xx+zz,yz][zx,xy,xx+yy]`.
|
|
231370
|
+
* @param products matrix of (integrated) `[xx,xy,xz][yx,yy,yz][zx,xy,zz]`.
|
|
231292
231371
|
*/
|
|
231293
231372
|
static momentTensorFromInertiaProducts(products) {
|
|
231294
231373
|
const rr = products.sumDiagonal();
|
|
@@ -231321,7 +231400,7 @@ class MomentData {
|
|
|
231321
231400
|
}
|
|
231322
231401
|
/**
|
|
231323
231402
|
* Return the principal moment data for an array of points.
|
|
231324
|
-
* @param points array of points
|
|
231403
|
+
* @param points array of points.
|
|
231325
231404
|
*/
|
|
231326
231405
|
static pointsToPrincipalAxes(points) {
|
|
231327
231406
|
const moments = new MomentData();
|
|
@@ -231332,12 +231411,12 @@ class MomentData {
|
|
|
231332
231411
|
return this.inertiaProductsToPrincipalAxes(moments.origin, moments.sums);
|
|
231333
231412
|
}
|
|
231334
231413
|
/**
|
|
231335
|
-
* Compute principal axes from inertial products
|
|
231336
|
-
* * The radii of gyration are sorted smallest to largest
|
|
231337
|
-
* * Hence x axis is long direction
|
|
231338
|
-
* * Hence planar data generates large moment as Z
|
|
231414
|
+
* Compute principal axes from inertial products.
|
|
231415
|
+
* * The radii of gyration are sorted smallest to largest.
|
|
231416
|
+
* * Hence x axis is long direction.
|
|
231417
|
+
* * Hence planar data generates large moment as Z.
|
|
231339
231418
|
* @param origin The origin used for the inertia products.
|
|
231340
|
-
* @param inertiaProducts The inertia products
|
|
231419
|
+
* @param inertiaProducts The inertia products: sums or integrals of [xx,xy,xz,xw; yx,yy, yz,yw; zx,zy,zz,zw; wx,wy,wz,w].
|
|
231341
231420
|
*/
|
|
231342
231421
|
static inertiaProductsToPrincipalAxes(origin, inertiaProducts) {
|
|
231343
231422
|
const moments = new MomentData();
|
|
@@ -231365,18 +231444,19 @@ class MomentData {
|
|
|
231365
231444
|
return moments;
|
|
231366
231445
|
}
|
|
231367
231446
|
/**
|
|
231368
|
-
* Test for match among selected members as they exist after `inertiaProductsToPrincipalAxes
|
|
231369
|
-
* * The members considered are
|
|
231370
|
-
* * origin of local to world map (i.e. centroid)
|
|
231371
|
-
* * radius of gyration
|
|
231447
|
+
* Test for match among selected members as they exist after `inertiaProductsToPrincipalAxes`.
|
|
231448
|
+
* * The members considered are:
|
|
231449
|
+
* * origin of local to world map (i.e. centroid),
|
|
231450
|
+
* * radius of gyration,
|
|
231372
231451
|
* * axes of localToWorldMap.
|
|
231373
231452
|
* * Axis direction tests allow these quirks:
|
|
231374
231453
|
* * opposite orientation is considered matched.
|
|
231375
231454
|
* * Full xyz symmetry: If x,y,z radii are matched, axes are not tested.
|
|
231376
|
-
* * Symmetry in xy plane: If x and y radii are matched, the x and y axes area allowed to spin freely.
|
|
231455
|
+
* * Symmetry in xy plane: If x and y radii are matched, the x and y axes area allowed to spin freely. Only Z direction
|
|
231456
|
+
* is tested.
|
|
231377
231457
|
* * If either or both are undefined, returns false.
|
|
231378
|
-
* @param dataA first set of moments
|
|
231379
|
-
* @param dataB second set of moments
|
|
231458
|
+
* @param dataA first set of moments.
|
|
231459
|
+
* @param dataB second set of moments.
|
|
231380
231460
|
*/
|
|
231381
231461
|
static areEquivalentPrincipalAxes(dataA, dataB) {
|
|
231382
231462
|
if (dataA && dataB
|
|
@@ -231424,7 +231504,7 @@ class MomentData {
|
|
|
231424
231504
|
this.sums.addMomentsInPlace(p.x - this.origin.x, p.y - this.origin.y, p.z - this.origin.z, 1.0);
|
|
231425
231505
|
}
|
|
231426
231506
|
}
|
|
231427
|
-
/**
|
|
231507
|
+
/** Revise the accumulated sums to be "around the centroid". */
|
|
231428
231508
|
shiftOriginAndSumsToCentroidOfSums() {
|
|
231429
231509
|
const xyz = this.sums.columnW().realPoint();
|
|
231430
231510
|
if (xyz) {
|
|
@@ -231433,7 +231513,8 @@ class MomentData {
|
|
|
231433
231513
|
}
|
|
231434
231514
|
return false;
|
|
231435
231515
|
}
|
|
231436
|
-
/**
|
|
231516
|
+
/**
|
|
231517
|
+
* Revise the accumulated sums.
|
|
231437
231518
|
* * add ax,ay,ax to the origin coordinates.
|
|
231438
231519
|
* * apply the negative translation to the sums.
|
|
231439
231520
|
*/
|
|
@@ -231441,11 +231522,12 @@ class MomentData {
|
|
|
231441
231522
|
this.origin.addXYZInPlace(ax, ay, az);
|
|
231442
231523
|
this.sums.multiplyTranslationSandwichInPlace(-ax, -ay, -az);
|
|
231443
231524
|
}
|
|
231444
|
-
/**
|
|
231525
|
+
/** Revise the accumulated sums so they are based at a specified origin. */
|
|
231445
231526
|
shiftOriginAndSumsToNewOrigin(newOrigin) {
|
|
231446
231527
|
this.shiftOriginAndSumsByXYZ(newOrigin.x - this.origin.x, newOrigin.y - this.origin.y, newOrigin.z - this.origin.z);
|
|
231447
231528
|
}
|
|
231448
|
-
/**
|
|
231529
|
+
/**
|
|
231530
|
+
* Compute moments of a triangle from the origin to the given line.
|
|
231449
231531
|
* Accumulate them to this.sums.
|
|
231450
231532
|
* * If `pointA` is undefined, use `this.origin` as pointA.
|
|
231451
231533
|
* * If `this.needOrigin` is set, pointB is used
|
|
@@ -231477,7 +231559,7 @@ class MomentData {
|
|
|
231477
231559
|
this.sums.addScaledOuterProductInPlace(vectorC, vectorC, r1_12);
|
|
231478
231560
|
}
|
|
231479
231561
|
}
|
|
231480
|
-
/**
|
|
231562
|
+
/** Add scaled outer product of (4d, unit weight) point to this.sums. */
|
|
231481
231563
|
accumulateScaledOuterProduct(point, scaleFactor) {
|
|
231482
231564
|
this.setOriginXYZIfNeeded(point.x, point.y, 0.0);
|
|
231483
231565
|
const vectorA = MomentData._vectorA = _Point4d__WEBPACK_IMPORTED_MODULE_5__.Point4d.create(point.x - this.origin.x, point.y - this.origin.y, point.z - this.origin.z, 1.0, MomentData._vectorA);
|
|
@@ -231499,7 +231581,8 @@ class MomentData {
|
|
|
231499
231581
|
this.sums.addScaledOuterProductInPlace(vectorB, vectorA, r1_6);
|
|
231500
231582
|
this.sums.addScaledOuterProductInPlace(vectorB, vectorB, r1_3);
|
|
231501
231583
|
}
|
|
231502
|
-
/**
|
|
231584
|
+
/**
|
|
231585
|
+
* Compute moments of triangles from a base point to the given linestring.
|
|
231503
231586
|
* Accumulate them to this.sums.
|
|
231504
231587
|
* * If `pointA` is undefined, use `this.origin` as pointA.
|
|
231505
231588
|
* * If `this.needOrigin` is set, the first point of the array is captured as local origin for subsequent sums.
|
|
@@ -231516,18 +231599,18 @@ class MomentData {
|
|
|
231516
231599
|
}
|
|
231517
231600
|
}
|
|
231518
231601
|
}
|
|
231519
|
-
// cspell:word ABAT
|
|
231520
231602
|
/**
|
|
231521
231603
|
* * Assemble XX, YY, XY products into a full matrix form [xx,xy,0,0; xy,yy,0,0;0,0,0,0;0,0,0,1].
|
|
231522
|
-
* * Sandwich this between transforms with columns [vectorU, vectorV, 0000, origin]. (Column weights 0001) (only xy
|
|
231604
|
+
* * Sandwich this between transforms with columns [vectorU, vectorV, 0000, origin]. (Column weights 0001) (only xy
|
|
231605
|
+
* parts of vectors).
|
|
231523
231606
|
* * scale by detJ for the xy-only determinant of the vectors.
|
|
231524
231607
|
* @param productXX
|
|
231525
231608
|
* @param productXY
|
|
231526
231609
|
* @param productYY
|
|
231527
|
-
* @param area Area in caller's system
|
|
231528
|
-
* @param origin Caller's origin
|
|
231529
|
-
* @param vectorU Caller's U axis (not necessarily unit)
|
|
231530
|
-
* @param vectorV Caller's V axis (not necessarily unit)
|
|
231610
|
+
* @param area Area in caller's system.
|
|
231611
|
+
* @param origin Caller's origin.
|
|
231612
|
+
* @param vectorU Caller's U axis (not necessarily unit).
|
|
231613
|
+
* @param vectorV Caller's V axis (not necessarily unit).
|
|
231531
231614
|
*/
|
|
231532
231615
|
accumulateXYProductsInCentroidalFrame(productXX, productXY, productYY, area, origin, vectorU, vectorV) {
|
|
231533
231616
|
const centroidalProducts = _Matrix4d__WEBPACK_IMPORTED_MODULE_1__.Matrix4d.createRowValues(productXX, productXY, 0, 0, productXY, productYY, 0, 0, 0, 0, 0, 0, 0, 0, 0, area);
|
|
@@ -231539,27 +231622,23 @@ class MomentData {
|
|
|
231539
231622
|
}
|
|
231540
231623
|
/**
|
|
231541
231624
|
* Accumulate sums from other moments.
|
|
231542
|
-
* *
|
|
231543
|
-
* *
|
|
231544
|
-
* *
|
|
231625
|
+
* * Scale by given scaleFactor (e.g. sign to correct orientation).
|
|
231626
|
+
* * Pull the origin from `other` if `this` needs an origin.
|
|
231545
231627
|
*/
|
|
231546
231628
|
accumulateProducts(other, scale) {
|
|
231547
231629
|
this.setOriginIfNeeded(other.origin);
|
|
231548
231630
|
this.sums.addTranslationSandwichInPlace(other.sums, this.origin.x - other.origin.x, this.origin.y - other.origin.y, this.origin.z - other.origin.z, scale);
|
|
231549
231631
|
}
|
|
231550
231632
|
/**
|
|
231551
|
-
|
|
231552
|
-
|
|
231553
|
-
|
|
231554
|
-
|
|
231555
|
-
*/
|
|
231633
|
+
* Accumulate sums from Matrix4d and origin.
|
|
231634
|
+
* * Scale by given scaleFactor (e.g. sign to correct orientation).
|
|
231635
|
+
* * Trap the origin if `this` needs an origin.
|
|
231636
|
+
*/
|
|
231556
231637
|
accumulateProductsFromOrigin(origin, products, scale) {
|
|
231557
231638
|
this.setOriginIfNeeded(origin);
|
|
231558
231639
|
this.sums.addTranslationSandwichInPlace(products, this.origin.x - origin.x, this.origin.y - origin.y, this.origin.z - origin.z, scale);
|
|
231559
231640
|
}
|
|
231560
|
-
/**
|
|
231561
|
-
* Convert to a json data object with:
|
|
231562
|
-
*/
|
|
231641
|
+
/** Convert to a json data object. */
|
|
231563
231642
|
toJSON() {
|
|
231564
231643
|
return {
|
|
231565
231644
|
origin: this.origin,
|
|
@@ -262337,19 +262416,19 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
262337
262416
|
|
|
262338
262417
|
/**
|
|
262339
262418
|
* A ruled sweep (surface) is a collection of 2 or more contours.
|
|
262340
|
-
* * All contours must have identical number and type of geometry. (paths, loops, parity regions, lines, arcs, other curves)
|
|
262419
|
+
* * All contours must have identical number and type of geometry. (paths, loops, parity regions, lines, arcs, other curves).
|
|
262341
262420
|
* @public
|
|
262342
262421
|
*/
|
|
262343
262422
|
class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimitive {
|
|
262344
262423
|
constructor(contours, capped) {
|
|
262345
262424
|
super(capped);
|
|
262346
|
-
/** String name for schema properties */
|
|
262425
|
+
/** String name for schema properties. */
|
|
262347
262426
|
this.solidPrimitiveType = "ruledSweep";
|
|
262348
262427
|
this._contours = contours;
|
|
262349
262428
|
}
|
|
262350
262429
|
/**
|
|
262351
262430
|
* Create a ruled sweep from an array of contours.
|
|
262352
|
-
* *
|
|
262431
|
+
* * The contours are CAPTURED (not cloned).
|
|
262353
262432
|
*/
|
|
262354
262433
|
static create(contours, capped) {
|
|
262355
262434
|
const sweepContours = [];
|
|
@@ -262362,9 +262441,12 @@ class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimi
|
|
|
262362
262441
|
return new RuledSweep(sweepContours, capped);
|
|
262363
262442
|
}
|
|
262364
262443
|
/** Return a reference to the array of SweepContour. */
|
|
262365
|
-
sweepContoursRef() {
|
|
262366
|
-
|
|
262367
|
-
|
|
262444
|
+
sweepContoursRef() {
|
|
262445
|
+
return this._contours;
|
|
262446
|
+
}
|
|
262447
|
+
/**
|
|
262448
|
+
* Return clones of the sweep contours.
|
|
262449
|
+
* * See also [[cloneContours]], which returns the contours without their local coordinate system definitions.
|
|
262368
262450
|
*/
|
|
262369
262451
|
cloneSweepContours() {
|
|
262370
262452
|
const result = [];
|
|
@@ -262373,8 +262455,9 @@ class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimi
|
|
|
262373
262455
|
}
|
|
262374
262456
|
return result;
|
|
262375
262457
|
}
|
|
262376
|
-
/**
|
|
262377
|
-
*
|
|
262458
|
+
/**
|
|
262459
|
+
* Return clones of the sweep contours, each as a [[CurveCollection]].
|
|
262460
|
+
* * See also [[cloneSweepContours]], which returns the contours with their local coordinate system definitions.
|
|
262378
262461
|
*/
|
|
262379
262462
|
cloneContours() {
|
|
262380
262463
|
const result = [];
|
|
@@ -262383,7 +262466,7 @@ class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimi
|
|
|
262383
262466
|
}
|
|
262384
262467
|
return result;
|
|
262385
262468
|
}
|
|
262386
|
-
/** Return a deep clone */
|
|
262469
|
+
/** Return a deep clone. */
|
|
262387
262470
|
clone() {
|
|
262388
262471
|
return new RuledSweep(this.cloneSweepContours(), this.capped);
|
|
262389
262472
|
}
|
|
@@ -262408,19 +262491,22 @@ class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimi
|
|
|
262408
262491
|
const result = this.clone();
|
|
262409
262492
|
return result.tryTransformInPlace(transform) ? result : undefined;
|
|
262410
262493
|
}
|
|
262411
|
-
/**
|
|
262412
|
-
*
|
|
262494
|
+
/**
|
|
262495
|
+
* Return a coordinate frame (right handed unit vectors)
|
|
262496
|
+
* * origin on base contour.
|
|
262413
262497
|
* * x, y directions from base contour.
|
|
262414
|
-
* * z direction perpendicular
|
|
262498
|
+
* * z direction perpendicular.
|
|
262415
262499
|
*/
|
|
262416
262500
|
getConstructiveFrame() {
|
|
262417
262501
|
if (this._contours.length === 0)
|
|
262418
262502
|
return undefined;
|
|
262419
262503
|
return this._contours[0].localToWorld.cloneRigid();
|
|
262420
262504
|
}
|
|
262421
|
-
/** Test if `other` is an instance of a `RuledSweep
|
|
262422
|
-
isSameGeometryClass(other) {
|
|
262423
|
-
|
|
262505
|
+
/** Test if `other` is an instance of a `RuledSweep`. */
|
|
262506
|
+
isSameGeometryClass(other) {
|
|
262507
|
+
return other instanceof RuledSweep;
|
|
262508
|
+
}
|
|
262509
|
+
/** Test for near equality of two RuledSweeps. */
|
|
262424
262510
|
isAlmostEqual(other) {
|
|
262425
262511
|
if (other instanceof RuledSweep) {
|
|
262426
262512
|
if (this.capped !== other.capped)
|
|
@@ -262435,13 +262521,13 @@ class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimi
|
|
|
262435
262521
|
}
|
|
262436
262522
|
return false;
|
|
262437
262523
|
}
|
|
262438
|
-
/**
|
|
262524
|
+
/** Dispatch to strongly typed `handler.handleRuledSweep(this)`. */
|
|
262439
262525
|
dispatchToGeometryHandler(handler) {
|
|
262440
262526
|
return handler.handleRuledSweep(this);
|
|
262441
262527
|
}
|
|
262442
262528
|
/**
|
|
262443
|
-
* Return the section curves at a fraction of the sweep
|
|
262444
|
-
* @param vFraction fractional position along the sweep direction
|
|
262529
|
+
* Return the section curves at a fraction of the sweep.
|
|
262530
|
+
* @param vFraction fractional position along the sweep direction.
|
|
262445
262531
|
*/
|
|
262446
262532
|
constantVSection(vFraction) {
|
|
262447
262533
|
const numSection = this._contours.length;
|
|
@@ -262464,12 +262550,14 @@ class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimi
|
|
|
262464
262550
|
return undefined;
|
|
262465
262551
|
});
|
|
262466
262552
|
}
|
|
262467
|
-
/** Pass each contour to `extendRange
|
|
262553
|
+
/** Pass each contour to `extendRange`. */
|
|
262468
262554
|
extendRange(rangeToExtend, transform) {
|
|
262469
262555
|
for (const contour of this._contours)
|
|
262470
262556
|
contour.curves.extendRange(rangeToExtend, transform);
|
|
262471
262557
|
}
|
|
262472
|
-
/**
|
|
262558
|
+
/**
|
|
262559
|
+
* Construct a CurveCollection with the same structure as collectionA and collectionB, with primitives constructed
|
|
262560
|
+
* by the caller-supplied primitiveMutator function.
|
|
262473
262561
|
* @returns Returns undefined if there is any type mismatch between the two collections.
|
|
262474
262562
|
*/
|
|
262475
262563
|
static mutatePartners(collectionA, collectionB, primitiveMutator) {
|
|
@@ -262520,9 +262608,7 @@ class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimi
|
|
|
262520
262608
|
return undefined;
|
|
262521
262609
|
}
|
|
262522
262610
|
/**
|
|
262523
|
-
*
|
|
262524
|
-
* * cap flag
|
|
262525
|
-
* identical first and last contours.
|
|
262611
|
+
* @return true if this is a closed volume.
|
|
262526
262612
|
*/
|
|
262527
262613
|
get isClosedVolume() {
|
|
262528
262614
|
const n = this._contours.length;
|
|
@@ -262552,20 +262638,23 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
262552
262638
|
|
|
262553
262639
|
/**
|
|
262554
262640
|
* Base class for SolidPrimitive variants.
|
|
262555
|
-
*
|
|
262556
262641
|
* * The base class holds capped flag for all derived classes.
|
|
262557
262642
|
* @public
|
|
262558
262643
|
*/
|
|
262559
262644
|
class SolidPrimitive extends _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.GeometryQuery {
|
|
262560
262645
|
constructor(capped) {
|
|
262561
262646
|
super();
|
|
262562
|
-
/** String name for schema properties */
|
|
262647
|
+
/** String name for schema properties. */
|
|
262563
262648
|
this.geometryCategory = "solid";
|
|
262564
262649
|
this._capped = capped;
|
|
262565
262650
|
}
|
|
262566
|
-
/** Whether this is a capped solid */
|
|
262567
|
-
get capped() {
|
|
262568
|
-
|
|
262651
|
+
/** Whether this is a capped solid. */
|
|
262652
|
+
get capped() {
|
|
262653
|
+
return this._capped;
|
|
262654
|
+
}
|
|
262655
|
+
set capped(capped) {
|
|
262656
|
+
this._capped = capped;
|
|
262657
|
+
}
|
|
262569
262658
|
}
|
|
262570
262659
|
|
|
262571
262660
|
|
|
@@ -305039,7 +305128,7 @@ var loadLanguages = instance.loadLanguages;
|
|
|
305039
305128
|
/***/ ((module) => {
|
|
305040
305129
|
|
|
305041
305130
|
"use strict";
|
|
305042
|
-
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"5.0.0-dev.
|
|
305131
|
+
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"5.0.0-dev.20","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 --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 --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run --coverage","test:debug":"vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^5.0.0-dev.20","@itwin/core-bentley":"workspace:^5.0.0-dev.20","@itwin/core-common":"workspace:^5.0.0-dev.20","@itwin/core-geometry":"workspace:^5.0.0-dev.20","@itwin/core-orbitgt":"workspace:^5.0.0-dev.20","@itwin/core-quantity":"workspace:^5.0.0-dev.20"},"//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/eslint-plugin":"5.0.0-dev.1","@types/chai-as-promised":"^7","@vitest/browser":"^2.1.0","@vitest/coverage-v8":"^2.1.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","cpx2":"^3.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^3.0.2","source-map-loader":"^4.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^2.1.0","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"1.0.6","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.2.4","@itwin/object-storage-core":"^2.2.5","@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","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"}}');
|
|
305043
305132
|
|
|
305044
305133
|
/***/ })
|
|
305045
305134
|
|