@itwin/rpcinterface-full-stack-tests 4.1.0-dev.73 → 4.1.0-dev.75

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.
@@ -153274,6 +153274,7 @@ __webpack_require__.r(__webpack_exports__);
153274
153274
 
153275
153275
 
153276
153276
 
153277
+ const loggerCategory = "ImageryMapTileTree";
153277
153278
  /** @internal */
153278
153279
  class ImageryMapTile extends _internal__WEBPACK_IMPORTED_MODULE_4__.RealityTile {
153279
153280
  constructor(params, imageryTree, quadId, rectangle) {
@@ -153564,9 +153565,17 @@ class ImageryMapLayerTreeSupplier {
153564
153565
  /** The first time a tree of a particular imagery type is requested, this function creates it. */
153565
153566
  async createTileTree(id, iModel) {
153566
153567
  const imageryProvider = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.mapLayerFormatRegistry.createImageryProvider(id.settings);
153567
- if (undefined === imageryProvider)
153568
+ if (undefined === imageryProvider) {
153569
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(loggerCategory, `Failed to create imagery provider for format '${id.settings.formatId}'`);
153568
153570
  return undefined;
153569
- await imageryProvider.initialize();
153571
+ }
153572
+ try {
153573
+ await imageryProvider.initialize();
153574
+ }
153575
+ catch (e) {
153576
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(loggerCategory, `Could not initialize imagery provider for map layer '${id.settings.name}' : ${e}`);
153577
+ throw e;
153578
+ }
153570
153579
  const modelId = iModel.transientIds.getNext();
153571
153580
  const tilingScheme = imageryProvider.tilingScheme;
153572
153581
  const rootLevel = (1 === tilingScheme.numberOfLevelZeroTilesX && 1 === tilingScheme.numberOfLevelZeroTilesY) ? 0 : -1;
@@ -183366,7 +183375,7 @@ __webpack_require__.r(__webpack_exports__);
183366
183375
  /* harmony export */ BSplineWrapMode: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_111__.BSplineWrapMode),
183367
183376
  /* harmony export */ BagOfCurves: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.BagOfCurves),
183368
183377
  /* harmony export */ BarycentricTriangle: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.BarycentricTriangle),
183369
- /* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__.BentleyGeometryFlatBuffer),
183378
+ /* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_131__.BentleyGeometryFlatBuffer),
183370
183379
  /* harmony export */ Bezier1dNd: () => (/* reexport safe */ _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_101__.Bezier1dNd),
183371
183380
  /* harmony export */ BezierBezierIntersectionXYRRToRRD: () => (/* reexport safe */ _curve_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_67__.BezierBezierIntersectionXYRRToRRD),
183372
183381
  /* harmony export */ BezierCoffs: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierCoffs),
@@ -183388,7 +183397,7 @@ __webpack_require__.r(__webpack_exports__);
183388
183397
  /* harmony export */ ClipStepAction: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipStepAction),
183389
183398
  /* harmony export */ ClipUtilities: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipUtilities),
183390
183399
  /* harmony export */ ClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.ClipVector),
183391
- /* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.ClippedPolyfaceBuilders),
183400
+ /* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_123__.ClippedPolyfaceBuilders),
183392
183401
  /* harmony export */ ClusterableArray: () => (/* reexport safe */ _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__.ClusterableArray),
183393
183402
  /* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__.Complex),
183394
183403
  /* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_92__.Cone),
@@ -183418,12 +183427,12 @@ __webpack_require__.r(__webpack_exports__);
183418
183427
  /* harmony export */ CurveSearchStatus: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_69__.CurveSearchStatus),
183419
183428
  /* harmony export */ CutLoop: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoop),
183420
183429
  /* harmony export */ CutLoopMergeContext: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoopMergeContext),
183421
- /* harmony export */ DeepCompare: () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__.DeepCompare),
183430
+ /* harmony export */ DeepCompare: () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_129__.DeepCompare),
183422
183431
  /* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree2PowerPolynomial),
183423
183432
  /* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree3PowerPolynomial),
183424
183433
  /* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree4PowerPolynomial),
183425
183434
  /* harmony export */ DirectSpiral3d: () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_88__.DirectSpiral3d),
183426
- /* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.DuplicateFacetClusterSelector),
183435
+ /* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_122__.DuplicateFacetClusterSelector),
183427
183436
  /* harmony export */ Ellipsoid: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.Ellipsoid),
183428
183437
  /* harmony export */ EllipsoidPatch: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.EllipsoidPatch),
183429
183438
  /* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_114__.FacetFaceData),
@@ -183435,14 +183444,16 @@ __webpack_require__.r(__webpack_exports__);
183435
183444
  /* harmony export */ Geometry: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.Geometry),
183436
183445
  /* harmony export */ GeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.GeometryHandler),
183437
183446
  /* harmony export */ GeometryQuery: () => (/* reexport safe */ _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_74__.GeometryQuery),
183447
+ /* harmony export */ GriddedRaggedRange2dSet: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_118__.GriddedRaggedRange2dSet),
183448
+ /* harmony export */ GriddedRaggedRange2dSetWithOverflow: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_119__.GriddedRaggedRange2dSetWithOverflow),
183438
183449
  /* harmony export */ GrowableBlockedArray: () => (/* reexport safe */ _geometry3d_GrowableBlockedArray__WEBPACK_IMPORTED_MODULE_9__.GrowableBlockedArray),
183439
183450
  /* harmony export */ GrowableFloat64Array: () => (/* reexport safe */ _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_10__.GrowableFloat64Array),
183440
183451
  /* harmony export */ GrowableXYArray: () => (/* reexport safe */ _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYArray),
183441
183452
  /* harmony export */ GrowableXYZArray: () => (/* reexport safe */ _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray),
183442
- /* harmony export */ HalfEdge: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdge),
183443
- /* harmony export */ HalfEdgeGraph: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeGraph),
183444
- /* harmony export */ HalfEdgeMask: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeMask),
183445
- /* harmony export */ IModelJson: () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__.IModelJson),
183453
+ /* harmony export */ HalfEdge: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_125__.HalfEdge),
183454
+ /* harmony export */ HalfEdgeGraph: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_125__.HalfEdgeGraph),
183455
+ /* harmony export */ HalfEdgeMask: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_125__.HalfEdgeMask),
183456
+ /* harmony export */ IModelJson: () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_128__.IModelJson),
183446
183457
  /* harmony export */ ImplicitLineXY: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.ImplicitLineXY),
183447
183458
  /* harmony export */ IndexedCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedCollectionInterval),
183448
183459
  /* harmony export */ IndexedPolyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_115__.IndexedPolyface),
@@ -183479,7 +183490,7 @@ __webpack_require__.r(__webpack_exports__);
183479
183490
  /* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__.NonConvexFacetLocationDetail),
183480
183491
  /* harmony export */ NullGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.NullGeometryHandler),
183481
183492
  /* harmony export */ NumberArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.NumberArray),
183482
- /* harmony export */ OffsetMeshOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.OffsetMeshOptions),
183493
+ /* harmony export */ OffsetMeshOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_122__.OffsetMeshOptions),
183483
183494
  /* harmony export */ OffsetOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_78__.OffsetOptions),
183484
183495
  /* harmony export */ Order2Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order2Bezier),
183485
183496
  /* harmony export */ Order3Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order3Bezier),
@@ -183507,10 +183518,10 @@ __webpack_require__.r(__webpack_exports__);
183507
183518
  /* harmony export */ PointString3d: () => (/* reexport safe */ _curve_PointString3d__WEBPACK_IMPORTED_MODULE_83__.PointString3d),
183508
183519
  /* harmony export */ Polyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_115__.Polyface),
183509
183520
  /* harmony export */ PolyfaceAuxData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_112__.PolyfaceAuxData),
183510
- /* harmony export */ PolyfaceBuilder: () => (/* reexport safe */ _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__.PolyfaceBuilder),
183511
- /* harmony export */ PolyfaceClip: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.PolyfaceClip),
183512
- /* harmony export */ PolyfaceData: () => (/* reexport safe */ _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__.PolyfaceData),
183513
- /* harmony export */ PolyfaceQuery: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.PolyfaceQuery),
183521
+ /* harmony export */ PolyfaceBuilder: () => (/* reexport safe */ _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_120__.PolyfaceBuilder),
183522
+ /* harmony export */ PolyfaceClip: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_123__.PolyfaceClip),
183523
+ /* harmony export */ PolyfaceData: () => (/* reexport safe */ _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_121__.PolyfaceData),
183524
+ /* harmony export */ PolyfaceQuery: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_122__.PolyfaceQuery),
183514
183525
  /* harmony export */ PolygonLocation: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.PolygonLocation),
183515
183526
  /* harmony export */ PolygonLocationDetail: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonLocationDetail),
183516
183527
  /* harmony export */ PolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonOps),
@@ -183533,25 +183544,25 @@ __webpack_require__.r(__webpack_exports__);
183533
183544
  /* harmony export */ RegionOps: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_82__.RegionOps),
183534
183545
  /* harmony export */ RotationalSweep: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_94__.RotationalSweep),
183535
183546
  /* harmony export */ RuledSweep: () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_95__.RuledSweep),
183536
- /* harmony export */ Sample: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.Sample),
183547
+ /* harmony export */ Sample: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_130__.Sample),
183537
183548
  /* harmony export */ Segment1d: () => (/* reexport safe */ _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_31__.Segment1d),
183538
183549
  /* harmony export */ SimpleNewton: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.SimpleNewton),
183539
183550
  /* harmony export */ SineCosinePolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SineCosinePolynomial),
183540
183551
  /* harmony export */ SmallSystem: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SmallSystem),
183541
183552
  /* harmony export */ SmoothTransformBetweenFrusta: () => (/* reexport safe */ _geometry3d_FrustumAnimation__WEBPACK_IMPORTED_MODULE_7__.SmoothTransformBetweenFrusta),
183542
183553
  /* harmony export */ SolidPrimitive: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_96__.SolidPrimitive),
183543
- /* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__.SpacePolygonTriangulation),
183554
+ /* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_127__.SpacePolygonTriangulation),
183544
183555
  /* harmony export */ Sphere: () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_97__.Sphere),
183545
183556
  /* harmony export */ SphereImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SphereImplicit),
183546
183557
  /* harmony export */ StandardViewIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.StandardViewIndex),
183547
- /* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.SteppedIndexFunctionFactory),
183558
+ /* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_130__.SteppedIndexFunctionFactory),
183548
183559
  /* harmony export */ StringifiedClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.StringifiedClipVector),
183549
183560
  /* harmony export */ StrokeCountMap: () => (/* reexport safe */ _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_90__.StrokeCountMap),
183550
183561
  /* harmony export */ StrokeOptions: () => (/* reexport safe */ _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_85__.StrokeOptions),
183551
183562
  /* harmony export */ SweepContour: () => (/* reexport safe */ _solid_SweepContour__WEBPACK_IMPORTED_MODULE_98__.SweepContour),
183552
- /* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.SweepLineStringToFacetsOptions),
183553
- /* harmony export */ TaggedNumericConstants: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericConstants),
183554
- /* harmony export */ TaggedNumericData: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericData),
183563
+ /* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_122__.SweepLineStringToFacetsOptions),
183564
+ /* harmony export */ TaggedNumericConstants: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_124__.TaggedNumericConstants),
183565
+ /* harmony export */ TaggedNumericData: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_124__.TaggedNumericData),
183555
183566
  /* harmony export */ TorusImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TorusImplicit),
183556
183567
  /* harmony export */ TorusPipe: () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_99__.TorusPipe),
183557
183568
  /* harmony export */ Transform: () => (/* reexport safe */ _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_32__.Transform),
@@ -183559,7 +183570,7 @@ __webpack_require__.r(__webpack_exports__);
183559
183570
  /* harmony export */ TriDiagonalSystem: () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__.TriDiagonalSystem),
183560
183571
  /* harmony export */ TriangleLocationDetail: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.TriangleLocationDetail),
183561
183572
  /* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__.TriangularFacetLocationDetail),
183562
- /* harmony export */ Triangulator: () => (/* reexport safe */ _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__.Triangulator),
183573
+ /* harmony export */ Triangulator: () => (/* reexport safe */ _topology_Triangulation__WEBPACK_IMPORTED_MODULE_126__.Triangulator),
183563
183574
  /* harmony export */ TrigPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TrigPolynomial),
183564
183575
  /* harmony export */ UVSelect: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_109__.UVSelect),
183565
183576
  /* harmony export */ UVSurfaceOps: () => (/* reexport safe */ _geometry3d_UVSurfaceOps__WEBPACK_IMPORTED_MODULE_33__.UVSurfaceOps),
@@ -183695,18 +183706,20 @@ __webpack_require__.r(__webpack_exports__);
183695
183706
  /* harmony import */ var _polyface_Polyface__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./polyface/Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
183696
183707
  /* harmony import */ var _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./polyface/FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
183697
183708
  /* harmony import */ var _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./polyface/IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
183698
- /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
183699
- /* harmony import */ var _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./polyface/PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
183700
- /* harmony import */ var _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./polyface/PolyfaceQuery */ "../../core/geometry/lib/esm/polyface/PolyfaceQuery.js");
183701
- /* harmony import */ var _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./polyface/PolyfaceClip */ "../../core/geometry/lib/esm/polyface/PolyfaceClip.js");
183702
- /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
183703
- /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
183704
- /* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
183705
- /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
183706
- /* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
183707
- /* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
183708
- /* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
183709
- /* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
183709
+ /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSet */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js");
183710
+ /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js");
183711
+ /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
183712
+ /* harmony import */ var _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./polyface/PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
183713
+ /* harmony import */ var _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./polyface/PolyfaceQuery */ "../../core/geometry/lib/esm/polyface/PolyfaceQuery.js");
183714
+ /* harmony import */ var _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./polyface/PolyfaceClip */ "../../core/geometry/lib/esm/polyface/PolyfaceClip.js");
183715
+ /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
183716
+ /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
183717
+ /* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
183718
+ /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
183719
+ /* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
183720
+ /* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
183721
+ /* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
183722
+ /* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
183710
183723
  /*---------------------------------------------------------------------------------------------
183711
183724
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
183712
183725
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -183958,6 +183971,8 @@ __webpack_require__.r(__webpack_exports__);
183958
183971
 
183959
183972
 
183960
183973
 
183974
+
183975
+
183961
183976
 
183962
183977
 
183963
183978
 
@@ -217498,6 +217513,33 @@ class IndexedXYZCollectionPolygonOps {
217498
217513
  work.clear();
217499
217514
  return numCrossings;
217500
217515
  }
217516
+ /** Return an array containing
217517
+ * * All points that are exactly on the plane.
217518
+ * * Crossing points between adjacent points that are (strictly) on opposite sides.
217519
+ */
217520
+ static polygonPlaneCrossings(plane, xyz, crossings) {
217521
+ crossings.length = 0;
217522
+ if (xyz.length >= 2) {
217523
+ const xyz0 = this._xyz0Work;
217524
+ xyz.getPoint3dAtUncheckedPointIndex(xyz.length - 1, xyz0);
217525
+ let a0 = plane.altitude(xyz0);
217526
+ const xyz1 = this._xyz1Work;
217527
+ for (let i = 0; i < xyz.length; i++) {
217528
+ xyz.getPoint3dAtUncheckedPointIndex(i, xyz1);
217529
+ const a1 = plane.altitude(xyz1);
217530
+ if (a0 * a1 < 0.0) {
217531
+ // simple crossing. . .
217532
+ const f = -a0 / (a1 - a0);
217533
+ crossings.push(xyz0.interpolate(f, xyz1));
217534
+ }
217535
+ if (a1 === 0.0) { // IMPORTANT -- every point is directly tested here
217536
+ crossings.push(xyz1.clone());
217537
+ }
217538
+ xyz0.setFromPoint3d(xyz1);
217539
+ a0 = a1;
217540
+ }
217541
+ }
217542
+ }
217501
217543
  /**
217502
217544
  * * Input a "clipped" polygon (from clipConvexPolygonInPlace) with more than 2 crossings, i.e. is from a non-convex polygon with configurations like:
217503
217545
  * * multiple distinct polygons
@@ -217637,25 +217679,8 @@ class Point3dArrayPolygonOps {
217637
217679
  * * Crossing points between adjacent points that are (strictly) on opposite sides.
217638
217680
  */
217639
217681
  static polygonPlaneCrossings(plane, xyz, crossings) {
217640
- crossings.length = 0;
217641
- if (xyz.length >= 2) {
217642
- const xyz0 = this._xyz0Work;
217643
- xyz0.setFromPoint3d(xyz[xyz.length - 1]);
217644
- let a0 = plane.altitude(xyz0);
217645
- for (const xyz1 of xyz) {
217646
- const a1 = plane.altitude(xyz1);
217647
- if (a0 * a1 < 0.0) {
217648
- // simple crossing. . .
217649
- const f = -a0 / (a1 - a0);
217650
- crossings.push(xyz0.interpolate(f, xyz1));
217651
- }
217652
- if (a1 === 0.0) { // IMPORTANT -- every point is directly tested here
217653
- crossings.push(xyz1.clone());
217654
- }
217655
- xyz0.setFromPoint3d(xyz1);
217656
- a0 = a1;
217657
- }
217658
- }
217682
+ const xyzSource = new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_4__.Point3dArrayCarrier(xyz);
217683
+ return IndexedXYZCollectionPolygonOps.polygonPlaneCrossings(plane, xyzSource, crossings);
217659
217684
  }
217660
217685
  /**
217661
217686
  * Clip a polygon, returning the clip result in the same object.
@@ -235562,32 +235587,33 @@ __webpack_require__.r(__webpack_exports__);
235562
235587
  /* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
235563
235588
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
235564
235589
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
235565
- /* harmony import */ var _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../geometry3d/BarycentricTriangle */ "../../core/geometry/lib/esm/geometry3d/BarycentricTriangle.js");
235590
+ /* harmony import */ var _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../geometry3d/BarycentricTriangle */ "../../core/geometry/lib/esm/geometry3d/BarycentricTriangle.js");
235566
235591
  /* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
235592
+ /* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
235567
235593
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
235568
235594
  /* harmony import */ var _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../geometry3d/PointHelpers */ "../../core/geometry/lib/esm/geometry3d/PointHelpers.js");
235569
235595
  /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
235570
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
235596
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
235571
235597
  /* harmony import */ var _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry4d/Matrix4d */ "../../core/geometry/lib/esm/geometry4d/Matrix4d.js");
235572
235598
  /* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
235573
235599
  /* harmony import */ var _numerics_UnionFind__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../numerics/UnionFind */ "../../core/geometry/lib/esm/numerics/UnionFind.js");
235574
235600
  /* harmony import */ var _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../topology/ChainMerge */ "../../core/geometry/lib/esm/topology/ChainMerge.js");
235575
235601
  /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
235576
- /* harmony import */ var _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../topology/HalfEdgeGraphFromIndexedLoopsContext */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js");
235602
+ /* harmony import */ var _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../topology/HalfEdgeGraphFromIndexedLoopsContext */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js");
235577
235603
  /* harmony import */ var _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../topology/HalfEdgeGraphSearch */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphSearch.js");
235578
235604
  /* harmony import */ var _topology_Merging__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../topology/Merging */ "../../core/geometry/lib/esm/topology/Merging.js");
235579
235605
  /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
235580
- /* harmony import */ var _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
235581
- /* harmony import */ var _FacetOrientation__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./FacetOrientation */ "../../core/geometry/lib/esm/polyface/FacetOrientation.js");
235606
+ /* harmony import */ var _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
235607
+ /* harmony import */ var _FacetOrientation__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./FacetOrientation */ "../../core/geometry/lib/esm/polyface/FacetOrientation.js");
235582
235608
  /* harmony import */ var _IndexedEdgeMatcher__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./IndexedEdgeMatcher */ "../../core/geometry/lib/esm/polyface/IndexedEdgeMatcher.js");
235583
235609
  /* harmony import */ var _IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
235584
- /* harmony import */ var _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./multiclip/BuildAverageNormalsContext */ "../../core/geometry/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js");
235585
- /* harmony import */ var _multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./multiclip/OffsetMeshContext */ "../../core/geometry/lib/esm/polyface/multiclip/OffsetMeshContext.js");
235610
+ /* harmony import */ var _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./multiclip/BuildAverageNormalsContext */ "../../core/geometry/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js");
235611
+ /* harmony import */ var _multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./multiclip/OffsetMeshContext */ "../../core/geometry/lib/esm/polyface/multiclip/OffsetMeshContext.js");
235586
235612
  /* harmony import */ var _multiclip_SweepLineStringToFacetContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./multiclip/SweepLineStringToFacetContext */ "../../core/geometry/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js");
235587
- /* harmony import */ var _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./multiclip/XYPointBuckets */ "../../core/geometry/lib/esm/polyface/multiclip/XYPointBuckets.js");
235613
+ /* harmony import */ var _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./multiclip/XYPointBuckets */ "../../core/geometry/lib/esm/polyface/multiclip/XYPointBuckets.js");
235588
235614
  /* harmony import */ var _Polyface__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
235589
235615
  /* harmony import */ var _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
235590
- /* harmony import */ var _RangeLengthData__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./RangeLengthData */ "../../core/geometry/lib/esm/polyface/RangeLengthData.js");
235616
+ /* harmony import */ var _RangeLengthData__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./RangeLengthData */ "../../core/geometry/lib/esm/polyface/RangeLengthData.js");
235591
235617
  /*---------------------------------------------------------------------------------------------
235592
235618
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
235593
235619
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -235629,6 +235655,7 @@ __webpack_require__.r(__webpack_exports__);
235629
235655
 
235630
235656
 
235631
235657
 
235658
+
235632
235659
 
235633
235660
 
235634
235661
  /**
@@ -236469,13 +236496,13 @@ class PolyfaceQuery {
236469
236496
  matcher.sortAndCollectClusters(allEdges, allEdges, allEdges, allEdges);
236470
236497
  return this.partitionFacetIndicesBySortableEdgeClusters(allEdges, numFacets);
236471
236498
  }
236472
- /** Find segments (within the linestring) which project to facets.
236473
- * * Assemble each segment pair as a facet in a new polyface
236474
- * * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
236499
+ /** Find segments (within the line string) which project to facets.
236500
+ * * Assemble each input segment paired with its projected segment/point as a quad/triangle facet in a new polyface.
236501
+ * * Input facets are ASSUMED to be convex and planar, and not overlap in the z direction.
236475
236502
  */
236476
- static sweepLineStringToFacetsXYReturnSweptFacets(linestringPoints, polyface) {
236503
+ static sweepLineStringToFacetsXYReturnSweptFacets(lineStringPoints, polyface) {
236477
236504
  const builder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create();
236478
- this.announceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface, (_linestring, _segmentIndex, _polyface, _facetIndex, points) => {
236505
+ this.announceSweepLinestringToConvexPolyfaceXY(lineStringPoints, polyface, (_linestring, _segmentIndex, _polyface, _facetIndex, points) => {
236479
236506
  if (points.length === 4)
236480
236507
  builder.addQuadFacet(points);
236481
236508
  else if (points.length === 3)
@@ -236488,13 +236515,13 @@ class PolyfaceQuery {
236488
236515
  return this.sweepLineStringToFacetsXYReturnSweptFacets(linestringPoints, polyface);
236489
236516
  }
236490
236517
  /**
236491
- * Sweeps the linestring to intersections with a mesh.
236518
+ * Sweep the line string to intersections with a mesh.
236492
236519
  * * Return collected line segments.
236493
236520
  * * If no options are given, the default sweep direction is the z-axis, and chains are assembled and returned.
236494
236521
  * * See [[SweepLineStringToFacetsOptions]] for input and output options, including filtering by forward/side/rear facets.
236495
236522
  * * Facets are ASSUMED to be convex and planar, and not overlap in the sweep direction.
236496
236523
  */
236497
- static sweepLineStringToFacets(linestringPoints, polyface, options) {
236524
+ static sweepLineStringToFacets(linestringPoints, polyfaceOrVisitor, options) {
236498
236525
  let result = [];
236499
236526
  // setup default options:
236500
236527
  if (options === undefined)
@@ -236506,7 +236533,11 @@ class PolyfaceQuery {
236506
236533
  chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__.ChainMergeContext.create();
236507
236534
  const context = _multiclip_SweepLineStringToFacetContext__WEBPACK_IMPORTED_MODULE_12__.ClipSweptLineStringContext.create(linestringPoints, options.vectorToEye);
236508
236535
  if (context) {
236509
- const visitor = polyface.createVisitor(0);
236536
+ let visitor;
236537
+ if (polyfaceOrVisitor instanceof _Polyface__WEBPACK_IMPORTED_MODULE_6__.Polyface)
236538
+ visitor = polyfaceOrVisitor.createVisitor(0);
236539
+ else
236540
+ visitor = polyfaceOrVisitor;
236510
236541
  const workNormal = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Vector3d.createZero();
236511
236542
  for (visitor.reset(); visitor.moveToNextFacet();) {
236512
236543
  if (options.collectFromThisFacetNormal(_geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.areaNormalGo(visitor.point, workNormal))) {
@@ -236525,6 +236556,54 @@ class PolyfaceQuery {
236525
236556
  }
236526
236557
  return result;
236527
236558
  }
236559
+ /**
236560
+ * Sweep the line string in the z-direction to intersections with a mesh, using a search object for speedup.
236561
+ * @param lineStringPoints input line string to drape on the mesh
236562
+ * @param polyfaceOrVisitor mesh, or mesh visitor to traverse only part of a mesh
236563
+ * @param searchByReadIndex object for searching facet 2D ranges tagged by mesh read index
236564
+ * @example Using a 5x5 indexed search grid:
236565
+ * ```
236566
+ * const xyRange = Range2d.createFrom(myPolyface.range());
236567
+ * const searcher = GriddedRaggedRange2dSetWithOverflow.create<number>(xyRange, 5, 5)!;
236568
+ * for (const visitor = myPolyface.createVisitor(0); visitor.moveToNextFacet();) {
236569
+ * searcher.addRange(visitor.point.getRange(), visitor.currentReadIndex());
236570
+ * }
236571
+ * const drapedLineStrings = PolyfaceQuery.sweepLineStringToFacetsXY(lineString, myPolyface, searcher);
236572
+ * ```
236573
+ * @returns collected line strings
236574
+ */
236575
+ static sweepLineStringToFacetsXY(lineStringPoints, polyfaceOrVisitor, searchByReadIndex) {
236576
+ const chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_25__.ChainMergeContext.create();
236577
+ const sweepVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Vector3d.create(0, 0, 1);
236578
+ const searchRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_26__.Range3d.create();
236579
+ let visitor;
236580
+ if (polyfaceOrVisitor instanceof _Polyface__WEBPACK_IMPORTED_MODULE_6__.Polyface)
236581
+ visitor = polyfaceOrVisitor.createVisitor(0);
236582
+ else
236583
+ visitor = polyfaceOrVisitor;
236584
+ let lineStringSource;
236585
+ if (Array.isArray(lineStringPoints))
236586
+ lineStringSource = new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_27__.Point3dArrayCarrier(lineStringPoints);
236587
+ else
236588
+ lineStringSource = lineStringPoints;
236589
+ for (let i = 1; i < lineStringSource.length; i++) {
236590
+ const point0 = lineStringSource.getPoint3dAtUncheckedPointIndex(i - 1);
236591
+ const point1 = lineStringSource.getPoint3dAtUncheckedPointIndex(i);
236592
+ const edgeClipper = _multiclip_SweepLineStringToFacetContext__WEBPACK_IMPORTED_MODULE_12__.EdgeClipData.createPointPointSweep(point0, point1, sweepVector);
236593
+ if (edgeClipper !== undefined) {
236594
+ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_26__.Range3d.createNull(searchRange);
236595
+ searchRange.extendPoint(point0);
236596
+ searchRange.extendPoint(point1);
236597
+ searchByReadIndex.searchRange2d(searchRange, (_facetRange, readIndex) => {
236598
+ if (visitor.moveToReadIndex(readIndex))
236599
+ edgeClipper.processPolygon(visitor.point, (pointA, pointB) => chainContext.addSegment(pointA, pointB));
236600
+ return true;
236601
+ });
236602
+ }
236603
+ }
236604
+ chainContext.clusterAndMergeVerticesXYZ();
236605
+ return chainContext.collectMaximalChains();
236606
+ }
236528
236607
  /** Find segments (within the linestring) which project to facets.
236529
236608
  * * Return collected line segments.
236530
236609
  * * This calls [[sweepLineStringToFacets]] with options created by
@@ -236571,7 +236650,7 @@ class PolyfaceQuery {
236571
236650
  if (polyface instanceof _Polyface__WEBPACK_IMPORTED_MODULE_6__.Polyface) {
236572
236651
  return this.collectRangeLengthData(polyface.createVisitor(0));
236573
236652
  }
236574
- const rangeData = new _RangeLengthData__WEBPACK_IMPORTED_MODULE_26__.RangeLengthData();
236653
+ const rangeData = new _RangeLengthData__WEBPACK_IMPORTED_MODULE_28__.RangeLengthData();
236575
236654
  // polyface is a visitor ...
236576
236655
  for (polyface.reset(); polyface.moveToNextFacet();)
236577
236656
  rangeData.accumulateGrowableXYZArrayRange(polyface.point);
@@ -236583,9 +236662,9 @@ class PolyfaceQuery {
236583
236662
  static cloneWithTVertexFixup(polyface) {
236584
236663
  const oldFacetVisitor = polyface.createVisitor(1); // This is to visit the existing facets.
236585
236664
  const newFacetVisitor = polyface.createVisitor(0); // This is to build the new facets.
236586
- const rangeSearcher = _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_27__.XYPointBuckets.create(polyface.data.point, 30);
236665
+ const rangeSearcher = _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_29__.XYPointBuckets.create(polyface.data.point, 30);
236587
236666
  const builder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create();
236588
- const edgeRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d.createNull();
236667
+ const edgeRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_26__.Range3d.createNull();
236589
236668
  const point0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
236590
236669
  const point1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
236591
236670
  const spacePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.create();
@@ -236950,7 +237029,7 @@ class PolyfaceQuery {
236950
237029
  * @internal
236951
237030
  */
236952
237031
  static convertToHalfEdgeGraph(mesh) {
236953
- const builder = new _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_29__.HalfEdgeGraphFromIndexedLoopsContext();
237032
+ const builder = new _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_30__.HalfEdgeGraphFromIndexedLoopsContext();
236954
237033
  const visitor = mesh.createVisitor(0);
236955
237034
  for (visitor.reset(); visitor.moveToNextFacet();) {
236956
237035
  builder.insertLoop(visitor.pointIndex);
@@ -236971,14 +237050,14 @@ class PolyfaceQuery {
236971
237050
  * @param mesh
236972
237051
  */
236973
237052
  static reorientVertexOrderAroundFacetsForConsistentOrientation(mesh) {
236974
- return _FacetOrientation__WEBPACK_IMPORTED_MODULE_30__.FacetOrientationFixup.doFixup(mesh);
237053
+ return _FacetOrientation__WEBPACK_IMPORTED_MODULE_31__.FacetOrientationFixup.doFixup(mesh);
236975
237054
  }
236976
237055
  /**
236977
237056
  * Set up indexed normals with one normal in the plane of each facet of the mesh.
236978
237057
  * @param polyface
236979
237058
  */
236980
237059
  static buildPerFaceNormals(polyface) {
236981
- _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__.BuildAverageNormalsContext.buildPerFaceNormals(polyface);
237060
+ _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_32__.BuildAverageNormalsContext.buildPerFaceNormals(polyface);
236982
237061
  }
236983
237062
  /**
236984
237063
  * * At each vertex of the mesh
@@ -236991,7 +237070,7 @@ class PolyfaceQuery {
236991
237070
  * @param toleranceAngle averaging is done between normals up to this angle.
236992
237071
  */
236993
237072
  static buildAverageNormals(polyface, toleranceAngle = _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_1__.Angle.createDegrees(31.0)) {
236994
- _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_31__.BuildAverageNormalsContext.buildFastAverageNormals(polyface, toleranceAngle);
237073
+ _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_32__.BuildAverageNormalsContext.buildFastAverageNormals(polyface, toleranceAngle);
236995
237074
  }
236996
237075
  /**
236997
237076
  * Offset the faces of the mesh.
@@ -237003,7 +237082,7 @@ class PolyfaceQuery {
237003
237082
  static cloneOffset(source, signedOffsetDistance, offsetOptions = OffsetMeshOptions.create()) {
237004
237083
  const strokeOptions = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_24__.StrokeOptions.createForFacets();
237005
237084
  const offsetBuilder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create(strokeOptions);
237006
- _multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_32__.OffsetMeshContext.buildOffsetMeshWithEdgeChamfers(source, offsetBuilder, signedOffsetDistance, offsetOptions);
237085
+ _multiclip_OffsetMeshContext__WEBPACK_IMPORTED_MODULE_33__.OffsetMeshContext.buildOffsetMeshWithEdgeChamfers(source, offsetBuilder, signedOffsetDistance, offsetOptions);
237007
237086
  return offsetBuilder.claimPolyface();
237008
237087
  }
237009
237088
  /** Search facets for the first one that intersects the infinite line.
@@ -237027,17 +237106,17 @@ class PolyfaceQuery {
237027
237106
  const numEdges = visitor.pointCount; // #vertices = #edges since numWrap is zero
237028
237107
  const vertices = visitor.point;
237029
237108
  if (3 === numEdges) {
237030
- const tri = this._workTriangle = _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_33__.BarycentricTriangle.create(vertices.getPoint3dAtUncheckedPointIndex(0), vertices.getPoint3dAtUncheckedPointIndex(1), vertices.getPoint3dAtUncheckedPointIndex(2), this._workTriangle);
237109
+ const tri = this._workTriangle = _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_34__.BarycentricTriangle.create(vertices.getPoint3dAtUncheckedPointIndex(0), vertices.getPoint3dAtUncheckedPointIndex(1), vertices.getPoint3dAtUncheckedPointIndex(2), this._workTriangle);
237031
237110
  const detail3 = this._workTriDetail = tri.intersectRay3d(ray, this._workTriDetail);
237032
237111
  tri.snapLocationToEdge(detail3, options?.distanceTolerance, options?.parameterTolerance);
237033
- detail = this._workFacetDetail3 = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.TriangularFacetLocationDetail.create(visitor.currentReadIndex(), detail3, this._workFacetDetail3);
237112
+ detail = this._workFacetDetail3 = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_35__.TriangularFacetLocationDetail.create(visitor.currentReadIndex(), detail3, this._workFacetDetail3);
237034
237113
  }
237035
237114
  else {
237036
237115
  const detailN = this._workPolyDetail = _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.intersectRay3d(vertices, ray, options?.distanceTolerance, this._workPolyDetail);
237037
237116
  if (_geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.PolygonOps.isConvex(vertices))
237038
- detail = this._workFacetDetailC = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.ConvexFacetLocationDetail.create(visitor.currentReadIndex(), numEdges, detailN, this._workFacetDetailC);
237117
+ detail = this._workFacetDetailC = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_35__.ConvexFacetLocationDetail.create(visitor.currentReadIndex(), numEdges, detailN, this._workFacetDetailC);
237039
237118
  else
237040
- detail = this._workFacetDetailNC = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_34__.NonConvexFacetLocationDetail.create(visitor.currentReadIndex(), numEdges, detailN, this._workFacetDetailNC);
237119
+ detail = this._workFacetDetailNC = _FacetLocationDetail__WEBPACK_IMPORTED_MODULE_35__.NonConvexFacetLocationDetail.create(visitor.currentReadIndex(), numEdges, detailN, this._workFacetDetailNC);
237041
237120
  }
237042
237121
  if (detail.isInsideOrOn) { // set optional caches, process the intersection
237043
237122
  if (options?.needNormal && visitor.normal)
@@ -237620,6 +237699,7 @@ __webpack_require__.r(__webpack_exports__);
237620
237699
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
237621
237700
  /* harmony export */ GriddedRaggedRange2dSet: () => (/* binding */ GriddedRaggedRange2dSet)
237622
237701
  /* harmony export */ });
237702
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
237623
237703
  /* harmony import */ var _LinearSearchRange2dArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LinearSearchRange2dArray */ "../../core/geometry/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js");
237624
237704
  /*---------------------------------------------------------------------------------------------
237625
237705
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
@@ -237629,14 +237709,15 @@ __webpack_require__.r(__webpack_exports__);
237629
237709
  * @module RangeSearch
237630
237710
  */
237631
237711
 
237712
+
237632
237713
  /**
237633
- * A GriddedRaggedRange2dSet is
237634
- * * A doubly dimensioned array of LinearSearchRange2dArray
237635
- * * Each entry represents a block in a uniform grid within the master range of the GriddedRaggedRange2dSet.
237714
+ * A GriddedRaggedRange2dSet is:
237715
+ * * A doubly dimensioned array of Range2dSearchInterface.
237716
+ * * Each entry represents a block in a uniform grid within the master range.
237636
237717
  * * Member ranges are noted in the grid block containing the range's lower left corner.
237637
237718
  * * Member ranges larger than twice the grid size are rejected by the insert method.
237638
237719
  * * Hence a search involving a point in grid block (i,j) must examine ranges in grid blocks left and below, i.e. (i-1,j-1), (i-1,j), (i,j-1)
237639
- * @internal
237720
+ * @public
237640
237721
  */
237641
237722
  class GriddedRaggedRange2dSet {
237642
237723
  constructor(range, numXEdge, numYEdge) {
@@ -237654,9 +237735,9 @@ class GriddedRaggedRange2dSet {
237654
237735
  }
237655
237736
  /**
237656
237737
  * Create an (empty) set of ranges.
237657
- * @param range
237658
- * @param numXEdge
237659
- * @param numYEdge
237738
+ * @param range master range
237739
+ * @param numXEdge size of grid in x direction
237740
+ * @param numYEdge size of grid in y direction
237660
237741
  */
237661
237742
  static create(range, numXEdge, numYEdge) {
237662
237743
  if (numXEdge < 1 || numYEdge < 1 || range.isNull || range.isSinglePoint)
@@ -237680,13 +237761,13 @@ class GriddedRaggedRange2dSet {
237680
237761
  return undefined;
237681
237762
  }
237682
237763
  /** If possible, insert a range into the set.
237683
- * * Decline to insert (and return false) if
237684
- * * range is null
237685
- * * range is not completely contained in the overall range of this set.
237686
- * * range x or y extent is larger than 2 grid blocks.
237764
+ * * Decline to insert (and return false) if:
237765
+ * * range is null
237766
+ * * range is not completely contained in the overall range of this set
237767
+ * * range x or y extent is larger than 2 grid blocks
237687
237768
  */
237688
237769
  conditionalInsert(range, tag) {
237689
- if (range.isNull)
237770
+ if (_geometry3d_Range__WEBPACK_IMPORTED_MODULE_1__.Range2d.isNull(range))
237690
237771
  return false;
237691
237772
  if (!this._range.containsRange(range))
237692
237773
  return false;
@@ -237705,6 +237786,10 @@ class GriddedRaggedRange2dSet {
237705
237786
  }
237706
237787
  return false;
237707
237788
  }
237789
+ /** Add a range to the search set. */
237790
+ addRange(range, tag) {
237791
+ this.conditionalInsert(range, tag);
237792
+ }
237708
237793
  /**
237709
237794
  * * Search a single block
237710
237795
  * * Pass each range and tag to handler
@@ -237770,6 +237855,19 @@ class GriddedRaggedRange2dSet {
237770
237855
  }
237771
237856
  return true;
237772
237857
  }
237858
+ /** Return the overall range of all members. */
237859
+ totalRange(result) {
237860
+ if (result)
237861
+ result.setNull();
237862
+ else
237863
+ result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_1__.Range2d.createNull();
237864
+ this.visitChildren(0, (_depth, child) => {
237865
+ const childRange = GriddedRaggedRange2dSet._workRange = child.totalRange(GriddedRaggedRange2dSet._workRange);
237866
+ result.extendRange(childRange);
237867
+ });
237868
+ return result;
237869
+ }
237870
+ /** Call the handler on each defined block in the grid. */
237773
237871
  visitChildren(initialDepth, handler) {
237774
237872
  for (const row of this._rangesInBlock) {
237775
237873
  for (const block of row) {
@@ -237794,6 +237892,7 @@ __webpack_require__.r(__webpack_exports__);
237794
237892
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
237795
237893
  /* harmony export */ GriddedRaggedRange2dSetWithOverflow: () => (/* binding */ GriddedRaggedRange2dSetWithOverflow)
237796
237894
  /* harmony export */ });
237895
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
237797
237896
  /* harmony import */ var _GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GriddedRaggedRange2dSet */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js");
237798
237897
  /* harmony import */ var _LinearSearchRange2dArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LinearSearchRange2dArray */ "../../core/geometry/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js");
237799
237898
  /*---------------------------------------------------------------------------------------------
@@ -237805,13 +237904,14 @@ __webpack_require__.r(__webpack_exports__);
237805
237904
  */
237806
237905
 
237807
237906
 
237907
+
237808
237908
  /**
237809
- * Use GriddedRaggedRange2dSetWithOverflow for searching among many ranges for which
237909
+ * Use GriddedRaggedRange2dSetWithOverflow for searching among many ranges for which:
237810
237910
  * * Most ranges are of somewhat consistent size.
237811
237911
  * * A modest number of oversizes.
237812
237912
  * * Maintain the smallish ones in a GriddedRaggedRange2dSet.
237813
- * * Maintain the overflows in a LinearSearchRange2dArray
237814
- * @internal
237913
+ * * Maintain the overflows in a Range2dSearchInterface.
237914
+ * @public
237815
237915
  */
237816
237916
  class GriddedRaggedRange2dSetWithOverflow {
237817
237917
  constructor(gridSet, overflowSet) {
@@ -237859,11 +237959,24 @@ class GriddedRaggedRange2dSetWithOverflow {
237859
237959
  * * range x or y extent is larger than 2 grid blocks.
237860
237960
  */
237861
237961
  addRange(range, tag) {
237862
- if (!range.isNull) {
237962
+ if (!_geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range2d.isNull(range)) {
237863
237963
  if (!this._gridSet.conditionalInsert(range, tag))
237864
237964
  this._overflowSet.addRange(range, tag);
237865
237965
  }
237866
237966
  }
237967
+ /** Return the overall range of all members. */
237968
+ totalRange(result) {
237969
+ if (result)
237970
+ result.setNull();
237971
+ else
237972
+ result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range2d.createNull();
237973
+ this.visitChildren(0, (_depth, child) => {
237974
+ const childRange = GriddedRaggedRange2dSetWithOverflow._workRange = child.totalRange(GriddedRaggedRange2dSetWithOverflow._workRange);
237975
+ result.extendRange(childRange);
237976
+ });
237977
+ return result;
237978
+ }
237979
+ /** Call the handler on the overflow set, and on each defined block in the grid. */
237867
237980
  visitChildren(initialDepth, handler) {
237868
237981
  handler(initialDepth, this._overflowSet);
237869
237982
  this._gridSet.visitChildren(initialDepth + 1, handler);
@@ -237894,11 +238007,10 @@ __webpack_require__.r(__webpack_exports__);
237894
238007
  */
237895
238008
 
237896
238009
  /**
237897
- * * Array of Range2d
237898
- * * user data tag attached to each range via cast as (any).userTag.
238010
+ * An array of decorated Range2d.
238011
+ * * User data is attached to each range via `(myRange as any).tag = myTag`.
237899
238012
  * * Search operations are simple linear.
237900
238013
  * * This class can be used directly for "smallish" range sets, or as the leaf level of hierarchical structures for larger range sets.
237901
- * *
237902
238014
  * @internal
237903
238015
  */
237904
238016
  class LinearSearchRange2dArray {
@@ -237911,9 +238023,8 @@ class LinearSearchRange2dArray {
237911
238023
  updateForSearch() {
237912
238024
  this._isDirty = false;
237913
238025
  }
237914
- /** Return the overall range of all member ranges. */
238026
+ /** Return the overall range of all members. */
237915
238027
  totalRange(result) {
237916
- result = result ? result : _geometry3d_Range__WEBPACK_IMPORTED_MODULE_0__.Range2d.createNull();
237917
238028
  return this._compositeRange.clone(result);
237918
238029
  }
237919
238030
  /** Add a range to the search set. */
@@ -239104,6 +239215,7 @@ RangeSearch.defaultStandardDeviationAdjustment = 1.0;
239104
239215
  __webpack_require__.r(__webpack_exports__);
239105
239216
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
239106
239217
  /* harmony export */ ClipSweptLineStringContext: () => (/* binding */ ClipSweptLineStringContext),
239218
+ /* harmony export */ EdgeClipData: () => (/* binding */ EdgeClipData),
239107
239219
  /* harmony export */ SweepLineStringToFacetContext: () => (/* binding */ SweepLineStringToFacetContext)
239108
239220
  /* harmony export */ });
239109
239221
  /* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
@@ -239114,6 +239226,7 @@ __webpack_require__.r(__webpack_exports__);
239114
239226
  /* harmony import */ var _clipping_ClipPlane__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../clipping/ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
239115
239227
  /* harmony import */ var _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../clipping/ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
239116
239228
  /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
239229
+ /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
239117
239230
  /*---------------------------------------------------------------------------------------------
239118
239231
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
239119
239232
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -239129,6 +239242,7 @@ __webpack_require__.r(__webpack_exports__);
239129
239242
 
239130
239243
 
239131
239244
 
239245
+
239132
239246
  class SweepLineStringToFacetContext {
239133
239247
  constructor(spacePoints) {
239134
239248
  // temporaries reused over multiple calls to process a single facet . ..
@@ -239234,10 +239348,13 @@ class EdgeClipData {
239234
239348
  }
239235
239349
  return undefined;
239236
239350
  }
239351
+ /** Intersect this edge plane with the given convex polygon and announce the intersection segment to the callback. */
239237
239352
  processPolygon(polygon, announceEdge) {
239238
239353
  this._crossingPoints.length = 0;
239239
- _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.Point3dArrayPolygonOps.polygonPlaneCrossings(this.edgePlane, polygon, this._crossingPoints);
239240
- // process a convex polygon (or non-convex if lucky)
239354
+ if (Array.isArray(polygon))
239355
+ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.Point3dArrayPolygonOps.polygonPlaneCrossings(this.edgePlane, polygon, this._crossingPoints);
239356
+ else
239357
+ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__.IndexedXYZCollectionPolygonOps.polygonPlaneCrossings(this.edgePlane, polygon, this._crossingPoints);
239241
239358
  if (this._crossingPoints.length === 2) {
239242
239359
  // use the end planes to clip the [0,1] swept edge to [f0,f1]
239243
239360
  this.clip.announceClippedSegmentIntervals(0, 1, this._crossingPoints[0], this._crossingPoints[1], (f0, f1) => {
@@ -239251,8 +239368,13 @@ class EdgeClipData {
239251
239368
  * @internal
239252
239369
  */
239253
239370
  class ClipSweptLineStringContext {
239254
- constructor(edgeData) {
239371
+ constructor(edgeData, localData) {
239255
239372
  this._edgeClippers = edgeData;
239373
+ if (localData !== undefined) {
239374
+ this._localToWorld = localData.localToWorld;
239375
+ this._worldToLocal = localData.worldToLocal;
239376
+ this._localRange = localData.localRange;
239377
+ }
239256
239378
  }
239257
239379
  static create(xyz, sweepVector) {
239258
239380
  if (sweepVector === undefined)
@@ -239262,6 +239384,12 @@ class ClipSweptLineStringContext {
239262
239384
  const newPoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.createZero();
239263
239385
  const edgeData = [];
239264
239386
  xyz.getPoint3dAtUncheckedPointIndex(0, point);
239387
+ let localToWorldMatrix = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createRigidHeadsUp(sweepVector);
239388
+ if (localToWorldMatrix === undefined)
239389
+ localToWorldMatrix = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createIdentity();
239390
+ const localToWorld = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_2__.Transform.createOriginAndMatrix(point, localToWorldMatrix);
239391
+ const worldToLocal = localToWorld.inverse();
239392
+ const localRange = xyz.getRange(worldToLocal);
239265
239393
  for (let i = 1; i < xyz.length; i++) {
239266
239394
  xyz.getPoint3dAtUncheckedPointIndex(i, newPoint);
239267
239395
  const clipper = EdgeClipData.createPointPointSweep(point, newPoint, sweepVector);
@@ -239270,11 +239398,20 @@ class ClipSweptLineStringContext {
239270
239398
  edgeData.push(clipper);
239271
239399
  }
239272
239400
  }
239273
- return new ClipSweptLineStringContext(edgeData);
239401
+ return new ClipSweptLineStringContext(edgeData, { localToWorld, worldToLocal, localRange });
239274
239402
  }
239275
239403
  return undefined;
239276
239404
  }
239405
+ /**
239406
+ * Intersect a polygon with each of the edgeClippers.
239407
+ * * If transforms and local range are defined, test the polygon's local range to see if it offers a quick exit.
239408
+ */
239277
239409
  processPolygon(polygon, announceEdge) {
239410
+ if (this._worldToLocal !== undefined && this._localRange !== undefined) {
239411
+ const polygonRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__.Range3d.createTransformedArray(this._worldToLocal, polygon);
239412
+ if (!polygonRange.intersectsRangeXY(this._localRange))
239413
+ return;
239414
+ }
239278
239415
  for (const clipper of this._edgeClippers) {
239279
239416
  clipper.processPolygon(polygon, announceEdge);
239280
239417
  }
@@ -279131,7 +279268,7 @@ class TestContext {
279131
279268
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
279132
279269
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
279133
279270
  await core_frontend_1.NoRenderApp.startup({
279134
- applicationVersion: "4.1.0-dev.73",
279271
+ applicationVersion: "4.1.0-dev.75",
279135
279272
  applicationId: this.settings.gprid,
279136
279273
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
279137
279274
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -282452,6 +282589,7 @@ class Descriptor {
282452
282589
  this.filterExpression = source.fieldsFilterExpression ?? source.filterExpression; // eslint-disable-line deprecation/deprecation
282453
282590
  this.fieldsFilterExpression = source.fieldsFilterExpression ?? source.filterExpression; // eslint-disable-line deprecation/deprecation
282454
282591
  this.instanceFilter = source.instanceFilter;
282592
+ this.ruleset = source.ruleset;
282455
282593
  }
282456
282594
  /** Serialize [[Descriptor]] to JSON */
282457
282595
  toJSON() {
@@ -282469,7 +282607,7 @@ class Descriptor {
282469
282607
  // istanbul ignore next
282470
282608
  this.contentOptions !== undefined && { contentOptions: this.contentOptions }, // eslint-disable-line deprecation/deprecation
282471
282609
  this.sortingField !== undefined && { sortingFieldName: this.sortingField.name }, this.sortDirection !== undefined && { sortDirection: this.sortDirection }, this.filterExpression !== undefined && { filterExpression: this.filterExpression }, // eslint-disable-line deprecation/deprecation
282472
- this.fieldsFilterExpression !== undefined && { fieldsFilterExpression: this.fieldsFilterExpression }, this.instanceFilter !== undefined && { instanceFilter: this.instanceFilter }, this.selectionInfo !== undefined && { selectionInfo: this.selectionInfo });
282610
+ this.fieldsFilterExpression !== undefined && { fieldsFilterExpression: this.fieldsFilterExpression }, this.instanceFilter !== undefined && { instanceFilter: this.instanceFilter }, this.selectionInfo !== undefined && { selectionInfo: this.selectionInfo }, this.ruleset !== undefined && { ruleset: this.ruleset });
282473
282611
  }
282474
282612
  /** Deserialize [[Descriptor]] from JSON */
282475
282613
  static fromJSON(json) {
@@ -298503,7 +298641,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
298503
298641
  /***/ ((module) => {
298504
298642
 
298505
298643
  "use strict";
298506
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.1.0-dev.73","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.73","@itwin/core-bentley":"workspace:^4.1.0-dev.73","@itwin/core-common":"workspace:^4.1.0-dev.73","@itwin/core-geometry":"workspace:^4.1.0-dev.73","@itwin/core-orbitgt":"workspace:^4.1.0-dev.73","@itwin/core-quantity":"workspace:^4.1.0-dev.73"},"//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"}}');
298644
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.1.0-dev.75","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.75","@itwin/core-bentley":"workspace:^4.1.0-dev.75","@itwin/core-common":"workspace:^4.1.0-dev.75","@itwin/core-geometry":"workspace:^4.1.0-dev.75","@itwin/core-orbitgt":"workspace:^4.1.0-dev.75","@itwin/core-quantity":"workspace:^4.1.0-dev.75"},"//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"}}');
298507
298645
 
298508
298646
  /***/ }),
298509
298647