@itwin/core-geometry 5.1.1 → 5.1.3-experimental.1
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/CHANGELOG.md +11 -1
- package/lib/cjs/Constant.js.map +1 -1
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
- package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
- package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
- package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
- package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
- package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/cjs/bspline/KnotVector.js.map +1 -1
- package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
- package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
- package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
- package/lib/cjs/clipping/ClipPlane.js.map +1 -1
- package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
- package/lib/cjs/clipping/ClipUtils.js.map +1 -1
- package/lib/cjs/clipping/ClipVector.js.map +1 -1
- package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/cjs/core-geometry.js.map +1 -1
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
- package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.js.map +1 -1
- package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurveOps.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/CurveProcessor.js.map +1 -1
- package/lib/cjs/curve/CurveTypes.js.map +1 -1
- package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
- package/lib/cjs/curve/GeometryQuery.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.js.map +1 -1
- package/lib/cjs/curve/Loop.js.map +1 -1
- package/lib/cjs/curve/OffsetOptions.js.map +1 -1
- package/lib/cjs/curve/ParityRegion.js.map +1 -1
- package/lib/cjs/curve/Path.js.map +1 -1
- package/lib/cjs/curve/PointString3d.js.map +1 -1
- package/lib/cjs/curve/ProxyCurve.js.map +1 -1
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
- package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
- package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/cjs/curve/StrokeOptions.js.map +1 -1
- package/lib/cjs/curve/UnionRegion.js.map +1 -1
- package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
- package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
- package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/cjs/geometry3d/Angle.js.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
- package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
- package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
- package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
- package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
- package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
- package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
- package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/cjs/geometry4d/Map4d.js.map +1 -1
- package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
- package/lib/cjs/geometry4d/MomentData.js.map +1 -1
- package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
- package/lib/cjs/geometry4d/Point4d.js.map +1 -1
- package/lib/cjs/numerics/BandedSystem.js.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
- package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
- package/lib/cjs/numerics/Complex.js.map +1 -1
- package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/cjs/numerics/Newton.js.map +1 -1
- package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
- package/lib/cjs/numerics/PolarData.js.map +1 -1
- package/lib/cjs/numerics/Polynomials.js.map +1 -1
- package/lib/cjs/numerics/Quadrature.js.map +1 -1
- package/lib/cjs/numerics/Range1dArray.js.map +1 -1
- package/lib/cjs/numerics/SmallSystem.js.map +1 -1
- package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
- package/lib/cjs/numerics/UnionFind.js.map +1 -1
- package/lib/cjs/numerics/UsageSums.js.map +1 -1
- package/lib/cjs/polyface/AuxData.js.map +1 -1
- package/lib/cjs/polyface/BoxTopology.js.map +1 -1
- package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
- package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
- package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
- package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
- package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -1
- package/lib/cjs/polyface/Polyface.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
- package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
- package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
- package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
- package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
- package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
- package/lib/cjs/serialization/BGFBReader.js.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
- package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
- package/lib/cjs/serialization/DeepCompare.js.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
- package/lib/cjs/solid/Box.js.map +1 -1
- package/lib/cjs/solid/Cone.js.map +1 -1
- package/lib/cjs/solid/LinearSweep.js.map +1 -1
- package/lib/cjs/solid/RotationalSweep.js.map +1 -1
- package/lib/cjs/solid/RuledSweep.js.map +1 -1
- package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
- package/lib/cjs/solid/Sphere.js.map +1 -1
- package/lib/cjs/solid/SweepContour.js.map +1 -1
- package/lib/cjs/solid/TorusPipe.js.map +1 -1
- package/lib/cjs/topology/ChainMerge.js.map +1 -1
- package/lib/cjs/topology/Graph.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/cjs/topology/MaskManager.js.map +1 -1
- package/lib/cjs/topology/Merging.js.map +1 -1
- package/lib/cjs/topology/RegularizeFace.js.map +1 -1
- package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
- package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
- package/lib/cjs/topology/Triangulation.js.map +1 -1
- package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
- package/lib/esm/Constant.js.map +1 -1
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
- package/lib/esm/bspline/BSplineSurface.js.map +1 -1
- package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
- package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/esm/bspline/KnotVector.js.map +1 -1
- package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
- package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
- package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
- package/lib/esm/clipping/ClipPlane.js.map +1 -1
- package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
- package/lib/esm/clipping/ClipUtils.js.map +1 -1
- package/lib/esm/clipping/ClipVector.js.map +1 -1
- package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/esm/core-geometry.js.map +1 -1
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
- package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveCurve.js.map +1 -1
- package/lib/esm/curve/CurveExtendMode.js.map +1 -1
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurveOps.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/CurveProcessor.js.map +1 -1
- package/lib/esm/curve/CurveTypes.js.map +1 -1
- package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
- package/lib/esm/curve/GeometryQuery.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.js.map +1 -1
- package/lib/esm/curve/Loop.js.map +1 -1
- package/lib/esm/curve/OffsetOptions.js.map +1 -1
- package/lib/esm/curve/ParityRegion.js.map +1 -1
- package/lib/esm/curve/Path.js.map +1 -1
- package/lib/esm/curve/PointString3d.js.map +1 -1
- package/lib/esm/curve/ProxyCurve.js.map +1 -1
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
- package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/esm/curve/Query/InOutTests.js.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
- package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
- package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/esm/curve/StrokeOptions.js.map +1 -1
- package/lib/esm/curve/UnionRegion.js.map +1 -1
- package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
- package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
- package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/esm/geometry3d/Angle.js.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
- package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
- package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/esm/geometry3d/Plane3d.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
- package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/geometry3d/Ray2d.js.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js.map +1 -1
- package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/esm/geometry3d/Segment1d.js.map +1 -1
- package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
- package/lib/esm/geometry3d/XYZProps.js.map +1 -1
- package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/esm/geometry4d/Map4d.js.map +1 -1
- package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
- package/lib/esm/geometry4d/MomentData.js.map +1 -1
- package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
- package/lib/esm/geometry4d/Point4d.js.map +1 -1
- package/lib/esm/numerics/BandedSystem.js.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
- package/lib/esm/numerics/ClusterableArray.js.map +1 -1
- package/lib/esm/numerics/Complex.js.map +1 -1
- package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/esm/numerics/Newton.js.map +1 -1
- package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
- package/lib/esm/numerics/PolarData.js.map +1 -1
- package/lib/esm/numerics/Polynomials.js.map +1 -1
- package/lib/esm/numerics/Quadrature.js.map +1 -1
- package/lib/esm/numerics/Range1dArray.js.map +1 -1
- package/lib/esm/numerics/SmallSystem.js.map +1 -1
- package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
- package/lib/esm/numerics/UnionFind.js.map +1 -1
- package/lib/esm/numerics/UsageSums.js.map +1 -1
- package/lib/esm/polyface/AuxData.js.map +1 -1
- package/lib/esm/polyface/BoxTopology.js.map +1 -1
- package/lib/esm/polyface/FacetFaceData.js.map +1 -1
- package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
- package/lib/esm/polyface/FacetOrientation.js.map +1 -1
- package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
- package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -1
- package/lib/esm/polyface/Polyface.js.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
- package/lib/esm/polyface/PolyfaceData.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/esm/polyface/RangeLengthData.js.map +1 -1
- package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
- package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
- package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
- package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
- package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
- package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
- package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
- package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
- package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
- package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
- package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
- package/lib/esm/serialization/BGFBReader.js.map +1 -1
- package/lib/esm/serialization/BGFBWriter.js.map +1 -1
- package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
- package/lib/esm/serialization/DeepCompare.js.map +1 -1
- package/lib/esm/serialization/GeometrySamples.js.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
- package/lib/esm/solid/Box.js.map +1 -1
- package/lib/esm/solid/Cone.js.map +1 -1
- package/lib/esm/solid/LinearSweep.js.map +1 -1
- package/lib/esm/solid/RotationalSweep.js.map +1 -1
- package/lib/esm/solid/RuledSweep.js.map +1 -1
- package/lib/esm/solid/SolidPrimitive.js.map +1 -1
- package/lib/esm/solid/Sphere.js.map +1 -1
- package/lib/esm/solid/SweepContour.js.map +1 -1
- package/lib/esm/solid/TorusPipe.js.map +1 -1
- package/lib/esm/topology/ChainMerge.js.map +1 -1
- package/lib/esm/topology/Graph.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
- package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
- package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/esm/topology/MaskManager.js.map +1 -1
- package/lib/esm/topology/Merging.js.map +1 -1
- package/lib/esm/topology/RegularizeFace.js.map +1 -1
- package/lib/esm/topology/SignedDataSummary.js.map +1 -1
- package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
- package/lib/esm/topology/Triangulation.js.map +1 -1
- package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Point3dArrayRangeTreeContext.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/Point3dArrayRangeTreeContext.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,6CAA6C,EAAE,4DAA4D,GAC5G,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,MAAM,OAAO,4BAA4B;IACvC,gEAAgE;IACzD,MAAM,CAAY;IAEzB,sDAAsD;IAC/C,gBAAgB,CAAS;IAChC,uDAAuD;IAChD,iBAAiB,CAAS;IACjC,iDAAiD;IAC1C,YAAY,CAAS;IAC5B,qCAAqC;IAC9B,SAAS,CAAS;IAEzB,kEAAkE;IAC1D,cAAc,CAAwB;IAE9C,6DAA6D;IAC7D,YAAoB,aAAoC,EAAE,MAAiB;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IACD;;;;;;;OAOG;IACI,MAAM,CAAC,aAAa,CAAC,MAAiB,EAAE,kBAA0B,CAAC,EAAE,oBAA4B,CAAC;QACvG,MAAM,aAAa,GAAG,YAAY,CAAC,mBAAmB,CACpD,CAAC,CAAC,KAAa,EAAW,EAAE,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvE,CAAC,CAAC,KAAa,EAAU,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9C,MAAM,CAAC,MAAM,EACb,eAAe,EACf,iBAAiB,CAClB,CAAC;QACF,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,4BAA4B,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,CAAC;IACD;;;;;;;;OAQG;IACI,qBAAqB,CAAC,UAAmB,EAAE,OAAgB;QAChE,MAAM,OAAO,GAAG,IAAI,6CAA6C,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7F,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACpG,CAAC;IACD;;;;;;;;;MASE;IACK,MAAM,CAAC,wBAAwB,CAAC,QAAsC,EAAE,QAAsC,EAAE,OAAgB;QACrI,MAAM,OAAO,GAAG,IAAI,4DAA4D,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9G,aAAa,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACpG,CAAC;CACF"
|
|
1
|
+
{"version":3,"file":"Point3dArrayRangeTreeContext.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/Point3dArrayRangeTreeContext.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,6CAA6C,EAAE,4DAA4D,GAC5G,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,MAAM,OAAO,4BAA4B;IACvC,gEAAgE;IACzD,MAAM,CAAY;IAEzB,sDAAsD;IAC/C,gBAAgB,CAAS;IAChC,uDAAuD;IAChD,iBAAiB,CAAS;IACjC,iDAAiD;IAC1C,YAAY,CAAS;IAC5B,qCAAqC;IAC9B,SAAS,CAAS;IAEzB,kEAAkE;IAC1D,cAAc,CAAwB;IAE9C,6DAA6D;IAC7D,YAAoB,aAAoC,EAAE,MAAiB;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IACD;;;;;;;OAOG;IACI,MAAM,CAAC,aAAa,CAAC,MAAiB,EAAE,kBAA0B,CAAC,EAAE,oBAA4B,CAAC;QACvG,MAAM,aAAa,GAAG,YAAY,CAAC,mBAAmB,CACpD,CAAC,CAAC,KAAa,EAAW,EAAE,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvE,CAAC,CAAC,KAAa,EAAU,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9C,MAAM,CAAC,MAAM,EACb,eAAe,EACf,iBAAiB,CAClB,CAAC;QACF,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,4BAA4B,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,CAAC;IACD;;;;;;;;OAQG;IACI,qBAAqB,CAAC,UAAmB,EAAE,OAAgB;QAChE,MAAM,OAAO,GAAG,IAAI,6CAA6C,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7F,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACpG,CAAC;IACD;;;;;;;;;MASE;IACK,MAAM,CAAC,wBAAwB,CAAC,QAAsC,EAAE,QAAsC,EAAE,OAAgB;QACrI,MAAM,OAAO,GAAG,IAAI,4DAA4D,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9G,aAAa,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACpG,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolyfaceRangeTreeContext.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/PolyfaceRangeTreeContext.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,OAAO,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,gDAAgD,EAAE,8CAA8C,EAAE,MAAM,2BAA2B,CAAC;AAE7I;;;;GAIG;AACH,MAAM,OAAO,wBAAwB;IACnC,8CAA8C;IACvC,OAAO,CAAkB;IAChC,0DAA0D;IACnD,YAAY,CAAU;IAE7B,iEAAiE;IAC1D,gBAAgB,CAAS;IAChC,sEAAsE;IAC/D,iBAAiB,CAAS;IACjC,yCAAyC;IAClC,YAAY,CAAS;IAC5B,gDAAgD;IACzC,SAAS,CAAS;IAEzB,yDAAyD;IACjD,cAAc,CAAwB;IAE9C,6DAA6D;IAC7D,YAAoB,aAAoC,EAAE,OAAwB,EAAE,eAAwB,KAAK;QAC/G,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IACD;;;;;;;;OAQG;IACI,MAAM,CAAC,aAAa,CAAC,OAAmC,EAAE,kBAA0B,CAAC,EAAE,oBAA4B,CAAC,EAAE,eAAwB,KAAK;QACxJ,IAAI,OAAO,YAAY,QAAQ;YAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACxG,MAAM,QAAQ,GAAG,aAAa,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,YAAY,CAAC,mBAAmB,CACpD,CAAC,KAAa,EAAW,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EACvF,CAAC,KAAa,EAAU,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,EAC5C,QAAQ,EACR,eAAe,EACf,iBAAiB,CAClB,CAAC;QACF,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,wBAAwB,CAAC,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,CAAC;IACD;;;;;;OAMG;IACI,qBAAqB,CAAC,UAAmB,EAAE,OAAgB,EAAE,sBAA+B,KAAK;QACtG,MAAM,OAAO,GAAG,IAAI,gDAAgD,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACrH,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,qHAAqH;QACrH,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,QAAQ;YACpD,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACpG,CAAC;IACD;;;;;;;MAOE;IACK,MAAM,CAAC,wBAAwB,CAAC,QAAkC,EAAE,QAAkC,EAAE,OAAgB,EAAE,sBAA+B,KAAK;QACnK,MAAM,OAAO,GAAG,IAAI,8CAA8C,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACrH,aAAa,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACpG,CAAC;CACF"
|
|
1
|
+
{"version":3,"file":"PolyfaceRangeTreeContext.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/PolyfaceRangeTreeContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeTreeNode.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/RangeTreeNode.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module RangeSearch\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { Range3d } from \"../../geometry3d/Range\";\n\n/** Type name FlexData is shorthand for a member or parameter which can be:\n * * undefined\n * * an array of values of type T\n * * a singleton of type T\n */\ntype FlexData<T> = undefined | T[] | T;\n/**\n * Type name IndexToType is shorthand for a member or parameter which can be:\n * * an array of values of type T\n * * a function from integers to type T.\n */\ntype IndexToType<T> = T[] | ((index: number) => T);\n\n/**\n * Map an (unchecked) integer to a parameterized type T, where the data argument can be either:\n * * an array of type T\n * * a function which takes an index and returns type T\n * @internal\n */\nfunction evaluateIndexToType<T>(data: IndexToType<T>, index: number): T {\n if (Array.isArray(data))\n return data[index];\n return data(index);\n}\n/**\n * Get data by index from a source that may be undefined, an array of item of type T, or a singleton of the item type.\n * @internal\n */\nfunction getByIndex<T>(index: number, data: FlexData<T>): T | undefined {\n if (data !== undefined) {\n if (Array.isArray(data)) {\n if (index < data.length)\n return data[index];\n } else {\n return data;\n }\n }\n return undefined;\n}\n/**\n * Return the number of items in an object that can be undefined, an array of item of type T, or a singleton of the item type.\n * @internal\n */\nfunction getFlexDataCount<T>(data: FlexData<T>): number {\n if (data !== undefined) {\n if (Array.isArray(data)) {\n return data.length;\n } else {\n return 1;\n }\n }\n return 0;\n}\n/**\n * Abstract class for handler objects called during traversal of a single range tree.\n * @internal\n */\nexport abstract class SingleTreeSearchHandler<AppDataType> {\n /** Return true if appData within the range should be offered to `processAppData`. */\n public abstract isRangeActive(range: Range3d): boolean;\n /**\n * Called for a (single) child referenced by a tree.\n * * This is only called when range checks on the path from root have been passed.\n * @param item child (of type AppDataType) in the tree.\n */\n public abstract processAppData(item: AppDataType): void;\n /**\n * Query to see if the active search has been aborted.\n * * Default implementation returns false so query runs to completion.\n * * Search processes check this after range tests and child processing.\n */\n // eslint-disable-next-line @itwin/prefer-get\n public isAborted(): boolean { return false; }\n}\n/**\n * Abstract class for handler objects called during traversal of two range trees.\n * @internal\n */\nexport abstract class TwoTreeSearchHandler<AppDataType> {\n /** Return true if appData within the ranges should be offered to `processAppDataPair`. */\n public abstract isRangePairActive(leftRange: Range3d, rightRange: Range3d): boolean;\n /**\n * Called with AppDataType items from left tree and right tree.\n * * This is only called when range tests have been passed.\n * @param leftItem\n * @param rightItem\n */\n public abstract processAppDataPair(leftItem: AppDataType, rightItem: AppDataType): void;\n /**\n * Query to see if the active search has been aborted.\n * * Default implementation returns false so query runs to completion.\n * * Search processes check this after range tests and child processing.\n */\n // eslint-disable-next-line @itwin/prefer-get\n public isAborted(): boolean { return false; }\n}\n/**\n * This class refines the TwoTreeSearchHandler with an implementation of `isRangePairActive` appropriate for computing the minimum distance between trees.\n * * The concrete class must implement `getCurrentDistance()` method to provide the best-so-far distance.\n * * The implementation of `isRangePairActive` returns true if the distance between ranges is less than or equal to the `getCurrentDistance()` value.\n * @internal\n */\nexport abstract class TwoTreeDistanceMinimizationSearchHandler<AppDataType> extends TwoTreeSearchHandler<AppDataType>{\n /**\n * Provides the allowable distance between ranges.\n * * Range pairs with more than this distance separation are rejected.\n * * The implementation may alter (probably reduce) the getCurrentDistance() value as the search progresses.\n */\n public abstract getCurrentDistance(): number;\n /**\n * Method called to decide whether to process subtrees and immediate child appData items from a left tree node and right tree node.\n * @param leftRange range from a node in the left tree\n * @param rightRange range from a node in the right tree.\n * @returns true if the smallest distance from leftRange to rightRange is less than or equal to getCurrentDistance()\n */\n public override isRangePairActive(leftRange: Range3d, rightRange: Range3d): boolean {\n const currentDistance = this.getCurrentDistance();\n const distanceBetweenRanges = leftRange.distanceToRange(rightRange);\n if (distanceBetweenRanges <= currentDistance) {\n return true;\n }\n return false;\n }\n}\n\nlet numNodeCreated = 0;\n\n/**\n * * TREE STRUCTURE\n * * A RangeTreeNode is part of a range tree.\n * * TREE is used here in a strictly _structural_ sense, which has no broad promises about data members.\n * * Each RangeNode points to 0, 1 or many children.\n * * Each child has (but does not point back to) a single parent.\n * * The overall tree has a single root.\n * * Each node is effectively the root of the tree of its children.\n * * NON-TREE DATA MEMBERS\n * * Data members in each node (in addition to children) are\n * * _range = the union of ranges below in the heap\n * * _appData = application data associated with the node.\n * * Construction methods may place multiple _appData items in each node.\n * * In common use, only the leaves will have _appData. However, the class definitions allow _appData at all nodes, and search algorithms must include them.\n * * CONSTRUCTION\n * * The RangeTreeNode.createByIndexSplits method constructs the tree with simple right-left splits within an array of input items.\n * * The appData is placed entirely in the leaves.\n * * The caller can specify:\n * * the number of _appData items per leaf\n * * the number of children per node within the tree.\n * * Compared to \"shallow\" trees with many children per node and many appData per leaf, \"deep\" trees with 2 children per node and 1 appData per leaf may have:\n * * faster search because lower nodes have smaller ranges that will be skipped by search algorithms.\n * * larger memory use because of more nodes\n * * For future construction methods:\n * * _appData \"above the leaves\" may allow nodes below to have smaller ranges, but add complexity to search.\n * @internal\n */\nexport class RangeTreeNode<AppDataType> {\n private _range: Range3d;\n private _appData: FlexData<AppDataType>;\n private _children: FlexData<RangeTreeNode<AppDataType>>;\n /** an id assigned sequentially as nodes are created. For debugging use only. */\n private _id: number;\n /**\n * CONSTRUCTOR\n * CAPTURE (not copy)\n * * range = range for search algorithms\n * * appData = application data relevant to this node.\n * * children = child node reference(s).\n */\n private constructor(range: Range3d, appData: FlexData<AppDataType>, children: FlexData<RangeTreeNode<AppDataType>>) {\n this._range = range;\n this._appData = appData;\n this._children = children;\n this._id = numNodeCreated++;\n // const childIds: number[] = [];\n // if (Array.isArray(this._children))\n // for (const c of this._children) childIds.push(c._id);\n // else if (this._children instanceof RangeTreeNode)\n // childIds.push(this._children._id);\n // const numAppData = getFlexDataCount(appData);\n // console.log({ id: this._id, childIds, numAppData });\n }\n /** Simplest public create: capture the range, appData, and children. */\n public static createCapture<AppDataType>(\n range: Range3d,\n appData: FlexData<AppDataType>,\n children: FlexData<RangeTreeNode<AppDataType>>): RangeTreeNode<AppDataType> {\n return new RangeTreeNode<AppDataType>(range, appData, children);\n }\n /** copy (not capture) from given data into the range in this RangeEntry */\n public setRange(data: Range3d) {\n this._range.setFrom(data);\n }\n /** return (a copy of) the range in this RangeEntry */\n public getRange(data?: Range3d): Range3d {\n return this._range.clone(data);\n }\n /** return (a reference to) the range in this RangeEntry */\n public getRangeRef(): Range3d {\n return this._range;\n }\n /**\n * Access a child by index.\n * * If the child data is an array, this dereferences the array.\n * * If the child data is a singleton, treat it as index 0.\n * * return undefined if there are no children.\n * @param index index of item to access.\n */\n public getChildByIndex(index: number): RangeTreeNode<AppDataType> | undefined {\n return getByIndex<RangeTreeNode<AppDataType>>(index, this._children);\n }\n /**\n * * Access an appData by index.\n * * If the appData data is an array, this dereferences the array.\n * * If the appData data is a singleton, treat it as if it is at index 0 in an array\n * * return undefined if there are no appData or for any index out of range.\n * @param index index of item to access.\n */\n public getAppDataByIndex(index: number): AppDataType | undefined {\n return getByIndex<AppDataType>(index, this._appData);\n }\n /** Access the children or child (does not clone). */\n public getAllChildren(): FlexData<RangeTreeNode<AppDataType>> {\n return this._children;\n }\n /** Access the appData array or singleton (does not clone). */\n public getAllAppData(): FlexData<AppDataType> {\n return this._appData;\n }\n /**\n * Count the direct children in this node of the tree.\n * * This is not recursive. For a recursive count, use `RangeTreeOps.getRecursiveNodeCount`.\n */\n public getNumChildren(): number {\n return getFlexDataCount(this._children);\n }\n /**\n * Count the appData items in this node of the tree.\n * * This is not recursive. For a recursive count, use `RangeTreeOps.getRecursiveAppDataCount`.\n */\n public getNumAppData(): number {\n return getFlexDataCount(this._appData);\n }\n /**\n * Depth-first tree iteration, calling `announceNode` on each node.\n * @param announceNode callback that returns true to recurse into children\n */\n public recurseIntoTree(announceNode: (node: RangeTreeNode<AppDataType>) => boolean) {\n const doChildren = announceNode(this);\n if (doChildren) {\n if (Array.isArray(this._children)) {\n for (const child of this._children)\n child.recurseIntoTree(announceNode);\n } else if (this._children !== undefined) {\n this._children.recurseIntoTree(announceNode);\n }\n }\n }\n /**\n * Depth-first tree iteration via handler.\n * * if handler decides the instance range is active, process appData, then recurse on children\n * * if handler decides to abort after processing an appData, skip processing rest of appData and children\n */\n public searchTopDown(handler: SingleTreeSearchHandler<AppDataType>) {\n if (handler.isRangeActive(this._range)) {\n let itemToProcess: AppDataType | undefined;\n for (let i = 0; undefined !== (itemToProcess = this.getAppDataByIndex(i)); i++) {\n // console.log(itemToProcess);\n handler.processAppData(itemToProcess);\n if (handler.isAborted())\n return;\n }\n let child: RangeTreeNode<AppDataType> | undefined;\n for (let i = 0; undefined !== (child = this.getChildByIndex(i)); i++) {\n child.searchTopDown(handler);\n }\n }\n }\n\n /**\n * Apply the handler.processAppDataPair method to each pair of appData items from leftAppData and rightStack.\n * @param leftAppData singleton or array with data \"from left\"\n * @param rightStack stack of nodes to process from right path.\n * @param reverseArgs true if the caller is exchanging the sense of left and right and this should be undone in the actual call to handler.processAppDataPair.\n * @param handler search handler\n */\n private static processAppDataAndAppDataStack<AppDataType>(\n leftAppData: FlexData<AppDataType>,\n rightStack: RangeTreeNode<AppDataType>[],\n reverseArgs: boolean,\n handler: TwoTreeSearchHandler<AppDataType>,\n ) {\n if (leftAppData !== undefined) {\n let leftItem: AppDataType | undefined;\n let rightItem: AppDataType | undefined;\n // hmm.. we ASSUME that if the tip ranges passed, then all parent ranges would pass without further test.\n for (let rangeIndex = rightStack.length; rangeIndex-- > 0;) {\n const rightAppData = rightStack[rangeIndex]._appData;\n for (let rightIndex = 0; undefined !== (rightItem = getByIndex<AppDataType>(rightIndex, rightAppData)); rightIndex++) {\n for (let leftIndex = 0; undefined !== (leftItem = getByIndex<AppDataType>(leftIndex, leftAppData)); leftIndex++) {\n if (!reverseArgs)\n handler.processAppDataPair(leftItem, rightItem);\n else\n handler.processAppDataPair(rightItem, leftItem);\n if (handler.isAborted())\n return;\n }\n }\n }\n }\n }\n\n /**\n * Apply the handler.processAppDataPair method to each pair of appData items from leftAppData and rightAppData.\n * @param leftAppData singleton or array with data \"from left\"\n * @param rightAppData singleton or array with data \"from right\"\n * @param reverseArgs true if the caller is exchanging the sense of left and right and this should be undone in the actual call to handler.processAppDataPair.\n * @param handler search handler\n */\n private static processAppDataAndAppData<AppDataType>(\n leftAppData: FlexData<AppDataType>,\n rightAppData: FlexData<AppDataType>,\n reverseArgs: boolean,\n handler: TwoTreeSearchHandler<AppDataType>,\n ) {\n if (leftAppData !== undefined && rightAppData !== undefined) {\n let leftItem: AppDataType | undefined;\n let rightItem: AppDataType | undefined;\n for (let rightIndex = 0; undefined !== (rightItem = getByIndex<AppDataType>(rightIndex, rightAppData)); rightIndex++) {\n for (let leftIndex = 0; undefined !== (leftItem = getByIndex<AppDataType>(leftIndex, leftAppData)); leftIndex++) {\n if (!reverseArgs)\n handler.processAppDataPair(leftItem, rightItem);\n else\n handler.processAppDataPair(rightItem, leftItem);\n if (handler.isAborted())\n return;\n }\n }\n }\n }\n /**\n * Push the tip node to stack(s).\n * @param tip new node (to be pushed)\n * @param fullPath complete path, which is always extended\n * @param partialPath partial path, which is only extended if the tip has _appData.\n */\n private static pushPaths<AppDataType>(\n tip: RangeTreeNode<AppDataType>,\n fullPath: RangeTreeNode<AppDataType>[],\n partialPath: RangeTreeNode<AppDataType>[],\n ) {\n fullPath.push(tip);\n if (tip._appData !== undefined) {\n partialPath.push(tip);\n }\n }\n /**\n * Pop the tip node from stack(s).\n * @param tip should match the fullPath tip.\n * @param fullPath complete path, which is always popped\n * @param partialPath partial path, which is only popped if the tip has _appData.\n */\n private static popPaths<AppDataType>(\n tip: RangeTreeNode<AppDataType>,\n fullPath: RangeTreeNode<AppDataType>[],\n partialPath: RangeTreeNode<AppDataType>[],\n ) {\n assert(fullPath[fullPath.length - 1] === tip);\n fullPath.pop();\n if (tip._appData !== undefined) {\n partialPath.pop();\n }\n }\n /**\n * Process nodes from left and right trees of dual search.\n * * The separate stacks for nodes that have appData is for efficiency.\n * * If data is entirely in the leaves (or just in a few nodes), the stacks will all be empty (or very small) and no time will be wasted looking up the stacks for appData to process with the other tip.\n * @param leftTip tip node being explored on left\n * @param leftStack stack of prior left nodes\n * @param leftStackWithAppData stack of prior left nodes which have appData.\n * @param rightTip tip node being explored on right.\n * @param rightStack stack of prior right nodes.\n * @param rightStackWithAppData stack of prior right nodes which have appData.\n * @param handler search handler\n */\n private static recursivePairSearch<AppDataType>(\n leftTip: RangeTreeNode<AppDataType>,\n leftStack: RangeTreeNode<AppDataType>[],\n leftStackWithAppData: RangeTreeNode<AppDataType>[],\n rightTip: RangeTreeNode<AppDataType>,\n rightStack: RangeTreeNode<AppDataType>[],\n rightStackWithAppData: RangeTreeNode<AppDataType>[],\n handler: TwoTreeSearchHandler<AppDataType>,\n ) {\n // console.log({ leftId: leftTip._id, rightId: rightTip._id });\n const leftTipHasAppData = leftTip._appData !== undefined;\n const rightTipHasAppData = rightTip._appData !== undefined;\n let leftChild: RangeTreeNode<AppDataType> | undefined;\n let rightChild: RangeTreeNode<AppDataType> | undefined;\n\n // process immediate appData from each tip node with the entire prior path of the other side (each stack currently lacks the tip).\n if (leftTipHasAppData && rightStackWithAppData.length > 0) {\n this.processAppDataAndAppDataStack<AppDataType>(leftTip._appData, rightStackWithAppData, false, handler);\n }\n if (leftStackWithAppData.length > 0 && rightTipHasAppData) {\n this.processAppDataAndAppDataStack<AppDataType>(rightTip._appData, leftStackWithAppData, true, handler);\n }\n\n if (handler.isRangePairActive(leftTip._range, rightTip._range)) {\n this.processAppDataAndAppData<AppDataType>(leftTip._appData, rightTip._appData, false, handler);\n\n if (leftTip._children !== undefined && rightTip._children !== undefined) {\n this.pushPaths<AppDataType>(leftTip, leftStack, leftStackWithAppData);\n this.pushPaths<AppDataType>(rightTip, rightStack, rightStackWithAppData);\n for (let leftIndex = 0; undefined !== (leftChild = getByIndex<RangeTreeNode<AppDataType>>(leftIndex, leftTip._children)); leftIndex++) {\n for (let rightIndex = 0; undefined !== (rightChild = getByIndex<RangeTreeNode<AppDataType>>(rightIndex, rightTip._children)); rightIndex++) {\n this.recursivePairSearch(\n leftChild, leftStack, leftStackWithAppData,\n rightChild, rightStack, rightStackWithAppData,\n handler);\n }\n }\n this.popPaths<AppDataType>(leftTip, leftStack, leftStackWithAppData);\n this.popPaths<AppDataType>(rightTip, rightStack, rightStackWithAppData);\n } else if (leftTip._children !== undefined) {\n this.leftRecursivePairSearch<AppDataType>(leftTip, rightTip, rightStackWithAppData, false, handler);\n } else if (rightTip._children !== undefined) {\n this.leftRecursivePairSearch<AppDataType>(rightTip, leftTip, leftStackWithAppData, true, handler);\n }\n }\n }\n /**\n * Recurse below the tip of leftTip, offering each level's appData to the appData of rightTip and rightStackWithAppData.\n * @param leftTip tip node being explored on left. Its appData is not processed.\n * @param rightTip tip node being explored on right. It has no children.\n * @param rightStackWithAppData stack of prior right nodes which have appData.\n * @param reverseArgs true if the caller is exchanging the sense of left and right\n * @param handler search handler\n */\n private static leftRecursivePairSearch<AppDataType>(\n leftTip: RangeTreeNode<AppDataType>,\n rightTip: RangeTreeNode<AppDataType>,\n rightStackWithAppData: RangeTreeNode<AppDataType>[],\n reverseArgs: boolean,\n handler: TwoTreeSearchHandler<AppDataType>,\n ) {\n assert(rightTip._children === undefined);\n // The (possibly deep) left children appData needs to be offered to the right path (including tip)\n // Note that there are no stack push/pop operations -- the right stack is already reaching to leaf level, so there are no range or appData nodes to add.\n let leftChild: RangeTreeNode<AppDataType> | undefined;\n for (let leftIndex = 0; undefined !== (leftChild = getByIndex<RangeTreeNode<AppDataType>>(leftIndex, leftTip._children)); leftIndex++) {\n if (handler.isRangePairActive(leftChild._range, rightTip._range)) {\n this.processAppDataAndAppData<AppDataType>(leftChild._appData, rightTip._appData, reverseArgs, handler);\n this.processAppDataAndAppDataStack<AppDataType>(leftChild._appData, rightStackWithAppData, reverseArgs, handler);\n this.leftRecursivePairSearch<AppDataType>(leftChild, rightTip, rightStackWithAppData, reverseArgs, handler);\n }\n }\n }\n /**\n * Recursive search down two trees, with range tests and child processing under control of a handler.\n * @param leftRoot root of left tree\n * @param rightRoot root of right tree\n * @param handler handler for range tests and child process\n */\n public static searchTwoTreesTopDown<AppDataType>(\n leftRoot: RangeTreeNode<AppDataType>,\n rightRoot: RangeTreeNode<AppDataType>,\n handler: TwoTreeSearchHandler<AppDataType>,\n ) {\n this.recursivePairSearch(leftRoot, [], [], rightRoot, [], [], handler);\n }\n}\n/**\n * Utilities for various operations on RangeTree\n * @internal\n */\nexport class RangeTreeOps {\n /** Count nodes in this tree. */\n public static getRecursiveNodeCount<AppDataType>(root: RangeTreeNode<AppDataType>): number {\n let count = 0;\n root.recurseIntoTree((_node: RangeTreeNode<AppDataType>): boolean => { count++; return true; });\n return count;\n }\n /** Count appData in this tree. */\n public static getRecursiveAppDataCount<AppDataType>(root: RangeTreeNode<AppDataType>): number {\n let count = 0;\n root.recurseIntoTree(\n (node: RangeTreeNode<AppDataType>): boolean => { count += node.getNumAppData(); return true; });\n return count;\n }\n /**\n * Create a leaf referencing appData items indexed index0<=index<index1 and with combined range of the same indices\n * @param ranges access to ranges\n * @param appData access to AppDataType items\n * @param index0 first index for block of items\n * @param index1 upper limit index for block of items.\n * @param arrayLength one more than the largest range/appData index\n * @returns newly created node.\n */\n private static createLeafInIndexRange<AppDataType>(\n ranges: IndexToType<Range3d>,\n appData: IndexToType<AppDataType>,\n index0: number,\n index1: number,\n arrayLength: number): RangeTreeNode<AppDataType> {\n const appDataBlock: AppDataType[] = [];\n const range = Range3d.createNull();\n index1 = Math.min(index1, arrayLength);\n // console.log({ case: \"LEAF\", index0, index1 });\n for (let i = index0; i < index1; i++) {\n appDataBlock.push(evaluateIndexToType(appData, i));\n range.extendRange(evaluateIndexToType(ranges, i));\n }\n return RangeTreeNode.createCapture(range, appDataBlock, undefined);\n }\n /**\n * Split the array entries appData[index0 <= i < index1] into blocks of at most maxChildPerNode * maxAppDataPerLeaf and assemble into a tree structure.\n * @param ranges access to ranges\n * @param appData access to AppDataType items\n * @param index0 start index of the block to access\n * @param index1 terminal index for the block (one after final)\n * @param arrayLength one more than the largest range/appData index\n * @param maxChildPerNode max number of child nodes in each interior node\n * @param maxAppDataPerLeaf max number of appData items in each leaf.\n * @returns\n */\n private static createRecursiveByIndexSplits<AppDataType>(\n ranges: IndexToType<Range3d>,\n appData: IndexToType<AppDataType>,\n index0: number,\n index1: number,\n arrayLength: number,\n maxChildPerNode: number,\n maxAppDataPerLeaf: number,\n ): RangeTreeNode<AppDataType> | undefined {\n if (index1 > arrayLength)\n index1 = arrayLength;\n\n const range = Range3d.createNull();\n const children: RangeTreeNode<AppDataType>[] = [];\n const maxChildrenAppData = maxChildPerNode * maxAppDataPerLeaf;\n // console.log({ name: \"createRecursive\", index0, index1, maxChildrenAppData });\n\n if (index1 <= index0 + maxChildrenAppData) { // index range is small enough to hold the appData in leaf children\n // console.log({ case: \"LEAF GROUP\", index0, index1 });\n for (let indexA = index0 + maxAppDataPerLeaf; index0 < index1; index0 = indexA, indexA = Math.min(indexA + maxAppDataPerLeaf, index1)) {\n const leaf = RangeTreeOps.createLeafInIndexRange(ranges, appData, index0, indexA, arrayLength);\n if (leaf !== undefined) {\n range.extendRange(leaf.getRangeRef());\n children.push(leaf);\n }\n }\n } else { // split the appData among interior and leaf children\n // console.log({ case: \"INTERIOR\", index0, index1 });\n const numPerGulp = Math.ceil((index1 - index0) / maxChildPerNode);\n for (let indexA = index0 + numPerGulp; index0 < index1; index0 = indexA, indexA = Math.min(indexA + numPerGulp, index1)) {\n const child = this.createRecursiveByIndexSplits(ranges, appData, index0, indexA, arrayLength, maxChildPerNode, maxAppDataPerLeaf);\n if (child !== undefined) {\n range.extendRange(child.getRangeRef());\n children.push(child);\n }\n }\n }\n return (children.length > 0) ? RangeTreeNode.createCapture(range, undefined, children) : undefined;\n }\n /**\n * Create a range tree by simple left-right split of given ranges.\n * * Leaves carry the inputs in left-to-right order.\n * * Each leaf range is labeled by its corresponding object(s) in the appData array.\n * @param ranges access to ranges.\n * @param appData access to AppDataType items (for leaves).\n * @param arrayLength one more than the largest range/appData index\n * @param maxChildrenPerNode max number of child nodes allowed for each interior node.\n * @param maxAppDataPerLeaf max number of appData items allowed in each leaf.\n * @returns the root of the new tree, or undefined if array lengths differ or are zero.\n */\n public static createByIndexSplits<AppDataType>(\n ranges: IndexToType<Range3d>,\n appData: IndexToType<AppDataType>,\n arrayLength: number,\n maxChildrenPerNode: number = 2,\n maxAppDataPerLeaf: number = 2,\n ): RangeTreeNode<AppDataType> | undefined {\n // console.log();\n // const numData = getFlexDataCount(appData);\n // console.log({ numData });\n if (arrayLength <= 0\n || (Array.isArray(ranges) && ranges.length !== arrayLength)\n || (Array.isArray(appData) && appData.length !== arrayLength))\n return undefined;\n if (maxChildrenPerNode < 2)\n maxChildrenPerNode = 2;\n return RangeTreeOps.createRecursiveByIndexSplits<AppDataType>(ranges, appData, 0, arrayLength, arrayLength, maxChildrenPerNode, maxAppDataPerLeaf);\n }\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"RangeTreeNode.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/RangeTreeNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeTreeSearchHandlers.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/RangeTreeSearchHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module RangeSearch\n */\n\nimport { CurveLocationDetail, CurveLocationDetailPair } from \"../../curve/CurveLocationDetail\";\nimport { LineSegment3d } from \"../../curve/LineSegment3d\";\nimport { LineString3d } from \"../../curve/LineString3d\";\nimport { Point3d } from \"../../geometry3d/Point3dVector3d\";\nimport { PolygonLocationDetail, PolygonOps } from \"../../geometry3d/PolygonOps\";\nimport { Range3d } from \"../../geometry3d/Range\";\nimport { ConvexFacetLocationDetail, FacetLocationDetail, FacetLocationDetailPair, NonConvexFacetLocationDetail } from \"../FacetLocationDetail\";\nimport { LineString3dRangeTreeContext } from \"./LineString3dRangeTreeContext\";\nimport { MinimumValueTester } from \"./MinimumValueTester\";\nimport { Point3dArrayRangeTreeContext } from \"./Point3dArrayRangeTreeContext\";\nimport { PolyfaceRangeTreeContext } from \"./PolyfaceRangeTreeContext\";\nimport { SingleTreeSearchHandler, TwoTreeDistanceMinimizationSearchHandler } from \"./RangeTreeNode\";\n\n/**\n * Helper class for searching for the closest point in a set of points.\n * * Future optimization: avoid sqrt by using squared distance throughout (would require refactoring CurveLocationDetail).\n * @internal\n */\nexport class SingleTreeSearchHandlerForClosestPointInArray extends SingleTreeSearchHandler<number> {\n /** The calling context */\n public context: Point3dArrayRangeTreeContext;\n /** Evolving search state */\n public searchState: MinimumValueTester<number>;\n /** Space point for the search */\n public spacePoint: Point3d;\n\n /**\n * Constructor\n * @param spacePoint cloned\n * @param context captured\n * @param maxDist collect points at no more than this distance from spacePoint\n */\n public constructor(spacePoint: Point3d, context: Point3dArrayRangeTreeContext, maxDist?: number) {\n super();\n this.context = context;\n if (maxDist !== undefined && maxDist < 0)\n maxDist = undefined;\n this.searchState = MinimumValueTester.create<number>(maxDist);\n this.spacePoint = spacePoint.clone();\n }\n /** Return the current closest point */\n public getResult(): CurveLocationDetail | undefined {\n if (this.searchState.minValue !== undefined && this.searchState.itemAtMinValue !== undefined) {\n const iPoint = this.searchState.itemAtMinValue;\n const cld = CurveLocationDetail.createCurveFractionPoint(undefined, iPoint, this.context.points[iPoint]);\n cld.a = this.searchState.minValue;\n return cld;\n }\n return undefined;\n }\n /** Return the collected closest points (if collecting) */\n public getSavedItems(): CurveLocationDetail[] | undefined {\n if (this.searchState.savedItems.length === 0)\n return undefined;\n const cldArray: CurveLocationDetail[] = [];\n for (let i = 0; i < this.searchState.savedItems.length; ++i) {\n const iPoint = this.searchState.savedItems[i];\n const cld = CurveLocationDetail.createCurveFractionPoint(undefined, iPoint, this.context.points[iPoint]);\n cld.a = this.searchState.savedValues[i];\n cldArray.push(cld);\n }\n return cldArray;\n }\n /**\n * Return true if appData within the range should be offered to `processAppData`.\n * @param range range containing items to be tested.\n * @returns true if the spacePoint is within the range or close enough that a point in the range could be the closest.\n */\n public override isRangeActive(range: Range3d): boolean {\n const dMin = range.distanceToPoint(this.spacePoint);\n if (this.searchState.isNewMinValue(dMin)) {\n this.context.numRangeTestTrue++;\n return true;\n }\n this.context.numRangeTestFalse++;\n return false;\n }\n /** Test a point indexed in the range tree as candidate for \"closest\" */\n public override processAppData(candidateIndex: number): void {\n const d = this.spacePoint.distance(this.context.points[candidateIndex]);\n this.context.numPointTest++;\n this.searchState.testAndSave(candidateIndex, d);\n }\n}\n\n/**\n * Helper class for searching for the closest approach between sets of points.\n * * Future optimization: avoid sqrt by using squared distance throughout (would require refactoring CurveLocationDetail).\n * @internal\n */\nexport class TwoTreeSearchHandlerForPoint3dArrayPoint3dArrayCloseApproach extends TwoTreeDistanceMinimizationSearchHandler<number> {\n /** Context for first set of points */\n public contextA: Point3dArrayRangeTreeContext;\n /** Context for second set of points */\n public contextB: Point3dArrayRangeTreeContext;\n /** Search state with current min distance point pair */\n public searchState: MinimumValueTester<CurveLocationDetailPair>;\n\n /**\n * Constructor\n * @param contextA captured\n * @param contextB captured\n * @param maxDist collect points at no more than this separation distance\n */\n public constructor(contextA: Point3dArrayRangeTreeContext, contextB: Point3dArrayRangeTreeContext, maxDist?: number) {\n super();\n this.contextA = contextA;\n this.contextB = contextB;\n if (maxDist !== undefined && maxDist < 0)\n maxDist = undefined;\n this.searchState = MinimumValueTester.create<CurveLocationDetailPair>(maxDist);\n }\n /** Return the current closest approach */\n public getResult(): CurveLocationDetailPair | undefined {\n if (this.searchState.minValue !== undefined) {\n return this.searchState.itemAtMinValue;\n }\n return undefined;\n }\n /** Return the collected close approaches (if collecting) */\n public getSavedItems(): CurveLocationDetailPair[] | undefined {\n if (this.searchState.savedItems.length > 0) {\n return this.searchState.savedItems;\n }\n return undefined;\n }\n /** Get current min distance */\n public override getCurrentDistance(): number {\n const d = this.searchState.minValue;\n return d === undefined ? Number.MAX_VALUE : d;\n }\n /** Compute and test the distance between two points, given their indices. */\n public override processAppDataPair(indexA: number, indexB: number): void {\n this.contextA.numPointTest++;\n const pointA = this.contextA.points[indexA];\n const pointB = this.contextB.points[indexB];\n const d = pointA.distance(pointB);\n if (this.searchState.isNewMinOrTrigger(d)) {\n const cldPair = CurveLocationDetailPair.createCapture(\n CurveLocationDetail.createCurveFractionPoint(undefined, indexA, pointA),\n CurveLocationDetail.createCurveFractionPoint(undefined, indexB, pointB),\n );\n cldPair.detailA.a = cldPair.detailB.a = d;\n this.searchState.testAndSave(cldPair, d);\n }\n }\n}\n\n/**\n * Helper class for searching for the closest point in a linestring.\n * * Future optimization: avoid sqrt by using squared distance throughout (would require refactoring CurveLocationDetail).\n * @internal\n */\nexport class SingleTreeSearchHandlerForClosestPointOnLineString3d extends SingleTreeSearchHandler<number> {\n /** The calling context */\n public context: LineString3dRangeTreeContext;\n /** Evolving search state */\n public searchState: MinimumValueTester<CurveLocationDetail>;\n /** Space point for the search */\n public spacePoint: Point3d;\n\n /**\n * Constructor\n * @param spacePoint cloned\n * @param context captured\n * @param maxDist collect points at no more than this distance from spacePoint\n */\n public constructor(spacePoint: Point3d, context: LineString3dRangeTreeContext, maxDist?: number) {\n super();\n this.context = context;\n if (maxDist !== undefined && maxDist < 0)\n maxDist = undefined;\n this.searchState = MinimumValueTester.create<CurveLocationDetail>(maxDist);\n this.spacePoint = spacePoint.clone();\n }\n /** Return the current closest point */\n public getResult(): CurveLocationDetail | undefined {\n if (this.searchState.minValue !== undefined && this.searchState.itemAtMinValue !== undefined) {\n return this.searchState.itemAtMinValue;\n }\n return undefined;\n }\n /** Return the collected closest points (if collecting) */\n public getSavedItems(): CurveLocationDetail[] | undefined {\n if (this.searchState.savedItems.length > 0) {\n return this.searchState.savedItems;\n }\n return undefined;\n }\n /**\n * Return true if appData within the range should be offered to `processAppData`.\n * @param range range containing items to be tested.\n * @returns true if the spacePoint is within the range or close enough that a point in the range could be the closest.\n */\n public override isRangeActive(range: Range3d): boolean {\n const dMin = range.distanceToPoint(this.spacePoint);\n if (this.searchState.isNewMinValue(dMin)) {\n this.context.numRangeTestTrue++;\n return true;\n }\n this.context.numRangeTestFalse++;\n return false;\n }\n private _workSegment?: LineSegment3d;\n /** Test a segment indexed in the range tree as candidate for \"closest\" */\n public override processAppData(candidateIndex: number): void {\n const segment = this._workSegment = this.context.lineString.getIndexedSegment(candidateIndex, this._workSegment)!;\n if (segment) {\n const cld = segment.closestPoint(this.spacePoint, false);\n LineString3d.convertLocalToGlobalDetail(cld, candidateIndex, this.context.lineString.numEdges(), this.context.lineString);\n this.context.numPointTest++;\n this.searchState.testAndSave(cld, cld.a);\n }\n }\n}\n\n/**\n * Helper class for searching for the closest approach between linestrings.\n * * Future optimization: avoid sqrt by using squared distance throughout (would require refactoring CurveLocationDetail).\n * @internal\n */\nexport class TwoTreeSearchHandlerForLineString3dLineString3dCloseApproach extends TwoTreeDistanceMinimizationSearchHandler<number> {\n /** Context for first polyline */\n public contextA: LineString3dRangeTreeContext;\n /** Context for second polyline */\n public contextB: LineString3dRangeTreeContext;\n /** Search state with current min distance point pair */\n public searchState: MinimumValueTester<CurveLocationDetailPair>;\n\n /**\n * Constructor\n * @param contextA captured\n * @param contextB captured\n * @param maxDist collect points at no more than this separation distance\n */\n public constructor(contextA: LineString3dRangeTreeContext, contextB: LineString3dRangeTreeContext, maxDist?: number) {\n super();\n this.contextA = contextA;\n this.contextB = contextB;\n if (maxDist !== undefined && maxDist < 0)\n maxDist = undefined;\n this.searchState = MinimumValueTester.create<CurveLocationDetailPair>(maxDist);\n }\n /**\n * Return the current closest approach.\n * * Details contain linestring *and* segment data, cf. [[LineString3d.convertLocalToGlobalDetail]]\n */\n public getResult(): CurveLocationDetailPair | undefined {\n if (this.searchState.minValue !== undefined) {\n return this.searchState.itemAtMinValue;\n }\n return undefined;\n }\n /** Return the collected close approaches (if collecting) */\n public getSavedItems(): CurveLocationDetailPair[] | undefined {\n if (this.searchState.savedItems.length > 0) {\n return this.searchState.savedItems;\n }\n return undefined;\n }\n /** Get current min distance */\n public override getCurrentDistance(): number {\n const d = this.searchState.minValue;\n return d === undefined ? Number.MAX_VALUE : d;\n }\n private static _workSegmentA?: LineSegment3d;\n private static _workSegmentB?: LineSegment3d;\n /** Compute and test the closest approach between two segments, given their indices. */\n public override processAppDataPair(indexA: number, indexB: number): void {\n this.contextA.numPointTest++;\n const segA = TwoTreeSearchHandlerForLineString3dLineString3dCloseApproach._workSegmentA =\n this.contextA.lineString.getIndexedSegment(indexA, TwoTreeSearchHandlerForLineString3dLineString3dCloseApproach._workSegmentA)!;\n const segB = TwoTreeSearchHandlerForLineString3dLineString3dCloseApproach._workSegmentB =\n this.contextB.lineString.getIndexedSegment(indexB, TwoTreeSearchHandlerForLineString3dLineString3dCloseApproach._workSegmentB)!;\n const cldPair = LineSegment3d.closestApproach(segA, false, segB, false);\n if (cldPair && this.searchState.isNewMinOrTrigger(cldPair.detailA.a)) {\n LineString3d.convertLocalToGlobalDetail(cldPair.detailA, indexA, this.contextA.lineString.numEdges(), this.contextA.lineString);\n LineString3d.convertLocalToGlobalDetail(cldPair.detailB, indexB, this.contextB.lineString.numEdges(), this.contextB.lineString);\n this.searchState.testAndSave(cldPair, cldPair.detailA.a);\n }\n }\n}\n\n/**\n * Helper class for searching for the closest point in a polyface.\n * * Future optimization: avoid sqrt by using squared distance throughout (would require refactoring FacetLocationDetail).\n * @internal\n */\nexport class SingleTreeSearchHandlerForClosestPointOnPolyface extends SingleTreeSearchHandler<number> {\n /** The calling context */\n public context: PolyfaceRangeTreeContext;\n /** Evolving search state */\n public searchState: MinimumValueTester<FacetLocationDetail>;\n /** Space point for the search */\n public spacePoint: Point3d;\n /** Whether to include facet interior in search */\n public searchFacetInterior: boolean;\n\n /**\n * Constructor\n * @param spacePoint cloned\n * @param context captured\n * @param maxDist collect points at no more than this distance from spacePoint\n * @param searchFacetInterior true: search facet interior + boundary; false: just boundary\n */\n public constructor(spacePoint: Point3d, context: PolyfaceRangeTreeContext, maxDist?: number, searchFacetInterior: boolean = false) {\n super();\n this.context = context;\n if (maxDist !== undefined && maxDist < 0)\n maxDist = undefined;\n this.searchState = MinimumValueTester.create<FacetLocationDetail>(maxDist);\n this.spacePoint = spacePoint.clone();\n this.searchFacetInterior = searchFacetInterior;\n }\n /** Return the current closest point */\n public getResult(): FacetLocationDetail | undefined {\n if (this.searchState.minValue !== undefined && this.searchState.itemAtMinValue !== undefined) {\n return this.searchState.itemAtMinValue;\n }\n return undefined;\n }\n /** Return the collected closest points (if collecting) */\n public getSavedItems(): FacetLocationDetail[] | undefined {\n if (this.searchState.savedItems.length > 0) {\n return this.searchState.savedItems;\n }\n return undefined;\n }\n /**\n * Return true if appData within the range should be offered to `processAppData`.\n * @param range range containing items to be tested.\n * @returns true if the spacePoint is within the range or close enough that a point in the range could be the closest.\n */\n public override isRangeActive(range: Range3d): boolean {\n const dMin = range.distanceToPoint(this.spacePoint);\n if (this.searchState.isNewMinValue(dMin)) {\n this.context.numRangeTestTrue++;\n return true;\n }\n this.context.numRangeTestFalse++;\n return false;\n }\n /** Test a facet indexed in the range tree as candidate for \"closest\" */\n public override processAppData(candidateIndex: number): void {\n this.context.visitor.setNumWrap(0); // so edgeCount === pointCount; closure point unnecessary for closestPoint[OnBoundary]\n if (this.context.visitor.moveToReadIndex(candidateIndex)) {\n let pld: PolygonLocationDetail | undefined;\n if (this.searchFacetInterior)\n pld = PolygonOps.closestPoint(this.context.visitor.point, this.spacePoint);\n else\n pld = PolygonOps.closestPointOnBoundary(this.context.visitor.point, this.spacePoint);\n this.context.numFacetTest++;\n if (pld && this.searchState.isNewMinOrTrigger(pld.a)) {\n const edgeCount = this.context.visitor.pointCount;\n const fld = this.context.convexFacets\n ? ConvexFacetLocationDetail.createCapture(this.context.visitor.currentReadIndex(), edgeCount, pld)\n : NonConvexFacetLocationDetail.createCapture(this.context.visitor.currentReadIndex(), edgeCount, pld);\n this.searchState.testAndSave(fld, pld.a);\n }\n }\n }\n}\n/**\n * Helper class for searching for the closest approach between polyfaces.\n * * Future optimization: avoid sqrt by using squared distance throughout (would require refactoring FacetLocationDetail).\n * @internal\n */\nexport class TwoTreeSearchHandlerForFacetFacetCloseApproach extends TwoTreeDistanceMinimizationSearchHandler<number> {\n /** Context for first polyface */\n public contextA: PolyfaceRangeTreeContext;\n /** Context for second polyface */\n public contextB: PolyfaceRangeTreeContext;\n /** Search state with current min distance and facet pair */\n public searchState: MinimumValueTester<FacetLocationDetailPair>;\n /** Whether to include facet interior in search */\n public searchFacetInterior: boolean;\n\n /** Constructor\n * @param contextA captured\n * @param contextB captured\n * @param maxDist collect points at no more than this separation distance\n * @param searchFacetInterior true: search facet interior + boundary; false: just boundary\n */\n public constructor(contextA: PolyfaceRangeTreeContext, contextB: PolyfaceRangeTreeContext, maxDist?: number, searchFacetInterior: boolean = false) {\n super();\n this.contextA = contextA;\n this.contextB = contextB;\n if (maxDist !== undefined && maxDist < 0)\n maxDist = undefined;\n this.searchState = MinimumValueTester.create<FacetLocationDetailPair>(maxDist);\n this.searchFacetInterior = searchFacetInterior && contextA.convexFacets && contextB.convexFacets;\n }\n /** Return the facets with closest approach */\n public getResult(): FacetLocationDetailPair | undefined {\n if (this.searchState.minValue !== undefined) {\n return this.searchState.itemAtMinValue;\n }\n return undefined;\n }\n /** Return the collected close approaches (if collecting) */\n public getSavedItems(): FacetLocationDetailPair[] | undefined {\n if (this.searchState.savedItems.length > 0) {\n return this.searchState.savedItems;\n }\n return undefined;\n }\n /** Get current min distance */\n public override getCurrentDistance(): number {\n const d = this.searchState.minValue;\n return d === undefined ? Number.MAX_VALUE : d;\n }\n /** Compute and test the closest approach between two facets, given their indices. */\n public override processAppDataPair(indexA: number, indexB: number): void {\n this.contextA.visitor.setNumWrap(1); // closed polygons are more efficient for PolygonOps.closestApproach\n this.contextB.visitor.setNumWrap(1);\n if (this.contextA.visitor.moveToReadIndex(indexA) && this.contextB.visitor.moveToReadIndex(indexB)) {\n // ASSUME: not worth sending in maxDist here...\n const pldPair = PolygonOps.closestApproach(this.contextA.visitor.point, this.contextB.visitor.point, undefined, this.searchFacetInterior);\n this.contextA.numFacetTest++;\n if (pldPair && this.searchState.isNewMinOrTrigger(pldPair.detailA.a)) {\n const edgeCountA = this.contextA.visitor.pointCount - 1;\n const edgeCountB = this.contextB.visitor.pointCount - 1;\n const fldPair = FacetLocationDetailPair.create(\n this.contextA.convexFacets ? ConvexFacetLocationDetail.createCapture(indexA, edgeCountA, pldPair.detailA) : NonConvexFacetLocationDetail.createCapture(indexA, edgeCountA, pldPair.detailA),\n this.contextB.convexFacets ? ConvexFacetLocationDetail.createCapture(indexB, edgeCountB, pldPair.detailB) : NonConvexFacetLocationDetail.createCapture(indexB, edgeCountB, pldPair.detailB),\n );\n this.searchState.testAndSave(fldPair, fldPair.detailA.a);\n }\n }\n }\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"RangeTreeSearchHandlers.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/RangeTreeSearchHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaggedNumericData.js","sourceRoot":"","sources":["../../../src/polyface/TaggedNumericData.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Polyface\n */\n\nimport { Geometry } from \"../Geometry\";\n\n/**\n * `TaggedNumericConstants` defines enums with constant values for use in tags of [[TaggedNumericData]]\n * @public\n */\nexport namespace TaggedNumericConstants {\n /** Reserved values for the \"tagA\" member of [[TaggedNumericData]]\n * @public\n *\n */\nexport enum TaggedNumericTagType {\n /** `tagA` value identifying a subdivision surface*/\n SubdivisionSurface = -1000\n }\n /**\n * `tagB` values for supported types of subdivision surfaces\n * @public\n */\nexport enum SubdivisionMethod {\n ChooseBasedOnFacets = 0,\n CatmullClark = 1,\n Loop = 2,\n DooSabin = 3\n }\n /**\n * numeric values for subdivision control. These are entered in the intData array as first of a pair.\n * @public\n */\nexport enum SubdivisionControlCode {\n /** pair (FixedDepth, d) indicates subdivision to depth d */\n FixedDepth = -100,\n /** pair (FixedDepth, index) indicates absolute tolerance with value in doubleData[index] */\n AbsoluteTolerance = -101,\n /** pair (FixedDepth, index) indicates tolerance as a fraction of base mesh range is found in doubleData[index] */\n FractionOfRangeBoxTolerance = -102\n }\n}\n/**\n * Structure with 2 integer tags and optional arrays of integers, doubles, points, vectors, and geometry.\n * * In typescript/javascript, all integer numbers that can be non-integer. Please do not insert non-integers in the integer array.\n * @public\n */\nexport class TaggedNumericData {\n /** Application specific primary tag. See reserved values in [[TaggedNumericConstants]] */\n public tagA: number;\n /** Application specific secondary tag. See reserved values in [[TaggedNumericConstants]] */\n public tagB: number;\n\n public constructor(tagA: number = 0, tagB: number = 0,\n intData?: number[], doubleData?: number[],\n ) {\n this.tagA = tagA;\n this.tagB = tagB;\n if (intData) this.intData = intData;\n if (doubleData) this.doubleData = doubleData;\n }\n/** Integer data with application-specific meaning */\n public intData?: number[];\n/** Double data with application-specific meaning */\npublic doubleData?: number[];\n\n/**\n * push a pair of int values on the intData array.\n * @param intA\n * @param intB\n */\n public pushIntPair(intA: number, intB: number) {\n if (!this.intData) this.intData = [];\n this.intData.push(intA);\n this.intData.push(intB);\n }\n /**\n * push a pair of int values on the intData array.\n * @param intA int to push on the intData array, followed by index of valueB in the doubleData array.\n * @param valueB value to push on the doubleData array.\n */\n public pushIndexedDouble(intA: number, valueB: number) {\n if (!this.intData) this.intData = [];\n if (!this.doubleData) this.doubleData = [];\n this.intData.push(intA);\n this.intData.push(this.doubleData.length);\n this.doubleData.push(valueB);\n }\n /**\n * Search pairs in the intData array for a pair (targetTag, value). Return the value, possibly restricted to (minValue,maxValue)\n * @param targetTag\n * @param minValue\n * @param maxValue\n * @param defaultValue\n */\n public tagToInt(targetTag: number, minValue: number, maxValue: number, defaultValue: number): number {\n if (this.intData) {\n for (let i = 0; i + 1 < this.intData.length; i += 2){\n if (this.intData[i] === targetTag)\n return Math.min(Math.max(this.intData[i + 1], minValue), maxValue);\n }\n }\n return defaultValue;\n }\n\n /**\n * Search pairs in the intData array for a pair (targetTag, index). Return getDoubleData[index] value, possibly restricted to (minValue,maxValue)\n * @param targetTag\n * @param minValue\n * @param maxValue\n * @param defaultValue\n */\n public tagToIndexedDouble(targetTag: number, minValue: number, maxValue: number, defaultValue: number): number {\n if (this.intData) {\n for (let i = 0; i + 1 < this.intData.length; i += 2){\n if (this.intData[i] === targetTag) {\n return Geometry.clamp(this.getDoubleData (this.intData[i + 1], defaultValue), minValue, maxValue);\n }\n }\n }\n return defaultValue;\n }\n /**\n * get doubleData[index], or indicated default if the index is out of range\n * @param index\n * @param defaultValue\n */\n public getDoubleData(index: number, defaultValue: number): number{\n if (this.doubleData && 0 <= index && index < this.doubleData.length)\n return this.doubleData[index];\n return defaultValue;\n }\n /** Apply isAlmostEqual to all members. */\n public isAlmostEqual(other: TaggedNumericData): boolean{\n if (other === undefined)\n return false;\n if (this.tagA !== other.tagA)\n return false;\n if (this.tagB !== other.tagB)\n return false;\n return Geometry.exactEqualNumberArrays(this.intData, other.intData)\n && Geometry.almostEqualArrays<number>(this.doubleData, other.doubleData, (a, b) => Geometry.isAlmostEqualNumber(a, b));\n }\n\n public static areAlmostEqual(dataA: TaggedNumericData | undefined, dataB: TaggedNumericData | undefined): boolean{\n if (dataA === undefined && dataB === undefined)\n return true;\n if (dataA !== undefined && dataB !== undefined)\n return dataA.isAlmostEqual(dataB);\n return false;\n }\n/** Return a deep clone. */\n public clone(result?: TaggedNumericData): TaggedNumericData {\n if (!result)\n result = new TaggedNumericData(this.tagA, this.tagB);\n if (this.intData)\n result.intData = this.intData.slice();\n if (this.doubleData)\n result.doubleData = this.doubleData.slice();\n return result;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TaggedNumericData.js","sourceRoot":"","sources":["../../../src/polyface/TaggedNumericData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriangleCandidate.js","sourceRoot":"","sources":["../../../src/polyface/TriangleCandidate.ts"],"names":[],"mappings":"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"
|
|
1
|
+
{"version":3,"file":"TriangleCandidate.js","sourceRoot":"","sources":["../../../src/polyface/TriangleCandidate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildAverageNormalsContext.js","sourceRoot":"","sources":["../../../../src/polyface/multiclip/BuildAverageNormalsContext.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Polyface\n */\n\nimport { Vector3d } from \"../../geometry3d/Point3dVector3d\";\nimport { PolygonOps } from \"../../geometry3d/PolygonOps\";\nimport { IndexedPolyface } from \"../Polyface\";\nimport { Geometry } from \"../../Geometry\";\nimport { GrowableXYZArray } from \"../../geometry3d/GrowableXYZArray\";\nimport { Angle } from \"../../geometry3d/Angle\";\n\n/**\n * Normal vector with area (or other numeric) and source index\n * @internal\n */\nclass IndexedAreaAndNormal {\n public constructor(index: number, area: number, normal: Vector3d) {\n this.index = index;\n this.area = area;\n this.normal = normal;\n }\n public index: number;\n public area: number;\n public normal: Vector3d;\n\n public addWeightedNormal(weight: number, normal: Vector3d) {\n this.area += weight;\n this.normal.addScaledInPlace(normal, weight);\n }\n public divideNormalByArea() {\n this.normal.scaleInPlace(1.0 / this.area);\n }\n}\n\n/**\n * index data for a single sector of some facet.\n * @internal\n */\nclass SectorData {\n private constructor(facetData: IndexedAreaAndNormal, sectorIndex: number, vertexIndex: number) {\n this.facetData = facetData;\n this.sectorClusterData = undefined;\n this.sectorIndex = sectorIndex;\n this.vertexIndex = vertexIndex;\n }\n public facetData: IndexedAreaAndNormal;\n public sectorIndex: number;\n public vertexIndex: number;\n public sectorClusterData: IndexedAreaAndNormal | undefined;\n public static cbSectorSort(left: SectorData, right: SectorData): number { return left.sectorIndex - right.sectorIndex; }\n public static cbVertexSort(left: SectorData, right: SectorData): number { return left.vertexIndex - right.vertexIndex; }\n public static pushToArray(data: SectorData[], facetData: IndexedAreaAndNormal, sectorIndex: number, vertexIndex: number) {\n data.push(new SectorData(facetData, sectorIndex, vertexIndex));\n }\n}\n/**\n * Helper context for normal averaging.\n * All methods are static.\n * @internal\n */\n\nexport class BuildAverageNormalsContext {\n /**\n * * At each vertex of the mesh\n * * Find clusters of almost parallel normals\n * * Compute simple average of those normals\n * * Index to the averages\n * * For typical meshes, this correctly clusters adjacent normals.\n * * One cam imagine a vertex with multiple \"smooth cone-like\" sets of incident facets such that averaging occurs among two nonadjacent cones. But this does not seem to be a problem in practice.\n * @param polyface polyface to update.\n * @param toleranceAngle averaging is done between normals up to this angle.\n */\n public static buildFastAverageNormals(polyface: IndexedPolyface, toleranceAngle: Angle) {\n // We ASSUME that the visitor order matches index order in polyface.data .....\n const visitor = polyface.createVisitor(0);\n const defaultNormal = Vector3d.create(0, 0, 1);\n const smallArea = Geometry.smallMetricDistanceSquared; // I DO NOT LIKE THIS TOLERANCE\n const sectors: SectorData[] = [];\n let facetIndex = 0;\n let sectorIndex = 0;\n // create one IndexedAreaNormal structure for each facet.\n // At each sector of each face, notate (a) IndexedAreaNormal of the facet, (b) the sector index, (c) the point index.\n while (visitor.moveToNextFacet()) {\n let facetNormal = PolygonOps.areaNormalGo(visitor.point);\n let area = 0.0;\n if (!facetNormal) {\n facetNormal = defaultNormal.clone();\n area = 0.0;\n } else {\n area = facetNormal.magnitude();\n if (area < smallArea) {\n facetNormal.setFromVector3d(defaultNormal);\n area = 0.0;\n } else {\n facetNormal.scaleInPlace(1.0 / area);\n }\n }\n const facetData = new IndexedAreaAndNormal(facetIndex++, area, facetNormal);\n for (let i = 0; i < visitor.pointCount; i++) {\n SectorData.pushToArray(sectors, facetData, sectorIndex++, visitor.clientPointIndex(i));\n }\n }\n // Sort by the vertex index so all the sectors around each vertex are clustered . .\n sectors.sort((left, right) => SectorData.cbVertexSort(left, right));\n\n // Walk the sectors around each vertex . ..\n // For each unassigned sector\n // walk to further sectors of the same vertex with near-parallel normals, accumulating average normal.\n // notate all sectors in the cluster with the averaged-normal structure.\n const clusters: IndexedAreaAndNormal[] = [];\n let toleranceRadians = toleranceAngle.radians;\n if (toleranceRadians < 0.0001)\n toleranceRadians = 0.0001;\n\n let clusterIndex = 0;\n for (let baseSectorIndex = 0; baseSectorIndex < sectors.length; baseSectorIndex++) {\n const baseData = sectors[baseSectorIndex];\n const vertexIndex = baseData.vertexIndex;\n const baseFacetData = baseData.facetData;\n if (baseData.sectorClusterData === undefined) {\n const clusterNormal = new IndexedAreaAndNormal(clusterIndex++, 0.0, Vector3d.createZero());\n clusters.push(clusterNormal);\n // Accumulate with equal weights . . .\n clusterNormal.addWeightedNormal(1.0, baseData.facetData.normal);\n for (let candidateSectorIndex = baseSectorIndex;\n candidateSectorIndex < sectors.length;\n candidateSectorIndex++) {\n const candidateSector = sectors[candidateSectorIndex];\n if (candidateSector.vertexIndex !== vertexIndex)\n break;\n if (candidateSector.facetData.normal.angleTo(baseFacetData.normal).radians > toleranceRadians)\n continue;\n if (candidateSector.sectorClusterData === undefined) {\n clusterNormal.addWeightedNormal(1.0, candidateSector.facetData.normal);\n candidateSector.sectorClusterData = clusterNormal;\n }\n }\n }\n }\n // Resort by original sector index.\n sectors.sort((left, right) => SectorData.cbSectorSort(left, right));\n // normalize the sums and emplace in the facets . . .\n polyface.data.normalIndex = [];\n polyface.data.normal = new GrowableXYZArray(sectors.length);\n for (const cluster of clusters) {\n cluster.divideNormalByArea();\n cluster.index = polyface.data.normal.length;\n polyface.data.normal.push(cluster.normal);\n }\n // emplace the indices\n for (const sector of sectors) {\n polyface.data.normalIndex.push(sector.sectorClusterData!.index);\n }\n }\n /**\n * Set up indexed normals with one normal in the plane of each facet of the mesh.\n * @param polyface mesh to modify\n */\n public static buildPerFaceNormals(polyface: IndexedPolyface) {\n const visitor = polyface.createVisitor(0);\n const facetNormal = Vector3d.create(0, 0, 1);\n const defaultNormal = Vector3d.create(0, 0, 1);\n // polyface.data.clearNormals();\n const newNormals = new GrowableXYZArray(polyface.faceCount);\n const newIndices: number[] = [];\n while (visitor.moveToNextFacet()) {\n const thisNormalIndex = newNormals.length;\n if (PolygonOps.unitNormal(visitor.point, facetNormal))\n newNormals.push(facetNormal);\n else\n newNormals.push(defaultNormal);\n for (let i = 0; i < visitor.pointCount; i++)\n newIndices.push(thisNormalIndex);\n }\n polyface.data.normalIndex = newIndices;\n polyface.data.normal = newNormals;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"BuildAverageNormalsContext.js","sourceRoot":"","sources":["../../../../src/polyface/multiclip/BuildAverageNormalsContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GriddedRaggedRange2dSet.js","sourceRoot":"","sources":["../../../../src/polyface/multiclip/GriddedRaggedRange2dSet.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module RangeSearch\n */\n\nimport { Range2d, Range3d } from \"../../geometry3d/Range\";\nimport { LowAndHighXY } from \"../../geometry3d/XYZProps\";\nimport { LinearSearchRange2dArray } from \"./LinearSearchRange2dArray\";\nimport { Range2dSearchInterface } from \"./Range2dSearchInterface\";\n\n/**\n * Type abbreviation to allow undefined as a Range2dSearchInterface parameter.\n * @internal\n */\nexport type OptionalRange2dSearchInterface<T> = Range2dSearchInterface<T> | undefined;\n\n/**\n * A GriddedRaggedRange2dSet is:\n * * A doubly dimensioned array of Range2dSearchInterface.\n * * Each entry represents a block in a uniform grid within the master range.\n * * Member ranges are noted in the grid block containing the range's lower left corner.\n * * Member ranges larger than twice the grid size are rejected by the insert method.\n * * 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)\n * @public\n */\nexport class GriddedRaggedRange2dSet<T> implements Range2dSearchInterface<T> {\n private _range: Range2d;\n private _numXEdge: number;\n private _numYEdge: number;\n /** Each grid block is a simple linear search set */\n private _rangesInBlock: Array<Array<OptionalRange2dSearchInterface<T>>>;\n private static _workRange?: Range2d;\n private constructor(range: Range2d, numXEdge: number, numYEdge: number) {\n this._range = range;\n this._numXEdge = numXEdge;\n this._numYEdge = numYEdge;\n this._rangesInBlock = [];\n for (let j = 0; j < this._numYEdge; j++) {\n const thisRow: Array<OptionalRange2dSearchInterface<T>> = [];\n for (let i = 0; i < this._numXEdge; i++) {\n thisRow.push(undefined);\n }\n this._rangesInBlock.push(thisRow);\n }\n }\n /**\n * Create an (empty) set of ranges.\n * @param range master range\n * @param numXEdge size of grid in x direction\n * @param numYEdge size of grid in y direction\n */\n public static create<T>(range: Range2d, numXEdge: number, numYEdge: number): GriddedRaggedRange2dSet<T> | undefined {\n if (numXEdge < 1 || numYEdge < 1 || range.isNull || range.isSinglePoint)\n return undefined;\n return new GriddedRaggedRange2dSet(range.clone(), numXEdge, numYEdge);\n }\n private xIndex(x: number): number {\n const fraction = (x - this._range.low.x) / (this._range.high.x - this._range.low.x);\n return Math.floor(fraction * this._numXEdge);\n }\n private yIndex(y: number): number {\n const fraction = (y - this._range.low.y) / (this._range.high.y - this._range.low.y);\n return Math.floor(fraction * this._numXEdge);\n }\n private getBlock(i: number, j: number): OptionalRange2dSearchInterface<T> {\n if (i >= 0 && i < this._numXEdge && j >= 0 && j < this._numYEdge) {\n if (!this._rangesInBlock[j][i])\n this._rangesInBlock[j][i] = new LinearSearchRange2dArray();\n return this._rangesInBlock[j][i];\n }\n return undefined;\n }\n /** If possible, insert a range into the set.\n * * Decline to insert (and return false) if:\n * * range is null\n * * range is not completely contained in the overall range of this set\n * * range x or y extent is larger than 2 grid blocks\n */\n public conditionalInsert(range: Range2d | Range3d | LowAndHighXY, tag: T): boolean {\n if (Range2d.isNull(range))\n return false;\n if (!this._range.containsRange(range))\n return false;\n const xIndex0 = this.xIndex(range.low.x);\n const xIndex1 = this.xIndex(range.high.x);\n const yIndex0 = this.yIndex(range.low.y);\n const yIndex1 = this.yIndex(range.high.y);\n if (!(xIndex0 === xIndex1 || xIndex0 + 1 === xIndex1))\n return false;\n if (!(yIndex0 === yIndex1 || yIndex0 + 1 === yIndex1))\n return false;\n const rangesInBlock = this.getBlock(xIndex0, yIndex0);\n if (rangesInBlock) {\n rangesInBlock.addRange(range, tag);\n return true;\n }\n return false;\n }\n /** Add a range to the search set. */\n public addRange(range: LowAndHighXY, tag: T): void {\n this.conditionalInsert(range, tag);\n }\n /**\n * * Search a single block\n * * Pass each range and tag to handler\n * * and return false if bad cell or if handler returns false.\n * @param testRange search range.\n * @param handler function to receive range and tag hits.\n * @return false if search terminated by handler. Return true if no handler returned false.\n */\n private searchXYInIndexedBlock(i: number, j: number, x: number, y: number, handler: (range: Range2d, tag: T) => boolean): boolean {\n const rangesInBlock = this.getBlock(i, j);\n if (!rangesInBlock)\n return true;\n return rangesInBlock.searchXY(x, y, handler);\n }\n /**\n * * Search a single block\n * * Pass each range and tag to handler\n * * and return false if bad cell or if handler returns false.\n * @param testRange search range.\n * @param handler function to receive range and tag hits.\n * @return false if search terminated by handler. Return true if no handler returned false.\n */\n private searchRange2dInIndexedBlock(i: number, j: number, testRange: LowAndHighXY, handler: (range: Range2d, tag: T) => boolean): boolean {\n const rangesInBlock = this.getBlock(i, j);\n if (!rangesInBlock)\n return true;\n return rangesInBlock.searchRange2d(testRange, handler);\n }\n /**\n * * Search for ranges containing testRange\n * * Pass each range and tag to handler\n * * terminate search if handler returns false.\n * @param testRange search range.\n * @param handler function to receive range and tag hits.\n * @return false if search terminated by handler. Return true if no handler returned false.\n */\n public searchXY(x: number, y: number, handler: (range: Range2d, tag: T) => boolean): boolean {\n const i = this.xIndex(x);\n const j = this.yIndex(y);\n return this.searchXYInIndexedBlock(i, j, x, y, handler)\n && this.searchXYInIndexedBlock(i - 1, j, x, y, handler)\n && this.searchXYInIndexedBlock(i, j - 1, x, y, handler)\n && this.searchXYInIndexedBlock(i - 1, j - 1, x, y, handler);\n }\n /**\n * * Search for ranges overlapping testRange\n * * Pass each range and tag to handler\n * * terminate search if handler returns false.\n * @param testRange search range.\n * @param handler function to receive range and tag hits.\n * @return false if search terminated by handler. Return true if no handler returned false.\n */\n public searchRange2d(testRange: LowAndHighXY, handler: (range: Range2d, tag: T) => boolean): boolean {\n const xIndex0 = this.xIndex(testRange.low.x) - 1;\n const xIndex1 = this.xIndex(testRange.high.x);\n const yIndex0 = this.yIndex(testRange.low.y) - 1;\n const yIndex1 = this.yIndex(testRange.high.y);\n for (let i = xIndex0; i <= xIndex1; i++) {\n for (let j = yIndex0; j <= yIndex1; j++) {\n if (!this.searchRange2dInIndexedBlock(i, j, testRange, handler))\n return false;\n }\n }\n return true;\n }\n /** Return the overall range of all members. */\n public totalRange(result?: Range2d): Range2d {\n if (result)\n result.setNull();\n else\n result = Range2d.createNull();\n this.visitChildren(0, (_depth, child) => {\n const childRange = GriddedRaggedRange2dSet._workRange = child.totalRange(GriddedRaggedRange2dSet._workRange);\n result.extendRange(childRange);\n });\n return result;\n }\n /** Call the handler on each defined block in the grid. */\n public visitChildren(initialDepth: number, handler: (depth: number, child: Range2dSearchInterface<T>) => void) {\n for (const row of this._rangesInBlock) {\n for (const block of row) {\n if (block)\n handler(initialDepth, block);\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GriddedRaggedRange2dSet.js","sourceRoot":"","sources":["../../../../src/polyface/multiclip/GriddedRaggedRange2dSet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GriddedRaggedRange2dSetWithOverflow.js","sourceRoot":"","sources":["../../../../src/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE;;;;;;;GAOG;AACH,MAAM,OAAO,mCAAmC;IACtC,QAAQ,CAA6B;IACrC,YAAY,CAA4B;IACxC,MAAM,CAAC,UAAU,CAAW;IACpC,YAAoB,OAAmC,EAAE,WAAsC;QAC7F,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,MAAM,CAAI,KAAc,EAAE,QAAgB,EAAE,QAAgB;QACxE,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAI,KAAK,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnF,IAAI,KAAK;YACP,OAAO,IAAI,mCAAmC,CAAI,KAAK,EAAE,IAAI,wBAAwB,EAAK,CAAC,CAAC;QAC9F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD;;;;;;;OAOG;IACI,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,OAA4C;QAChF,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IACD;;;;;;;OAOG;IACI,aAAa,CAAC,SAAuB,EAAE,OAA4C;QACxF,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChH,CAAC;IACD;;;;;OAKG;IACI,QAAQ,CAAC,KAAmB,EAAE,GAAM;QACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,+CAA+C;IACxC,UAAU,CAAC,MAAgB;QAChC,IAAI,MAAM;YACR,MAAM,CAAC,OAAO,EAAE,CAAC;;YAEjB,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACtC,MAAM,UAAU,GAAG,mCAAmC,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC;YACrI,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,mFAAmF;IAC5E,aAAa,CAAC,YAAoB,EAAE,OAAkE;QAC3G,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;CACF"
|
|
1
|
+
{"version":3,"file":"GriddedRaggedRange2dSetWithOverflow.js","sourceRoot":"","sources":["../../../../src/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE;;;;;;;GAOG;AACH,MAAM,OAAO,mCAAmC;IACtC,QAAQ,CAA6B;IACrC,YAAY,CAA4B;IACxC,MAAM,CAAC,UAAU,CAAW;IACpC,YAAoB,OAAmC,EAAE,WAAsC;QAC7F,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,MAAM,CAAI,KAAc,EAAE,QAAgB,EAAE,QAAgB;QACxE,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAI,KAAK,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnF,IAAI,KAAK;YACP,OAAO,IAAI,mCAAmC,CAAI,KAAK,EAAE,IAAI,wBAAwB,EAAK,CAAC,CAAC;QAC9F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD;;;;;;;OAOG;IACI,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,OAA4C;QAChF,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IACD;;;;;;;OAOG;IACI,aAAa,CAAC,SAAuB,EAAE,OAA4C;QACxF,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChH,CAAC;IACD;;;;;OAKG;IACI,QAAQ,CAAC,KAAmB,EAAE,GAAM;QACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,+CAA+C;IACxC,UAAU,CAAC,MAAgB;QAChC,IAAI,MAAM;YACR,MAAM,CAAC,OAAO,EAAE,CAAC;;YAEjB,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACtC,MAAM,UAAU,GAAG,mCAAmC,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC;YACrI,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,mFAAmF;IAC5E,aAAa,CAAC,YAAoB,EAAE,OAAkE;QAC3G,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinearSearchRange2dArray.js","sourceRoot":"","sources":["../../../../src/polyface/multiclip/LinearSearchRange2dArray.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD;;;;;;GAMG;AACH,MAAM,OAAO,wBAAwB;IAC3B,WAAW,CAAY;IACvB,QAAQ,CAAU;IAClB,eAAe,CAAU;IACjC;QACE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC;IACD,+BAA+B;IACvB,eAAe;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,+CAA+C;IACxC,UAAU,CAAC,MAAgB;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,qCAAqC;IAC9B,QAAQ,CAAC,KAAmB,EAAE,GAAM;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACpC,OAAe,CAAC,GAAG,GAAG,GAAG,CAAC;QAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD;;;;;;;OAOG;IACI,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,OAA4C;QAChF,IAAI,IAAI,CAAC,QAAQ;YACf,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,+CAA+C;QAC/C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAG,SAAiB,CAAC,GAAG,CAAC;oBAC7C,OAAO,KAAK,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;;;;;;OAOG;IACI,aAAa,CAAC,SAAuB,EAAE,OAA4C;QACxF,IAAI,IAAI,CAAC,QAAQ;YACf,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAG,SAAiB,CAAC,GAAG,CAAC;oBAC7C,OAAO,KAAK,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"
|
|
1
|
+
{"version":3,"file":"LinearSearchRange2dArray.js","sourceRoot":"","sources":["../../../../src/polyface/multiclip/LinearSearchRange2dArray.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD;;;;;;GAMG;AACH,MAAM,OAAO,wBAAwB;IAC3B,WAAW,CAAY;IACvB,QAAQ,CAAU;IAClB,eAAe,CAAU;IACjC;QACE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC;IACD,+BAA+B;IACvB,eAAe;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,+CAA+C;IACxC,UAAU,CAAC,MAAgB;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,qCAAqC;IAC9B,QAAQ,CAAC,KAAmB,EAAE,GAAM;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACpC,OAAe,CAAC,GAAG,GAAG,GAAG,CAAC;QAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD;;;;;;;OAOG;IACI,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,OAA4C;QAChF,IAAI,IAAI,CAAC,QAAQ;YACf,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,+CAA+C;QAC/C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAG,SAAiB,CAAC,GAAG,CAAC;oBAC7C,OAAO,KAAK,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;;;;;;OAOG;IACI,aAAa,CAAC,SAAuB,EAAE,OAA4C;QACxF,IAAI,IAAI,CAAC,QAAQ;YACf,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAG,SAAiB,CAAC,GAAG,CAAC;oBAC7C,OAAO,KAAK,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|