@itwin/core-geometry 5.3.0-dev.2 → 5.3.0-dev.23
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 +21 -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.d.ts +15 -1
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +36 -9
- 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.d.ts +25 -8
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
- package/lib/cjs/curve/CurveFactory.js +51 -55
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurveOps.d.ts +2 -5
- package/lib/cjs/curve/CurveOps.d.ts.map +1 -1
- package/lib/cjs/curve/CurveOps.js +2 -5
- 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.d.ts +50 -15
- package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.js +102 -84
- 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.d.ts +44 -25
- package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOps.js +74 -39
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js +8 -8
- 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.d.ts +1 -0
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +102 -92
- 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.d.ts +10 -13
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js +23 -22
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/ClothoidSeries.d.ts +10 -6
- package/lib/cjs/curve/spiral/ClothoidSeries.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/ClothoidSeries.js +36 -19
- package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/cjs/curve/spiral/CubicEvaluator.d.ts +7 -6
- package/lib/cjs/curve/spiral/CubicEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/CubicEvaluator.js +29 -14
- package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts +34 -44
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +47 -53
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts +2 -2
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js +17 -7
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +112 -104
- package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.js +143 -117
- package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +71 -53
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +99 -66
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +8 -12
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +11 -13
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/NormalizedTransition.d.ts +36 -29
- package/lib/cjs/curve/spiral/NormalizedTransition.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/NormalizedTransition.js +62 -40
- package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts +13 -18
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +21 -24
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts +41 -27
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +50 -33
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +45 -34
- package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js +56 -38
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts +27 -21
- package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js +23 -18
- 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.d.ts +98 -99
- package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYArray.js +123 -111
- package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +137 -143
- package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.js +167 -161
- package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYCollection.d.ts +51 -34
- package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYCollection.js +16 -6
- package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +87 -93
- package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.js +41 -38
- 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.d.ts +2 -2
- package/lib/cjs/geometry3d/PolylineOps.js +2 -2
- 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.d.ts.map +1 -1
- package/lib/cjs/numerics/ClusterableArray.js +2 -2
- 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.d.ts +15 -7
- package/lib/cjs/topology/Merging.d.ts.map +1 -1
- package/lib/cjs/topology/Merging.js +15 -10
- 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/Voronoi.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.d.ts +15 -1
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +36 -9
- 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.d.ts +25 -8
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
- package/lib/esm/curve/CurveFactory.js +51 -55
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurveOps.d.ts +2 -5
- package/lib/esm/curve/CurveOps.d.ts.map +1 -1
- package/lib/esm/curve/CurveOps.js +2 -5
- 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.d.ts +50 -15
- package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.js +102 -84
- 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.d.ts +44 -25
- package/lib/esm/curve/RegionOps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOps.js +72 -37
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js +8 -8
- 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.d.ts +1 -0
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +102 -92
- 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.d.ts +10 -13
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +23 -22
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/ClothoidSeries.d.ts +10 -6
- package/lib/esm/curve/spiral/ClothoidSeries.d.ts.map +1 -1
- package/lib/esm/curve/spiral/ClothoidSeries.js +36 -19
- package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/esm/curve/spiral/CubicEvaluator.d.ts +7 -6
- package/lib/esm/curve/spiral/CubicEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/CubicEvaluator.js +29 -14
- package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts +34 -44
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +47 -53
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts +2 -2
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +17 -7
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +112 -104
- package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.js +143 -117
- package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +71 -53
- package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js +99 -66
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +8 -12
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +11 -13
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/NormalizedTransition.d.ts +36 -29
- package/lib/esm/curve/spiral/NormalizedTransition.d.ts.map +1 -1
- package/lib/esm/curve/spiral/NormalizedTransition.js +62 -40
- package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts +13 -18
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +21 -24
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts +41 -27
- package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -1
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js +50 -33
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +45 -34
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.js +56 -38
- package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts +27 -21
- package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts.map +1 -1
- package/lib/esm/curve/spiral/XYCurveEvaluator.js +23 -18
- 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.d.ts +98 -99
- package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
- package/lib/esm/geometry3d/GrowableXYArray.js +124 -112
- package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.d.ts +137 -143
- package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.js +167 -161
- package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYCollection.d.ts +51 -34
- package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -1
- package/lib/esm/geometry3d/IndexedXYCollection.js +14 -5
- package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +87 -93
- package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.js +41 -38
- 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.d.ts +2 -2
- package/lib/esm/geometry3d/PolylineOps.js +2 -2
- 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.d.ts.map +1 -1
- package/lib/esm/numerics/ClusterableArray.js +2 -2
- 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.d.ts +15 -7
- package/lib/esm/topology/Merging.d.ts.map +1 -1
- package/lib/esm/topology/Merging.js +15 -10
- 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/Voronoi.js.map +1 -1
- package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
- package/package.json +3 -3
|
@@ -15,42 +15,38 @@ const Point3dVector3d_1 = require("./Point3dVector3d");
|
|
|
15
15
|
const PointStreaming_1 = require("./PointStreaming");
|
|
16
16
|
const Range_1 = require("./Range");
|
|
17
17
|
const Transform_1 = require("./Transform");
|
|
18
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* `GrowableXYZArray` manages a (possibly growing) Float64Array to pack xyz coordinates.
|
|
19
20
|
* @public
|
|
20
21
|
*/
|
|
21
22
|
class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollection {
|
|
22
|
-
/**
|
|
23
|
-
* array of packed xyz xyz xyz components
|
|
24
|
-
*/
|
|
23
|
+
/** Array of packed xyz xyz xyz components. */
|
|
25
24
|
_data;
|
|
26
|
-
/**
|
|
27
|
-
* Number of xyz triples (not floats) in the array
|
|
28
|
-
*/
|
|
25
|
+
/** Number of xyz triples (not floats) in the array. */
|
|
29
26
|
_xyzInUse;
|
|
30
|
-
/**
|
|
31
|
-
* capacity in xyz triples. (not floats)
|
|
32
|
-
*/
|
|
27
|
+
/** Capacity in xyz triples (not floats). */
|
|
33
28
|
_xyzCapacity;
|
|
34
|
-
/**
|
|
35
|
-
* multiplier used by ensureCapacity to expand requested reallocation size
|
|
36
|
-
*/
|
|
29
|
+
/** Multiplier used by ensureCapacity to expand requested reallocation size. */
|
|
37
30
|
_growthFactor;
|
|
38
|
-
/**
|
|
39
|
-
*
|
|
40
|
-
* @param
|
|
31
|
+
/**
|
|
32
|
+
* Construct a new GrowablePoint3d array.
|
|
33
|
+
* @param numPoints initial capacity in xyz triples (default 8).
|
|
34
|
+
* @param growthFactor used by ensureCapacity to expand requested reallocation size (default 1.5).
|
|
35
|
+
* @param data optional pre-existing Float64Array to use as the backing memory. If supplied, numPoints is ignored.
|
|
41
36
|
*/
|
|
42
|
-
constructor(numPoints = 8, growthFactor) {
|
|
37
|
+
constructor(numPoints = 8, growthFactor, data) {
|
|
43
38
|
super();
|
|
44
|
-
this._data = new Float64Array(numPoints * 3); // 3 values per point
|
|
39
|
+
this._data = data || new Float64Array(numPoints * 3); // 3 values per point
|
|
45
40
|
this._xyzInUse = 0;
|
|
46
|
-
this._xyzCapacity = numPoints;
|
|
41
|
+
this._xyzCapacity = data ? data.length / 3 : numPoints;
|
|
47
42
|
this._growthFactor = (undefined !== growthFactor && growthFactor >= 1.0) ? growthFactor : 1.5;
|
|
48
43
|
}
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* @param
|
|
52
|
-
* @param
|
|
53
|
-
* @
|
|
44
|
+
/**
|
|
45
|
+
* Copy xyz points from source array. Does not reallocate or change active point count.
|
|
46
|
+
* @param source array to copy from.
|
|
47
|
+
* @param sourceCount copy the first sourceCount points; all points if undefined.
|
|
48
|
+
* @param destOffset copy to instance array starting at this point index; zero if undefined.
|
|
49
|
+
* @return count and offset of points copied.
|
|
54
50
|
*/
|
|
55
51
|
copyData(source, sourceCount, destOffset) {
|
|
56
52
|
// validate inputs and convert from points to entries
|
|
@@ -79,30 +75,47 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
79
75
|
return { count: myCount / 3, offset: myOffset / 3 };
|
|
80
76
|
}
|
|
81
77
|
/** The number of points in use. When the length is increased, the array is padded with zeroes. */
|
|
82
|
-
get length() {
|
|
83
|
-
|
|
78
|
+
get length() {
|
|
79
|
+
return this._xyzInUse;
|
|
80
|
+
}
|
|
81
|
+
set length(newLength) {
|
|
82
|
+
this.resize(newLength, true);
|
|
83
|
+
}
|
|
84
84
|
/** Return the number of float64 in use. */
|
|
85
|
-
get float64Length() {
|
|
86
|
-
|
|
85
|
+
get float64Length() {
|
|
86
|
+
return this._xyzInUse * 3;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Return the raw packed data.
|
|
87
90
|
* * Note that the length of the returned Float64Array is a count of doubles, and includes the excess capacity
|
|
88
91
|
*/
|
|
89
|
-
float64Data() {
|
|
90
|
-
|
|
92
|
+
float64Data() {
|
|
93
|
+
return this._data;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* If necessary, increase the capacity to the new number of points. Current coordinates and point count (length) are
|
|
97
|
+
* unchanged.
|
|
98
|
+
*/
|
|
91
99
|
ensureCapacity(pointCapacity, applyGrowthFactor = true) {
|
|
92
100
|
if (pointCapacity > this._xyzCapacity) {
|
|
93
101
|
if (applyGrowthFactor)
|
|
94
|
-
pointCapacity
|
|
102
|
+
pointCapacity = Math.trunc(pointCapacity * this._growthFactor);
|
|
95
103
|
const prevData = this._data;
|
|
96
|
-
this._data
|
|
104
|
+
if (this._data.buffer instanceof ArrayBuffer)
|
|
105
|
+
this._data = new Float64Array(new ArrayBuffer(pointCapacity * 3 * this._data.BYTES_PER_ELEMENT));
|
|
106
|
+
else
|
|
107
|
+
this._data = new Float64Array(new SharedArrayBuffer(pointCapacity * 3 * this._data.BYTES_PER_ELEMENT));
|
|
97
108
|
this.copyData(prevData, this._xyzInUse);
|
|
98
109
|
this._xyzCapacity = pointCapacity;
|
|
99
110
|
}
|
|
100
111
|
}
|
|
101
112
|
/**
|
|
102
|
-
* * If pointCount is less than current length, just reset current length to pointCount, effectively trimming active
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
113
|
+
* * If pointCount is less than current length, just reset current length to pointCount, effectively trimming active
|
|
114
|
+
* points but preserving original capacity.
|
|
115
|
+
* * If pointCount is greater than current length, reallocate to exactly pointCount, copy existing points, and
|
|
116
|
+
* optionally pad excess with zero.
|
|
117
|
+
* @param pointCount new number of active points in array.
|
|
118
|
+
* @param padWithZero when increasing point count, whether to zero out new points (default false).
|
|
106
119
|
*/
|
|
107
120
|
resize(pointCount, padWithZero) {
|
|
108
121
|
if (pointCount >= 0 && pointCount < this._xyzInUse)
|
|
@@ -114,10 +127,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
114
127
|
this._xyzInUse = pointCount;
|
|
115
128
|
}
|
|
116
129
|
}
|
|
117
|
-
/**
|
|
118
|
-
* Make a copy of the (active) points in this array.
|
|
119
|
-
* (The clone does NOT get excess capacity)
|
|
120
|
-
*/
|
|
130
|
+
/** Make a copy of the (active) points in this array (the clone does NOT get excess capacity). */
|
|
121
131
|
clone(result) {
|
|
122
132
|
if (!result)
|
|
123
133
|
result = new GrowableXYZArray(this.length);
|
|
@@ -133,11 +143,11 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
133
143
|
/**
|
|
134
144
|
* Clone the input array with each successive duplicate point removed.
|
|
135
145
|
* * First and last points are always preserved.
|
|
136
|
-
* @param source the source array
|
|
137
|
-
* @param tolerance optional distance tol for compression (default [[Geometry.smallMetricDistance]])
|
|
146
|
+
* @param source the source array.
|
|
147
|
+
* @param tolerance optional distance tol for compression (default [[Geometry.smallMetricDistance]]).
|
|
138
148
|
* @param result optional pre-allocated object to populate and return. Can be a reference to `source`, in
|
|
139
149
|
* which case the array is compressed in place and returned.
|
|
140
|
-
* @see [[cloneCompressed]], [[compressInPlace]], [[PolylineOps.compressShortEdges]]
|
|
150
|
+
* @see [[cloneCompressed]], [[compressInPlace]], [[PolylineOps.compressShortEdges]].
|
|
141
151
|
*/
|
|
142
152
|
static createCompressed(source, tolerance = Geometry_1.Geometry.smallMetricDistance, result) {
|
|
143
153
|
const dupIndices = source.findOrderedDuplicates(tolerance, true);
|
|
@@ -171,14 +181,15 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
171
181
|
/**
|
|
172
182
|
* Compress the input array by removing successive duplicate points.
|
|
173
183
|
* * First and last points are always preserved.
|
|
174
|
-
* @param tolerance optional distance tol for compression (default [[Geometry.smallMetricDistance]])
|
|
184
|
+
* @param tolerance optional distance tol for compression (default [[Geometry.smallMetricDistance]]).
|
|
175
185
|
* @returns the instance array.
|
|
176
|
-
* @see [[createCompressed]], [[cloneCompressed]], [[PolylineOps.compressShortEdges]]
|
|
186
|
+
* @see [[createCompressed]], [[cloneCompressed]], [[PolylineOps.compressShortEdges]].
|
|
177
187
|
*/
|
|
178
188
|
compressInPlace(tolerance = Geometry_1.Geometry.smallMetricDistance) {
|
|
179
189
|
return GrowableXYZArray.createCompressed(this, tolerance, this);
|
|
180
190
|
}
|
|
181
|
-
/**
|
|
191
|
+
/**
|
|
192
|
+
* Create an array by copying data from various point formats.
|
|
182
193
|
* Valid inputs are:
|
|
183
194
|
* * Point2d
|
|
184
195
|
* * Point3d
|
|
@@ -203,23 +214,32 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
203
214
|
result.pushFrom(data);
|
|
204
215
|
return result;
|
|
205
216
|
}
|
|
206
|
-
/**
|
|
217
|
+
/**
|
|
218
|
+
* Create a new GrowableXYZArray capturing the provided data. The data is not copied, just referenced.
|
|
219
|
+
* @param data source data to capture.
|
|
220
|
+
* @returns a new GrowableXYZArray object that references the provided data.
|
|
221
|
+
*/
|
|
222
|
+
static createCapture(data) {
|
|
223
|
+
return new GrowableXYZArray(0, undefined, data);
|
|
224
|
+
}
|
|
225
|
+
/** Restructure MultiLineStringDataVariant as array of GrowableXYZArray. */
|
|
207
226
|
static createArrayOfGrowableXYZArray(data) {
|
|
208
227
|
const collector = new PointStreaming_1.PointStreamGrowableXYZArrayCollector();
|
|
209
228
|
PointStreaming_1.VariantPointDataStream.streamXYZ(data, collector);
|
|
210
229
|
return collector.claimArrayOfGrowableXYZArray();
|
|
211
230
|
}
|
|
212
|
-
/**
|
|
231
|
+
/** Push a point to the end of the array. */
|
|
213
232
|
push(toPush) {
|
|
214
233
|
this.pushXYZ(toPush.x, toPush.y, toPush.z);
|
|
215
234
|
}
|
|
216
|
-
/**
|
|
235
|
+
/** Push all points of an array. */
|
|
217
236
|
pushAll(points) {
|
|
218
237
|
this.ensureCapacity(this._xyzInUse + points.length, false);
|
|
219
238
|
for (const p of points)
|
|
220
239
|
this.push(p);
|
|
221
240
|
}
|
|
222
|
-
/**
|
|
241
|
+
/**
|
|
242
|
+
* Push copies of points from variant sources.
|
|
223
243
|
* Valid inputs are:
|
|
224
244
|
* * Point2d
|
|
225
245
|
* * Point3d
|
|
@@ -229,7 +249,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
229
249
|
* * Any json object satisfying Point3d.isXYAndZ
|
|
230
250
|
* * Any json object satisfying Point3d.isXAndY
|
|
231
251
|
* * A Float64Array of doubles, interpreted as xyzxyz
|
|
232
|
-
* * An array of any of the above
|
|
252
|
+
* * An array of any of the above.
|
|
233
253
|
*/
|
|
234
254
|
pushFrom(p) {
|
|
235
255
|
if (p instanceof Point3dVector3d_1.Point3d)
|
|
@@ -249,7 +269,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
249
269
|
else if (Geometry_1.Geometry.isNumberArray(p, 2))
|
|
250
270
|
this.pushXYZ(p[0], p[1], 0.0);
|
|
251
271
|
else if (Array.isArray(p)) {
|
|
252
|
-
// direct recursion re-wraps p and goes infinite
|
|
272
|
+
// direct recursion re-wraps p and goes infinite; unroll here.
|
|
253
273
|
for (const q of p)
|
|
254
274
|
this.pushFrom(q);
|
|
255
275
|
}
|
|
@@ -266,7 +286,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
266
286
|
}
|
|
267
287
|
/**
|
|
268
288
|
* Replicate numWrap xyz values from the front of the array as new values at the end.
|
|
269
|
-
* @param numWrap number of xyz values to replicate
|
|
289
|
+
* @param numWrap number of xyz values to replicate.
|
|
270
290
|
*/
|
|
271
291
|
pushWrap(numWrap) {
|
|
272
292
|
if (this._xyzInUse >= numWrap) {
|
|
@@ -277,7 +297,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
277
297
|
}
|
|
278
298
|
}
|
|
279
299
|
}
|
|
280
|
-
/**
|
|
300
|
+
/** Append a new point with given x,y,z. */
|
|
281
301
|
pushXYZ(x, y, z) {
|
|
282
302
|
this.ensureCapacity(this._xyzInUse + 1);
|
|
283
303
|
const index = this._xyzInUse * 3;
|
|
@@ -286,10 +306,11 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
286
306
|
this._data[index + 2] = z;
|
|
287
307
|
this._xyzInUse++;
|
|
288
308
|
}
|
|
289
|
-
/**
|
|
309
|
+
/**
|
|
310
|
+
* Shift all data forward to make space for numPoints at the front.
|
|
290
311
|
* * Leading (3*numPoints) doubles are left with prior contents.
|
|
291
|
-
* * _xyzInUse count is increased
|
|
292
|
-
|
|
312
|
+
* * _xyzInUse count is increased.
|
|
313
|
+
*/
|
|
293
314
|
shiftForward(numPoints) {
|
|
294
315
|
if (numPoints <= 0)
|
|
295
316
|
return;
|
|
@@ -299,7 +320,8 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
299
320
|
this._data.copyWithin(numAddedDouble, 0, lastIndex);
|
|
300
321
|
this._xyzInUse += numPoints;
|
|
301
322
|
}
|
|
302
|
-
/**
|
|
323
|
+
/**
|
|
324
|
+
* Prepend a new point with given x,y,z
|
|
303
325
|
* * Remark: this copies all content forward.
|
|
304
326
|
*/
|
|
305
327
|
pushFrontXYZ(x, y, z) {
|
|
@@ -308,13 +330,12 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
308
330
|
this._data[1] = y;
|
|
309
331
|
this._data[2] = z;
|
|
310
332
|
}
|
|
311
|
-
/**
|
|
312
|
-
*
|
|
313
|
-
*/
|
|
333
|
+
/** Prepend a new point at the front of the array. */
|
|
314
334
|
pushFront(toPush) {
|
|
315
335
|
this.pushFrontXYZ(toPush.x, toPush.y, toPush.z);
|
|
316
336
|
}
|
|
317
|
-
/**
|
|
337
|
+
/**
|
|
338
|
+
* Move the coordinates at fromIndex to toIndex.
|
|
318
339
|
* * No action if either index is invalid.
|
|
319
340
|
*/
|
|
320
341
|
moveIndexToIndex(fromIndex, toIndex) {
|
|
@@ -326,7 +347,8 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
326
347
|
this._data[iB] = this._data[iA];
|
|
327
348
|
}
|
|
328
349
|
}
|
|
329
|
-
/**
|
|
350
|
+
/**
|
|
351
|
+
* Remove one point from the back.
|
|
330
352
|
* * NOTE that (in the manner of std::vector native) this is "just" removing the point -- no point is NOT returned.
|
|
331
353
|
* * Use `back ()` to get the last x,y,z assembled into a `Point3d `
|
|
332
354
|
*/
|
|
@@ -334,40 +356,41 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
334
356
|
if (this._xyzInUse > 0)
|
|
335
357
|
this._xyzInUse--;
|
|
336
358
|
}
|
|
337
|
-
/**
|
|
338
|
-
* Clear all xyz data, but leave capacity unchanged.
|
|
339
|
-
*/
|
|
359
|
+
/** Clear all xyz data, but leave capacity unchanged. */
|
|
340
360
|
clear() {
|
|
341
361
|
this._xyzInUse = 0;
|
|
342
362
|
}
|
|
343
363
|
/**
|
|
344
|
-
* Get a point by index, strongly typed as a Point3d.
|
|
345
|
-
*
|
|
346
|
-
* @param
|
|
364
|
+
* Get a point by index, strongly typed as a Point3d. This is unchecked. Use [[getPoint3dAtCheckedPointIndex]] to
|
|
365
|
+
* have validity test.
|
|
366
|
+
* @param pointIndex index to access.
|
|
367
|
+
* @param result optional result.
|
|
347
368
|
*/
|
|
348
369
|
getPoint3dAtUncheckedPointIndex(pointIndex, result) {
|
|
349
370
|
const index = 3 * pointIndex;
|
|
350
371
|
return Point3dVector3d_1.Point3d.create(this._data[index], this._data[index + 1], this._data[index + 2], result);
|
|
351
372
|
}
|
|
352
373
|
/**
|
|
353
|
-
* Get a point by index, strongly typed as a Point2d. This is unchecked. Use [[getPoint2dAtCheckedPointIndex]] to
|
|
354
|
-
*
|
|
355
|
-
* @param
|
|
374
|
+
* Get a point by index, strongly typed as a Point2d. This is unchecked. Use [[getPoint2dAtCheckedPointIndex]] to
|
|
375
|
+
* have validity test.
|
|
376
|
+
* @param pointIndex index to access.
|
|
377
|
+
* @param result optional result.
|
|
356
378
|
*/
|
|
357
379
|
getPoint2dAtUncheckedPointIndex(pointIndex, result) {
|
|
358
380
|
const index = 3 * pointIndex;
|
|
359
381
|
return Point2dVector2d_1.Point2d.create(this._data[index], this._data[index + 1], result);
|
|
360
382
|
}
|
|
361
383
|
/**
|
|
362
|
-
* Get a vector by index, strongly typed as a Vector3d. This is unchecked. Use [[getVector3dAtCheckedVectorIndex]]
|
|
363
|
-
*
|
|
364
|
-
* @param
|
|
384
|
+
* Get a vector by index, strongly typed as a Vector3d. This is unchecked. Use [[getVector3dAtCheckedVectorIndex]]
|
|
385
|
+
* to have validity test.
|
|
386
|
+
* @param vectorIndex index to access.
|
|
387
|
+
* @param result optional result.
|
|
365
388
|
*/
|
|
366
389
|
getVector3dAtUncheckedVectorIndex(vectorIndex, result) {
|
|
367
390
|
const index = 3 * vectorIndex;
|
|
368
391
|
return Point3dVector3d_1.Vector3d.create(this._data[index], this._data[index + 1], this._data[index + 2], result);
|
|
369
392
|
}
|
|
370
|
-
/**
|
|
393
|
+
/** Copy xyz into strongly typed Point3d. */
|
|
371
394
|
getPoint3dAtCheckedPointIndex(pointIndex, result) {
|
|
372
395
|
if (this.isIndexValid(pointIndex)) {
|
|
373
396
|
const index = 3 * pointIndex;
|
|
@@ -375,22 +398,22 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
375
398
|
}
|
|
376
399
|
return undefined;
|
|
377
400
|
}
|
|
378
|
-
/**
|
|
401
|
+
/** Access x of indexed point. */
|
|
379
402
|
getXAtUncheckedPointIndex(pointIndex) {
|
|
380
403
|
const index = 3 * pointIndex;
|
|
381
404
|
return this._data[index];
|
|
382
405
|
}
|
|
383
|
-
/**
|
|
406
|
+
/** Access y of indexed point. */
|
|
384
407
|
getYAtUncheckedPointIndex(pointIndex) {
|
|
385
408
|
const index = 3 * pointIndex;
|
|
386
409
|
return this._data[index + 1];
|
|
387
410
|
}
|
|
388
|
-
/**
|
|
411
|
+
/** Access z of indexed point. */
|
|
389
412
|
getZAtUncheckedPointIndex(pointIndex) {
|
|
390
413
|
const index = 3 * pointIndex;
|
|
391
414
|
return this._data[index + 2];
|
|
392
415
|
}
|
|
393
|
-
/**
|
|
416
|
+
/** Copy xy into strongly typed Point2d. */
|
|
394
417
|
getPoint2dAtCheckedPointIndex(pointIndex, result) {
|
|
395
418
|
if (this.isIndexValid(pointIndex)) {
|
|
396
419
|
const index = 3 * pointIndex;
|
|
@@ -398,7 +421,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
398
421
|
}
|
|
399
422
|
return undefined;
|
|
400
423
|
}
|
|
401
|
-
/**
|
|
424
|
+
/** Copy xyz into strongly typed Vector3d. */
|
|
402
425
|
getVector3dAtCheckedVectorIndex(vectorIndex, result) {
|
|
403
426
|
if (this.isIndexValid(vectorIndex)) {
|
|
404
427
|
const index = 3 * vectorIndex;
|
|
@@ -408,9 +431,9 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
408
431
|
}
|
|
409
432
|
/**
|
|
410
433
|
* Read coordinates from source array, place them at index within this array.
|
|
411
|
-
* @param destIndex point index where coordinates are to be placed in this array
|
|
412
|
-
* @param source source array
|
|
413
|
-
* @param sourceIndex point index in source array
|
|
434
|
+
* @param destIndex point index where coordinates are to be placed in this array.
|
|
435
|
+
* @param source source array.
|
|
436
|
+
* @param sourceIndex point index in source array.
|
|
414
437
|
* @returns true if destIndex and sourceIndex are both valid.
|
|
415
438
|
*/
|
|
416
439
|
transferFromGrowableXYZArray(destIndex, source, sourceIndex) {
|
|
@@ -424,13 +447,13 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
424
447
|
return false;
|
|
425
448
|
}
|
|
426
449
|
/**
|
|
427
|
-
*
|
|
428
|
-
* @param source source array
|
|
429
|
-
* @param sourceIndex xyz index within the source.
|
|
450
|
+
* Push coordinates from the source array to the end of this array.
|
|
451
|
+
* @param source source array.
|
|
452
|
+
* @param sourceIndex xyz index within the source. If undefined, entire source is pushed.
|
|
430
453
|
* @returns number of points pushed.
|
|
431
454
|
*/
|
|
432
455
|
pushFromGrowableXYZArray(source, sourceIndex) {
|
|
433
|
-
// full array push
|
|
456
|
+
// full array push
|
|
434
457
|
if (sourceIndex === undefined) {
|
|
435
458
|
const numXYZAdd = source.length;
|
|
436
459
|
this.ensureCapacity(this.length + numXYZAdd, false);
|
|
@@ -438,7 +461,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
438
461
|
this._xyzInUse += numXYZAdd;
|
|
439
462
|
return numXYZAdd;
|
|
440
463
|
}
|
|
441
|
-
// single point push
|
|
464
|
+
// single point push
|
|
442
465
|
if (source.isIndexValid(sourceIndex)) {
|
|
443
466
|
const j = sourceIndex * 3;
|
|
444
467
|
this.pushXYZ(source._data[j], source._data[j + 1], source._data[j + 2]);
|
|
@@ -448,8 +471,8 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
448
471
|
}
|
|
449
472
|
/**
|
|
450
473
|
* Set the coordinates of a single point.
|
|
451
|
-
* @param pointIndex index of point to set
|
|
452
|
-
* @param value coordinates to set
|
|
474
|
+
* @param pointIndex index of point to set.
|
|
475
|
+
* @param value coordinates to set.
|
|
453
476
|
*/
|
|
454
477
|
setAtCheckedPointIndex(pointIndex, value) {
|
|
455
478
|
if (!this.isIndexValid(pointIndex))
|
|
@@ -461,11 +484,11 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
461
484
|
return true;
|
|
462
485
|
}
|
|
463
486
|
/**
|
|
464
|
-
* Set the coordinates of a single point given as coordinates
|
|
465
|
-
* @param pointIndex index of point to set
|
|
466
|
-
* @param x x coordinate
|
|
467
|
-
* @param y y coordinate
|
|
468
|
-
* @param z z coordinate
|
|
487
|
+
* Set the coordinates of a single point given as coordinates.
|
|
488
|
+
* @param pointIndex index of point to set.
|
|
489
|
+
* @param x x coordinate.
|
|
490
|
+
* @param y y coordinate.
|
|
491
|
+
* @param z z coordinate.
|
|
469
492
|
*/
|
|
470
493
|
setXYZAtCheckedPointIndex(pointIndex, x, y, z) {
|
|
471
494
|
if (!this.isIndexValid(pointIndex))
|
|
@@ -476,9 +499,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
476
499
|
this._data[index] = z;
|
|
477
500
|
return true;
|
|
478
501
|
}
|
|
479
|
-
/**
|
|
480
|
-
* Copy all points into a simple array of Point3d
|
|
481
|
-
*/
|
|
502
|
+
/** Copy all points into a simple array of Point3. */
|
|
482
503
|
getPoint3dArray() {
|
|
483
504
|
const n = 3 * this._xyzInUse;
|
|
484
505
|
const result = [];
|
|
@@ -487,7 +508,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
487
508
|
result.push(Point3dVector3d_1.Point3d.create(data[i], data[i + 1], data[i + 2]));
|
|
488
509
|
return result;
|
|
489
510
|
}
|
|
490
|
-
/**
|
|
511
|
+
/** Multiply each point by the transform, replace values. */
|
|
491
512
|
static multiplyTransformInPlace(transform, data) {
|
|
492
513
|
if (Array.isArray(data)) {
|
|
493
514
|
for (const d of data)
|
|
@@ -497,7 +518,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
497
518
|
data.multiplyTransformInPlace(transform);
|
|
498
519
|
}
|
|
499
520
|
}
|
|
500
|
-
/**
|
|
521
|
+
/** Multiply each point by the transform, replace values. */
|
|
501
522
|
multiplyTransformInPlace(transform) {
|
|
502
523
|
const data = this._data;
|
|
503
524
|
const nDouble = this.float64Length;
|
|
@@ -518,7 +539,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
518
539
|
data[i + 2] = coffs[6] * x + coffs[7] * y + coffs[8] * z + z0;
|
|
519
540
|
}
|
|
520
541
|
}
|
|
521
|
-
/**
|
|
542
|
+
/** Reverse the order of points. */
|
|
522
543
|
reverseInPlace() {
|
|
523
544
|
const n = this.length;
|
|
524
545
|
let j0, j1;
|
|
@@ -542,7 +563,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
542
563
|
data[j1] = a;
|
|
543
564
|
}
|
|
544
565
|
}
|
|
545
|
-
/**
|
|
566
|
+
/** Multiply each xyz (as a vector) by matrix, replace values. */
|
|
546
567
|
multiplyMatrix3dInPlace(matrix) {
|
|
547
568
|
const data = this._data;
|
|
548
569
|
const nDouble = this.float64Length;
|
|
@@ -559,9 +580,10 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
559
580
|
data[i + 2] = coffs[6] * x + coffs[7] * y + coffs[8] * z;
|
|
560
581
|
}
|
|
561
582
|
}
|
|
562
|
-
/**
|
|
563
|
-
*
|
|
564
|
-
*
|
|
583
|
+
/**
|
|
584
|
+
* Multiply each xyz (as a vector) by matrix inverse transpose, renormalize the vector, replace values.
|
|
585
|
+
* * This is the way to apply a matrix (possibly with skew and scale) to a surface normal, and have it end up
|
|
586
|
+
* perpendicular to the transformed in-surface vectors.
|
|
565
587
|
* * Return false if matrix is not invertible or if any normalization fails.
|
|
566
588
|
*/
|
|
567
589
|
multiplyAndRenormalizeMatrix3dInverseTransposeInPlace(matrix) {
|
|
@@ -589,7 +611,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
589
611
|
z1 = coffs[2] * x + coffs[5] * y + coffs[8] * z;
|
|
590
612
|
a = x1 * x1 + y1 * y1 + z1 * z1;
|
|
591
613
|
if (a < tol) {
|
|
592
|
-
// put the originals back
|
|
614
|
+
// put the originals back
|
|
593
615
|
x1 = x;
|
|
594
616
|
y1 = y;
|
|
595
617
|
z1 = z;
|
|
@@ -600,16 +622,14 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
600
622
|
x1 *= q;
|
|
601
623
|
y1 *= q;
|
|
602
624
|
z1 *= q;
|
|
603
|
-
} // else
|
|
625
|
+
} // else if q is near 1, no need to do the division
|
|
604
626
|
data[i] = x1;
|
|
605
627
|
data[i + 1] = y1;
|
|
606
628
|
data[i + 2] = z1;
|
|
607
629
|
}
|
|
608
630
|
return numFail === 0;
|
|
609
631
|
}
|
|
610
|
-
/**
|
|
611
|
-
*
|
|
612
|
-
*/
|
|
632
|
+
/** Multiply each xyz (as a point) by a homogeneous matrix and update as the normalized point. */
|
|
613
633
|
multiplyMatrix4dAndQuietRenormalizeMatrix4d(matrix) {
|
|
614
634
|
const data = this._data;
|
|
615
635
|
const nDouble = this.float64Length;
|
|
@@ -621,7 +641,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
621
641
|
data[i + 2] = xyz1.z;
|
|
622
642
|
}
|
|
623
643
|
}
|
|
624
|
-
/**
|
|
644
|
+
/** Multiply each point by the transform, replace values. */
|
|
625
645
|
tryTransformInverseInPlace(transform) {
|
|
626
646
|
const data = this._data;
|
|
627
647
|
const nDouble = this.float64Length;
|
|
@@ -660,7 +680,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
660
680
|
rangeToExtend.extendXYZ(data[i], data[i + 1], data[i + 2]);
|
|
661
681
|
}
|
|
662
682
|
}
|
|
663
|
-
/**
|
|
683
|
+
/** Get range of points. */
|
|
664
684
|
getRange(transform, result) {
|
|
665
685
|
let range = result;
|
|
666
686
|
if (range)
|
|
@@ -678,7 +698,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
678
698
|
/** Sum the lengths of segments between points. */
|
|
679
699
|
sumLengths() {
|
|
680
700
|
let sum = 0.0;
|
|
681
|
-
const n = 3 * (this._xyzInUse - 1); //
|
|
701
|
+
const n = 3 * (this._xyzInUse - 1); // length already takes into account what specifically is in use
|
|
682
702
|
const data = this._data;
|
|
683
703
|
for (let i = 0; i < n; i += 3)
|
|
684
704
|
sum += Geometry_1.Geometry.hypotenuseXYZ(data[i + 3] - data[i], data[i + 4] - data[i + 1], data[i + 5] - data[i + 2]);
|
|
@@ -686,7 +706,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
686
706
|
}
|
|
687
707
|
/**
|
|
688
708
|
* Multiply each x,y,z by the scale factor.
|
|
689
|
-
* @param factor
|
|
709
|
+
* @param factor scale factor.
|
|
690
710
|
*/
|
|
691
711
|
scaleInPlace(factor) {
|
|
692
712
|
if (this._data) {
|
|
@@ -695,7 +715,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
695
715
|
this._data[i] = this._data[i] * factor;
|
|
696
716
|
}
|
|
697
717
|
}
|
|
698
|
-
/**
|
|
718
|
+
/** Test if all points are within tolerance of a plane. */
|
|
699
719
|
isCloseToPlane(plane, tolerance = Geometry_1.Geometry.smallMetricDistance) {
|
|
700
720
|
const numCoordinate = 3 * this._xyzInUse;
|
|
701
721
|
const data = this._data;
|
|
@@ -706,13 +726,12 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
706
726
|
}
|
|
707
727
|
/**
|
|
708
728
|
* * If not already closed, push a copy of the first point.
|
|
709
|
-
* * If already closed within tolerance, force exact copy
|
|
710
|
-
* *
|
|
729
|
+
* * If already closed within tolerance, force exact copy.
|
|
730
|
+
* * Otherwise leave unchanged.
|
|
711
731
|
*/
|
|
712
732
|
forceClosure(tolerance = Geometry_1.Geometry.smallMetricDistance) {
|
|
713
733
|
const d = this.distanceIndexIndex(0, this.length - 1);
|
|
714
|
-
// leave the empty array alone
|
|
715
|
-
// Note that singleton will generate 0 distance and do nothing.
|
|
734
|
+
// leave the empty array alone; note that singleton will generate 0 distance and do nothing
|
|
716
735
|
if (d === undefined) {
|
|
717
736
|
}
|
|
718
737
|
else if (d > tolerance)
|
|
@@ -724,7 +743,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
724
743
|
this._data[i0 + i] = this._data[i];
|
|
725
744
|
}
|
|
726
745
|
}
|
|
727
|
-
/** Compute a point at fractional coordinate between points i and j */
|
|
746
|
+
/** Compute a point at fractional coordinate between points i and j. */
|
|
728
747
|
interpolate(i, fraction, j, result) {
|
|
729
748
|
if (this.isIndexValid(i) && this.isIndexValid(j)) {
|
|
730
749
|
const fraction0 = 1.0 - fraction;
|
|
@@ -735,10 +754,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
735
754
|
}
|
|
736
755
|
return undefined;
|
|
737
756
|
}
|
|
738
|
-
/**
|
|
739
|
-
* * Compute a point at fractional coordinate between points i and j of source
|
|
740
|
-
* * push onto this array.
|
|
741
|
-
*/
|
|
757
|
+
/** Compute a point at fractional coordinate between points i and j of source and push onto this array. */
|
|
742
758
|
pushInterpolatedFromGrowableXYZArray(source, i, fraction, j) {
|
|
743
759
|
if (source.isIndexValid(i) && source.isIndexValid(j)) {
|
|
744
760
|
const fraction0 = 1.0 - fraction;
|
|
@@ -748,10 +764,10 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
748
764
|
this.pushXYZ(fraction0 * data[i] + fraction * data[j], fraction0 * data[i + 1] + fraction * data[j + 1], fraction0 * data[i + 2] + fraction * data[j + 2]);
|
|
749
765
|
}
|
|
750
766
|
}
|
|
751
|
-
/** Sum the signed areas of the projection to xy plane */
|
|
767
|
+
/** Sum the signed areas of the projection to xy plane. */
|
|
752
768
|
areaXY() {
|
|
753
769
|
let area = 0.0;
|
|
754
|
-
const n = 3 * this._xyzInUse; // float count
|
|
770
|
+
const n = 3 * this._xyzInUse; // float count
|
|
755
771
|
if (n > 6) {
|
|
756
772
|
const x0 = this._data[n - 3];
|
|
757
773
|
const y0 = this._data[n - 2];
|
|
@@ -796,21 +812,21 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
796
812
|
}
|
|
797
813
|
return undefined;
|
|
798
814
|
}
|
|
799
|
-
/** Compute the dot product of pointIndex with [x,y,z] */
|
|
815
|
+
/** Compute the dot product of pointIndex with [x,y,z]. */
|
|
800
816
|
evaluateUncheckedIndexDotProductXYZ(pointIndex, x, y, z) {
|
|
801
817
|
const i = pointIndex * 3;
|
|
802
818
|
const data = this._data;
|
|
803
819
|
return data[i] * x + data[i + 1] * y + data[i + 2] * z;
|
|
804
820
|
}
|
|
805
|
-
/** Compute the dot product of pointIndex with [x,y,z] */
|
|
821
|
+
/** Compute the dot product of pointIndex with [x,y,z]. */
|
|
806
822
|
evaluateUncheckedIndexPlaneAltitude(pointIndex, plane) {
|
|
807
823
|
const i = pointIndex * 3;
|
|
808
824
|
const data = this._data;
|
|
809
825
|
return plane.altitudeXYZ(data[i], data[i + 1], data[i + 2]);
|
|
810
826
|
}
|
|
811
827
|
/**
|
|
812
|
-
*
|
|
813
|
-
* *
|
|
828
|
+
* Compute the cross product from indexed origin t indexed targets targetAIndex and targetB index.
|
|
829
|
+
* * Accumulate it to the result.
|
|
814
830
|
*/
|
|
815
831
|
accumulateCrossProductIndexIndexIndex(originIndex, targetAIndex, targetBIndex, result) {
|
|
816
832
|
if (this.isIndexValid(originIndex) && this.isIndexValid(targetAIndex) && this.isIndexValid(targetBIndex)) {
|
|
@@ -822,8 +838,8 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
822
838
|
}
|
|
823
839
|
}
|
|
824
840
|
/**
|
|
825
|
-
*
|
|
826
|
-
* *
|
|
841
|
+
* Compute the cross product from indexed origin t indexed targets targetAIndex and targetB index.
|
|
842
|
+
* * Accumulate it to the result.
|
|
827
843
|
*/
|
|
828
844
|
accumulateScaledXYZ(index, scale, sum) {
|
|
829
845
|
if (this.isIndexValid(index)) {
|
|
@@ -834,7 +850,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
834
850
|
sum.z += scale * data[i + 2];
|
|
835
851
|
}
|
|
836
852
|
}
|
|
837
|
-
/** Compute the cross product of vectors from from origin to indexed targets i and j */
|
|
853
|
+
/** Compute the cross product of vectors from from origin to indexed targets i and j. */
|
|
838
854
|
crossProductXYAndZIndexIndex(origin, targetAIndex, targetBIndex, result) {
|
|
839
855
|
if (this.isIndexValid(targetAIndex) && this.isIndexValid(targetBIndex)) {
|
|
840
856
|
const j = targetAIndex * 3;
|
|
@@ -854,8 +870,8 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
854
870
|
}
|
|
855
871
|
/**
|
|
856
872
|
* Return distance squared between indicated points.
|
|
857
|
-
* @param i first point index
|
|
858
|
-
* @param j second point index
|
|
873
|
+
* @param i first point index.
|
|
874
|
+
* @param j second point index.
|
|
859
875
|
*/
|
|
860
876
|
distanceSquaredIndexIndex(i, j) {
|
|
861
877
|
if (this.isIndexValid(i) && this.isIndexValid(j)) {
|
|
@@ -867,8 +883,8 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
867
883
|
}
|
|
868
884
|
/**
|
|
869
885
|
* Return distance between indicated points.
|
|
870
|
-
* @param i first point index
|
|
871
|
-
* @param j second point index
|
|
886
|
+
* @param i first point index.
|
|
887
|
+
* @param j second point index.
|
|
872
888
|
*/
|
|
873
889
|
distanceIndexIndex(i, j) {
|
|
874
890
|
if (this.isIndexValid(i) && this.isIndexValid(j)) {
|
|
@@ -887,7 +903,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
887
903
|
}
|
|
888
904
|
return undefined;
|
|
889
905
|
}
|
|
890
|
-
/**
|
|
906
|
+
/** Test for near equality between two `GrowableXYZArray`. */
|
|
891
907
|
static isAlmostEqual(dataA, dataB) {
|
|
892
908
|
if (dataA && dataB) {
|
|
893
909
|
if (dataA.length !== dataB.length)
|
|
@@ -900,7 +916,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
900
916
|
// if both are null it is equal, otherwise unequal
|
|
901
917
|
return (!dataA && !dataB);
|
|
902
918
|
}
|
|
903
|
-
/** Return an array of block indices sorted per compareLexicalBlock function */
|
|
919
|
+
/** Return an array of block indices sorted per compareLexicalBlock function. */
|
|
904
920
|
sortIndicesLexical() {
|
|
905
921
|
const n = this._xyzInUse;
|
|
906
922
|
// let numCompare = 0;
|
|
@@ -914,7 +930,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
914
930
|
// console.log (n, numCompare);
|
|
915
931
|
return result;
|
|
916
932
|
}
|
|
917
|
-
/**
|
|
933
|
+
/** Compare two blocks in simple lexical order. */
|
|
918
934
|
compareLexicalBlock(ia, ib) {
|
|
919
935
|
let ax = 0;
|
|
920
936
|
let bx = 0;
|
|
@@ -926,19 +942,13 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
926
942
|
if (ax < bx)
|
|
927
943
|
return -1;
|
|
928
944
|
}
|
|
929
|
-
return ia - ib; // so original order is maintained among duplicates
|
|
945
|
+
return ia - ib; // so original order is maintained among duplicates
|
|
930
946
|
}
|
|
931
|
-
/** Access a single double at offset within a block.
|
|
947
|
+
/** Access a single double at offset within a block. This has no index checking. */
|
|
932
948
|
component(pointIndex, componentIndex) {
|
|
933
949
|
return this._data[3 * pointIndex + componentIndex];
|
|
934
950
|
}
|
|
935
|
-
/**
|
|
936
|
-
* add points at regular steps from `other`
|
|
937
|
-
* @param source
|
|
938
|
-
* @param pointIndex0
|
|
939
|
-
* @param step
|
|
940
|
-
* @param numAdd
|
|
941
|
-
*/
|
|
951
|
+
/** Add points at regular steps from `other`. */
|
|
942
952
|
addSteppedPoints(other, pointIndex0, step, numAdd) {
|
|
943
953
|
const dataB = other._data;
|
|
944
954
|
let b0 = pointIndex0 * 3;
|
|
@@ -952,9 +962,9 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
952
962
|
}
|
|
953
963
|
}
|
|
954
964
|
/**
|
|
955
|
-
*
|
|
956
|
-
* @param arrayA first array
|
|
957
|
-
* @param arrayB second array
|
|
965
|
+
* Find the min and max distance between corresponding indexed points. Excess points are ignored.
|
|
966
|
+
* @param arrayA first array.
|
|
967
|
+
* @param arrayB second array.
|
|
958
968
|
*/
|
|
959
969
|
static distanceRangeBetweenCorrespondingPoints(arrayA, arrayB) {
|
|
960
970
|
const dataA = arrayA._data;
|
|
@@ -970,11 +980,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
970
980
|
}
|
|
971
981
|
return range;
|
|
972
982
|
}
|
|
973
|
-
/**
|
|
974
|
-
* remove trailing point(s) within tolerance of the start point.
|
|
975
|
-
* @param points
|
|
976
|
-
* @param tolerance
|
|
977
|
-
*/
|
|
983
|
+
/** Remove trailing point(s) within tolerance of the start point. */
|
|
978
984
|
static removeClosure(points, tolerance = Geometry_1.Geometry.smallMetricDistance) {
|
|
979
985
|
while (points.length > 1 && points.distanceIndexIndex(0, points.length - 1) < tolerance)
|
|
980
986
|
points.pop();
|
|
@@ -982,8 +988,8 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
982
988
|
/**
|
|
983
989
|
* Compute frame for a triangle formed by three (unchecked!) points identified by index.
|
|
984
990
|
* * z direction of frame is 001.
|
|
985
|
-
* * Transform axes from origin to targetA and targetB
|
|
986
|
-
* * in local coordinates (u,v,w) the xy interior of the triangle is `u>=0, v>= 0, w>= 0, u+v+w<1
|
|
991
|
+
* * Transform axes from origin to targetA and targetB.
|
|
992
|
+
* * in local coordinates (u,v,w) the xy interior of the triangle is `u>=0, v>= 0, w>= 0, u+v+w<1`.
|
|
987
993
|
* * Return undefined if transform is not invertible, e.g. if points are in a vertical plane.
|
|
988
994
|
*/
|
|
989
995
|
fillLocalXYTriangleFrame(originIndex, targetAIndex, targetBIndex, result) {
|
|
@@ -1009,7 +1015,7 @@ class GrowableXYZArray extends IndexedXYZCollection_1.IndexedReadWriteXYZCollect
|
|
|
1009
1015
|
/**
|
|
1010
1016
|
* Pass the (x,y,z) of each point to a function which returns a replacement for one of the 3 components.
|
|
1011
1017
|
* @param componentIndex Index (0,1,2) of component to be replaced.
|
|
1012
|
-
* @param func function to be called as `func(x,y,z)`, returning a replacement value for componentIndex
|
|
1018
|
+
* @param func function to be called as `func(x,y,z)`, returning a replacement value for componentIndex.
|
|
1013
1019
|
*/
|
|
1014
1020
|
mapComponent(componentIndex, func) {
|
|
1015
1021
|
const n = this._data.length;
|