@itwin/core-geometry 4.1.0-dev.4 → 4.1.0-dev.40
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 +32 -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.d.ts +1 -0
- package/lib/cjs/core-geometry.d.ts.map +1 -1
- package/lib/cjs/core-geometry.js +4 -1
- package/lib/cjs/core-geometry.js.map +1 -1
- package/lib/cjs/curve/Arc3d.d.ts +71 -86
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +110 -96
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/ChainCollectorContext.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/CurveChain.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +61 -41
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +69 -46
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.d.ts +73 -46
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +100 -64
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurve.js.map +1 -1
- package/lib/cjs/curve/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXYZ.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.d.ts +45 -46
- package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js +39 -41
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.d.ts +138 -92
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js +115 -75
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/CurveProcessor.js.map +1 -1
- package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
- package/lib/cjs/curve/GeometryQuery.d.ts +26 -20
- package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
- package/lib/cjs/curve/GeometryQuery.js +11 -9
- package/lib/cjs/curve/GeometryQuery.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.d.ts +38 -27
- package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js +77 -39
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.d.ts +70 -51
- package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineString3d.js +120 -71
- package/lib/cjs/curve/LineString3d.js.map +1 -1
- package/lib/cjs/curve/Loop.d.ts +7 -5
- package/lib/cjs/curve/Loop.d.ts.map +1 -1
- package/lib/cjs/curve/Loop.js +18 -6
- package/lib/cjs/curve/Loop.js.map +1 -1
- package/lib/cjs/curve/ParityRegion.d.ts +7 -7
- package/lib/cjs/curve/ParityRegion.d.ts.map +1 -1
- package/lib/cjs/curve/ParityRegion.js +19 -11
- package/lib/cjs/curve/ParityRegion.js.map +1 -1
- package/lib/cjs/curve/Path.d.ts +6 -6
- package/lib/cjs/curve/Path.d.ts.map +1 -1
- package/lib/cjs/curve/Path.js +15 -9
- package/lib/cjs/curve/Path.js.map +1 -1
- package/lib/cjs/curve/PointString3d.js.map +1 -1
- package/lib/cjs/curve/ProxyCurve.d.ts +4 -6
- package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
- package/lib/cjs/curve/ProxyCurve.js +7 -7
- 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.d.ts +14 -13
- package/lib/cjs/curve/Query/StrokeCountMap.d.ts.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountMap.js +9 -8
- 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 +69 -47
- package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOps.js +70 -47
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/cjs/curve/StrokeOptions.d.ts +29 -21
- package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/cjs/curve/StrokeOptions.js +50 -24
- package/lib/cjs/curve/StrokeOptions.js.map +1 -1
- package/lib/cjs/curve/UnionRegion.d.ts +6 -5
- package/lib/cjs/curve/UnionRegion.d.ts.map +1 -1
- package/lib/cjs/curve/UnionRegion.js +17 -8
- package/lib/cjs/curve/UnionRegion.js.map +1 -1
- package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.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/CurveLengthContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts +2 -1
- package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/GapSearchContext.js +6 -2
- package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +4 -0
- package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js +5 -2
- 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.d.ts +14 -8
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts +56 -34
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +152 -87
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/SumLengthsContext.js +4 -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.d.ts +2 -2
- package/lib/cjs/geometry3d/Matrix3d.js +2 -2
- 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.d.ts +36 -32
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +35 -32
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
- package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
- package/lib/cjs/geometry3d/Range.d.ts +133 -93
- package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Range.js +296 -144
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
- package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
- package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
- package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
- package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/cjs/geometry4d/Map4d.js.map +1 -1
- package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
- package/lib/cjs/geometry4d/MomentData.js.map +1 -1
- package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
- package/lib/cjs/geometry4d/Point4d.js.map +1 -1
- package/lib/cjs/numerics/BandedSystem.js.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
- package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
- package/lib/cjs/numerics/Complex.js.map +1 -1
- package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/cjs/numerics/Newton.js.map +1 -1
- package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
- package/lib/cjs/numerics/PolarData.js.map +1 -1
- package/lib/cjs/numerics/Polynomials.js.map +1 -1
- package/lib/cjs/numerics/Quadrature.js.map +1 -1
- package/lib/cjs/numerics/Range1dArray.js.map +1 -1
- package/lib/cjs/numerics/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/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/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/solid/Box.js.map +1 -1
- package/lib/cjs/solid/Cone.js.map +1 -1
- package/lib/cjs/solid/LinearSweep.js.map +1 -1
- package/lib/cjs/solid/RotationalSweep.js.map +1 -1
- package/lib/cjs/solid/RuledSweep.js.map +1 -1
- package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
- package/lib/cjs/solid/Sphere.js.map +1 -1
- package/lib/cjs/solid/SweepContour.js.map +1 -1
- package/lib/cjs/solid/TorusPipe.js.map +1 -1
- package/lib/cjs/topology/ChainMerge.js.map +1 -1
- package/lib/cjs/topology/Graph.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/cjs/topology/MaskManager.js.map +1 -1
- package/lib/cjs/topology/Merging.js.map +1 -1
- package/lib/cjs/topology/RegularizeFace.js.map +1 -1
- package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
- package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
- package/lib/cjs/topology/Triangulation.js.map +1 -1
- package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
- package/lib/esm/Constant.js.map +1 -1
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
- package/lib/esm/bspline/BSplineSurface.js.map +1 -1
- package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
- package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/esm/bspline/KnotVector.js.map +1 -1
- package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
- package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
- package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
- package/lib/esm/clipping/ClipPlane.js.map +1 -1
- package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
- package/lib/esm/clipping/ClipUtils.js.map +1 -1
- package/lib/esm/clipping/ClipVector.js.map +1 -1
- package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/esm/core-geometry.d.ts +1 -0
- package/lib/esm/core-geometry.d.ts.map +1 -1
- package/lib/esm/core-geometry.js +2 -0
- package/lib/esm/core-geometry.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +71 -86
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +110 -96
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/ChainCollectorContext.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/CurveChain.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +61 -41
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +69 -46
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.d.ts +73 -46
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +100 -64
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurve.js.map +1 -1
- package/lib/esm/curve/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXYZ.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.d.ts +45 -46
- package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js +39 -41
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.d.ts +138 -92
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js +115 -75
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/CurveProcessor.js.map +1 -1
- package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
- package/lib/esm/curve/GeometryQuery.d.ts +26 -20
- package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
- package/lib/esm/curve/GeometryQuery.js +11 -9
- package/lib/esm/curve/GeometryQuery.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.d.ts +38 -27
- package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/esm/curve/LineSegment3d.js +77 -39
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.d.ts +70 -51
- package/lib/esm/curve/LineString3d.d.ts.map +1 -1
- package/lib/esm/curve/LineString3d.js +120 -71
- package/lib/esm/curve/LineString3d.js.map +1 -1
- package/lib/esm/curve/Loop.d.ts +7 -5
- package/lib/esm/curve/Loop.d.ts.map +1 -1
- package/lib/esm/curve/Loop.js +18 -6
- package/lib/esm/curve/Loop.js.map +1 -1
- package/lib/esm/curve/ParityRegion.d.ts +7 -7
- package/lib/esm/curve/ParityRegion.d.ts.map +1 -1
- package/lib/esm/curve/ParityRegion.js +19 -11
- package/lib/esm/curve/ParityRegion.js.map +1 -1
- package/lib/esm/curve/Path.d.ts +6 -6
- package/lib/esm/curve/Path.d.ts.map +1 -1
- package/lib/esm/curve/Path.js +15 -9
- package/lib/esm/curve/Path.js.map +1 -1
- package/lib/esm/curve/PointString3d.js.map +1 -1
- package/lib/esm/curve/ProxyCurve.d.ts +4 -6
- package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
- package/lib/esm/curve/ProxyCurve.js +7 -7
- 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.d.ts +14 -13
- package/lib/esm/curve/Query/StrokeCountMap.d.ts.map +1 -1
- package/lib/esm/curve/Query/StrokeCountMap.js +9 -8
- 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 +69 -47
- package/lib/esm/curve/RegionOps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOps.js +70 -47
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/esm/curve/StrokeOptions.d.ts +29 -21
- package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/esm/curve/StrokeOptions.js +50 -24
- package/lib/esm/curve/StrokeOptions.js.map +1 -1
- package/lib/esm/curve/UnionRegion.d.ts +6 -5
- package/lib/esm/curve/UnionRegion.d.ts.map +1 -1
- package/lib/esm/curve/UnionRegion.js +17 -8
- package/lib/esm/curve/UnionRegion.js.map +1 -1
- package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.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/CurveLengthContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/GapSearchContext.d.ts +2 -1
- package/lib/esm/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/GapSearchContext.js +6 -2
- package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +4 -0
- package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/MultiChainCollector.js +5 -2
- 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.d.ts +14 -8
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +56 -34
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +152 -87
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/SumLengthsContext.js +4 -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.d.ts +2 -2
- package/lib/esm/geometry3d/Matrix3d.js +2 -2
- 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.d.ts +36 -32
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +35 -32
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
- package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
- package/lib/esm/geometry3d/Range.d.ts +133 -93
- package/lib/esm/geometry3d/Range.d.ts.map +1 -1
- package/lib/esm/geometry3d/Range.js +296 -144
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js.map +1 -1
- package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/esm/geometry3d/Segment1d.js.map +1 -1
- package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
- package/lib/esm/geometry3d/XYZProps.js.map +1 -1
- package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/esm/geometry4d/Map4d.js.map +1 -1
- package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
- package/lib/esm/geometry4d/MomentData.js.map +1 -1
- package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
- package/lib/esm/geometry4d/Point4d.js.map +1 -1
- package/lib/esm/numerics/BandedSystem.js.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
- package/lib/esm/numerics/ClusterableArray.js.map +1 -1
- package/lib/esm/numerics/Complex.js.map +1 -1
- package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/esm/numerics/Newton.js.map +1 -1
- package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
- package/lib/esm/numerics/PolarData.js.map +1 -1
- package/lib/esm/numerics/Polynomials.js.map +1 -1
- package/lib/esm/numerics/Quadrature.js.map +1 -1
- package/lib/esm/numerics/Range1dArray.js.map +1 -1
- package/lib/esm/numerics/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/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/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/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
package/lib/esm/curve/Arc3d.js
CHANGED
|
@@ -21,58 +21,61 @@ import { LineString3d } from "./LineString3d";
|
|
|
21
21
|
import { StrokeOptions } from "./StrokeOptions";
|
|
22
22
|
/**
|
|
23
23
|
* Circular or elliptic arc.
|
|
24
|
-
*
|
|
25
24
|
* * The angle to point equation is:
|
|
26
|
-
*
|
|
27
|
-
* * `X = center + cos(theta) * vector0 + sin(theta) * vector90`
|
|
25
|
+
* * `X = center + cos(theta) * vector0 + sin(theta) * vector90`
|
|
28
26
|
* * When the two vectors are perpendicular and have equal length, it is a true circle.
|
|
29
27
|
* * Non-perpendicular vectors are always elliptic.
|
|
30
|
-
* *
|
|
28
|
+
* * Vectors of unequal length are always elliptic.
|
|
31
29
|
* * To create an ellipse in the common "major and minor axis" form of an ellipse:
|
|
32
30
|
* ** vector0 is the vector from the center to the major axis extreme.
|
|
33
31
|
* ** vector90 is the vector from the center to the minor axis extreme.
|
|
34
|
-
* ** note
|
|
35
|
-
* *
|
|
36
|
-
* * The unrestricted form is much easier to work with for common calculations -- stroking, projection to 2d,
|
|
32
|
+
* ** note that constructing the vectors to the extreme points makes them perpendicular.
|
|
33
|
+
* * The method toScaledMatrix3d() can be called to convert the unrestricted vector0,vector90 to perpendicular form.
|
|
34
|
+
* * The unrestricted form is much easier to work with for common calculations -- stroking, projection to 2d,
|
|
35
|
+
* intersection with plane.
|
|
37
36
|
* @public
|
|
38
37
|
*/
|
|
39
38
|
class Arc3d extends CurvePrimitive {
|
|
40
|
-
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
39
|
+
/** Test if this and other are both instances of Arc3d. */
|
|
40
|
+
isSameGeometryClass(other) {
|
|
41
|
+
return other instanceof Arc3d;
|
|
42
|
+
}
|
|
43
|
+
/** Read property for (clone of) center */
|
|
44
|
+
get center() {
|
|
45
|
+
return this._center.clone();
|
|
46
|
+
}
|
|
47
|
+
/** Read property for (clone of) vector0 */
|
|
48
|
+
get vector0() {
|
|
49
|
+
return this._matrix.columnX();
|
|
50
|
+
}
|
|
51
|
+
/** Read property for (clone of) vector90 */
|
|
52
|
+
get vector90() {
|
|
53
|
+
return this._matrix.columnY();
|
|
54
|
+
}
|
|
55
|
+
/** Read property for (clone of) plane normal, with arbitrary length. */
|
|
56
|
+
get perpendicularVector() {
|
|
57
|
+
return this._matrix.columnZ();
|
|
58
|
+
}
|
|
59
|
+
/** Read property for (clone of) matrix of vector0, vector90, unit normal */
|
|
60
|
+
matrixClone() {
|
|
61
|
+
return this._matrix.clone();
|
|
62
|
+
}
|
|
63
|
+
/** Read property for (reference to) matrix of vector0, vector90, unit normal */
|
|
64
|
+
get matrixRef() {
|
|
65
|
+
return this._matrix;
|
|
66
|
+
}
|
|
68
67
|
/** Sweep of the angle. */
|
|
69
|
-
get sweep() {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
68
|
+
get sweep() {
|
|
69
|
+
return this._sweep;
|
|
70
|
+
}
|
|
71
|
+
set sweep(value) {
|
|
72
|
+
this._sweep.setFrom(value);
|
|
73
|
+
}
|
|
74
|
+
/** An Arc3d extends along its complete elliptic arc */
|
|
75
|
+
get isExtensibleFractionSpace() {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
// constructor copies the pointers
|
|
76
79
|
constructor(center, matrix, sweep) {
|
|
77
80
|
super();
|
|
78
81
|
/** String name for schema properties */
|
|
@@ -82,7 +85,7 @@ class Arc3d extends CurvePrimitive {
|
|
|
82
85
|
this._sweep = sweep;
|
|
83
86
|
}
|
|
84
87
|
/**
|
|
85
|
-
*
|
|
88
|
+
* Return a clone of the arc, with transform applied
|
|
86
89
|
* @param transform
|
|
87
90
|
*/
|
|
88
91
|
cloneTransformed(transform) {
|
|
@@ -110,9 +113,7 @@ class Arc3d extends CurvePrimitive {
|
|
|
110
113
|
set(center, matrix, sweep) {
|
|
111
114
|
this.setRefs(center.clone(), matrix.clone(), sweep ? sweep.clone() : AngleSweep.create360());
|
|
112
115
|
}
|
|
113
|
-
/**
|
|
114
|
-
* Copy center, matrix, and sweep from other Arc3d.
|
|
115
|
-
*/
|
|
116
|
+
/** Copy center, matrix, and sweep from other Arc3d */
|
|
116
117
|
setFrom(other) {
|
|
117
118
|
this._center.setFrom(other._center);
|
|
118
119
|
this._matrix.setFrom(other._matrix);
|
|
@@ -170,12 +171,14 @@ class Arc3d extends CurvePrimitive {
|
|
|
170
171
|
* @param result optional preallocated result
|
|
171
172
|
*/
|
|
172
173
|
static create(center, vector0, vector90, sweep, result) {
|
|
173
|
-
const normal = vector0.unitCrossProductWithDefault(vector90, 0, 0, 0); // normal will be 000 for degenerate case
|
|
174
|
+
const normal = vector0.unitCrossProductWithDefault(vector90, 0, 0, 0); // normal will be 000 for degenerate case
|
|
174
175
|
const matrix = Matrix3d.createColumns(vector0, vector90, normal);
|
|
175
176
|
return Arc3d.createRefs(center !== undefined ? center.clone() : Point3d.create(0, 0, 0), matrix, sweep ? sweep.clone() : AngleSweep.create360(), result);
|
|
176
177
|
}
|
|
177
|
-
/**
|
|
178
|
+
/**
|
|
179
|
+
* Return a clone of this arc, projected to given z value.
|
|
178
180
|
* * If `z` is omitted, the clone is at the z of the center.
|
|
181
|
+
* * This function projects the arc into a plane parallel to xy-plane.
|
|
179
182
|
* * Note that projection to fixed z can change circle into ellipse (and (rarely) ellipse to circle)
|
|
180
183
|
*/
|
|
181
184
|
cloneAtZ(z) {
|
|
@@ -184,7 +187,8 @@ class Arc3d extends CurvePrimitive {
|
|
|
184
187
|
return Arc3d.createXYZXYZXYZ(this._center.x, this._center.y, this._center.z, this._matrix.coffs[0], this._matrix.coffs[3], 0, this._matrix.coffs[1], this._matrix.coffs[4], 0, this._sweep);
|
|
185
188
|
}
|
|
186
189
|
/**
|
|
187
|
-
* Create an arc by center (cx,cy,xz) with vectors (ux,uy,uz) and (vx,vy,vz) to points at 0 and 90 degrees in
|
|
190
|
+
* Create an arc by center (cx,cy,xz) with vectors (ux,uy,uz) and (vx,vy,vz) to points at 0 and 90 degrees in
|
|
191
|
+
* parameter space.
|
|
188
192
|
* @param result optional preallocated result
|
|
189
193
|
*/
|
|
190
194
|
static createXYZXYZXYZ(cx, cy, cz, ux, uy, uz, vx, vy, vz, sweep, result) {
|
|
@@ -203,7 +207,8 @@ class Arc3d extends CurvePrimitive {
|
|
|
203
207
|
const largeAxis = Geometry.maxXY(magX, magY);
|
|
204
208
|
return jacobian / (largeAxis * largeAxis);
|
|
205
209
|
}
|
|
206
|
-
/**
|
|
210
|
+
/**
|
|
211
|
+
* Create a circular arc defined by start point, any intermediate point, and end point.
|
|
207
212
|
* If the points are colinear, assemble them into a linestring.
|
|
208
213
|
*/
|
|
209
214
|
static createCircularStartMiddleEnd(pointA, pointB, pointC, result) {
|
|
@@ -266,7 +271,8 @@ class Arc3d extends CurvePrimitive {
|
|
|
266
271
|
result.direction.scaleInPlace(this._sweep.sweepRadians);
|
|
267
272
|
return result;
|
|
268
273
|
}
|
|
269
|
-
/**
|
|
274
|
+
/**
|
|
275
|
+
* Construct a plane with
|
|
270
276
|
* * origin at the fractional position along the arc
|
|
271
277
|
* * x axis is the first derivative, i.e. tangent along the arc
|
|
272
278
|
* * y axis is the second derivative, i.e. in the plane and on the center side of the tangent.
|
|
@@ -344,12 +350,16 @@ class Arc3d extends CurvePrimitive {
|
|
|
344
350
|
* Return the start point tof the arc.
|
|
345
351
|
* @param result optional preallocated result
|
|
346
352
|
*/
|
|
347
|
-
startPoint(result) {
|
|
353
|
+
startPoint(result) {
|
|
354
|
+
return this.fractionToPoint(0.0, result);
|
|
355
|
+
}
|
|
348
356
|
/**
|
|
349
357
|
* Return the end point tof the arc.
|
|
350
358
|
* @param result optional preallocated result
|
|
351
359
|
*/
|
|
352
|
-
endPoint(result) {
|
|
360
|
+
endPoint(result) {
|
|
361
|
+
return this.fractionToPoint(1.0, result);
|
|
362
|
+
}
|
|
353
363
|
/** * If this is a circular arc, return the simple length derived from radius and sweep.
|
|
354
364
|
* * Otherwise (i.e. if this elliptical) fall through to CurvePrimitive base implementation which
|
|
355
365
|
* Uses quadrature.
|
|
@@ -357,7 +367,8 @@ class Arc3d extends CurvePrimitive {
|
|
|
357
367
|
curveLength() {
|
|
358
368
|
return this.curveLengthBetweenFractions(0, 1);
|
|
359
369
|
}
|
|
360
|
-
/**
|
|
370
|
+
/**
|
|
371
|
+
* * If this is a circular arc, return the simple length derived from radius and sweep.
|
|
361
372
|
* * Otherwise (i.e. if this elliptical) fall through CurvePrimitive integrator.
|
|
362
373
|
*/
|
|
363
374
|
curveLengthBetweenFractions(fraction0, fraction1) {
|
|
@@ -385,9 +396,9 @@ class Arc3d extends CurvePrimitive {
|
|
|
385
396
|
/**
|
|
386
397
|
* Return an approximate (but easy to compute) arc length.
|
|
387
398
|
* The estimate is:
|
|
388
|
-
* * Form 8 chords on full circle, proportionally fewer for partials
|
|
389
|
-
* *
|
|
390
|
-
* * For a circle, we know this crude approximation has to be increased by a factor (theta/(2
|
|
399
|
+
* * Form 8 chords on full circle, proportionally fewer for partials (but 2 extras if less than half circle).
|
|
400
|
+
* * Sum the chord lengths.
|
|
401
|
+
* * For a circle, we know this crude approximation has to be increased by a factor (theta/(2*sin(theta/2))).
|
|
391
402
|
* * Apply that factor.
|
|
392
403
|
* * Experiments confirm that this is within 3 percent for a variety of eccentricities and arc sweeps.
|
|
393
404
|
*/
|
|
@@ -452,7 +463,8 @@ class Arc3d extends CurvePrimitive {
|
|
|
452
463
|
/**
|
|
453
464
|
* Return details of the closest point on the arc, optionally extending to full ellipse.
|
|
454
465
|
* @param spacePoint search for point closest to this point.
|
|
455
|
-
* @param extend if true, consider projections to the complete ellipse.
|
|
466
|
+
* @param extend if true, consider projections to the complete ellipse. If false, consider only endpoints and
|
|
467
|
+
* projections within the arc sweep.
|
|
456
468
|
* @param result optional preallocated result.
|
|
457
469
|
*/
|
|
458
470
|
closestPoint(spacePoint, extend, result) {
|
|
@@ -494,8 +506,11 @@ class Arc3d extends CurvePrimitive {
|
|
|
494
506
|
return result;
|
|
495
507
|
}
|
|
496
508
|
/** Reverse the sweep of the arc. */
|
|
497
|
-
reverseInPlace() {
|
|
498
|
-
|
|
509
|
+
reverseInPlace() {
|
|
510
|
+
this._sweep.reverseInPlace();
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Apply a transform to the arc basis vectors.
|
|
499
514
|
* * nonuniform (i.e. skewing) transforms are allowed.
|
|
500
515
|
* * The transformed vector0 and vector90 are NOT squared up as major minor axes. (This is a good feature!!)
|
|
501
516
|
*/
|
|
@@ -517,18 +532,14 @@ class Arc3d extends CurvePrimitive {
|
|
|
517
532
|
&& Geometry.isSmallMetricDistance(this._matrix.dotColumnX(normal))
|
|
518
533
|
&& Geometry.isSmallMetricDistance(this._matrix.dotColumnY(normal));
|
|
519
534
|
}
|
|
520
|
-
/**
|
|
521
|
-
* Return true if the vector0 and vector90 are of equal length and perpendicular.
|
|
522
|
-
*/
|
|
535
|
+
/** Return true if the vector0 and vector90 are of equal length and perpendicular. */
|
|
523
536
|
get isCircular() {
|
|
524
537
|
const axx = this._matrix.columnXMagnitudeSquared();
|
|
525
538
|
const ayy = this._matrix.columnYMagnitudeSquared();
|
|
526
539
|
const axy = this._matrix.columnXDotColumnY();
|
|
527
540
|
return Angle.isPerpendicularDotSet(axx, ayy, axy) && Geometry.isSameCoordinateSquared(axx, ayy);
|
|
528
541
|
}
|
|
529
|
-
/**
|
|
530
|
-
* Return true if the vector0 and vector90 are of equal length and perpendicular.
|
|
531
|
-
*/
|
|
542
|
+
/** Return true if the vector0 and vector90 are of equal length and perpendicular. */
|
|
532
543
|
circularRadiusXY() {
|
|
533
544
|
const ux = this._matrix.at(0, 0);
|
|
534
545
|
const uy = this._matrix.at(1, 0);
|
|
@@ -545,9 +556,11 @@ class Arc3d extends CurvePrimitive {
|
|
|
545
556
|
return this.isCircular ? this._matrix.columnXMagnitude() : undefined;
|
|
546
557
|
}
|
|
547
558
|
/** Return the larger of the two defining vectors. */
|
|
548
|
-
maxVectorLength() {
|
|
559
|
+
maxVectorLength() {
|
|
560
|
+
return Math.max(this._matrix.columnXMagnitude(), this._matrix.columnYMagnitude());
|
|
561
|
+
}
|
|
549
562
|
/**
|
|
550
|
-
*
|
|
563
|
+
* Compute intersections with a plane.
|
|
551
564
|
* @param plane plane to intersect
|
|
552
565
|
* @param result array of locations on the curve.
|
|
553
566
|
*/
|
|
@@ -611,9 +624,9 @@ class Arc3d extends CurvePrimitive {
|
|
|
611
624
|
range.extend(highPoint);
|
|
612
625
|
}
|
|
613
626
|
/**
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
627
|
+
* Returns a (high accuracy) range of the curve between fractional positions
|
|
628
|
+
* * Default implementation returns teh range of the curve from clonePartialCurve
|
|
629
|
+
*/
|
|
617
630
|
rangeBetweenFractions(fraction0, fraction1, transform) {
|
|
618
631
|
const sweep = AngleSweep.createStartEndRadians(this.sweep.fractionToRadians(fraction0), this.sweep.fractionToRadians(fraction1));
|
|
619
632
|
const range = Range3d.create();
|
|
@@ -636,9 +649,7 @@ class Arc3d extends CurvePrimitive {
|
|
|
636
649
|
result.set(plane.altitude(this._center), plane.velocityXYZ(this._matrix.coffs[0], this._matrix.coffs[3], this._matrix.coffs[6]), plane.velocityXYZ(this._matrix.coffs[1], this._matrix.coffs[4], this._matrix.coffs[7]));
|
|
637
650
|
return result;
|
|
638
651
|
}
|
|
639
|
-
/**
|
|
640
|
-
* Create a new arc which is a unit circle centered at the origin.
|
|
641
|
-
*/
|
|
652
|
+
/** Create a new arc which is a unit circle centered at the origin. */
|
|
642
653
|
static createUnitCircle() {
|
|
643
654
|
return Arc3d.createRefs(Point3d.create(0, 0, 0), Matrix3d.createIdentity(), AngleSweep.create360());
|
|
644
655
|
}
|
|
@@ -669,8 +680,7 @@ class Arc3d extends CurvePrimitive {
|
|
|
669
680
|
setVector0Vector90(vector0, vector90) {
|
|
670
681
|
this._matrix.setColumns(vector0, vector90, vector0.unitCrossProductWithDefault(vector90, 0, 0, 0));
|
|
671
682
|
}
|
|
672
|
-
/** Return the arc definition with rigid matrix form with axis radii
|
|
673
|
-
*/
|
|
683
|
+
/** Return the arc definition with rigid matrix form with axis radii */
|
|
674
684
|
toScaledMatrix3d() {
|
|
675
685
|
const angleData = Angle.dotProductsToHalfAngleTrigValues(this._matrix.columnXMagnitudeSquared(), this._matrix.columnYMagnitudeSquared(), this._matrix.columnXDotColumnY(), true);
|
|
676
686
|
const vector0A = this._matrix.multiplyXY(angleData.c, angleData.s);
|
|
@@ -684,8 +694,7 @@ class Arc3d extends CurvePrimitive {
|
|
|
684
694
|
sweep: this.sweep.cloneMinusRadians(angleData.radians),
|
|
685
695
|
};
|
|
686
696
|
}
|
|
687
|
-
/** Return the arc definition with center, two vectors, and angle sweep;
|
|
688
|
-
*/
|
|
697
|
+
/** Return the arc definition with center, two vectors, and angle sweep; */
|
|
689
698
|
toVectors() {
|
|
690
699
|
return {
|
|
691
700
|
center: this.center,
|
|
@@ -694,8 +703,7 @@ class Arc3d extends CurvePrimitive {
|
|
|
694
703
|
sweep: this.sweep,
|
|
695
704
|
};
|
|
696
705
|
}
|
|
697
|
-
/** Return the arc definition with center, two vectors, and angle sweep, optionally transformed.
|
|
698
|
-
*/
|
|
706
|
+
/** Return the arc definition with center, two vectors, and angle sweep, optionally transformed. */
|
|
699
707
|
toTransformedVectors(transform) {
|
|
700
708
|
return transform ? {
|
|
701
709
|
center: transform.multiplyPoint3d(this._center),
|
|
@@ -710,8 +718,7 @@ class Arc3d extends CurvePrimitive {
|
|
|
710
718
|
sweep: this.sweep,
|
|
711
719
|
};
|
|
712
720
|
}
|
|
713
|
-
/** Return the arc definition with center, two vectors, and angle sweep, transformed to 4d points.
|
|
714
|
-
*/
|
|
721
|
+
/** Return the arc definition with center, two vectors, and angle sweep, transformed to 4d points. */
|
|
715
722
|
toTransformedPoint4d(matrix) {
|
|
716
723
|
return {
|
|
717
724
|
center: matrix.multiplyPoint3d(this._center, 1.0),
|
|
@@ -755,9 +762,7 @@ class Arc3d extends CurvePrimitive {
|
|
|
755
762
|
vector90: this._matrix.columnY().toJSON(),
|
|
756
763
|
};
|
|
757
764
|
}
|
|
758
|
-
/**
|
|
759
|
-
* Test if this arc is almost equal to another GeometryQuery object
|
|
760
|
-
*/
|
|
765
|
+
/** Test if this arc is almost equal to another GeometryQuery object */
|
|
761
766
|
isAlmostEqual(otherGeometry) {
|
|
762
767
|
if (otherGeometry instanceof Arc3d) {
|
|
763
768
|
const other = otherGeometry;
|
|
@@ -780,7 +785,7 @@ class Arc3d extends CurvePrimitive {
|
|
|
780
785
|
handler.endCurvePrimitive(this);
|
|
781
786
|
}
|
|
782
787
|
/**
|
|
783
|
-
*
|
|
788
|
+
* Return the stroke count required for given options.
|
|
784
789
|
* @param options StrokeOptions that determine count
|
|
785
790
|
*/
|
|
786
791
|
computeStrokeCountForOptions(options) {
|
|
@@ -798,7 +803,8 @@ class Arc3d extends CurvePrimitive {
|
|
|
798
803
|
dispatchToGeometryHandler(handler) {
|
|
799
804
|
return handler.handleArc3d(this);
|
|
800
805
|
}
|
|
801
|
-
/**
|
|
806
|
+
/**
|
|
807
|
+
* Return (if possible) an arc which is a portion of this curve.
|
|
802
808
|
* @param fractionA [in] start fraction
|
|
803
809
|
* @param fractionB [in] end fraction
|
|
804
810
|
*/
|
|
@@ -812,8 +818,10 @@ class Arc3d extends CurvePrimitive {
|
|
|
812
818
|
arcB.sweep.setStartEndRadians(this.sweep.fractionToRadians(fractionA), this.sweep.fractionToRadians(fractionB));
|
|
813
819
|
return arcB;
|
|
814
820
|
}
|
|
815
|
-
/**
|
|
816
|
-
*
|
|
821
|
+
/**
|
|
822
|
+
* Return an arc whose basis vectors are rotated by given angle within the current basis space.
|
|
823
|
+
* * the result arc will have its zero-degree point (new `vector0`) at the current
|
|
824
|
+
* `vector0 * cos(theta) + vector90 * sin(theta)`
|
|
817
825
|
* * the result sweep is adjusted so all fractional coordinates (e.g. start and end) evaluate to the same xyz.
|
|
818
826
|
* * Specifically, theta is subtracted from the original start and end angles.
|
|
819
827
|
* @param theta the angle (in the input arc space) which is to become the 0-degree point in the new arc.
|
|
@@ -830,7 +838,8 @@ class Arc3d extends CurvePrimitive {
|
|
|
830
838
|
/**
|
|
831
839
|
* Find intervals of this CurvePrimitive that are interior to a clipper
|
|
832
840
|
* @param clipper clip structure (e.g.clip planes)
|
|
833
|
-
* @param announce(optional) function to be called announcing fractional intervals"
|
|
841
|
+
* @param announce(optional) function to be called announcing fractional intervals"
|
|
842
|
+
* ` announce(fraction0, fraction1, curvePrimitive)`
|
|
834
843
|
* @returns true if any "in" segments are announced.
|
|
835
844
|
*/
|
|
836
845
|
announceClipIntervals(clipper, announce) {
|
|
@@ -851,8 +860,10 @@ class Arc3d extends CurvePrimitive {
|
|
|
851
860
|
* * Return the arc along with the fractional positions of the tangency points.
|
|
852
861
|
* * In the returned object:
|
|
853
862
|
* * `arc` is the (bounded) arc
|
|
854
|
-
* * `fraction10` is the tangency point's position as an interpolating fraction of the line segment from
|
|
855
|
-
*
|
|
863
|
+
* * `fraction10` is the tangency point's position as an interpolating fraction of the line segment from
|
|
864
|
+
* `point1` (backwards) to `point0`
|
|
865
|
+
* * `fraction12` is the tangency point's position as an interpolating fraction of the line segment from
|
|
866
|
+
* `point1` (forward) to `point2`
|
|
856
867
|
* * `point` is the `point1` input.
|
|
857
868
|
* * If unable to construct the arc:
|
|
858
869
|
* * `point` is the `point1` input.
|
|
@@ -926,7 +937,9 @@ class Arc3d extends CurvePrimitive {
|
|
|
926
937
|
const r0new = r0 - sign * options.leftOffsetDistance;
|
|
927
938
|
const r90 = this.isCircular ? r0 : arcXY.matrixRef.columnYMagnitude();
|
|
928
939
|
const r90new = this.isCircular ? r0new : r90 - sign * options.leftOffsetDistance;
|
|
929
|
-
if (!Geometry.isSmallMetricDistance(r0new)
|
|
940
|
+
if (!Geometry.isSmallMetricDistance(r0new)
|
|
941
|
+
&& (r0 * r0new > 0.0)
|
|
942
|
+
&& (this.isCircular || (!Geometry.isSmallMetricDistance(r90new) && (r90 * r90new > 0.0)))) {
|
|
930
943
|
const factor0 = r0new / r0;
|
|
931
944
|
const factor90 = this.isCircular ? factor0 : r90new / r90;
|
|
932
945
|
const matrix = arcXY.matrixClone();
|
|
@@ -942,7 +955,8 @@ class Arc3d extends CurvePrimitive {
|
|
|
942
955
|
this.emitStrokableParts(handler, options.strokeOptions);
|
|
943
956
|
return handler.claimResult();
|
|
944
957
|
}
|
|
945
|
-
/**
|
|
958
|
+
/**
|
|
959
|
+
* Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
|
|
946
960
|
* @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
|
|
947
961
|
* @param lowHigh optional receiver for output
|
|
948
962
|
* @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
|
|
@@ -956,9 +970,9 @@ Arc3d._workPointB = Point3d.create();
|
|
|
956
970
|
Arc3d._workPointC = Point3d.create();
|
|
957
971
|
Arc3d._workVectorU = Vector3d.create();
|
|
958
972
|
Arc3d._workVectorV = Vector3d.create();
|
|
959
|
-
// !! misspelled Gauss in the published static
|
|
973
|
+
// !! misspelled Gauss in the published static !! Declare it ok.
|
|
960
974
|
// cspell::word Guass
|
|
961
|
-
/** Gauss point quadrature count for evaluating curve length.
|
|
975
|
+
/** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep) */
|
|
962
976
|
Arc3d.quadratureGuassCount = 5;
|
|
963
977
|
/** In quadrature for arc length, use this interval (divided by quickEccentricity) */
|
|
964
978
|
Arc3d.quadratureIntervalAngleDegrees = 10.0;
|