@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":"SmallSystem.js","sourceRoot":"","sources":["../../../src/numerics/SmallSystem.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\n/** @packageDocumentation\n * @module Numerics\n */\n\nimport { Geometry } from \"../Geometry\";\nimport { Point2d, Vector2d } from \"../geometry3d/Point2dVector2d\";\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\nimport { WritableXAndY, XAndY } from \"../geometry3d/XYZProps\";\nimport { Point4d } from \"../geometry4d/Point4d\";\nimport { BilinearPolynomial } from \"./Polynomials\";\n\n// cspell:word XYUV\n\n/**\n * static methods for commonly appearing sets of equations in 2 or 3 variables\n * @public\n */\nexport class SmallSystem {\n /**\n * Intersect two transverse 2D lines.\n * * If the lines are parallel and overlap, the returned intersection is of dubious use.\n * @param a0 start point of line A\n * @param aDir direction vector of line A\n * @param b0 start point of line B\n * @param bDir direction vector of line B\n * @returns intersection fractions, `x` along line A and `y` along line B; or `undefined` if no intersection.\n * @see [[lineSegmentXYUVOverlapUnbounded]], [[lineSegmentXYUVIntersectionUnbounded]]\n */\n public static lineXYUVTransverseIntersection(a0: XAndY, aDir: XAndY, b0: XAndY, bDir: XAndY): WritableXAndY | undefined {\n const cx = b0.x - a0.x;\n const cy = b0.y - a0.y;\n const aCrossB = Geometry.crossProductXYXY(aDir.x, aDir.y, bDir.x, bDir.y);\n const cCrossB = Geometry.crossProductXYXY(cx, cy, bDir.x, bDir.y);\n const cCrossA = Geometry.crossProductXYXY(cx, cy, aDir.x, aDir.y);\n const x = Geometry.conditionalDivideFraction(cCrossB, aCrossB);\n const y = Geometry.conditionalDivideFraction(cCrossA, aCrossB);\n if (x !== undefined && y !== undefined)\n return { x, y };\n return undefined;\n }\n\n /**\n * Return true if lines (a0,a1) to (b0, b1) have a simple intersection.\n * Return the fractional (not xy) coordinates in result.x, result.y.\n * @param a0 start point of line A\n * @param a1 end point of line A\n * @param b0 start point of line B\n * @param b1 end point of line B\n * @param result vector to receive fractional coordinates of intersection: result.x is fraction on line A, result.y is fraction on line B.\n */\n public static lineSegment2dXYTransverseIntersectionUnbounded(a0: Point2d, a1: Point2d, b0: Point2d, b1: Point2d, result: Vector2d): boolean {\n const ux = a1.x - a0.x;\n const uy = a1.y - a0.y;\n const vx = b1.x - b0.x;\n const vy = b1.y - b0.y;\n return this.lineSegmentXYUVTransverseIntersectionUnbounded(a0.x, a0.y, ux, uy, b0.x, b0.y, vx, vy, result);\n }\n\n /**\n * Return true if the lines have a simple intersection.\n * * Points (ax0,ay0) to (ax0+ux,ay0+uy) are at fractions 0 and 1 of line A.\n * * Points (bx0,by0) to (bx0+vx,by0+vy) are at fractions 0 and 1 of line B.\n * @param result vector to receive fractional coordinates of intersection: result.x is fraction on line A, result.y is fraction on line B.\n */\n public static lineSegmentXYUVTransverseIntersectionUnbounded(ax0: number, ay0: number, ux: number, uy: number, bx0: number, by0: number, vx: number, vy: number, result: Vector2d): boolean {\n const transverse = this.lineXYUVTransverseIntersection({ x: ax0, y: ay0 }, { x: ux, y: uy } , { x: bx0, y: by0 }, { x: vx, y: vy });\n if (transverse) {\n result.set(transverse.x, transverse.y);\n return true;\n }\n result.set(0, 0);\n return false;\n }\n\n /**\n * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts.\n * @param a0 start point of line A\n * @param a1 end point of line A\n * @param b0 start point of line B\n * @param b1 end point of line B\n * @param result vector to receive fractional coordinates of intersection: result.x is fraction on line A, result.y is fraction on line B.\n */\n public static lineSegment3dXYTransverseIntersectionUnbounded(a0: Point3d, a1: Point3d, b0: Point3d, b1: Point3d, result: Vector2d): boolean {\n const ux = a1.x - a0.x;\n const uy = a1.y - a0.y;\n const vx = b1.x - b0.x;\n const vy = b1.y - b0.y;\n return this.lineSegmentXYUVTransverseIntersectionUnbounded(a0.x, a0.y, ux, uy, b0.x, b0.y, vx, vy, result);\n }\n\n /**\n * Intersect two overlapping unbounded 2D lines.\n * @param a0 start point of line A\n * @param aDir direction vector of line A; end point of line segment A is `a0 + aDir`\n * @param b0 start point of line B\n * @param bDir direction vector of line B; end point of line segment B is `b0 + bDir`\n * @param tol overlap distance tolerance\n * @returns `undefined` if the lines have a simple (transverse) intersection, or are parallel without overlap.\n * Otherwise, return the fractions at which each segment overlaps the other line:\n * * segment B maps to fractions in the range f0.x < f1.x on line A.\n * * segment A maps to fractions in the range f0.y < f1.y on line B.\n * @see [[lineXYUVTransverseIntersection]], [[lineSegmentXYUVIntersectionUnbounded]]\n */\n public static lineSegmentXYUVOverlapUnbounded(\n a0: XAndY, aDir: XAndY,\n b0: XAndY, bDir: XAndY,\n tol: number = Geometry.smallMetricDistance\n ): { f0: WritableXAndY, f1: WritableXAndY } | undefined {\n const tol2 = tol * tol;\n const projectToSegment = (s: XAndY, e0: XAndY, eDir: XAndY): { f: number, p: XAndY } => {\n const eDotE = Geometry.dotProductXYXY(eDir.x, eDir.y, eDir.x, eDir.y);\n const sDotE = Geometry.dotProductXYXY(s.x - e0.x, s.y - e0.y, eDir.x, eDir.y);\n const f = Geometry.safeDivideFraction(sDotE, eDotE, 0.0);\n return { f, p: { x: e0.x + f * eDir.x, y: e0.y + f * eDir.y } };\n };\n const a0OnB = projectToSegment(a0, b0, bDir);\n if (Geometry.distanceSquaredXYXY(a0.x, a0.y, a0OnB.p.x, a0OnB.p.y) > tol2)\n return undefined;\n const a1x = a0.x + aDir.x;\n const a1y = a0.y + aDir.y;\n const a1OnB = projectToSegment({ x: a1x, y: a1y }, b0, bDir);\n if (Geometry.distanceSquaredXYXY(a1x, a1y, a1OnB.p.x, a1OnB.p.y) > tol2)\n return undefined;\n const b0OnA = projectToSegment(b0, a0, aDir);\n if (Geometry.distanceSquaredXYXY(b0.x, b0.y, b0OnA.p.x, b0OnA.p.y) > tol2)\n return undefined;\n const b1x = b0.x + bDir.x;\n const b1y = b0.y + bDir.y;\n const b1OnA = projectToSegment({ x: b1x, y: b1y }, a0, aDir);\n if (Geometry.distanceSquaredXYXY(b1x, b1y, b1OnA.p.x, b1OnA.p.y) > tol2)\n return undefined;\n if (b0OnA.f > b1OnA.f)\n [b0OnA.f, b1OnA.f] = [b1OnA.f, b0OnA.f];\n if (a0OnB.f > a1OnB.f)\n [a0OnB.f, a1OnB.f] = [a1OnB.f, a0OnB.f];\n return { f0: { x: b0OnA.f, y: a0OnB.f }, f1: { x: b1OnA.f, y: a1OnB.f } };\n }\n\n /**\n * Intersect two transverse or overlapping unbounded 2D line segments.\n * @param a0 start point of line A\n * @param aDir direction vector of line A; end point of line segment A is `a0 + aDir`\n * @param b0 start point of line B\n * @param bDir direction vector of line B; end point of line segment B is `b0 + bDir`\n * @param tol overlap distance tolerance\n * @returns intersection fractions:\n * * If `f1` is undefined, the intersection occurs at fraction f0.x along line A and f0.y along line B.\n * * If `f1` is defined, the line segments are parallel and overlap:\n * segment B maps to fractions in the range f0.x < f1.x on line A;\n * segment A maps to fractions in the range f0.y < f1.y on line B.\n * * If `undefined`, the lines are parallel without overlap.\n */\n public static lineSegmentXYUVIntersectionUnbounded(\n a0: XAndY, aDir: XAndY,\n b0: XAndY, bDir: XAndY,\n tol: number = Geometry.smallMetricDistance\n ): { f0: WritableXAndY, f1?: WritableXAndY } | undefined {\n // Normal practice is to do the (quick, simple) transverse intersection first, but the transverse intersector's\n // notion of coincidence is based on the determinant ratios, which are hard to relate to physical tolerance.\n // So do the overlap first. This should do a quick exit in non-coincident case.\n const overlap = this.lineSegmentXYUVOverlapUnbounded(a0, aDir, b0, bDir, tol);\n if (overlap)\n return overlap;\n const transverse = this.lineXYUVTransverseIntersection(a0, aDir, b0, bDir);\n if (transverse)\n return { f0: transverse };\n return undefined;\n }\n\n /**\n * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts of WEIGHTED 4D Points\n * @param hA0 homogeneous start point of line A\n * @param hA1 homogeneous end point of line A\n * @param hB0 homogeneous start point of line B\n * @param hB1 homogeneous end point of line B\n * @param result vector to receive fractional coordinates of intersection: result.x is fraction on line A, result.y is fraction on line B.\n */\n public static lineSegment3dHXYTransverseIntersectionUnbounded(hA0: Point4d, hA1: Point4d, hB0: Point4d, hB1: Point4d, result?: Vector2d): Vector2d | undefined {\n // Considering only x,y,w parts....\n // Point Q along B is (in full homogeneous) `(1-lambda) B0 + lambda 1`\n // PointQ is colinear with A0,A1 when the determinant det (A0,A1,Q) is zero. (Each column takes xyw parts)\n const alpha0 = Geometry.tripleProduct(\n hA0.x, hA1.x, hB0.x,\n hA0.y, hA1.y, hB0.y,\n hA0.w, hA1.w, hB0.w);\n const alpha1 = Geometry.tripleProduct(\n hA0.x, hA1.x, hB1.x,\n hA0.y, hA1.y, hB1.y,\n hA0.w, hA1.w, hB1.w);\n const fractionB = Geometry.conditionalDivideFraction(-alpha0, alpha1 - alpha0);\n if (fractionB !== undefined) {\n const beta0 = Geometry.tripleProduct(\n hB0.x, hB1.x, hA0.x,\n hB0.y, hB1.y, hA0.y,\n hB0.w, hB1.w, hA0.w);\n const beta1 = Geometry.tripleProduct(\n hB0.x, hB1.x, hA1.x,\n hB0.y, hB1.y, hA1.y,\n hB0.w, hB1.w, hA1.w);\n const fractionA = Geometry.conditionalDivideFraction(-beta0, beta1 - beta0);\n if (fractionA !== undefined)\n return Vector2d.create(fractionA, fractionB, result);\n }\n return undefined;\n }\n\n /**\n * Return the line fraction at which the (homogeneous) line is closest to a space point as viewed in xy only.\n * @param hA0 homogeneous start point of the line\n * @param hA1 homogeneous end point of the line\n * @param spacePoint homogeneous point in space\n */\n public static lineSegment3dHXYClosestPointUnbounded(hA0: Point4d, hA1: Point4d, spacePoint: Point4d): number | undefined {\n // Considering only x,y,w parts.\n // weighted difference of (A1 w0 - A0 w1) is (cartesian) tangent vector along the line as viewed.\n // The perpendicular (pure vector) W = (-y,x) flip is the direction of projection.\n // Point Q along A is (in full homogeneous) `(1-lambda) A0 + lambda 1 A1`.\n // PointQ is colinear with spacePoint and and W when the xyw homogeneous determinant | Q W spacePoint | is zero.\n const tx = hA1.x * hA0.w - hA0.x * hA1.w;\n const ty = hA1.y * hA0.w - hA0.y * hA1.w;\n const det0 = Geometry.tripleProduct(\n hA0.x, -ty, spacePoint.x,\n hA0.y, tx, spacePoint.y,\n hA0.w, 0, spacePoint.w,\n );\n const det1 = Geometry.tripleProduct(\n hA1.x, -ty, spacePoint.x,\n hA1.y, tx, spacePoint.y,\n hA1.w, 0, spacePoint.w,\n );\n return Geometry.conditionalDivideFraction(-det0, det1 - det0);\n }\n\n /**\n * Return the line fraction at which the line is closest to a space point as viewed in xy only.\n * @param pointA0 start point\n * @param pointA1 end point\n * @param spacePoint point in space\n */\n public static lineSegment3dXYClosestPointUnbounded(pointA0: XAndY, pointA1: XAndY, spacePoint: XAndY): number | undefined {\n // Considering only x,y parts....\n const ux = pointA1.x - pointA0.x;\n const uy = pointA1.y - pointA0.y;\n const uu = ux * ux + uy * uy;\n const vx = spacePoint.x - pointA0.x;\n const vy = spacePoint.y - pointA0.y;\n const uv = ux * vx + uy * vy;\n return Geometry.conditionalDivideFraction(uv, uu);\n }\n\n /**\n * Return the line fraction at which the line is closest to a space point\n * @param pointA0 start point\n * @param pointA1 end point\n * @param spacePoint point in space\n */\n public static lineSegment3dClosestPointUnbounded(pointA0: Point3d, pointA1: Point3d, spacePoint: Point3d): number | undefined {\n const ux = pointA1.x - pointA0.x;\n const uy = pointA1.y - pointA0.y;\n const uz = pointA1.z - pointA0.z;\n const uu = ux * ux + uy * uy + uz * uz;\n const vx = spacePoint.x - pointA0.x;\n const vy = spacePoint.y - pointA0.y;\n const vz = spacePoint.z - pointA0.z;\n const uv = ux * vx + uy * vy + uz * vz;\n return Geometry.conditionalDivideFraction(uv, uu);\n }\n\n /**\n * Return true if lines (a0,a1) to (b0, b1) have closest approach (go by each other) in 3d\n * @param a0 start point of line A\n * @param a1 end point of line A\n * @param b0 start point of line B\n * @param b1 end point of line B\n * @param result vector to receive fractional coordinates of closest approach: result.x is fraction on line A, result.y is fraction on line B.\n */\n public static lineSegment3dClosestApproachUnbounded(a0: Point3d, a1: Point3d, b0: Point3d, b1: Point3d,\n result: Vector2d): boolean {\n return this.ray3dXYZUVWClosestApproachUnbounded(\n a0.x, a0.y, a0.z,\n a1.x - a0.x, a1.y - a0.y, a1.z - a0.z,\n b0.x, b0.y, b0.z,\n b1.x - b0.x, b1.y - b0.y, b1.z - b0.z,\n result);\n }\n /**\n * Return true if the given rays have closest approach (go by each other) in 3d\n * @param ax x-coordinate of the origin of the first ray\n * @param ay y-coordinate of the origin of the first ray\n * @param az z-coordinate of the origin of the first ray\n * @param au x-coordinate of the direction vector of the first ray\n * @param av y-coordinate of the direction vector of the first ray\n * @param aw z-coordinate of the direction vector of the first ray\n * @param bx x-coordinate of the origin of the second ray\n * @param by y-coordinate of the origin of the second ray\n * @param bz z-coordinate of the origin of the second ray\n * @param bu x-coordinate of the direction vector of the second ray\n * @param bv y-coordinate of the direction vector of the second ray\n * @param bw z-coordinate of the direction vector of the second ray\n * @param result vector to receive fractional coordinates of intersection: result.x is fraction on line A, result.y is fraction on line B.\n */\n public static ray3dXYZUVWClosestApproachUnbounded(\n ax: number, ay: number, az: number, au: number, av: number, aw: number,\n bx: number, by: number, bz: number, bu: number, bv: number, bw: number,\n result: Vector2d): boolean {\n\n const cx = bx - ax;\n const cy = by - ay;\n const cz = bz - az;\n\n const uu = Geometry.hypotenuseSquaredXYZ(au, av, aw);\n const vv = Geometry.hypotenuseSquaredXYZ(bu, bv, bw);\n const uv = Geometry.dotProductXYZXYZ(au, av, aw, bu, bv, bw);\n const cu = Geometry.dotProductXYZXYZ(cx, cy, cz, au, av, aw);\n const cv = Geometry.dotProductXYZXYZ(cx, cy, cz, bu, bv, bw);\n return SmallSystem.linearSystem2d(uu, -uv, uv, -vv, cu, cv, result);\n }\n /**\n * Solve the pair of linear equations\n * * `ux * x + vx * y = cx`\n * * `uy * x + vy * y = cy`\n * @param ux xx coefficient\n * @param vx xy coefficient\n * @param uy yx coefficient\n * @param vy yy coefficient\n * @param cx x right hand side\n * @param cy y right hand side\n * @param result (x,y) solution (MUST be preallocated by caller)\n */\n public static linearSystem2d(\n ux: number, vx: number, // first row of matrix\n uy: number, vy: number, // second row of matrix\n cx: number, cy: number, // right side\n result: Vector2d,\n ): boolean {\n const uv = Geometry.crossProductXYXY(ux, uy, vx, vy);\n const cv = Geometry.crossProductXYXY(cx, cy, vx, vy);\n const cu = Geometry.crossProductXYXY(ux, uy, cx, cy);\n const s = Geometry.conditionalDivideFraction(cv, uv);\n const t = Geometry.conditionalDivideFraction(cu, uv);\n if (s !== undefined && t !== undefined) {\n result.set(s, t);\n return true;\n }\n result.set(0, 0);\n return false;\n }\n /**\n * Solve a linear system:\n * * x equation: `axx * u + axy * v + axz * w = cx`\n * * y equation: `ayx * u + ayy * v + ayz * w = cy`\n * * z equation: `azx * u + azy * v + azz * w = cz`\n * @param axx row 0, column 0 coefficient\n * @param axy row 0, column 1 coefficient\n * @param axz row 0, column 1 coefficient\n * @param ayx row 1, column 0 coefficient\n * @param ayy row 1, column 1 coefficient\n * @param ayz row 1, column 2 coefficient\n * @param azx row 2, column 0 coefficient\n * @param azy row 2, column 1 coefficient\n * @param azz row 2, column 2 coefficient\n * @param cx right hand side row 0 coefficient\n * @param cy right hand side row 1 coefficient\n * @param cz right hand side row 2 coefficient\n * @param result optional result.\n * @returns solution vector (u,v,w) or `undefined` if system is singular.\n */\n public static linearSystem3d(\n axx: number, axy: number, axz: number, // first row of matrix\n ayx: number, ayy: number, ayz: number, // second row of matrix\n azx: number, azy: number, azz: number, // second row of matrix\n cx: number, cy: number, cz: number, // right side\n result?: Vector3d,\n ): Vector3d | undefined {\n // determinants of various combinations of columns ...\n const detXYZ = Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, axz, ayz, azz);\n const detCYZ = Geometry.tripleProduct(cx, cy, cz, axy, ayy, azy, axz, ayz, azz);\n const detXCZ = Geometry.tripleProduct(axx, ayx, azx, cx, cy, cz, axz, ayz, azz);\n const detXYC = Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, cx, cy, cz);\n const s = Geometry.conditionalDivideFraction(detCYZ, detXYZ);\n const t = Geometry.conditionalDivideFraction(detXCZ, detXYZ);\n const u = Geometry.conditionalDivideFraction(detXYC, detXYZ);\n if (s !== undefined && t !== undefined && u !== undefined) {\n return Vector3d.create(s, t, u, result);\n }\n return undefined;\n }\n /**\n * Compute the intersection of three planes.\n * @param xyzA point on the first plane\n * @param normalA normal of the first plane\n * @param xyzB point on the second plane\n * @param normalB normal of the second plane\n * @param xyzC point on the third plane\n * @param normalC normal of the third plane\n * @param result optional result\n * @returns intersection point of the three planes (as a Vector3d), or undefined if at least two planes are parallel.\n */\n public static intersect3Planes(\n xyzA: Point3d, normalA: Vector3d,\n xyzB: Point3d, normalB: Vector3d,\n xyzC: Point3d, normalC: Vector3d, result?: Vector3d): Vector3d | undefined {\n return this.linearSystem3d(\n normalA.x, normalA.y, normalA.z,\n normalB.x, normalB.y, normalB.z,\n normalC.x, normalC.y, normalC.z,\n Geometry.dotProductXYZXYZ(xyzA.x, xyzA.y, xyzA.z, normalA.x, normalA.y, normalA.z),\n Geometry.dotProductXYZXYZ(xyzB.x, xyzB.y, xyzB.z, normalB.x, normalB.y, normalB.z),\n Geometry.dotProductXYZXYZ(xyzC.x, xyzC.y, xyzC.z, normalC.x, normalC.y, normalC.z), result);\n }\n\n /**\n * In rowB, replace `rowB[j] += a * rowB[pivot] * rowA[j] / rowA[pivot]` for `j > pivot`\n * @param rowA row that does not change\n * @param pivotIndex index of pivot (divisor) in rowA.\n * @param rowB row where elimination occurs.\n */\n public static eliminateFromPivot(rowA: Float64Array, pivotIndex: number, rowB: Float64Array, a: number): boolean {\n const n = rowA.length;\n let q = Geometry.conditionalDivideFraction(rowB[pivotIndex], rowA[pivotIndex]);\n if (q === undefined) return false;\n q *= a;\n for (let j = pivotIndex + 1; j < n; j++)\n rowB[j] += q * rowA[j];\n return true;\n }\n /**\n * Solve a pair of bilinear equations\n * * First equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`\n * * Second equation: `a1 + b1 * u + c1 * v + d1 * u * v = 0`\n */\n public static solveBilinearPair(\n a0: number, b0: number, c0: number, d0: number,\n a1: number, b1: number, c1: number, d1: number,\n ): Point2d[] | undefined {\n return BilinearPolynomial.solveBilinearPair(a0, b0, c0, d0, a1, b1, c1, d1);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SmallSystem.js","sourceRoot":"","sources":["../../../src/numerics/SmallSystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriDiagonalSystem.js","sourceRoot":"","sources":["../../../src/numerics/TriDiagonalSystem.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\n/** @packageDocumentation\n * @module Numerics\n */\n\nimport { Geometry } from \"../Geometry\";\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\n\n// Enumerated type lies outside of TriDiagonalSystem, as TSLint prevented declaration within class\nenum DataState {\n RawMatrix,\n FactorOK,\n FactorFailed,\n}\n/**\n * Linear system operations on a matrix with data only on the diagonal and its immediate left and right neighbors\n * @internal\n */\nexport class TriDiagonalSystem {\n\n // Lower diagonal, indexed by rows\n private _aLeft: Float64Array;\n // Upper diagonal, indexed by rows\n private _aRight: Float64Array;\n // Main diagonal, indexed by rows\n private _aDiag: Float64Array;\n // Right side vector\n private _b: Float64Array;\n // Solution vector\n private _x: Float64Array;\n\n private _dataState!: DataState;\n\n constructor(n: number) {\n this._aLeft = new Float64Array(n);\n this._aDiag = new Float64Array(n);\n this._aRight = new Float64Array(n);\n this._b = new Float64Array(n);\n this._x = new Float64Array(n);\n this.reset();\n }\n\n /** Reset to RawMatrix state with all coefficients zero */\n public reset() {\n this._dataState = DataState.RawMatrix;\n const n = this._aDiag.length;\n for (let i = 0; i < n; i++) {\n this._aLeft[i] = this._aRight[i] = this._aDiag[i] = this._b[i] = this._x[i] = 0.0;\n }\n }\n /** Install data in a row of the matrix */\n public setRow(row: number, left: number, diag: number, right: number) {\n this._aLeft[row] = left;\n this._aDiag[row] = diag;\n this._aRight[row] = right;\n }\n /** Add to row of matrix */\n public addToRow(row: number, left: number, diag: number, right: number) {\n this._aLeft[row] += left;\n this._aDiag[row] += diag;\n this._aRight[row] += right;\n }\n /** Install data in the right side (B) vector */\n public setB(row: number, bb: number) {\n this._b[row] = bb;\n }\n /** Add to an entry in the right side (B) vector */\n public addToB(row: number, bb: number) {\n this._b[row] += bb;\n }\n /** Access data from the right side (B) vector */\n public getB(row: number): number {\n return this._b[row];\n }\n /** Install data in the solution (X) vector */\n public setX(row: number, xx: number) {\n this._x[row] = xx;\n }\n /** Access data from the solution (X) vector */\n public getX(row: number): number {\n return this._x[row];\n }\n /** Get method for matrix and vector order */\n public order(): number {\n return this._aDiag.length;\n }\n /** Compute product of AX and save as B */\n public multiplyAX(): boolean {\n if (this._dataState === DataState.FactorFailed) {\n return false;\n } else if (this._dataState === DataState.FactorOK) {\n const n = this._aDiag.length;\n const nm1 = n - 1;\n for (let i = 0; i < nm1; i++) {\n this._b[i] = this._aDiag[i] * this._x[i] + this._aRight[i] * this._x[i + 1];\n }\n this._b[nm1] = this._aDiag[nm1] * this._x[nm1];\n\n for (let i = nm1; i > 0; i--) {\n this._b[i] += this._aLeft[i] * this._b[i - 1];\n }\n\n return true;\n } else {\n const n = this._aDiag.length;\n const nm1 = n - 1;\n this._b[0] = this._aDiag[0] * this._x[0] + this._aRight[0] * this._x[1];\n let i;\n for (i = 1; i < nm1; i++) {\n this._b[i] = this._aLeft[i] * this._x[i - 1] + this._aDiag[i] * this._x[i] + this._aRight[i] * this._x[i + 1];\n }\n this._b[nm1] = this._aLeft[nm1] * this._x[n - 2] + this._aDiag[i] * this._x[nm1];\n return true;\n }\n }\n\n /** Compute product of AX and save as B */\n public multiplyAXPoints(pointX: Point3d[], pointB: Point3d[]): boolean {\n pointB.length = 0;\n while (pointB.length < pointX.length)\n pointB.push(Point3d.create());\n pointB.length = pointX.length;\n\n if (this._dataState === DataState.FactorFailed) {\n return false;\n } else if (this._dataState === DataState.FactorOK) {\n\n const n = this._aDiag.length;\n const nm1 = n - 1;\n for (let i = 0; i < nm1; i++) {\n Point3d.createAdd2Scaled(pointX[i], this._aDiag[i], pointX[i + 1], this._aRight[i], pointB[i]);\n }\n Point3d.createScale(pointX[nm1], this._aDiag[nm1], pointB[nm1]);\n\n for (let i = nm1; i > 0; i--) {\n pointB[i].plusScaled(pointB[i - 1], this._aLeft[i], pointB[i]);\n }\n\n return true;\n } else {\n const n = this._aDiag.length;\n const nm1 = n - 1;\n Point3d.createAdd2Scaled(pointX[0], this._aDiag[0], pointX[1], this._aRight[0], pointB[0]);\n let i;\n for (i = 1; i < nm1; i++) {\n Point3d.createAdd3Scaled(\n pointX[i - 1], this._aLeft[i], pointX[i], this._aDiag[i],\n pointX[i + 1], this._aRight[i],\n pointB[i]);\n }\n Point3d.createAdd2Scaled(pointX[n - 2], this._aLeft[nm1], pointX[nm1], this._aDiag[nm1], pointB[nm1]);\n return true;\n }\n }\n\n /** Multiply the stored factors together to return to plain matrix form */\n public defactor(): boolean {\n if (this._dataState === DataState.RawMatrix) {\n return true;\n }\n if (this._dataState === DataState.FactorFailed) {\n return false;\n }\n const n = this._aDiag.length;\n const nm1 = n - 1;\n\n for (let i = nm1; i > 0; i--) {\n this._aDiag[i] += this._aLeft[i] * this._aRight[i - 1];\n this._aLeft[i] *= this._aDiag[i - 1];\n }\n this._dataState = DataState.RawMatrix;\n return true;\n }\n /** Factor the tridiagonal matrix to LU parts. b, x, not altered */\n public factor(): boolean {\n if (this._dataState === DataState.FactorOK) {\n return true;\n }\n if (this._dataState !== DataState.RawMatrix) {\n return false;\n }\n this._dataState = DataState.FactorFailed;\n\n const n1 = this._aDiag.length - 1; // Last pivot index\n // Eliminate in subdiagonal.\n for (let i = 0; i < n1; i++) {\n const r = Geometry.conditionalDivideFraction(this._aLeft[i + 1], this._aDiag[i]);\n if (r === undefined)\n return false;\n this._aLeft[i + 1] = r;\n this._aDiag[i + 1] -= r * this._aRight[i];\n }\n this._dataState = DataState.FactorOK;\n return true;\n }\n /** Solve AX=B. A is left in factored state. B unchanged. */\n public factorAndBackSubstitute(): boolean {\n const n = this._aDiag.length;\n const n1 = n - 1;\n if (!this.factor())\n return false;\n\n // Apply L inverse to B, same sequence as was done to A:\n for (let i = 0; i < n; i++) {\n this._x[i] = this._b[i];\n }\n for (let i = 1; i < n; i++) {\n this._x[i] -= this._aLeft[i] * this._x[i - 1];\n }\n\n // Print (\"LU L Inverse B B\");\n // overwrite X with solution of U * X = L inverse B, where RHS is already in X...\n // All diagonals are known to be nonzero. Really. Really???\n this._x[n1] /= this._aDiag[n1];\n\n for (let i = n1 - 1; i >= 0; i--) {\n this._x[i] = (this._x[i] - this._aRight[i] * this._x[i + 1]) / this._aDiag[i];\n }\n\n return true;\n }\n /** Solve AX=B. A is left in factored state. B unchanged. vectorB and vectorX may be the same array */\n public factorAndBackSubstitutePointArrays(vectorB: Point3d[], vectorX: Point3d[]): boolean {\n const n = this._aDiag.length;\n if (vectorB.length < n)\n return false;\n\n while (vectorX.length < n)\n vectorX.push(Point3d.create(0, 0, 0));\n vectorX.length = n;\n const n1 = n - 1;\n if (!this.factor())\n return false;\n\n // Apply L inverse to B, same sequence as was done to A:\n if (vectorB !== vectorX) {\n for (let i = 0; i < n; i++) {\n vectorX[i].setFrom(vectorB[i]);\n }\n }\n\n let a: number;\n let b: number;\n for (let i = 1; i < n; i++) {\n a = this._aLeft[i];\n vectorX[i].x -= a * vectorX[i - 1].x;\n vectorX[i].y -= a * vectorX[i - 1].y;\n vectorX[i].z -= a * vectorX[i - 1].z;\n }\n\n // Print (\"LU L inverse B\");\n // overwrite X with solution of U * X = L inverse B, where RHS is already in X...\n // All diagonals are known to be nonzero. Really. Really???\n b = 1.0 / this._aDiag[n1];\n vectorX[n1].x *= b;\n vectorX[n1].y *= b;\n vectorX[n1].z *= b;\n\n for (let i = n1 - 1; i >= 0; i--) {\n a = this._aRight[i];\n b = 1.0 / this._aDiag[i];\n vectorX[i].x = (vectorX[i].x - a * vectorX[i + 1].x) * b;\n vectorX[i].y = (vectorX[i].y - a * vectorX[i + 1].y) * b;\n vectorX[i].z = (vectorX[i].z - a * vectorX[i + 1].z) * b;\n }\n\n return true;\n }\n /** Allocate a complete copy */\n public copy(): TriDiagonalSystem {\n const n = this._aDiag.length;\n const B = new TriDiagonalSystem(n);\n for (let i = 0; i < n; i++) {\n B._aLeft[i] = this._aLeft[i];\n B._aDiag[i] = this._aDiag[i];\n B._aRight[i] = this._aRight[i];\n B._x[i] = this._x[i];\n B._b[i] = this._b[i];\n }\n B._dataState = this._dataState;\n return B;\n }\n\n /** return an array form that may be useful for display ... */\n public flatten(): any {\n const n = this._aDiag.length;\n const data = [];\n\n for (let i = 0; i < n; i++) {\n data.push(\n [i, [this._aLeft[i], this._aDiag[i], this._aRight[i]], this._x[i], this._b[i]]);\n }\n return data;\n }\n\n /** return an array form that may be useful for display ... */\n public flattenWithPoints(xyzB: Point3d[]): any {\n const n = this._aDiag.length;\n const data = [];\n\n for (let i = 0; i < n; i++) {\n data.push(\n [i, [this._aLeft[i], this._aDiag[i], this._aRight[i]], this._x[i], xyzB[i].toJSON()]);\n }\n return data;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TriDiagonalSystem.js","sourceRoot":"","sources":["../../../src/numerics/TriDiagonalSystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnionFind.js","sourceRoot":"","sources":["../../../src/numerics/UnionFind.ts"],"names":[],"mappings":"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"
|
|
1
|
+
{"version":3,"file":"UnionFind.js","sourceRoot":"","sources":["../../../src/numerics/UnionFind.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsageSums.js","sourceRoot":"","sources":["../../../src/numerics/UsageSums.ts"],"names":[],"mappings":"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"
|
|
1
|
+
{"version":3,"file":"UsageSums.js","sourceRoot":"","sources":["../../../src/numerics/UsageSums.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuxData.js","sourceRoot":"","sources":["../../../src/polyface/AuxData.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\n/** @packageDocumentation\n * @module Polyface\n */\n\n// import { Point2d } from \"./Geometry2d\";\nimport { Transform } from \"../geometry3d/Transform\";\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\nimport { NumberArray } from \"../geometry3d/PointHelpers\";\n// import { Geometry } from \"./Geometry\";\nimport { Range1d, Range3d } from \"../geometry3d/Range\";\n\n/** The types of data that can be represented by an [[AuxChannelData]]. Each type of data contributes differently to the\n * animation applied by an [AnalysisStyle]($common) and responds differently when the host [[PolyfaceAuxData]] is transformed.\n * @public\n */\nexport enum AuxChannelDataType {\n /** General-purpose scalar values like stress, temperature, etc., used to recolor the [[Polyface]]'s vertices.\n * When the host Polyface is transformed, scalar values remain unmodified.\n */\n Scalar = 0,\n /** Distances in meters used to recolor the [[Polyface]]'s vertices.\n * When the host [[Polyface]] is transformed the [[Transform]]'s scale is applied to the distances.\n */\n Distance = 1,\n /** (X, Y, Z) displacement vectors added to the [[Polyface]]'s vertex positions resulting in deformation of the mesh.\n * When the host Polyface is transformed the displacements are rotated and scaled accordingly.\n */\n Vector = 2,\n /** (X, Y, Z) unit normal vectors that replace the host [[Polyface]]'s own normals.\n * When the Polyface is transformed the normals are rotated and renormalized accordingly.\n */\n Normal = 3,\n}\n\n/** Represents the [[AuxChannel]] data at a single input value.\n * @public\n*/\nexport class AuxChannelData {\n /** The input value for this data. */\n public input: number;\n /** The vertex values for this data. A single value per vertex for scalar and distance types and 3 values (x,y,z) for normal or vector channels. */\n public values: number[];\n\n /** Constructor. If `values` is a number array, it is captured. */\n constructor(input: number, values: number[] | Float64Array) {\n this.input = input;\n if (values instanceof Float64Array) {\n this.values = [];\n for (const v of values) this.values.push(v);\n } else\n this.values = values;\n }\n\n /** Copy blocks of size `blockSize` from (blocked index) `thisIndex` in this AuxChannelData to (blockIndex) `otherIndex` of `other` */\n public copyValues(other: AuxChannelData, thisIndex: number, otherIndex: number, blockSize: number): void {\n for (let i = 0; i < blockSize; i++)\n this.values[thisIndex * blockSize + i] = other.values[otherIndex * blockSize + i];\n }\n\n /** return a deep copy */\n public clone(): AuxChannelData {\n return new AuxChannelData(this.input, this.values.slice());\n }\n\n /** toleranced comparison of the `input` and `value` fields.\n * * Default tolerance is 1.0e-8\n */\n public isAlmostEqual(other: AuxChannelData, tol?: number): boolean {\n const tolerance = tol ? tol : 1.0E-8;\n return Math.abs(this.input - other.input) < tolerance && NumberArray.isAlmostEqual(this.values, other.values, tolerance);\n }\n}\n\n/** Represents a single [[PolyfaceAuxData]] channel.\n * @public\n*/\nexport class AuxChannel {\n /** An array of [[AuxChannelData]] that represents the vertex data at one or more input values. */\n public data: AuxChannelData[];\n /** The type of data stored in this channel. */\n public dataType: AuxChannelDataType;\n /** The channel name. This is used to present the [[AuxChannel]] to the user and also to select the [[AuxChannel]] for display from AnalysisStyle */\n public name?: string;\n /** The input name. */\n public inputName?: string;\n\n /** Constructor with CAPTURED inputs. */\n public constructor(data: AuxChannelData[], dataType: AuxChannelDataType, name?: string, inputName?: string) {\n this.data = data;\n this.dataType = dataType;\n this.name = name;\n this.inputName = inputName;\n }\n\n /** Return a deep copy. */\n public clone(): AuxChannel {\n const clonedData = [];\n for (const data of this.data) clonedData.push(data.clone());\n return new AuxChannel(clonedData, this.dataType, this.name, this.inputName);\n }\n\n /** Toleranced comparison of contents. */\n public isAlmostEqual(other: AuxChannel, tol?: number): boolean {\n if (this.dataType !== other.dataType ||\n this.name !== other.name ||\n this.inputName !== other.inputName ||\n this.data.length !== other.data.length)\n return false;\n\n for (let i = 0; i < this.data.length; i++)\n if (!this.data[i].isAlmostEqual(other.data[i], tol))\n return false;\n\n return true;\n }\n\n /** True if the data type is 1-dimensional. */\n public static isScalar(dataType: AuxChannelDataType): boolean {\n return dataType === AuxChannelDataType.Distance || dataType === AuxChannelDataType.Scalar;\n }\n\n /** True if the data stored in this AuxChannel is 1-dimensional. */\n public get isScalar(): boolean {\n return AuxChannel.isScalar(this.dataType);\n }\n\n /** The dimension (1D or 3D) of each datum of an AuxChannel of the given type. */\n public static entriesPerValue(dataType: AuxChannelDataType): number {\n return this.isScalar(dataType) ? 1 : 3;\n }\n\n /** The dimension (1D or 3D) of each datum in the data arrays of this AuxChannel. */\n public get entriesPerValue(): number {\n return AuxChannel.entriesPerValue(this.dataType);\n }\n\n /** The number of data stored in each data array of this AuxChannel, equal to the length of the array divided by `entriesPerValue`. */\n public get valueCount(): number {\n return 0 === this.data.length ? 0 : this.data[0].values.length / this.entriesPerValue;\n }\n\n /** The minimum and maximum values in `data.values`, or `undefined` if [[isScalar]] is false. */\n public get scalarRange(): Range1d | undefined {\n if (!this.isScalar)\n return undefined;\n\n const range = Range1d.createNull();\n for (const data of this.data)\n range.extendArray(data.values);\n\n return range;\n }\n\n /** Compute the range of this channel's displacement values, if [[dataType]] is [[AuxChannelDataType.Vector]].\n * @param scale Scale by which to multiply each displacement.\n * @param result Preallocated object in which to store result.\n * @returns The range encompassing all this channel's displacements scaled by `scale`; or a null range if this channel does not contain displacements.\n */\n public computeDisplacementRange(scale = 1, result?: Range3d): Range3d {\n result = Range3d.createNull(result);\n\n if (AuxChannelDataType.Vector === this.dataType) {\n for (const data of this.data) {\n const v = data.values;\n for (let i = 0; i < v.length; i += 3)\n result.extendXYZ(v[i] * scale, v[i + 1] * scale, v[i + 2] * scale);\n }\n }\n\n return result;\n }\n}\n\n/**\n * The `PolyfaceAuxData` structure contains one or more analytical data channels for each vertex of a [[Polyface]], allowing the polyface to be styled\n * using an [AnalysisStyle]($common).\n * Typically a polyface will contain only vertex data required for its basic display: vertex position, normal, texture parameter, color.\n * `PolyfaceAuxData` provides supplemental per-vertex data that is generally computed in an analysis program or other external data source.\n * This supplemental data can be either 1D (e.g., height, override color) or 3D (e.g., displacement vector, override normal); see [[AuxChannel.entriesPerValue]], [[AuxChannel.dataType]].\n * All data channels are indexed by the same indices, which must have the same length and structure as the other Polyface indices.\n * This means that if a facet's face loop is found at index range [i0,i1] in the Polyface vertex index array, then the same index range [i0,i1]\n * locates the data for this facet in all the other Polyface index arrays, including the `PolyfaceAuxData` indices.\n * @see [[PolyfaceData.auxData]] to associate auxiliary data with a polyface.\n * @public\n */\nexport class PolyfaceAuxData {\n /** Array with one or more channels of auxiliary data for the associated polyface. */\n public channels: AuxChannel[];\n /** The indices (shared by all data in all channels) mapping the data to the mesh facets. */\n public indices: number[];\n\n /** Constructor with CAPTURED inputs. */\n public constructor(channels: AuxChannel[], indices: number[]) {\n this.channels = channels;\n this.indices = indices;\n }\n\n /** Return a deep copy. */\n public clone(): PolyfaceAuxData {\n const clonedChannels = this.channels.map((x) => x.clone());\n return new PolyfaceAuxData(clonedChannels, this.indices.slice());\n }\n\n /** Returns true if `this` is equivalent to `other` within `tolerance`.\n * The indices are compared for exact equality. The data in the channels are compared using `tolerance`, which defaults to 1.0e-8.\n */\n public isAlmostEqual(other: PolyfaceAuxData, tolerance?: number): boolean {\n if (!NumberArray.isExactEqual(this.indices, other.indices) || this.channels.length !== other.channels.length)\n return false;\n\n for (let i = 0; i < this.channels.length; i++)\n if (!this.channels[i].isAlmostEqual(other.channels[i], tolerance))\n return false;\n\n return true;\n }\n\n /** Returns true if both `left` and `right` are undefined, or both are defined and equivalent within `tolerance` (default: 1.0e-8). */\n public static isAlmostEqual(left: PolyfaceAuxData | undefined, right: PolyfaceAuxData | undefined, tol?: number): boolean {\n if (left === right) // This catches double undefined !!!\n return true;\n if (left && right)\n return left.isAlmostEqual(right, tol);\n return false;\n }\n\n /** Create a PolyfaceAuxData for use by a [[PolyfaceVisitor]]. */\n public createForVisitor(): PolyfaceAuxData {\n const visitorChannels: AuxChannel[] = [];\n\n for (const parentChannel of this.channels) {\n const visitorChannelData: AuxChannelData[] = [];\n for (const parentChannelData of parentChannel.data)\n visitorChannelData.push(new AuxChannelData(parentChannelData.input, []));\n\n visitorChannels.push(new AuxChannel(visitorChannelData, parentChannel.dataType, parentChannel.name, parentChannel.inputName));\n }\n\n return new PolyfaceAuxData(visitorChannels, []);\n }\n\n /** Apply `transform` to the data in each channel.\n * @see [[AuxChannelDataType]] for details regarding how each data type is affected by the transform.\n * @note This method may fail if a channel of [[AuxChannelDataType.Normal]] exists and `transform.matrix` is non-invertible.\n * @returns true if the channels were all successfully transformed.\n */\n public tryTransformInPlace(transform: Transform): boolean {\n let inverseRot: Matrix3d | undefined;\n const rot = transform.matrix;\n const det = rot.determinant();\n const scale = Math.pow(Math.abs(det), 1 / 3) * (det >= 0 ? 1 : -1);\n\n for (const channel of this.channels) {\n for (const data of channel.data) {\n switch (channel.dataType) {\n case AuxChannelDataType.Scalar:\n continue;\n case AuxChannelDataType.Distance: {\n for (let i = 0; i < data.values.length; i++)\n data.values[i] *= scale;\n\n break;\n }\n case AuxChannelDataType.Normal: {\n inverseRot = inverseRot ?? rot.inverse();\n if (!inverseRot)\n return false;\n\n transformPoints(data.values, (point) => {\n inverseRot!.multiplyTransposeVectorInPlace(point);\n const dot = point.magnitudeSquared();\n const tol = 1.0e-15; // cf. GrowableXYZArray.multiplyAndRenormalizeMatrix3dInverseTransposeInPlace\n if (dot > tol && Math.abs(dot - 1.0) > tol ) { // only renormalize if magnitude is not near 0 or 1\n const mag = 1.0 / Math.sqrt(dot);\n point.scaleInPlace(mag);\n }\n });\n break;\n }\n case AuxChannelDataType.Vector: {\n transformPoints(data.values, (point) => rot.multiplyVectorInPlace(point));\n break;\n }\n }\n }\n }\n\n return true;\n }\n}\n\nfunction transformPoints(coords: number[], transform: (point: Point3d) => void): void {\n const point = new Point3d();\n for (let i = 0; i < coords.length; i += 3) {\n point.set(coords[i], coords[i + 1], coords[i + 2]);\n transform(point);\n coords[i] = point.x;\n coords[i + 1] = point.y;\n coords[i + 2] = point.z;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AuxData.js","sourceRoot":"","sources":["../../../src/polyface/AuxData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoxTopology.js","sourceRoot":"","sources":["../../../src/polyface/BoxTopology.ts"],"names":[],"mappings":"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"
|
|
1
|
+
{"version":3,"file":"BoxTopology.js","sourceRoot":"","sources":["../../../src/polyface/BoxTopology.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetFaceData.js","sourceRoot":"","sources":["../../../src/polyface/FacetFaceData.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 { Point2d, Vector2d } from \"../geometry3d/Point2dVector2d\";\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\nimport { Range2d } from \"../geometry3d/Range\";\nimport { IndexedPolyface } from \"./Polyface\";\nimport { IndexedPolyfaceVisitor } from \"./IndexedPolyfaceVisitor\";\n\n/**\n * Data for a face in a polyface containing facets.\n * This is built up cooperatively by the PolyfaceBuilder and its\n * callers, and stored as a FaceData array in PolyfaceData.\n * @public\n */\nexport class FacetFaceData {\n private _paramDistanceRange: Range2d;\n private _paramRange: Range2d;\n /** (property accessor) Return a reference to the distance-scaled parameter range. */\n public get paramDistanceRange(): Range2d { return this._paramDistanceRange; }\n /** (property accessor) Return a reference to the parameter range. */\n public get paramRange(): Range2d { return this._paramRange; }\n private constructor(distanceRange: Range2d, paramRange: Range2d) {\n this._paramDistanceRange = distanceRange;\n this._paramRange = paramRange;\n }\n /** Create a FacetFaceData with null ranges. */\n public static createNull(): FacetFaceData {\n return new FacetFaceData(Range2d.createNull(), Range2d.createNull());\n }\n /** Create a deep copy of this FacetFaceData object. */\n public clone(result?: FacetFaceData): FacetFaceData {\n if (result) {\n this._paramDistanceRange.clone(result._paramDistanceRange);\n this._paramRange.clone(result._paramRange);\n return result;\n }\n return new FacetFaceData(this._paramDistanceRange.clone(), this._paramRange.clone());\n }\n /** Restore this FacetFaceData to its null constructor state. */\n public setNull() {\n this._paramDistanceRange.setNull();\n this._paramRange.setNull();\n }\n /** Return distance-based parameter from stored parameter value. */\n public convertParamXYToDistance(x: number, y: number, result?: Point2d): Point2d {\n result = result ? result : Point2d.create();\n const paramDelta = this._paramRange.high.minus(this._paramRange.low);\n result.x = (0 === paramDelta.x) ? x : (this._paramDistanceRange.low.x + (x - this._paramRange.low.x)\n * (this._paramDistanceRange.high.x - this._paramDistanceRange.low.x) / paramDelta.x);\n result.y = (0.0 === paramDelta.y) ? y : (this.paramDistanceRange.low.y + (y - this._paramRange.low.y)\n * (this._paramDistanceRange.high.y - this._paramDistanceRange.low.y) / paramDelta.y);\n return result;\n }\n /** Return normalized (0-1) parameter from stored parameter value. */\n public convertParamXYToNormalized(x: number, y: number, result?: Point2d): Point2d {\n result = result ? result : Point2d.create();\n const paramDelta = this._paramRange.high.minus(this._paramRange.low);\n result.x = (0.0 === paramDelta.x) ? x : ((x - this._paramRange.low.x) / paramDelta.x);\n result.y = (0.0 === paramDelta.y) ? y : ((y - this._paramRange.low.y) / paramDelta.y);\n return result;\n }\n /** Return distance-based parameter from stored parameter value. */\n public convertParamToDistance(param: Point2d, result?: Point2d): Point2d {\n return this.convertParamXYToDistance(param.x, param.y, result);\n }\n /** Return normalized (0-1) parameter from stored parameter value. */\n public convertParamToNormalized(param: Point2d, result?: Point2d): Point2d {\n return this.convertParamXYToNormalized(param.x, param.y, result);\n }\n /** Scale distance parameters. */\n public scaleDistances(distanceScale: number) {\n this._paramDistanceRange.low.x *= distanceScale;\n this._paramDistanceRange.low.y *= distanceScale;\n this._paramDistanceRange.high.x *= distanceScale;\n this._paramDistanceRange.high.y *= distanceScale;\n }\n /**\n * Sets the param and paramDistance range of this FacetFaceData based on the newly terminated facets that make it up.\n * Takes the polyface itself, and facetIndex range to be included in the face (facetStart <= facetIndex < facetEnd).\n * Returns true on success, false otherwise.\n */\n public setParamDistanceRangeFromNewFaceData(polyface: IndexedPolyface, facetStart: number, facetEnd: number): boolean {\n const dSTotal = Point2d.create();\n const dSSquaredTotal = Point2d.create();\n this.setNull();\n let aveTotal = 0;\n const visitor = IndexedPolyfaceVisitor.create(polyface, 0);\n if (!visitor.moveToReadIndex(facetStart) || facetEnd <= facetStart)\n return false;\n do {\n const numPointsInFacet = visitor.numEdgesThisFacet;\n const visitorPoints = visitor.point;\n const trianglePointIndexes: number[] = [];\n const visitorParams = visitor.param;\n const triangleParamIndexes: number[] = [];\n if (!visitorParams)\n return false;\n visitorParams.extendRange(this._paramRange);\n const dUV0 = Vector2d.create();\n const dUV1 = Vector2d.create();\n for (let k = 0; k < numPointsInFacet; k++) {\n trianglePointIndexes[2] = k;\n triangleParamIndexes[2] = k;\n if (k > 1) {\n visitorParams.vectorIndexIndex(triangleParamIndexes[1], triangleParamIndexes[0], dUV0);\n visitorParams.vectorIndexIndex(triangleParamIndexes[1], triangleParamIndexes[2], dUV1);\n const delta0 = visitorPoints.getPoint3dAtUncheckedPointIndex(trianglePointIndexes[0]).minus(visitorPoints.getPoint3dAtUncheckedPointIndex(trianglePointIndexes[1]));\n const delta1 = visitorPoints.getPoint3dAtUncheckedPointIndex(trianglePointIndexes[1]).minus(visitorPoints.getPoint3dAtUncheckedPointIndex(trianglePointIndexes[2]));\n const uvCross = Math.abs(dUV0.x * dUV1.y - dUV1.x * dUV0.y);\n if (uvCross) {\n const dwDu = Point3d.createFrom(delta0);\n dwDu.scaleInPlace(dUV1.y);\n dwDu.addScaledInPlace(delta1, -dUV0.y);\n const dwDv = Point3d.createFrom(delta1);\n dwDv.scaleInPlace(dUV0.x);\n dwDv.addScaledInPlace(delta0, -dUV1.x);\n const dS = Point2d.create(dwDu.magnitude() / uvCross, dwDv.magnitude() / uvCross);\n dSTotal.x += dS.x;\n dSTotal.y += dS.y;\n dSSquaredTotal.x += dS.x * dS.x;\n dSSquaredTotal.y += dS.y * dS.y;\n aveTotal++;\n }\n }\n triangleParamIndexes[0] = triangleParamIndexes[1];\n triangleParamIndexes[1] = triangleParamIndexes[2];\n trianglePointIndexes[0] = trianglePointIndexes[1];\n trianglePointIndexes[1] = trianglePointIndexes[2];\n }\n } while (visitor.moveToNextFacet() && visitor.currentReadIndex() < facetEnd);\n if (aveTotal !== 0) {\n const dS = Point2d.create(dSTotal.x / aveTotal, dSTotal.y / aveTotal);\n const standardDeviation = Point2d.create(Math.sqrt(Math.abs((dSSquaredTotal.x / aveTotal) - dS.x * dS.x)), Math.sqrt(Math.abs((dSSquaredTotal.y / aveTotal) - dS.y * dS.y)));\n // TR# 268980 - Add standard deviation to match QV....\n this._paramDistanceRange.low.set(0, 0);\n this._paramDistanceRange.high.set((dS.x + standardDeviation.x) * (this._paramRange.high.x - this._paramRange.low.x), (dS.y + standardDeviation.y) * (this._paramRange.high.y - this._paramRange.low.y));\n }\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FacetFaceData.js","sourceRoot":"","sources":["../../../src/polyface/FacetFaceData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetLocationDetail.js","sourceRoot":"","sources":["../../../src/polyface/FacetLocationDetail.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 { Point2d } from \"../geometry3d/Point2dVector2d\";\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\nimport { TriangleLocationDetail } from \"../geometry3d/BarycentricTriangle\";\nimport { Geometry, PolygonLocation } from \"../Geometry\";\nimport { PolyfaceVisitor } from \"./Polyface\";\nimport { PolygonLocationDetail, PolygonOps } from \"../geometry3d/PolygonOps\";\nimport { IndexedXYZCollection } from \"../geometry3d/IndexedXYZCollection\";\nimport { IndexedXYCollection } from \"../geometry3d/IndexedXYCollection\";\nimport { NumberArray } from \"../geometry3d/PointHelpers\";\n\n/** Callback for processing the detail for an intersected facet.\n * @param detail reference to the intersection data, with `detail.IsInsideOn === true`. Note that `detail` is owned by the caller; to persist, use `detail.clone`.\n * @param visitor at currently intersected facet\n * @returns true to accept this intersection and stop processing; false to continue to the next facet\n * @public\n */\nexport type FacetIntersectCallback = (detail: FacetLocationDetail, visitor: PolyfaceVisitor) => boolean;\n\n/** Options for computing and processing facet intersection methods.\n * @see PolyfaceQuery.intersectRay3d\n * @public\n */\nexport class FacetIntersectOptions {\n /** distance tolerance for testing coincidence with facet boundary */\n public distanceTolerance: number;\n /** fractional tolerance for snapping barycentric coordinates to a triangular facet edge */\n public parameterTolerance: number;\n /** whether to compute the normal at the intersection point */\n public needNormal?: boolean;\n /** whether to compute the uv parameter at the intersection point */\n public needParam?: boolean;\n /** whether to compute the color at the intersection point */\n public needColor?: boolean;\n /** whether to compute the barycentric coordinates of the point for a convex facet */\n public needBarycentricCoordinates?: boolean;\n /** optional callback to accept an intersected facet */\n public acceptIntersection?: FacetIntersectCallback;\n /** constructor with defaults */\n public constructor() {\n this.distanceTolerance = Geometry.smallMetricDistance;\n this.parameterTolerance = Geometry.smallFraction;\n }\n}\n/**\n * Carries data about a point in the plane of a facet of a mesh.\n * @see PolyfaceQuery.intersectRay3d\n * @public\n */\nexport interface FacetLocationDetail {\n /** Get the index of the referenced facet. */\n get facetIndex(): number;\n /** Get the number of edges of this facet. */\n get edgeCount(): number;\n /** Get the world coordinates of the point. */\n get point(): Point3d;\n /** Get the application-specific number. */\n get a(): number;\n /** Get the projection of the point onto the closest facet edge. */\n get closestEdge(): { startVertexIndex: number, edgeParam: number };\n /** Whether this instance specifies a valid location. */\n get isValid(): boolean;\n /** Whether the facet is convex. */\n get isConvex(): boolean;\n /** Whether the point is inside or on the facet. */\n get isInsideOrOn(): boolean;\n /** Get the code that classifies the location of the point with respect to the facet. */\n get classify(): PolygonLocation;\n /** Clone the instance */\n clone(): FacetLocationDetail;\n /** Set the instance contents from the other detail */\n copyContentsFrom(other: FacetLocationDetail): void;\n /** Get reference to cached normal interpolated from facet data. Inputs may be used to compute the cache. */\n getNormal(facetNormals?: IndexedXYZCollection, facetVertices?: IndexedXYZCollection, distanceTolerance?: number): Vector3d | undefined;\n /** Get reference to cached uv parameter interpolated from facet data. Inputs may be used to compute the cache. */\n getParam(facetParams?: IndexedXYCollection, facetVertices?: IndexedXYZCollection, distanceTolerance?: number): Point2d | undefined;\n /** Get cached color interpolated from facet data. Inputs may be used to compute the cache. */\n getColor(facetColors?: number[], facetVertices?: IndexedXYZCollection, distanceTolerance?: number): number | undefined;\n /** Get reference to cached barycentric coordinates of the point. Inputs may be used to compute the cache. */\n getBarycentricCoordinates(facetVertices?: IndexedXYZCollection, distanceTolerance?: number): number[] | undefined;\n}\n\n/**\n * A pair of FacetLocationDetail.\n * @public\n */\nexport class FacetLocationDetailPair {\n /** The first of the two details. */\n public detailA: FacetLocationDetail;\n /** The second of the two details. */\n public detailB: FacetLocationDetail;\n\n /** Constructor, captures inputs */\n private constructor(detailA: FacetLocationDetail, detailB: FacetLocationDetail) {\n this.detailA = detailA;\n this.detailB = detailB;\n }\n /** Create a facet detail pair, capturing inputs. */\n public static create(detailA: FacetLocationDetail, detailB: FacetLocationDetail): FacetLocationDetailPair {\n return new FacetLocationDetailPair(detailA, detailB);\n }\n}\n\n/**\n * Implementation of `FacetLocationDetail` for a triangular facet.\n * @public\n */\nexport class TriangularFacetLocationDetail implements FacetLocationDetail {\n private _facetIndex: number;\n private _detail: TriangleLocationDetail;\n private _normal?: Vector3d;\n private _param?: Point2d;\n private _color?: number;\n\n /** captures the detail if provided */\n private constructor(facetIndex: number = -1, detail?: TriangleLocationDetail) {\n this._facetIndex = facetIndex;\n this._detail = detail ? detail : TriangleLocationDetail.create();\n }\n /** Invalidate this detail. */\n public invalidate(deep: boolean = true) {\n this._facetIndex = -1;\n if (deep)\n this._detail.invalidate();\n this._normal = undefined;\n this._param = undefined;\n this._color = undefined;\n }\n /** Create a detail.\n * @param detail optional, copied if given\n * @param result optional pre-allocated object to fill and return\n */\n public static create(facetIndex: number = -1, detail?: TriangleLocationDetail, result?: TriangularFacetLocationDetail): TriangularFacetLocationDetail {\n if (!result)\n result = new TriangularFacetLocationDetail();\n else\n result.invalidate(false); // shallow: detail might be owned by result!\n result._facetIndex = facetIndex;\n if (undefined !== detail && result._detail !== detail)\n result._detail.copyContentsFrom(detail);\n return result;\n }\n /** Create a detail, capturing inputs. */\n public static createCapture(facetIndex: number, detail: TriangleLocationDetail): TriangularFacetLocationDetail {\n return new TriangularFacetLocationDetail(facetIndex, detail);\n }\n /** Get the facet index. */\n public get facetIndex(): number {\n return this._facetIndex;\n }\n /** Get the edge count of this facet. */\n public get edgeCount(): number {\n return 3;\n }\n /** Get the world coordinates of the point. */\n public get point(): Point3d {\n return this._detail.world;\n }\n /** Get the application-specific number. */\n public get a(): number {\n return this._detail.a;\n }\n /** Get the projection of the point onto the closest facet edge. */\n public get closestEdge(): { startVertexIndex: number, edgeParam: number } {\n return { startVertexIndex: this._detail.closestEdgeIndex, edgeParam: this._detail.closestEdgeParam };\n }\n /** Test validity of fields other than _detail. */\n private get _isValid(): boolean {\n return this._facetIndex >= 0;\n }\n /** Whether this instance specifies a valid location. */\n public get isValid(): boolean {\n return this._isValid && this._detail.isValid;\n }\n /** Whether the facet is convex. */\n public get isConvex(): boolean {\n return true;\n }\n /** Whether the point is inside or on the polygon. */\n public get isInsideOrOn(): boolean {\n return this._isValid && this._detail.isInsideOrOn;\n }\n /** Get the code that classifies the location of the point with respect to the facet. */\n public get classify(): PolygonLocation {\n return this._detail.classify;\n }\n /** Clone the instance */\n public clone(): TriangularFacetLocationDetail {\n const detail = new TriangularFacetLocationDetail();\n detail.copyContentsFrom(this);\n return detail;\n }\n /** Set the instance contents from the other detail.\n * @param other detail to clone\n */\n public copyContentsFrom(other: TriangularFacetLocationDetail) {\n this._facetIndex = other._facetIndex;\n this._detail.copyContentsFrom(other._detail);\n this._normal = other._normal?.clone();\n this._param = other._param?.clone();\n this._color = other._color;\n }\n /** Get normal interpolated from facet data.\n * @param facetNormals used to compute the normal cache\n * @returns reference to cached normal\n */\n public getNormal(facetNormals?: IndexedXYZCollection): Vector3d | undefined {\n if (this._detail.isValid && undefined === this._normal && undefined !== facetNormals) {\n this._normal = Vector3d.create();\n const scales = [this._detail.local.x, this._detail.local.y, this._detail.local.z];\n facetNormals.linearCombination(scales, this._normal);\n }\n return this._normal;\n }\n /** Get uv parameter interpolated from facet data.\n * @param facetParams used to compute the uv parameter cache\n * @returns reference to cached uv parameter\n */\n public getParam(facetParams?: IndexedXYCollection): Point2d | undefined {\n if (this._detail.isValid && undefined === this._param && undefined !== facetParams) {\n this._param = Point2d.create();\n const scales = [this._detail.local.x, this._detail.local.y, this._detail.local.z];\n facetParams.linearCombination(scales, this._param);\n }\n return this._param;\n }\n /** Get color interpolated from facet data.\n * * Assumes barycentric coordinates are already computed in the TriangleLocationDetail member.\n * @param facetColors used to compute the color cache\n * @returns cached color\n */\n public getColor(facetColors?: number[]): number | undefined {\n if (this._detail.isValid && undefined === this._color && undefined !== facetColors) {\n const scales = [this._detail.local.x, this._detail.local.y, this._detail.local.z];\n this._color = NumberArray.linearCombinationOfColors(facetColors, scales);\n }\n return this._color;\n }\n /** Get the barycentric coordinates of this location.\n * @returns cached barycentric coordinates\n */\n public getBarycentricCoordinates(): number[] {\n return [this._detail.local.x, this._detail.local.y, this._detail.local.z];\n }\n}\n/**\n * Implementation of `FacetLocationDetail` for a general facet, which may or may not be convex.\n * * Facet vertex data interpolation is not available.\n * @public\n */\nexport class NonConvexFacetLocationDetail implements FacetLocationDetail {\n private _facetIndex: number;\n private _edgeCount: number;\n protected _detail: PolygonLocationDetail;\n\n /** captures the detail if provided */\n protected constructor(facetIndex: number = -1, edgeCount: number = 0, detail?: PolygonLocationDetail) {\n this._facetIndex = facetIndex;\n this._edgeCount = edgeCount;\n this._detail = detail ? detail : PolygonLocationDetail.create();\n }\n /** Invalidate this detail. */\n public invalidate(deep: boolean = true) {\n this._facetIndex = -1;\n this._edgeCount = 0;\n if (deep)\n this._detail.invalidate();\n }\n /** Create a detail.\n * @param detail optional, copied if given\n * @param result optional pre-allocated object to fill and return\n */\n public static create(facetIndex: number = -1, edgeCount: number = 0, detail?: PolygonLocationDetail, result?: NonConvexFacetLocationDetail): NonConvexFacetLocationDetail {\n if (!result)\n result = new NonConvexFacetLocationDetail();\n else\n result.invalidate(false); // shallow: detail might be owned by result!\n result._facetIndex = facetIndex;\n result._edgeCount = edgeCount;\n if (undefined !== detail && result._detail !== detail)\n result._detail.copyContentsFrom(detail);\n return result;\n }\n /** Create a detail, capturing inputs. */\n public static createCapture(facetIndex: number, edgeCount: number, detail: PolygonLocationDetail): NonConvexFacetLocationDetail {\n return new NonConvexFacetLocationDetail(facetIndex, edgeCount, detail);\n }\n /** Get the facet index. */\n public get facetIndex(): number {\n return this._facetIndex;\n }\n /** Get the edge count of this facet. */\n public get edgeCount(): number {\n return this._edgeCount;\n }\n /** Get the world coordinates of the point. */\n public get point(): Point3d {\n return this._detail.point;\n }\n /** Get the application-specific number. */\n public get a(): number {\n return this._detail.a;\n }\n /** Get the projection of the point onto the closest facet edge. */\n public get closestEdge(): { startVertexIndex: number, edgeParam: number } {\n return { startVertexIndex: this._detail.closestEdgeIndex, edgeParam: this._detail.closestEdgeParam };\n }\n /** Test validity of fields other than _detail. */\n private get _isValid(): boolean {\n return this._facetIndex >= 0 && this._edgeCount >= 3;\n }\n /** Whether this instance specifies a valid location. */\n public get isValid(): boolean {\n return this._isValid && this._detail.isValid;\n }\n /** Whether the facet is convex. Always returns false, as convexity is unknown to this detail. */\n public get isConvex(): boolean {\n return false;\n }\n /** Whether the point is inside or on the polygon. */\n public get isInsideOrOn(): boolean {\n return this._isValid && this._detail.isInsideOrOn;\n }\n /** Get the code that classifies the location of the point with respect to the facet. */\n public get classify(): PolygonLocation {\n return this._detail.code;\n }\n /** Clone the instance */\n public clone(): NonConvexFacetLocationDetail {\n const detail = new NonConvexFacetLocationDetail();\n detail.copyContentsFrom(this);\n return detail;\n }\n /** Set the instance contents from the other detail.\n * @param other detail to clone\n */\n public copyContentsFrom(other: NonConvexFacetLocationDetail) {\n this._facetIndex = other._facetIndex;\n this._edgeCount = other._edgeCount;\n this._detail.copyContentsFrom(other._detail);\n }\n /** Interpolated data is not defined for a non-convex facet.\n * @returns undefined\n */\n public getNormal(): Vector3d | undefined {\n return undefined;\n }\n /** Interpolated data is not defined for a non-convex facet.\n * @returns undefined\n */\n public getParam(): Point2d | undefined {\n return undefined;\n }\n /** Interpolated data is not defined for a non-convex facet.\n * @returns undefined\n */\n public getColor(): number | undefined {\n return undefined;\n }\n /** Barycentric coordinates are not defined for a non-convex facet.\n * @returns undefined\n */\n public getBarycentricCoordinates(): number[] | undefined {\n return undefined;\n }\n}\n/**\n * Implementation of `FacetLocationDetail` for a convex facet.\n * * If `edgeCount` is 3, `TriangularFacetLocationDetail` is more efficient.\n * @public\n */\nexport class ConvexFacetLocationDetail extends NonConvexFacetLocationDetail {\n private _normal?: Vector3d;\n private _param?: Point2d;\n private _color?: number;\n private _barycentricCoordinates?: number[];\n\n /** captures the detail if provided */\n private constructor(facetIndex: number = -1, edgeCount: number = 0, detail?: PolygonLocationDetail) {\n super(facetIndex, edgeCount, detail);\n }\n /** Invalidate this detail. */\n public override invalidate(deep: boolean = true) {\n super.invalidate(deep);\n this._normal = undefined;\n this._param = undefined;\n this._color = undefined;\n this._barycentricCoordinates = undefined;\n }\n /** Create a detail.\n * @param detail optional, copied if given\n * @param result optional pre-allocated object to fill and return\n */\n public static override create(facetIndex: number = -1, edgeCount: number = 0, detail?: PolygonLocationDetail, result?: ConvexFacetLocationDetail): ConvexFacetLocationDetail {\n if (!result)\n result = new ConvexFacetLocationDetail();\n else\n result.invalidate(false); // shallow: detail might be owned by result!\n return super.create(facetIndex, edgeCount, detail, result);\n }\n /** Create a detail, capturing inputs. */\n public static override createCapture(facetIndex: number, edgeCount: number, detail: PolygonLocationDetail): ConvexFacetLocationDetail {\n return new ConvexFacetLocationDetail(facetIndex, edgeCount, detail);\n }\n /** Whether the facet is convex. */\n public override get isConvex(): boolean {\n return true;\n }\n /** Clone the instance */\n public override clone(): ConvexFacetLocationDetail {\n const detail = new ConvexFacetLocationDetail();\n detail.copyContentsFrom(this);\n return detail;\n }\n /** Set the instance contents from the other detail.\n * @param other detail to clone\n */\n public override copyContentsFrom(other: ConvexFacetLocationDetail) {\n super.copyContentsFrom(other);\n this._normal = other._normal?.clone();\n this._param = other._param?.clone();\n this._color = other._color;\n this._barycentricCoordinates = other._barycentricCoordinates?.slice();\n }\n /** Get normal interpolated from facet data.\n * @param facetNormals used to compute the normal cache\n * @param facetVertices used to compute the barycentric coordinate cache\n * @param distanceTolerance used to compute the barycentric coordinate cache\n * @returns reference to cached normal\n */\n public override getNormal(facetNormals?: IndexedXYZCollection, facetVertices?: IndexedXYZCollection, distanceTolerance: number = Geometry.smallMetricDistance): Vector3d | undefined {\n if (this._detail.isValid && undefined === this._normal && undefined !== facetNormals) {\n const scales = this.getBarycentricCoordinates(facetVertices, distanceTolerance);\n if (undefined !== scales) {\n this._normal = Vector3d.create();\n facetNormals.linearCombination(scales, this._normal);\n }\n }\n return this._normal;\n }\n /** Get uv parameter interpolated from facet data.\n * @param facetParams used to compute the uv parameter cache\n * @param facetVertices used to compute the barycentric coordinate cache\n * @param distanceTolerance used to compute the barycentric coordinate cache\n * @returns reference to cached uv parameter\n */\n public override getParam(facetParams?: IndexedXYCollection, facetVertices?: IndexedXYZCollection, distanceTolerance: number = Geometry.smallMetricDistance): Point2d | undefined {\n if (this._detail.isValid && undefined === this._param && undefined !== facetParams) {\n const scales = this.getBarycentricCoordinates(facetVertices, distanceTolerance);\n if (undefined !== scales) {\n this._param = Point2d.create();\n facetParams.linearCombination(scales, this._param);\n }\n }\n return this._param;\n }\n /** Get color interpolated from facet data.\n * @param facetColors used to compute the color cache\n * @param facetVertices used to compute the barycentric coordinate cache\n * @param distanceTolerance used to compute the barycentric coordinate cache\n * @returns cached color\n */\n public override getColor(facetColors?: number[], facetVertices?: IndexedXYZCollection, distanceTolerance: number = Geometry.smallMetricDistance): number | undefined {\n if (this._detail.isValid && undefined === this._color && undefined !== facetColors) {\n const scales = this.getBarycentricCoordinates(facetVertices, distanceTolerance);\n if (undefined !== scales)\n this._color = NumberArray.linearCombinationOfColors(facetColors, scales);\n }\n return this._color;\n }\n /** Get the barycentric coordinates of this location, if they have been computed.\n * @param facetVertices used to compute the barycentric coordinate cache\n * @param distanceTolerance used to compute the barycentric coordinate cache\n * @returns cached barycentric coordinates\n */\n public override getBarycentricCoordinates(facetVertices?: IndexedXYZCollection, distanceTolerance: number = Geometry.smallMetricDistance): number[] | undefined {\n if (this._detail.isValid && undefined === this._barycentricCoordinates && undefined !== facetVertices) {\n this._barycentricCoordinates = PolygonOps.convexBarycentricCoordinates(facetVertices, this._detail.point, distanceTolerance);\n }\n return this._barycentricCoordinates;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FacetLocationDetail.js","sourceRoot":"","sources":["../../../src/polyface/FacetLocationDetail.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetOrientation.js","sourceRoot":"","sources":["../../../src/polyface/FacetOrientation.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 */\nimport { IndexedEdgeMatcher, SortableEdge } from \"./IndexedEdgeMatcher\";\nimport { IndexedPolyface, PolyfaceVisitor } from \"./Polyface\";\nimport { PolyfaceQuery } from \"./PolyfaceQuery\";\n\nclass OrientedComponentData {\n public numPositive: number;\n public numNegative: number;\n public firstEdgeIndex: number;\n public constructor(firstEdgeIndex: number) {\n this.numPositive = this.numNegative = 0;\n this.firstEdgeIndex = firstEdgeIndex;\n }\n // announce a new facet orientation.\n public recordOrientation(orientation: number) {\n if (orientation > 0)\n this.numPositive++;\n else if (orientation < 0)\n this.numNegative++;\n }\n}\nexport class FacetOrientationFixup {\n private _edges: IndexedEdgeMatcher;\n private _edgeToPartnerEdge: number[];\n private _edgeToEdgeInComponent: number[];\n private _facetToFirstEdgeInComponent: number[];\n private _facetOrientation: number[];\n private _components: OrientedComponentData[];\n private _visitor: PolyfaceVisitor;\n private _mesh: IndexedPolyface; // we could get by with just a Polyface/Visitor but for the call to reverseSingleFacet\n private constructor(mesh: IndexedPolyface) {\n this._visitor = mesh.createVisitor(1);\n this._edges = PolyfaceQuery.createIndexedEdges(this._visitor);\n this._edgeToPartnerEdge = [];\n this._edgeToEdgeInComponent = [];\n this._facetToFirstEdgeInComponent = [];\n this._facetOrientation = [];\n this._components = [];\n this._mesh = mesh;\n }\n\n private edgeIdToFacetOrientation(edgeId: number): number {\n const facetIndex = this._edges.edges[edgeId].facetIndex;\n return this._facetOrientation[facetIndex];\n }\n /**\n * RETURN FALSE IF ANY EDGE HAS 3 OR MORE FACETS\n */\n private setupUnoriented(): boolean {\n this._edges.sort();\n const edgeArray = this._edges.edges;\n // make each edge a singleton with itself as successor . .\n let maxFacetIndex = -1;\n const numEdges = this._edges.edges.length;\n for (let i = 0; i < numEdges; i++) {\n const facetIndex = this._edges.edges[i].facetIndex;\n if (facetIndex > maxFacetIndex)\n maxFacetIndex = facetIndex;\n this._edgeToEdgeInComponent.push(i);\n this._edgeToPartnerEdge.push(i);\n }\n for (let i = 0; i <= maxFacetIndex; i++) {\n this._facetToFirstEdgeInComponent.push(-1);\n this._facetOrientation.push(0);\n }\n // make each edge part of a component for only its own facet\n // (This component exists only ephemerally -- it is not referenced by true component)\n // (swapping entries in the cyclic loops merges loops.)\n for (let i = 0; i < numEdges; i++) {\n const facetIndex = this._edges.edges[i].facetIndex;\n const j = this._facetToFirstEdgeInComponent[facetIndex];\n if (j === -1)\n this._facetToFirstEdgeInComponent[facetIndex] = i;\n else {\n FacetOrientationFixup.swapEntries(this._edgeToEdgeInComponent, i, j);\n }\n }\n // make contiguous partner edges cycles in edgeToPartnerEdge.\n // edge i is initially always a singleton.\n for (let edgeIndex0 = 0; edgeIndex0 < numEdges; edgeIndex0++) {\n let edgeIndex1 = edgeIndex0 + 1;\n while (edgeIndex1 < numEdges && SortableEdge.areUndirectedPartners(edgeArray[edgeIndex0], edgeArray[edgeIndex1])) {\n // splice the loops ...\n FacetOrientationFixup.swapEntries(this._edgeToPartnerEdge, edgeIndex0, edgeIndex1);\n edgeIndex1++;\n }\n // BUT .. everything else will fail if more than 2 anywhere .....\n if (edgeIndex1 > edgeIndex0 + 2)\n return false;\n }\n return true;\n }\n private recordFacetInComponent(facetIndex: number, orientation: number) {\n const componentData = this._components[this._components.length - 1];\n this._facetOrientation[facetIndex] = orientation;\n componentData.recordOrientation(orientation);\n }\n\n private initializeComponent(edgeIndex: number) {\n const facetIndex = this._edges.edges[edgeIndex].facetIndex;\n this._components.push(new OrientedComponentData(edgeIndex));\n this.recordFacetInComponent(facetIndex, 1);\n }\n private _workArray: number[] = [];\n\n private pushFacetEdgesOnStack(seedEdge: number, stack: number[]) {\n FacetOrientationFixup.extractCyclicIndices(this._edgeToEdgeInComponent, seedEdge, this._workArray);\n for (const edgeIndex of this._workArray) {\n stack.push(edgeIndex);\n }\n }\n /**\n * * Run flood search from every possible seed, assigning positive and negative orientations\n * * Halt and return false if flood detects Klein bottle effects.\n * @return true if flood\n */\n private doFlood(): boolean {\n // Finally time for flood search.\n const edgeStack: number[] = [];\n const edgeArray = this._edges.edges;\n const numEdges = edgeArray.length;\n const neighborEdges: number[] = [];\n for (let seedEdgeIndex = 0; seedEdgeIndex < numEdges; seedEdgeIndex++) {\n if (this.edgeIdToFacetOrientation(seedEdgeIndex) === 0) {\n edgeStack.length = 0;\n this.initializeComponent(seedEdgeIndex);\n this.pushFacetEdgesOnStack(seedEdgeIndex, edgeStack);\n // An edge on the stack is part of the current component.\n // Its partners may or may not have been visited.\n let baseEdgeIndex: number | undefined;\n while (undefined !== (baseEdgeIndex = edgeStack.pop())) {\n const baseFacet = edgeArray[baseEdgeIndex].facetIndex;\n const baseOrientation = this._facetOrientation[baseFacet];\n FacetOrientationFixup.extractCyclicIndices(this._edgeToPartnerEdge, baseEdgeIndex, neighborEdges);\n for (const neighborEdgeIndex of neighborEdges) {\n if (neighborEdgeIndex !== baseEdgeIndex) {\n const neighborFacet = edgeArray[neighborEdgeIndex].facetIndex;\n const neighborOrientation = this._facetOrientation[neighborFacet];\n if (neighborOrientation === 0) {\n // first visit to this facet !\n // orientations of baseEdge and neighborEdge tell us how to orient it.\n const newOrientation = SortableEdge.areDirectedPartners(edgeArray[baseEdgeIndex], edgeArray[neighborEdgeIndex]) ? baseOrientation : -baseOrientation;\n this.recordFacetInComponent(neighborFacet, newOrientation);\n this.pushFacetEdgesOnStack(neighborEdgeIndex, edgeStack);\n FacetOrientationFixup.swapEntries(this._edgeToEdgeInComponent, baseEdgeIndex, neighborEdgeIndex);\n } else {\n // looking across to an already-visited facet ..\n const edgeOrientation = SortableEdge.relativeOrientation(edgeArray[baseEdgeIndex], edgeArray[neighborEdgeIndex]);\n if (edgeOrientation * baseOrientation * neighborOrientation > 0)\n return false;\n }\n }\n }\n }\n }\n }\n // fall through when floods have completed in all components, with no Klein bottle effects\n return true;\n }\n private doFacetReversals(): number {\n let numReverse = 0;\n for (this._visitor.reset(); this._visitor.moveToNextFacet();) {\n const facetIndex = this._visitor.currentReadIndex();\n if (this._facetOrientation[facetIndex] < 0) {\n numReverse++;\n this._mesh.reverseSingleFacet(facetIndex);\n }\n }\n return numReverse;\n }\n public static doFixup(mesh: IndexedPolyface): boolean {\n const context = new FacetOrientationFixup(mesh);\n if (!context.setupUnoriented())\n return false;\n const ok = context.doFlood();\n if (ok)\n context.doFacetReversals();\n return ok;\n }\n /** swap entries at indices in a number array.\n * * indices are not checked for validity.\n */\n private static swapEntries(data: number[], i: number, j: number) {\n const q = data[i];\n data[i] = data[j];\n data[j] = q;\n }\n /**\n *\n * @param data an array of cyclically linked loops.\n */\n private static extractCyclicIndices(data: number[], index0: number, loopIndices: number[]) {\n loopIndices.length = 0;\n let i = index0;\n do {\n loopIndices.push(i);\n i = data[i];\n } while (i !== index0);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FacetOrientation.js","sourceRoot":"","sources":["../../../src/polyface/FacetOrientation.ts"],"names":[],"mappings":"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"}
|