@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/cjs/curve/Arc3d.js
CHANGED
|
@@ -24,58 +24,61 @@ const LineString3d_1 = require("./LineString3d");
|
|
|
24
24
|
const StrokeOptions_1 = require("./StrokeOptions");
|
|
25
25
|
/**
|
|
26
26
|
* Circular or elliptic arc.
|
|
27
|
-
*
|
|
28
27
|
* * The angle to point equation is:
|
|
29
|
-
*
|
|
30
|
-
* * `X = center + cos(theta) * vector0 + sin(theta) * vector90`
|
|
28
|
+
* * `X = center + cos(theta) * vector0 + sin(theta) * vector90`
|
|
31
29
|
* * When the two vectors are perpendicular and have equal length, it is a true circle.
|
|
32
30
|
* * Non-perpendicular vectors are always elliptic.
|
|
33
|
-
* *
|
|
31
|
+
* * Vectors of unequal length are always elliptic.
|
|
34
32
|
* * To create an ellipse in the common "major and minor axis" form of an ellipse:
|
|
35
33
|
* ** vector0 is the vector from the center to the major axis extreme.
|
|
36
34
|
* ** vector90 is the vector from the center to the minor axis extreme.
|
|
37
|
-
* ** note
|
|
38
|
-
* *
|
|
39
|
-
* * The unrestricted form is much easier to work with for common calculations -- stroking, projection to 2d,
|
|
35
|
+
* ** note that constructing the vectors to the extreme points makes them perpendicular.
|
|
36
|
+
* * The method toScaledMatrix3d() can be called to convert the unrestricted vector0,vector90 to perpendicular form.
|
|
37
|
+
* * The unrestricted form is much easier to work with for common calculations -- stroking, projection to 2d,
|
|
38
|
+
* intersection with plane.
|
|
40
39
|
* @public
|
|
41
40
|
*/
|
|
42
41
|
class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
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
|
-
/**
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
42
|
+
/** Test if this and other are both instances of Arc3d. */
|
|
43
|
+
isSameGeometryClass(other) {
|
|
44
|
+
return other instanceof Arc3d;
|
|
45
|
+
}
|
|
46
|
+
/** Read property for (clone of) center */
|
|
47
|
+
get center() {
|
|
48
|
+
return this._center.clone();
|
|
49
|
+
}
|
|
50
|
+
/** Read property for (clone of) vector0 */
|
|
51
|
+
get vector0() {
|
|
52
|
+
return this._matrix.columnX();
|
|
53
|
+
}
|
|
54
|
+
/** Read property for (clone of) vector90 */
|
|
55
|
+
get vector90() {
|
|
56
|
+
return this._matrix.columnY();
|
|
57
|
+
}
|
|
58
|
+
/** Read property for (clone of) plane normal, with arbitrary length. */
|
|
59
|
+
get perpendicularVector() {
|
|
60
|
+
return this._matrix.columnZ();
|
|
61
|
+
}
|
|
62
|
+
/** Read property for (clone of) matrix of vector0, vector90, unit normal */
|
|
63
|
+
matrixClone() {
|
|
64
|
+
return this._matrix.clone();
|
|
65
|
+
}
|
|
66
|
+
/** Read property for (reference to) matrix of vector0, vector90, unit normal */
|
|
67
|
+
get matrixRef() {
|
|
68
|
+
return this._matrix;
|
|
69
|
+
}
|
|
71
70
|
/** Sweep of the angle. */
|
|
72
|
-
get sweep() {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
get sweep() {
|
|
72
|
+
return this._sweep;
|
|
73
|
+
}
|
|
74
|
+
set sweep(value) {
|
|
75
|
+
this._sweep.setFrom(value);
|
|
76
|
+
}
|
|
77
|
+
/** An Arc3d extends along its complete elliptic arc */
|
|
78
|
+
get isExtensibleFractionSpace() {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
// constructor copies the pointers
|
|
79
82
|
constructor(center, matrix, sweep) {
|
|
80
83
|
super();
|
|
81
84
|
/** String name for schema properties */
|
|
@@ -85,7 +88,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
85
88
|
this._sweep = sweep;
|
|
86
89
|
}
|
|
87
90
|
/**
|
|
88
|
-
*
|
|
91
|
+
* Return a clone of the arc, with transform applied
|
|
89
92
|
* @param transform
|
|
90
93
|
*/
|
|
91
94
|
cloneTransformed(transform) {
|
|
@@ -113,9 +116,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
113
116
|
set(center, matrix, sweep) {
|
|
114
117
|
this.setRefs(center.clone(), matrix.clone(), sweep ? sweep.clone() : AngleSweep_1.AngleSweep.create360());
|
|
115
118
|
}
|
|
116
|
-
/**
|
|
117
|
-
* Copy center, matrix, and sweep from other Arc3d.
|
|
118
|
-
*/
|
|
119
|
+
/** Copy center, matrix, and sweep from other Arc3d */
|
|
119
120
|
setFrom(other) {
|
|
120
121
|
this._center.setFrom(other._center);
|
|
121
122
|
this._matrix.setFrom(other._matrix);
|
|
@@ -173,12 +174,14 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
173
174
|
* @param result optional preallocated result
|
|
174
175
|
*/
|
|
175
176
|
static create(center, vector0, vector90, sweep, result) {
|
|
176
|
-
const normal = vector0.unitCrossProductWithDefault(vector90, 0, 0, 0); // normal will be 000 for degenerate case
|
|
177
|
+
const normal = vector0.unitCrossProductWithDefault(vector90, 0, 0, 0); // normal will be 000 for degenerate case
|
|
177
178
|
const matrix = Matrix3d_1.Matrix3d.createColumns(vector0, vector90, normal);
|
|
178
179
|
return Arc3d.createRefs(center !== undefined ? center.clone() : Point3dVector3d_1.Point3d.create(0, 0, 0), matrix, sweep ? sweep.clone() : AngleSweep_1.AngleSweep.create360(), result);
|
|
179
180
|
}
|
|
180
|
-
/**
|
|
181
|
+
/**
|
|
182
|
+
* Return a clone of this arc, projected to given z value.
|
|
181
183
|
* * If `z` is omitted, the clone is at the z of the center.
|
|
184
|
+
* * This function projects the arc into a plane parallel to xy-plane.
|
|
182
185
|
* * Note that projection to fixed z can change circle into ellipse (and (rarely) ellipse to circle)
|
|
183
186
|
*/
|
|
184
187
|
cloneAtZ(z) {
|
|
@@ -187,7 +190,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
187
190
|
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);
|
|
188
191
|
}
|
|
189
192
|
/**
|
|
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
|
|
193
|
+
* 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
|
|
194
|
+
* parameter space.
|
|
191
195
|
* @param result optional preallocated result
|
|
192
196
|
*/
|
|
193
197
|
static createXYZXYZXYZ(cx, cy, cz, ux, uy, uz, vx, vy, vz, sweep, result) {
|
|
@@ -206,7 +210,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
206
210
|
const largeAxis = Geometry_1.Geometry.maxXY(magX, magY);
|
|
207
211
|
return jacobian / (largeAxis * largeAxis);
|
|
208
212
|
}
|
|
209
|
-
/**
|
|
213
|
+
/**
|
|
214
|
+
* Create a circular arc defined by start point, any intermediate point, and end point.
|
|
210
215
|
* If the points are colinear, assemble them into a linestring.
|
|
211
216
|
*/
|
|
212
217
|
static createCircularStartMiddleEnd(pointA, pointB, pointC, result) {
|
|
@@ -269,7 +274,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
269
274
|
result.direction.scaleInPlace(this._sweep.sweepRadians);
|
|
270
275
|
return result;
|
|
271
276
|
}
|
|
272
|
-
/**
|
|
277
|
+
/**
|
|
278
|
+
* Construct a plane with
|
|
273
279
|
* * origin at the fractional position along the arc
|
|
274
280
|
* * x axis is the first derivative, i.e. tangent along the arc
|
|
275
281
|
* * y axis is the second derivative, i.e. in the plane and on the center side of the tangent.
|
|
@@ -347,12 +353,16 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
347
353
|
* Return the start point tof the arc.
|
|
348
354
|
* @param result optional preallocated result
|
|
349
355
|
*/
|
|
350
|
-
startPoint(result) {
|
|
356
|
+
startPoint(result) {
|
|
357
|
+
return this.fractionToPoint(0.0, result);
|
|
358
|
+
}
|
|
351
359
|
/**
|
|
352
360
|
* Return the end point tof the arc.
|
|
353
361
|
* @param result optional preallocated result
|
|
354
362
|
*/
|
|
355
|
-
endPoint(result) {
|
|
363
|
+
endPoint(result) {
|
|
364
|
+
return this.fractionToPoint(1.0, result);
|
|
365
|
+
}
|
|
356
366
|
/** * If this is a circular arc, return the simple length derived from radius and sweep.
|
|
357
367
|
* * Otherwise (i.e. if this elliptical) fall through to CurvePrimitive base implementation which
|
|
358
368
|
* Uses quadrature.
|
|
@@ -360,7 +370,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
360
370
|
curveLength() {
|
|
361
371
|
return this.curveLengthBetweenFractions(0, 1);
|
|
362
372
|
}
|
|
363
|
-
/**
|
|
373
|
+
/**
|
|
374
|
+
* * If this is a circular arc, return the simple length derived from radius and sweep.
|
|
364
375
|
* * Otherwise (i.e. if this elliptical) fall through CurvePrimitive integrator.
|
|
365
376
|
*/
|
|
366
377
|
curveLengthBetweenFractions(fraction0, fraction1) {
|
|
@@ -388,9 +399,9 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
388
399
|
/**
|
|
389
400
|
* Return an approximate (but easy to compute) arc length.
|
|
390
401
|
* The estimate is:
|
|
391
|
-
* * Form 8 chords on full circle, proportionally fewer for partials
|
|
392
|
-
* *
|
|
393
|
-
* * For a circle, we know this crude approximation has to be increased by a factor (theta/(2
|
|
402
|
+
* * Form 8 chords on full circle, proportionally fewer for partials (but 2 extras if less than half circle).
|
|
403
|
+
* * Sum the chord lengths.
|
|
404
|
+
* * For a circle, we know this crude approximation has to be increased by a factor (theta/(2*sin(theta/2))).
|
|
394
405
|
* * Apply that factor.
|
|
395
406
|
* * Experiments confirm that this is within 3 percent for a variety of eccentricities and arc sweeps.
|
|
396
407
|
*/
|
|
@@ -455,7 +466,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
455
466
|
/**
|
|
456
467
|
* Return details of the closest point on the arc, optionally extending to full ellipse.
|
|
457
468
|
* @param spacePoint search for point closest to this point.
|
|
458
|
-
* @param extend if true, consider projections to the complete ellipse.
|
|
469
|
+
* @param extend if true, consider projections to the complete ellipse. If false, consider only endpoints and
|
|
470
|
+
* projections within the arc sweep.
|
|
459
471
|
* @param result optional preallocated result.
|
|
460
472
|
*/
|
|
461
473
|
closestPoint(spacePoint, extend, result) {
|
|
@@ -497,8 +509,11 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
497
509
|
return result;
|
|
498
510
|
}
|
|
499
511
|
/** Reverse the sweep of the arc. */
|
|
500
|
-
reverseInPlace() {
|
|
501
|
-
|
|
512
|
+
reverseInPlace() {
|
|
513
|
+
this._sweep.reverseInPlace();
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Apply a transform to the arc basis vectors.
|
|
502
517
|
* * nonuniform (i.e. skewing) transforms are allowed.
|
|
503
518
|
* * The transformed vector0 and vector90 are NOT squared up as major minor axes. (This is a good feature!!)
|
|
504
519
|
*/
|
|
@@ -520,18 +535,14 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
520
535
|
&& Geometry_1.Geometry.isSmallMetricDistance(this._matrix.dotColumnX(normal))
|
|
521
536
|
&& Geometry_1.Geometry.isSmallMetricDistance(this._matrix.dotColumnY(normal));
|
|
522
537
|
}
|
|
523
|
-
/**
|
|
524
|
-
* Return true if the vector0 and vector90 are of equal length and perpendicular.
|
|
525
|
-
*/
|
|
538
|
+
/** Return true if the vector0 and vector90 are of equal length and perpendicular. */
|
|
526
539
|
get isCircular() {
|
|
527
540
|
const axx = this._matrix.columnXMagnitudeSquared();
|
|
528
541
|
const ayy = this._matrix.columnYMagnitudeSquared();
|
|
529
542
|
const axy = this._matrix.columnXDotColumnY();
|
|
530
543
|
return Angle_1.Angle.isPerpendicularDotSet(axx, ayy, axy) && Geometry_1.Geometry.isSameCoordinateSquared(axx, ayy);
|
|
531
544
|
}
|
|
532
|
-
/**
|
|
533
|
-
* Return true if the vector0 and vector90 are of equal length and perpendicular.
|
|
534
|
-
*/
|
|
545
|
+
/** Return true if the vector0 and vector90 are of equal length and perpendicular. */
|
|
535
546
|
circularRadiusXY() {
|
|
536
547
|
const ux = this._matrix.at(0, 0);
|
|
537
548
|
const uy = this._matrix.at(1, 0);
|
|
@@ -548,9 +559,11 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
548
559
|
return this.isCircular ? this._matrix.columnXMagnitude() : undefined;
|
|
549
560
|
}
|
|
550
561
|
/** Return the larger of the two defining vectors. */
|
|
551
|
-
maxVectorLength() {
|
|
562
|
+
maxVectorLength() {
|
|
563
|
+
return Math.max(this._matrix.columnXMagnitude(), this._matrix.columnYMagnitude());
|
|
564
|
+
}
|
|
552
565
|
/**
|
|
553
|
-
*
|
|
566
|
+
* Compute intersections with a plane.
|
|
554
567
|
* @param plane plane to intersect
|
|
555
568
|
* @param result array of locations on the curve.
|
|
556
569
|
*/
|
|
@@ -614,9 +627,9 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
614
627
|
range.extend(highPoint);
|
|
615
628
|
}
|
|
616
629
|
/**
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
630
|
+
* Returns a (high accuracy) range of the curve between fractional positions
|
|
631
|
+
* * Default implementation returns teh range of the curve from clonePartialCurve
|
|
632
|
+
*/
|
|
620
633
|
rangeBetweenFractions(fraction0, fraction1, transform) {
|
|
621
634
|
const sweep = AngleSweep_1.AngleSweep.createStartEndRadians(this.sweep.fractionToRadians(fraction0), this.sweep.fractionToRadians(fraction1));
|
|
622
635
|
const range = Range_1.Range3d.create();
|
|
@@ -639,9 +652,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
639
652
|
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]));
|
|
640
653
|
return result;
|
|
641
654
|
}
|
|
642
|
-
/**
|
|
643
|
-
* Create a new arc which is a unit circle centered at the origin.
|
|
644
|
-
*/
|
|
655
|
+
/** Create a new arc which is a unit circle centered at the origin. */
|
|
645
656
|
static createUnitCircle() {
|
|
646
657
|
return Arc3d.createRefs(Point3dVector3d_1.Point3d.create(0, 0, 0), Matrix3d_1.Matrix3d.createIdentity(), AngleSweep_1.AngleSweep.create360());
|
|
647
658
|
}
|
|
@@ -672,8 +683,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
672
683
|
setVector0Vector90(vector0, vector90) {
|
|
673
684
|
this._matrix.setColumns(vector0, vector90, vector0.unitCrossProductWithDefault(vector90, 0, 0, 0));
|
|
674
685
|
}
|
|
675
|
-
/** Return the arc definition with rigid matrix form with axis radii
|
|
676
|
-
*/
|
|
686
|
+
/** Return the arc definition with rigid matrix form with axis radii */
|
|
677
687
|
toScaledMatrix3d() {
|
|
678
688
|
const angleData = Angle_1.Angle.dotProductsToHalfAngleTrigValues(this._matrix.columnXMagnitudeSquared(), this._matrix.columnYMagnitudeSquared(), this._matrix.columnXDotColumnY(), true);
|
|
679
689
|
const vector0A = this._matrix.multiplyXY(angleData.c, angleData.s);
|
|
@@ -687,8 +697,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
687
697
|
sweep: this.sweep.cloneMinusRadians(angleData.radians),
|
|
688
698
|
};
|
|
689
699
|
}
|
|
690
|
-
/** Return the arc definition with center, two vectors, and angle sweep;
|
|
691
|
-
*/
|
|
700
|
+
/** Return the arc definition with center, two vectors, and angle sweep; */
|
|
692
701
|
toVectors() {
|
|
693
702
|
return {
|
|
694
703
|
center: this.center,
|
|
@@ -697,8 +706,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
697
706
|
sweep: this.sweep,
|
|
698
707
|
};
|
|
699
708
|
}
|
|
700
|
-
/** Return the arc definition with center, two vectors, and angle sweep, optionally transformed.
|
|
701
|
-
*/
|
|
709
|
+
/** Return the arc definition with center, two vectors, and angle sweep, optionally transformed. */
|
|
702
710
|
toTransformedVectors(transform) {
|
|
703
711
|
return transform ? {
|
|
704
712
|
center: transform.multiplyPoint3d(this._center),
|
|
@@ -713,8 +721,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
713
721
|
sweep: this.sweep,
|
|
714
722
|
};
|
|
715
723
|
}
|
|
716
|
-
/** Return the arc definition with center, two vectors, and angle sweep, transformed to 4d points.
|
|
717
|
-
*/
|
|
724
|
+
/** Return the arc definition with center, two vectors, and angle sweep, transformed to 4d points. */
|
|
718
725
|
toTransformedPoint4d(matrix) {
|
|
719
726
|
return {
|
|
720
727
|
center: matrix.multiplyPoint3d(this._center, 1.0),
|
|
@@ -758,9 +765,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
758
765
|
vector90: this._matrix.columnY().toJSON(),
|
|
759
766
|
};
|
|
760
767
|
}
|
|
761
|
-
/**
|
|
762
|
-
* Test if this arc is almost equal to another GeometryQuery object
|
|
763
|
-
*/
|
|
768
|
+
/** Test if this arc is almost equal to another GeometryQuery object */
|
|
764
769
|
isAlmostEqual(otherGeometry) {
|
|
765
770
|
if (otherGeometry instanceof Arc3d) {
|
|
766
771
|
const other = otherGeometry;
|
|
@@ -783,7 +788,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
783
788
|
handler.endCurvePrimitive(this);
|
|
784
789
|
}
|
|
785
790
|
/**
|
|
786
|
-
*
|
|
791
|
+
* Return the stroke count required for given options.
|
|
787
792
|
* @param options StrokeOptions that determine count
|
|
788
793
|
*/
|
|
789
794
|
computeStrokeCountForOptions(options) {
|
|
@@ -801,7 +806,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
801
806
|
dispatchToGeometryHandler(handler) {
|
|
802
807
|
return handler.handleArc3d(this);
|
|
803
808
|
}
|
|
804
|
-
/**
|
|
809
|
+
/**
|
|
810
|
+
* Return (if possible) an arc which is a portion of this curve.
|
|
805
811
|
* @param fractionA [in] start fraction
|
|
806
812
|
* @param fractionB [in] end fraction
|
|
807
813
|
*/
|
|
@@ -815,8 +821,10 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
815
821
|
arcB.sweep.setStartEndRadians(this.sweep.fractionToRadians(fractionA), this.sweep.fractionToRadians(fractionB));
|
|
816
822
|
return arcB;
|
|
817
823
|
}
|
|
818
|
-
/**
|
|
819
|
-
*
|
|
824
|
+
/**
|
|
825
|
+
* Return an arc whose basis vectors are rotated by given angle within the current basis space.
|
|
826
|
+
* * the result arc will have its zero-degree point (new `vector0`) at the current
|
|
827
|
+
* `vector0 * cos(theta) + vector90 * sin(theta)`
|
|
820
828
|
* * the result sweep is adjusted so all fractional coordinates (e.g. start and end) evaluate to the same xyz.
|
|
821
829
|
* * Specifically, theta is subtracted from the original start and end angles.
|
|
822
830
|
* @param theta the angle (in the input arc space) which is to become the 0-degree point in the new arc.
|
|
@@ -833,7 +841,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
833
841
|
/**
|
|
834
842
|
* Find intervals of this CurvePrimitive that are interior to a clipper
|
|
835
843
|
* @param clipper clip structure (e.g.clip planes)
|
|
836
|
-
* @param announce(optional) function to be called announcing fractional intervals"
|
|
844
|
+
* @param announce(optional) function to be called announcing fractional intervals"
|
|
845
|
+
* ` announce(fraction0, fraction1, curvePrimitive)`
|
|
837
846
|
* @returns true if any "in" segments are announced.
|
|
838
847
|
*/
|
|
839
848
|
announceClipIntervals(clipper, announce) {
|
|
@@ -854,8 +863,10 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
854
863
|
* * Return the arc along with the fractional positions of the tangency points.
|
|
855
864
|
* * In the returned object:
|
|
856
865
|
* * `arc` is the (bounded) arc
|
|
857
|
-
* * `fraction10` is the tangency point's position as an interpolating fraction of the line segment from
|
|
858
|
-
*
|
|
866
|
+
* * `fraction10` is the tangency point's position as an interpolating fraction of the line segment from
|
|
867
|
+
* `point1` (backwards) to `point0`
|
|
868
|
+
* * `fraction12` is the tangency point's position as an interpolating fraction of the line segment from
|
|
869
|
+
* `point1` (forward) to `point2`
|
|
859
870
|
* * `point` is the `point1` input.
|
|
860
871
|
* * If unable to construct the arc:
|
|
861
872
|
* * `point` is the `point1` input.
|
|
@@ -929,7 +940,9 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
929
940
|
const r0new = r0 - sign * options.leftOffsetDistance;
|
|
930
941
|
const r90 = this.isCircular ? r0 : arcXY.matrixRef.columnYMagnitude();
|
|
931
942
|
const r90new = this.isCircular ? r0new : r90 - sign * options.leftOffsetDistance;
|
|
932
|
-
if (!Geometry_1.Geometry.isSmallMetricDistance(r0new)
|
|
943
|
+
if (!Geometry_1.Geometry.isSmallMetricDistance(r0new)
|
|
944
|
+
&& (r0 * r0new > 0.0)
|
|
945
|
+
&& (this.isCircular || (!Geometry_1.Geometry.isSmallMetricDistance(r90new) && (r90 * r90new > 0.0)))) {
|
|
933
946
|
const factor0 = r0new / r0;
|
|
934
947
|
const factor90 = this.isCircular ? factor0 : r90new / r90;
|
|
935
948
|
const matrix = arcXY.matrixClone();
|
|
@@ -945,7 +958,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
945
958
|
this.emitStrokableParts(handler, options.strokeOptions);
|
|
946
959
|
return handler.claimResult();
|
|
947
960
|
}
|
|
948
|
-
/**
|
|
961
|
+
/**
|
|
962
|
+
* Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
|
|
949
963
|
* @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
|
|
950
964
|
* @param lowHigh optional receiver for output
|
|
951
965
|
* @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.
|
|
@@ -959,9 +973,9 @@ Arc3d._workPointB = Point3dVector3d_1.Point3d.create();
|
|
|
959
973
|
Arc3d._workPointC = Point3dVector3d_1.Point3d.create();
|
|
960
974
|
Arc3d._workVectorU = Point3dVector3d_1.Vector3d.create();
|
|
961
975
|
Arc3d._workVectorV = Point3dVector3d_1.Vector3d.create();
|
|
962
|
-
// !! misspelled Gauss in the published static
|
|
976
|
+
// !! misspelled Gauss in the published static !! Declare it ok.
|
|
963
977
|
// cspell::word Guass
|
|
964
|
-
/** Gauss point quadrature count for evaluating curve length.
|
|
978
|
+
/** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep) */
|
|
965
979
|
Arc3d.quadratureGuassCount = 5;
|
|
966
980
|
/** In quadrature for arc length, use this interval (divided by quickEccentricity) */
|
|
967
981
|
Arc3d.quadratureIntervalAngleDegrees = 10.0;
|