@itwin/core-geometry 5.0.0-dev.61 → 5.0.0-dev.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/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.d.ts +90 -54
- package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
- package/lib/cjs/bspline/BSpline1dNd.js +134 -99
- package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.d.ts +193 -155
- package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js +245 -181
- 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.d.ts +3 -1
- package/lib/cjs/bspline/BezierCurve3d.d.ts.map +1 -1
- package/lib/cjs/bspline/BezierCurve3d.js +3 -5
- 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.d.ts +74 -54
- package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
- package/lib/cjs/bspline/KnotVector.js +127 -80
- 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 +2 -0
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +2 -0
- 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/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/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.d.ts +3 -3
- package/lib/cjs/geometry3d/PointHelpers.js +3 -3
- 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.d.ts +2 -2
- package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js +8 -11
- 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.d.ts +90 -54
- package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.js +134 -99
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.d.ts +193 -155
- package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js +245 -181
- 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.d.ts +3 -1
- package/lib/esm/bspline/BezierCurve3d.d.ts.map +1 -1
- package/lib/esm/bspline/BezierCurve3d.js +3 -5
- 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.d.ts +74 -54
- package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
- package/lib/esm/bspline/KnotVector.js +127 -80
- 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 +2 -0
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +2 -0
- 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/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/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.d.ts +3 -3
- package/lib/esm/geometry3d/PointHelpers.js +3 -3
- 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.d.ts +2 -2
- package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js +8 -11
- 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
|
@@ -3,108 +3,144 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Point3d } from "../geometry3d/Point3dVector3d";
|
|
5
5
|
import { BSplineWrapMode, KnotVector } from "./KnotVector";
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Knots and poles for a B-spline function mapping R to R^n.
|
|
7
8
|
* * The "pole" (aka control point) of this class is a block of `poleLength` numbers.
|
|
8
9
|
* * Derived classes (not this class) assign meaning such as x,y,z,w.
|
|
9
|
-
* *
|
|
10
|
+
* * For instance, an instance of this class with `poleLength===3` does not know if its poles are x,y,z or
|
|
11
|
+
* weighted 2D x,y,w.
|
|
10
12
|
* @public
|
|
11
13
|
*/
|
|
12
14
|
export declare class BSpline1dNd {
|
|
13
|
-
/**
|
|
15
|
+
/** Knots of the bspline. */
|
|
14
16
|
knots: KnotVector;
|
|
15
|
-
/**
|
|
17
|
+
/** Poles packed in blocks of `poleLength` doubles. */
|
|
16
18
|
packedData: Float64Array;
|
|
17
|
-
/**
|
|
19
|
+
/** The number of numeric values per pole. */
|
|
18
20
|
poleLength: number;
|
|
19
21
|
/** (property accessor) Return the degree of the polynomials. */
|
|
20
22
|
get degree(): number;
|
|
21
|
-
/** (property accessor) Return the
|
|
23
|
+
/** (property accessor) Return the order (one more than degree) of the polynomials. */
|
|
22
24
|
get order(): number;
|
|
23
|
-
/** (property accessor) Return the number of bezier spans (including null spans at multiple knots)*/
|
|
25
|
+
/** (property accessor) Return the number of bezier spans (including null spans at multiple knots). */
|
|
24
26
|
get numSpan(): number;
|
|
25
|
-
/** (property accessor)
|
|
27
|
+
/** (property accessor) Return the number of poles. */
|
|
26
28
|
get numPoles(): number;
|
|
27
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Copy 3 values of pole `i` into a point.
|
|
28
31
|
* * The calling class is responsible for knowing if this is an appropriate access to the blocked data.
|
|
29
32
|
*/
|
|
30
33
|
getPoint3dPole(i: number, result?: Point3d): Point3d | undefined;
|
|
31
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Values of the `order` relevant B-spline basis functions at a parameter.
|
|
36
|
+
* * Preallocated to length `order` in the constructor and used as a temporary in evaluations.
|
|
37
|
+
*/
|
|
32
38
|
basisBuffer: Float64Array;
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Derivatives of the `order` relevant B-spline basis functions at a parameter.
|
|
41
|
+
* * Preallocated to length `order` in the constructor and used as a temporary in evaluations.
|
|
42
|
+
*/
|
|
36
43
|
basisBuffer1: Float64Array;
|
|
37
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Second derivatives of the `order` relevant B-spline basis functions at a parameter.
|
|
46
|
+
* * Preallocated to length `order` in the constructor and used as a temporary in evaluations.
|
|
47
|
+
*/
|
|
38
48
|
basisBuffer2: Float64Array;
|
|
39
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* Temporary to hold a single point.
|
|
51
|
+
* * Preallocated to length `poleLength` in the constructor.
|
|
52
|
+
*/
|
|
53
|
+
poleBuffer: Float64Array;
|
|
54
|
+
/**
|
|
55
|
+
* Temporary to hold a single derivative vector.
|
|
56
|
+
* * Preallocated to length `poleLength` in the constructor.
|
|
57
|
+
*/
|
|
40
58
|
poleBuffer1: Float64Array;
|
|
41
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* Temporary to hold a single second derivative vector.
|
|
61
|
+
* * Preallocated to length `poleLength` in the constructor.
|
|
62
|
+
*/
|
|
42
63
|
poleBuffer2: Float64Array;
|
|
43
64
|
/**
|
|
44
|
-
*
|
|
45
|
-
* @param numPoles number of poles
|
|
46
|
-
* @param poleLength number of coordinates per pole (e.g.. 3 for 3D unweighted, 4 for 3d weighted, 2 for 2d unweighted,
|
|
47
|
-
*
|
|
48
|
-
* @param
|
|
65
|
+
* Initialize arrays for given spline dimensions.
|
|
66
|
+
* @param numPoles number of poles.
|
|
67
|
+
* @param poleLength number of coordinates per pole (e.g.. 3 for 3D unweighted, 4 for 3d weighted, 2 for 2d unweighted,
|
|
68
|
+
* 3 for 2d weighted).
|
|
69
|
+
* @param order number of poles defining a Bezier segment of the B-spline function.
|
|
70
|
+
* @param knots the KnotVector. This is captured, not cloned.
|
|
49
71
|
*/
|
|
50
72
|
protected constructor(numPoles: number, poleLength: number, order: number, knots: KnotVector);
|
|
51
73
|
/**
|
|
52
|
-
*
|
|
53
|
-
* @param numPoles number of poles
|
|
54
|
-
* @param poleLength number of coordinates per pole (e.g.. 3 for 3D unweighted, 4 for 3d weighted, 2 for 2d unweighted,
|
|
55
|
-
*
|
|
56
|
-
* @param
|
|
74
|
+
* Create a `BSpline1dNd`.
|
|
75
|
+
* @param numPoles number of poles.
|
|
76
|
+
* @param poleLength number of coordinates per pole (e.g.. 3 for 3D unweighted, 4 for 3d weighted, 2 for 2d unweighted,
|
|
77
|
+
* 3 for 2d weighted).
|
|
78
|
+
* @param order number of poles defining a Bezier segment of the B-spline function.
|
|
79
|
+
* @param knots the KnotVector. This is captured, not cloned.
|
|
57
80
|
*/
|
|
58
|
-
static create(numPoles: number, poleLength: number, order: number, knots: KnotVector): BSpline1dNd
|
|
59
|
-
/** Map a span index and
|
|
60
|
-
spanFractionToKnot(
|
|
81
|
+
static create(numPoles: number, poleLength: number, order: number, knots: KnotVector): BSpline1dNd;
|
|
82
|
+
/** Map a span index and span fraction to knot value. */
|
|
83
|
+
spanFractionToKnot(spanIndex: number, spanFraction: number): number;
|
|
61
84
|
/**
|
|
62
|
-
* Evaluate the `order` basis functions (and optionally one or two derivatives) at a given fractional position within
|
|
63
|
-
*
|
|
85
|
+
* Evaluate the `order` basis functions (and optionally one or two derivatives) at a given fractional position within
|
|
86
|
+
* indexed span.
|
|
87
|
+
* @returns true if and only if output arrays are sufficiently sized.
|
|
64
88
|
*/
|
|
65
89
|
evaluateBasisFunctionsInSpan(spanIndex: number, spanFraction: number, f: Float64Array, df?: Float64Array, ddf?: Float64Array): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Compute the linear combination of the given span's poles and the weights in `basisBuffer`, and store this point
|
|
92
|
+
* in `poleBuffer`.
|
|
93
|
+
*/
|
|
94
|
+
sumPoleBufferForSpan(spanIndex: number): void;
|
|
95
|
+
/**
|
|
96
|
+
* Compute the linear combination of the given span's poles and the weights in `basisBuffer1`, and store this
|
|
97
|
+
* derivative vector in `poleBuffer1`.
|
|
98
|
+
*/
|
|
99
|
+
sumPoleBuffer1ForSpan(spanIndex: number): void;
|
|
100
|
+
/**
|
|
101
|
+
* Compute the linear combination of the given span's poles and the weights in `basisBuffer2`, and store this
|
|
102
|
+
* second derivative vector in `poleBuffer2`.
|
|
103
|
+
*/
|
|
104
|
+
sumPoleBuffer2ForSpan(spanIndex: number): void;
|
|
66
105
|
/**
|
|
67
106
|
* * Evaluate the basis functions at spanIndex and fraction.
|
|
68
|
-
* * Evaluations are stored in the preallocated `this.basisBuffer
|
|
69
|
-
* * Immediately do the summations of the basis values times the respective
|
|
107
|
+
* * Evaluations are stored in the preallocated `this.basisBuffer`.
|
|
108
|
+
* * Immediately do the summations of the basis values times the respective poles.
|
|
70
109
|
* * Summations are stored in the preallocated `this.poleBuffer`
|
|
71
110
|
* */
|
|
72
111
|
evaluateBuffersInSpan(spanIndex: number, spanFraction: number): void;
|
|
73
112
|
/**
|
|
74
113
|
* * Evaluate the basis functions and one derivative at spanIndex and fraction.
|
|
75
|
-
* *
|
|
76
|
-
* * Immediately do the summations of the basis values times the respective
|
|
114
|
+
* * Function evaluations are stored in the preallocated `this.basisBuffer`; derivative evaluations in `this.basisBuffer1`.
|
|
115
|
+
* * Immediately do the summations of the basis values times the respective poles.
|
|
77
116
|
* * Summations are stored in the preallocated `this.poleBuffer` and `this.poleBuffer1`
|
|
78
117
|
* */
|
|
79
118
|
evaluateBuffersInSpan1(spanIndex: number, spanFraction: number): void;
|
|
80
|
-
/** sum poles in `poleBuffer` at span `spanIndex` by the weights in the `basisBuffer` */
|
|
81
|
-
sumPoleBufferForSpan(spanIndex: number): void;
|
|
82
|
-
/** sum poles in `poleBuffer1` at span `spanIndex` by the weights in the `basisBuffer1`, i.e. form first derivatives */
|
|
83
|
-
sumPoleBuffer1ForSpan(spanIndex: number): void;
|
|
84
|
-
/** sum poles in `poleBuffer2` at span `spanIndex` by the weights in the `basisBuffer2`, i.e. form second derivatives */
|
|
85
|
-
sumPoleBuffer2ForSpan(spanIndex: number): void;
|
|
86
|
-
/** Evaluate the function values and 1 or 2 derivatives into `this.poleBuffer`, `this.poleBuffer1` and `this.poleBuffer2` */
|
|
87
|
-
evaluateBuffersAtKnot(u: number, numDerivative?: number): void;
|
|
88
119
|
/**
|
|
89
|
-
*
|
|
120
|
+
* Evaluate the B-spline function and optional derivatives at the given parameter in knot space.
|
|
121
|
+
* * Function value is stored in `poleBuffer`; optional derivative vectors in `poleBuffer1` and `poleBuffer2`.
|
|
90
122
|
*/
|
|
123
|
+
evaluateBuffersAtKnot(u: number, numDerivative?: number): void;
|
|
124
|
+
/** Reverse the instance poles and knots in place. */
|
|
91
125
|
reverseInPlace(): void;
|
|
92
126
|
/**
|
|
93
|
-
* Test if the leading and trailing polygon coordinates are replicated in the manner of a "closed" bspline polygon
|
|
94
|
-
* to act as a normal bspline.
|
|
95
|
-
* @returns true if `degree` leading and trailing polygon blocks match
|
|
96
|
-
* @deprecated in 4.x. Use testClosablePolygon instead.
|
|
127
|
+
* Test if the leading and trailing polygon coordinates are replicated in the manner of a "closed" bspline polygon
|
|
128
|
+
* which has been expanded to act as a normal bspline.
|
|
129
|
+
* @returns true if `degree` leading and trailing polygon blocks match.
|
|
130
|
+
* @deprecated in 4.x. Use `testClosablePolygon` instead.
|
|
97
131
|
*/
|
|
98
132
|
testCloseablePolygon(mode?: BSplineWrapMode): boolean;
|
|
99
133
|
/**
|
|
100
|
-
* Test if the leading and trailing
|
|
101
|
-
*
|
|
102
|
-
* @
|
|
134
|
+
* Test if the leading and trailing poles are replicated in the manner of a "closed" B-spline function with wraparound
|
|
135
|
+
* control polygon.
|
|
136
|
+
* @param mode wrap mode, indicating the number of wraparound poles to check. If undefined, `knots.wrappable` is used.
|
|
137
|
+
* @returns true if the expected leading and trailing poles match, according to `mode`.
|
|
103
138
|
*/
|
|
104
139
|
testClosablePolygon(mode?: BSplineWrapMode): boolean;
|
|
105
|
-
/**
|
|
106
|
-
*
|
|
107
|
-
* @param
|
|
140
|
+
/**
|
|
141
|
+
* Insert the knot and resulting pole into the instance, optionally multiple times.
|
|
142
|
+
* @param knot the knot to be inserted (may already exist in the KnotVector).
|
|
143
|
+
* @param totalMultiplicity the total multiplicity of the knot on return.
|
|
108
144
|
*/
|
|
109
145
|
addKnot(knot: number, totalMultiplicity: number): boolean;
|
|
110
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BSpline1dNd.d.ts","sourceRoot":"","sources":["../../../src/bspline/BSpline1dNd.ts"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"BSpline1dNd.d.ts","sourceRoot":"","sources":["../../../src/bspline/BSpline1dNd.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;;;;GAOG;AACH,qBAAa,WAAW;IACtB,4BAA4B;IACrB,KAAK,EAAE,UAAU,CAAC;IACzB,sDAAsD;IAC/C,UAAU,EAAE,YAAY,CAAC;IAChC,6CAA6C;IACtC,UAAU,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,IAAW,MAAM,IAAI,MAAM,CAE1B;IACD,sFAAsF;IACtF,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,sGAAsG;IACtG,IAAW,OAAO,IAAI,MAAM,CAE3B;IACD,sDAAsD;IACtD,IAAW,QAAQ,IAAI,MAAM,CAE5B;IACD;;;OAGG;IACI,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAGvE;;;OAGG;IACI,WAAW,EAAE,YAAY,CAAC;IACjC;;;OAGG;IACI,YAAY,EAAE,YAAY,CAAC;IAClC;;;OAGG;IACI,YAAY,EAAE,YAAY,CAAC;IAClC;;;OAGG;IACI,UAAU,EAAE,YAAY,CAAC;IAChC;;;OAGG;IACI,WAAW,EAAE,YAAY,CAAC;IACjC;;;OAGG;IACI,WAAW,EAAE,YAAY,CAAC;IACjC;;;;;;;OAOG;IACH,SAAS,aAAa,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAW5F;;;;;;;OAOG;WACW,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,WAAW;IAGzG,wDAAwD;IACjD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAG1E;;;;MAIE;IACK,4BAA4B,CACjC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,YAAY,GAC9F,OAAO;IAWV;;;OAGG;IACI,oBAAoB,CAAC,SAAS,EAAE,MAAM;IAO7C;;;OAGG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM;IAO9C;;;OAGG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM;IAQ9C;;;;;SAKK;IACE,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAIpE;;;;;SAKK;IACE,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAKrE;;;OAGG;IACI,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,GAAE,MAAU;IAgBjE,qDAAqD;IAC9C,cAAc,IAAI,IAAI;IAS7B;;;;;OAKG;IACI,oBAAoB,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO;IAG5D;;;;;OAKG;IACI,mBAAmB,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO;IAoB3D;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO;CAqDjE"}
|
|
@@ -5,82 +5,115 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module Bspline
|
|
7
7
|
*/
|
|
8
|
-
// import { Point2d } from "../Geometry2d";
|
|
9
8
|
import { Geometry } from "../Geometry";
|
|
10
9
|
import { Point3d } from "../geometry3d/Point3dVector3d";
|
|
11
10
|
import { BSplineWrapMode, KnotVector } from "./KnotVector";
|
|
12
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Knots and poles for a B-spline function mapping R to R^n.
|
|
13
13
|
* * The "pole" (aka control point) of this class is a block of `poleLength` numbers.
|
|
14
14
|
* * Derived classes (not this class) assign meaning such as x,y,z,w.
|
|
15
|
-
* *
|
|
15
|
+
* * For instance, an instance of this class with `poleLength===3` does not know if its poles are x,y,z or
|
|
16
|
+
* weighted 2D x,y,w.
|
|
16
17
|
* @public
|
|
17
18
|
*/
|
|
18
19
|
export class BSpline1dNd {
|
|
19
|
-
/**
|
|
20
|
+
/** Knots of the bspline. */
|
|
20
21
|
knots;
|
|
21
|
-
/**
|
|
22
|
+
/** Poles packed in blocks of `poleLength` doubles. */
|
|
22
23
|
packedData;
|
|
23
|
-
/**
|
|
24
|
+
/** The number of numeric values per pole. */
|
|
24
25
|
poleLength;
|
|
25
26
|
/** (property accessor) Return the degree of the polynomials. */
|
|
26
|
-
get degree() {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/** (property accessor) Return the
|
|
30
|
-
get
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/**
|
|
27
|
+
get degree() {
|
|
28
|
+
return this.knots.degree;
|
|
29
|
+
}
|
|
30
|
+
/** (property accessor) Return the order (one more than degree) of the polynomials. */
|
|
31
|
+
get order() {
|
|
32
|
+
return this.knots.degree + 1;
|
|
33
|
+
}
|
|
34
|
+
/** (property accessor) Return the number of bezier spans (including null spans at multiple knots). */
|
|
35
|
+
get numSpan() {
|
|
36
|
+
return this.numPoles - this.knots.degree;
|
|
37
|
+
}
|
|
38
|
+
/** (property accessor) Return the number of poles. */
|
|
39
|
+
get numPoles() {
|
|
40
|
+
return this.packedData.length / this.poleLength;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Copy 3 values of pole `i` into a point.
|
|
34
44
|
* * The calling class is responsible for knowing if this is an appropriate access to the blocked data.
|
|
35
45
|
*/
|
|
36
|
-
getPoint3dPole(i, result) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
getPoint3dPole(i, result) {
|
|
47
|
+
return Point3d.createFromPacked(this.packedData, i, result);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Values of the `order` relevant B-spline basis functions at a parameter.
|
|
51
|
+
* * Preallocated to length `order` in the constructor and used as a temporary in evaluations.
|
|
52
|
+
*/
|
|
53
|
+
basisBuffer;
|
|
54
|
+
/**
|
|
55
|
+
* Derivatives of the `order` relevant B-spline basis functions at a parameter.
|
|
56
|
+
* * Preallocated to length `order` in the constructor and used as a temporary in evaluations.
|
|
57
|
+
*/
|
|
58
|
+
basisBuffer1;
|
|
59
|
+
/**
|
|
60
|
+
* Second derivatives of the `order` relevant B-spline basis functions at a parameter.
|
|
61
|
+
* * Preallocated to length `order` in the constructor and used as a temporary in evaluations.
|
|
62
|
+
*/
|
|
63
|
+
basisBuffer2;
|
|
64
|
+
/**
|
|
65
|
+
* Temporary to hold a single point.
|
|
66
|
+
* * Preallocated to length `poleLength` in the constructor.
|
|
67
|
+
*/
|
|
68
|
+
poleBuffer;
|
|
69
|
+
/**
|
|
70
|
+
* Temporary to hold a single derivative vector.
|
|
71
|
+
* * Preallocated to length `poleLength` in the constructor.
|
|
72
|
+
*/
|
|
73
|
+
poleBuffer1;
|
|
74
|
+
/**
|
|
75
|
+
* Temporary to hold a single second derivative vector.
|
|
76
|
+
* * Preallocated to length `poleLength` in the constructor.
|
|
77
|
+
*/
|
|
78
|
+
poleBuffer2;
|
|
49
79
|
/**
|
|
50
|
-
*
|
|
51
|
-
* @param numPoles number of poles
|
|
52
|
-
* @param poleLength number of coordinates per pole (e.g.. 3 for 3D unweighted, 4 for 3d weighted, 2 for 2d unweighted,
|
|
53
|
-
*
|
|
54
|
-
* @param
|
|
80
|
+
* Initialize arrays for given spline dimensions.
|
|
81
|
+
* @param numPoles number of poles.
|
|
82
|
+
* @param poleLength number of coordinates per pole (e.g.. 3 for 3D unweighted, 4 for 3d weighted, 2 for 2d unweighted,
|
|
83
|
+
* 3 for 2d weighted).
|
|
84
|
+
* @param order number of poles defining a Bezier segment of the B-spline function.
|
|
85
|
+
* @param knots the KnotVector. This is captured, not cloned.
|
|
55
86
|
*/
|
|
56
87
|
constructor(numPoles, poleLength, order, knots) {
|
|
57
88
|
this.knots = knots;
|
|
58
89
|
this.packedData = new Float64Array(numPoles * poleLength);
|
|
59
90
|
this.poleLength = poleLength;
|
|
60
91
|
this.basisBuffer = new Float64Array(order);
|
|
61
|
-
this.poleBuffer = new Float64Array(poleLength);
|
|
62
92
|
this.basisBuffer1 = new Float64Array(order);
|
|
63
93
|
this.basisBuffer2 = new Float64Array(order);
|
|
94
|
+
this.poleBuffer = new Float64Array(poleLength);
|
|
64
95
|
this.poleBuffer1 = new Float64Array(poleLength);
|
|
65
96
|
this.poleBuffer2 = new Float64Array(poleLength);
|
|
66
97
|
}
|
|
67
98
|
/**
|
|
68
|
-
*
|
|
69
|
-
* @param numPoles number of poles
|
|
70
|
-
* @param poleLength number of coordinates per pole (e.g.. 3 for 3D unweighted, 4 for 3d weighted, 2 for 2d unweighted,
|
|
71
|
-
*
|
|
72
|
-
* @param
|
|
99
|
+
* Create a `BSpline1dNd`.
|
|
100
|
+
* @param numPoles number of poles.
|
|
101
|
+
* @param poleLength number of coordinates per pole (e.g.. 3 for 3D unweighted, 4 for 3d weighted, 2 for 2d unweighted,
|
|
102
|
+
* 3 for 2d weighted).
|
|
103
|
+
* @param order number of poles defining a Bezier segment of the B-spline function.
|
|
104
|
+
* @param knots the KnotVector. This is captured, not cloned.
|
|
73
105
|
*/
|
|
74
106
|
static create(numPoles, poleLength, order, knots) {
|
|
75
107
|
return new BSpline1dNd(numPoles, poleLength, order, knots);
|
|
76
108
|
}
|
|
77
|
-
/** Map a span index and
|
|
78
|
-
spanFractionToKnot(
|
|
79
|
-
return this.knots.spanFractionToKnot(
|
|
109
|
+
/** Map a span index and span fraction to knot value. */
|
|
110
|
+
spanFractionToKnot(spanIndex, spanFraction) {
|
|
111
|
+
return this.knots.spanFractionToKnot(spanIndex, spanFraction);
|
|
80
112
|
}
|
|
81
113
|
/**
|
|
82
|
-
* Evaluate the `order` basis functions (and optionally one or two derivatives) at a given fractional position within
|
|
83
|
-
*
|
|
114
|
+
* Evaluate the `order` basis functions (and optionally one or two derivatives) at a given fractional position within
|
|
115
|
+
* indexed span.
|
|
116
|
+
* @returns true if and only if output arrays are sufficiently sized.
|
|
84
117
|
*/
|
|
85
118
|
evaluateBasisFunctionsInSpan(spanIndex, spanFraction, f, df, ddf) {
|
|
86
119
|
if (spanIndex < 0)
|
|
@@ -94,57 +127,64 @@ export class BSpline1dNd {
|
|
|
94
127
|
this.knots.evaluateBasisFunctions(knotIndex0, globalKnot, f);
|
|
95
128
|
}
|
|
96
129
|
/**
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
|
|
100
|
-
* * Summations are stored in the preallocated `this.poleBuffer`
|
|
101
|
-
* */
|
|
102
|
-
evaluateBuffersInSpan(spanIndex, spanFraction) {
|
|
103
|
-
this.evaluateBasisFunctionsInSpan(spanIndex, spanFraction, this.basisBuffer);
|
|
104
|
-
this.sumPoleBufferForSpan(spanIndex);
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* * Evaluate the basis functions and one derivative at spanIndex and fraction.
|
|
108
|
-
* * Evaluations are stored in the preallocated `this.basisBuffer`
|
|
109
|
-
* * Immediately do the summations of the basis values times the respective control points
|
|
110
|
-
* * Summations are stored in the preallocated `this.poleBuffer` and `this.poleBuffer1`
|
|
111
|
-
* */
|
|
112
|
-
evaluateBuffersInSpan1(spanIndex, spanFraction) {
|
|
113
|
-
this.evaluateBasisFunctionsInSpan(spanIndex, spanFraction, this.basisBuffer, this.basisBuffer1);
|
|
114
|
-
this.sumPoleBufferForSpan(spanIndex);
|
|
115
|
-
this.sumPoleBuffer1ForSpan(spanIndex);
|
|
116
|
-
}
|
|
117
|
-
/** sum poles in `poleBuffer` at span `spanIndex` by the weights in the `basisBuffer` */
|
|
130
|
+
* Compute the linear combination of the given span's poles and the weights in `basisBuffer`, and store this point
|
|
131
|
+
* in `poleBuffer`.
|
|
132
|
+
*/
|
|
118
133
|
sumPoleBufferForSpan(spanIndex) {
|
|
119
134
|
this.poleBuffer.fill(0);
|
|
120
135
|
let k = spanIndex * this.poleLength;
|
|
121
|
-
for (const f of this.basisBuffer)
|
|
122
|
-
for (let j = 0; j < this.poleLength; j++)
|
|
136
|
+
for (const f of this.basisBuffer)
|
|
137
|
+
for (let j = 0; j < this.poleLength; j++)
|
|
123
138
|
this.poleBuffer[j] += f * this.packedData[k++];
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
139
|
}
|
|
127
|
-
/**
|
|
140
|
+
/**
|
|
141
|
+
* Compute the linear combination of the given span's poles and the weights in `basisBuffer1`, and store this
|
|
142
|
+
* derivative vector in `poleBuffer1`.
|
|
143
|
+
*/
|
|
128
144
|
sumPoleBuffer1ForSpan(spanIndex) {
|
|
129
145
|
this.poleBuffer1.fill(0);
|
|
130
146
|
let k = spanIndex * this.poleLength;
|
|
131
|
-
for (const f of this.basisBuffer1)
|
|
132
|
-
for (let j = 0; j < this.poleLength; j++)
|
|
147
|
+
for (const f of this.basisBuffer1)
|
|
148
|
+
for (let j = 0; j < this.poleLength; j++)
|
|
133
149
|
this.poleBuffer1[j] += f * this.packedData[k++];
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
150
|
}
|
|
137
|
-
/**
|
|
151
|
+
/**
|
|
152
|
+
* Compute the linear combination of the given span's poles and the weights in `basisBuffer2`, and store this
|
|
153
|
+
* second derivative vector in `poleBuffer2`.
|
|
154
|
+
*/
|
|
138
155
|
sumPoleBuffer2ForSpan(spanIndex) {
|
|
139
156
|
this.poleBuffer2.fill(0);
|
|
140
157
|
let k = spanIndex * this.poleLength;
|
|
141
158
|
for (const f of this.basisBuffer2) {
|
|
142
|
-
for (let j = 0; j < this.poleLength; j++)
|
|
159
|
+
for (let j = 0; j < this.poleLength; j++)
|
|
143
160
|
this.poleBuffer2[j] += f * this.packedData[k++];
|
|
144
|
-
}
|
|
145
161
|
}
|
|
146
162
|
}
|
|
147
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* * Evaluate the basis functions at spanIndex and fraction.
|
|
165
|
+
* * Evaluations are stored in the preallocated `this.basisBuffer`.
|
|
166
|
+
* * Immediately do the summations of the basis values times the respective poles.
|
|
167
|
+
* * Summations are stored in the preallocated `this.poleBuffer`
|
|
168
|
+
* */
|
|
169
|
+
evaluateBuffersInSpan(spanIndex, spanFraction) {
|
|
170
|
+
this.evaluateBasisFunctionsInSpan(spanIndex, spanFraction, this.basisBuffer);
|
|
171
|
+
this.sumPoleBufferForSpan(spanIndex);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* * Evaluate the basis functions and one derivative at spanIndex and fraction.
|
|
175
|
+
* * Function evaluations are stored in the preallocated `this.basisBuffer`; derivative evaluations in `this.basisBuffer1`.
|
|
176
|
+
* * Immediately do the summations of the basis values times the respective poles.
|
|
177
|
+
* * Summations are stored in the preallocated `this.poleBuffer` and `this.poleBuffer1`
|
|
178
|
+
* */
|
|
179
|
+
evaluateBuffersInSpan1(spanIndex, spanFraction) {
|
|
180
|
+
this.evaluateBasisFunctionsInSpan(spanIndex, spanFraction, this.basisBuffer, this.basisBuffer1);
|
|
181
|
+
this.sumPoleBufferForSpan(spanIndex);
|
|
182
|
+
this.sumPoleBuffer1ForSpan(spanIndex);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Evaluate the B-spline function and optional derivatives at the given parameter in knot space.
|
|
186
|
+
* * Function value is stored in `poleBuffer`; optional derivative vectors in `poleBuffer1` and `poleBuffer2`.
|
|
187
|
+
*/
|
|
148
188
|
evaluateBuffersAtKnot(u, numDerivative = 0) {
|
|
149
189
|
const knotIndex0 = this.knots.knotToLeftKnotIndex(u);
|
|
150
190
|
if (numDerivative < 1) {
|
|
@@ -163,36 +203,30 @@ export class BSpline1dNd {
|
|
|
163
203
|
this.sumPoleBuffer2ForSpan(knotIndex0 - this.degree + 1);
|
|
164
204
|
}
|
|
165
205
|
}
|
|
166
|
-
/**
|
|
167
|
-
* Reverse the (blocked) poles (in `this.packedData` in place.
|
|
168
|
-
*/
|
|
206
|
+
/** Reverse the instance poles and knots in place. */
|
|
169
207
|
reverseInPlace() {
|
|
170
|
-
|
|
171
|
-
const b = this.poleLength;
|
|
208
|
+
const pLen = this.poleLength;
|
|
172
209
|
const data = this.packedData;
|
|
173
|
-
for (let i0 = 0, j0 =
|
|
174
|
-
let
|
|
175
|
-
|
|
176
|
-
t = data[i0 + i];
|
|
177
|
-
data[i0 + i] = data[j0 + i];
|
|
178
|
-
data[j0 + i] = t;
|
|
179
|
-
}
|
|
210
|
+
for (let i0 = 0, j0 = pLen * (this.numPoles - 1); i0 < j0; i0 += pLen, j0 -= pLen) {
|
|
211
|
+
for (let i = 0; i < pLen; i++)
|
|
212
|
+
[data[i0 + i], data[j0 + i]] = [data[j0 + i], data[i0 + i]];
|
|
180
213
|
}
|
|
181
214
|
this.knots.reflectKnots();
|
|
182
215
|
}
|
|
183
216
|
/**
|
|
184
|
-
* Test if the leading and trailing polygon coordinates are replicated in the manner of a "closed" bspline polygon
|
|
185
|
-
* to act as a normal bspline.
|
|
186
|
-
* @returns true if `degree` leading and trailing polygon blocks match
|
|
187
|
-
* @deprecated in 4.x. Use testClosablePolygon instead.
|
|
217
|
+
* Test if the leading and trailing polygon coordinates are replicated in the manner of a "closed" bspline polygon
|
|
218
|
+
* which has been expanded to act as a normal bspline.
|
|
219
|
+
* @returns true if `degree` leading and trailing polygon blocks match.
|
|
220
|
+
* @deprecated in 4.x. Use `testClosablePolygon` instead.
|
|
188
221
|
*/
|
|
189
222
|
testCloseablePolygon(mode) {
|
|
190
223
|
return this.testClosablePolygon(mode);
|
|
191
224
|
}
|
|
192
225
|
/**
|
|
193
|
-
* Test if the leading and trailing
|
|
194
|
-
*
|
|
195
|
-
* @
|
|
226
|
+
* Test if the leading and trailing poles are replicated in the manner of a "closed" B-spline function with wraparound
|
|
227
|
+
* control polygon.
|
|
228
|
+
* @param mode wrap mode, indicating the number of wraparound poles to check. If undefined, `knots.wrappable` is used.
|
|
229
|
+
* @returns true if the expected leading and trailing poles match, according to `mode`.
|
|
196
230
|
*/
|
|
197
231
|
testClosablePolygon(mode) {
|
|
198
232
|
if (mode === undefined)
|
|
@@ -214,9 +248,10 @@ export class BSpline1dNd {
|
|
|
214
248
|
}
|
|
215
249
|
return true;
|
|
216
250
|
}
|
|
217
|
-
/**
|
|
218
|
-
*
|
|
219
|
-
* @param
|
|
251
|
+
/**
|
|
252
|
+
* Insert the knot and resulting pole into the instance, optionally multiple times.
|
|
253
|
+
* @param knot the knot to be inserted (may already exist in the KnotVector).
|
|
254
|
+
* @param totalMultiplicity the total multiplicity of the knot on return.
|
|
220
255
|
*/
|
|
221
256
|
addKnot(knot, totalMultiplicity) {
|
|
222
257
|
if (knot < this.knots.leftKnot || knot > this.knots.rightKnot)
|