@itwin/core-geometry 4.1.0-dev.8 → 4.1.0-dev.81
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 +87 -1
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.d.ts +1 -1
- package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js +2 -2
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineSurface.js +1 -1
- package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
- package/lib/cjs/bspline/BezierCurveBase.d.ts +1 -1
- package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
- package/lib/cjs/bspline/BezierCurveBase.js +2 -2
- package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
- package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/cjs/clipping/AlternatingConvexClipTree.d.ts +15 -17
- package/lib/cjs/clipping/AlternatingConvexClipTree.d.ts.map +1 -1
- package/lib/cjs/clipping/AlternatingConvexClipTree.js +24 -20
- package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/cjs/clipping/BooleanClipFactory.d.ts +28 -28
- package/lib/cjs/clipping/BooleanClipFactory.d.ts.map +1 -1
- package/lib/cjs/clipping/BooleanClipFactory.js +28 -28
- package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
- package/lib/cjs/clipping/BooleanClipNode.d.ts +11 -11
- package/lib/cjs/clipping/BooleanClipNode.d.ts.map +1 -1
- package/lib/cjs/clipping/BooleanClipNode.js +11 -11
- package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
- package/lib/cjs/clipping/ClipPlane.d.ts +73 -76
- package/lib/cjs/clipping/ClipPlane.d.ts.map +1 -1
- package/lib/cjs/clipping/ClipPlane.js +105 -86
- package/lib/cjs/clipping/ClipPlane.js.map +1 -1
- package/lib/cjs/clipping/ClipPrimitive.d.ts +78 -47
- package/lib/cjs/clipping/ClipPrimitive.d.ts.map +1 -1
- package/lib/cjs/clipping/ClipPrimitive.js +112 -54
- package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
- package/lib/cjs/clipping/ClipUtils.d.ts +54 -44
- package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -1
- package/lib/cjs/clipping/ClipUtils.js +33 -29
- package/lib/cjs/clipping/ClipUtils.js.map +1 -1
- package/lib/cjs/clipping/ClipVector.d.ts +39 -25
- package/lib/cjs/clipping/ClipVector.d.ts.map +1 -1
- package/lib/cjs/clipping/ClipVector.js +35 -23
- package/lib/cjs/clipping/ClipVector.js.map +1 -1
- package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts +61 -38
- package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
- package/lib/cjs/clipping/ConvexClipPlaneSet.js +64 -41
- package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts +49 -30
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +50 -30
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.d.ts +2 -2
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.d.ts.map +1 -1
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js +2 -2
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/cjs/core-geometry.d.ts +5 -1
- package/lib/cjs/core-geometry.d.ts.map +1 -1
- package/lib/cjs/core-geometry.js +5 -1
- package/lib/cjs/core-geometry.js.map +1 -1
- package/lib/cjs/curve/Arc3d.d.ts +4 -3
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +7 -5
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +62 -42
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +71 -48
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.d.ts +36 -26
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +46 -39
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.d.ts +6 -2
- package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurve.js +13 -9
- package/lib/cjs/curve/CurveCurve.js.map +1 -1
- package/lib/cjs/curve/CurveCurveCloseApproachXY.d.ts +74 -68
- package/lib/cjs/curve/CurveCurveCloseApproachXY.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurveCloseApproachXY.js +100 -108
- package/lib/cjs/curve/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXY.d.ts +46 -48
- package/lib/cjs/curve/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXY.js +72 -61
- package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXYZ.d.ts +32 -38
- package/lib/cjs/curve/CurveCurveIntersectXYZ.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXYZ.js +86 -97
- package/lib/cjs/curve/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.d.ts +67 -3
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
- package/lib/cjs/curve/CurveFactory.js +75 -7
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.d.ts +6 -6
- package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js +9 -7
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurveOps.d.ts +77 -0
- package/lib/cjs/curve/CurveOps.d.ts.map +1 -0
- package/lib/cjs/curve/CurveOps.js +160 -0
- package/lib/cjs/curve/CurveOps.js.map +1 -0
- package/lib/cjs/curve/CurvePrimitive.d.ts +26 -18
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js +4 -3
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/GeometryQuery.d.ts +2 -2
- package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
- package/lib/cjs/curve/GeometryQuery.js +2 -2
- package/lib/cjs/curve/GeometryQuery.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.d.ts +7 -5
- package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js +6 -6
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.d.ts +2 -2
- package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineString3d.js +3 -3
- 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/OffsetOptions.d.ts +97 -0
- package/lib/cjs/curve/OffsetOptions.d.ts.map +1 -0
- package/lib/cjs/curve/OffsetOptions.js +166 -0
- package/lib/cjs/curve/OffsetOptions.js.map +1 -0
- 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/ProxyCurve.d.ts +5 -7
- 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/StrokeCountMap.js.map +1 -1
- package/lib/cjs/curve/RegionOps.d.ts +76 -56
- package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOps.js +83 -60
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js +2 -2
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/cjs/curve/StrokeOptions.js +6 -2
- 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/{ChainCollectorContext.d.ts → internalContexts/ChainCollectorContext.d.ts} +4 -4
- package/lib/cjs/curve/internalContexts/ChainCollectorContext.d.ts.map +1 -0
- package/lib/cjs/curve/{ChainCollectorContext.js → internalContexts/ChainCollectorContext.js} +4 -4
- package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -0
- 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 +59 -70
- package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js +130 -220
- package/lib/cjs/curve/internalContexts/MultiChainCollector.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 +23 -95
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +89 -178
- 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/spiral/IntegratedSpiral3d.js +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js +2 -2
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js +1 -1
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/cjs/geometry3d/Angle.d.ts +9 -0
- package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Angle.js +13 -0
- 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.d.ts +43 -48
- package/lib/cjs/geometry3d/BilinearPatch.d.ts.map +1 -1
- package/lib/cjs/geometry3d/BilinearPatch.js +51 -55
- package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.d.ts +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.js +13 -11
- package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.d.ts +103 -97
- package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.js +247 -124
- package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableBlockedArray.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GrowableBlockedArray.js +1 -1
- package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GrowableFloat64Array.js +1 -1
- package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.d.ts +18 -0
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +32 -5
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3d.d.ts +41 -32
- package/lib/cjs/geometry3d/Plane3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Plane3d.js +11 -8
- package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +37 -34
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +65 -43
- 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 +37 -32
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dVector2d.d.ts +8 -9
- package/lib/cjs/geometry3d/Point2dVector2d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point2dVector2d.js +9 -10
- package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts +12 -4
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +18 -5
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js +5 -5
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.d.ts +6 -2
- package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.js +31 -22
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.d.ts +16 -1
- package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.js +55 -0
- package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
- package/lib/cjs/geometry3d/Range.d.ts +134 -94
- package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Range.js +297 -145
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/geometry3d/Ray2d.d.ts +69 -0
- package/lib/cjs/geometry3d/Ray2d.d.ts.map +1 -0
- package/lib/cjs/geometry3d/Ray2d.js +146 -0
- package/lib/cjs/geometry3d/Ray2d.js.map +1 -0
- package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
- package/lib/cjs/geometry3d/Transform.d.ts +10 -3
- package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Transform.js +18 -6
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/cjs/numerics/ConvexPolygon2d.d.ts +7 -49
- package/lib/cjs/numerics/ConvexPolygon2d.d.ts.map +1 -1
- package/lib/cjs/numerics/ConvexPolygon2d.js +16 -107
- package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/cjs/numerics/Newton.js.map +1 -1
- package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
- package/lib/cjs/numerics/Polynomials.js +0 -2
- package/lib/cjs/numerics/Polynomials.js.map +1 -1
- package/lib/cjs/numerics/Quadrature.js +5 -5
- package/lib/cjs/numerics/Quadrature.js.map +1 -1
- package/lib/cjs/polyface/IndexedEdgeMatcher.js +1 -1
- package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js +2 -2
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.d.ts +93 -14
- package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js +173 -34
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/cjs/polyface/TaggedNumericData.js +1 -1
- package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js +2 -2
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.d.ts +27 -19
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.d.ts.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js +30 -12
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts +12 -8
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +18 -4
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.d.ts +3 -4
- package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.d.ts.map +1 -1
- package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js +3 -5
- 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.d.ts +15 -12
- package/lib/cjs/polyface/multiclip/Range2dSearchInterface.d.ts.map +1 -1
- package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts +38 -0
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +104 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.d.ts +11 -0
- package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.js +30 -0
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.d.ts +2 -7
- package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.js +2 -7
- package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/cjs/solid/LinearSweep.d.ts +2 -1
- package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
- package/lib/cjs/solid/LinearSweep.js.map +1 -1
- package/lib/cjs/solid/RotationalSweep.d.ts +2 -1
- package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
- package/lib/cjs/solid/RotationalSweep.js.map +1 -1
- package/lib/cjs/solid/RuledSweep.d.ts +2 -1
- package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
- package/lib/cjs/solid/RuledSweep.js.map +1 -1
- package/lib/cjs/solid/SweepContour.d.ts +2 -2
- package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
- package/lib/cjs/solid/SweepContour.js +9 -0
- package/lib/cjs/solid/SweepContour.js.map +1 -1
- package/lib/cjs/topology/ChainMerge.js +1 -1
- package/lib/cjs/topology/ChainMerge.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSearch.js +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSpineContext.js +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePriorityQueue.d.ts.map +1 -1
- package/lib/cjs/topology/HalfEdgePriorityQueue.js +1 -1
- package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/cjs/topology/RegularizeFace.js +3 -3
- package/lib/cjs/topology/RegularizeFace.js.map +1 -1
- package/lib/cjs/topology/Triangulation.js +1 -1
- package/lib/cjs/topology/Triangulation.js.map +1 -1
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.d.ts +1 -1
- package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js +1 -1
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineSurface.js +1 -1
- package/lib/esm/bspline/BSplineSurface.js.map +1 -1
- package/lib/esm/bspline/BezierCurveBase.d.ts +1 -1
- package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
- package/lib/esm/bspline/BezierCurveBase.js +1 -1
- package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
- package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/esm/clipping/AlternatingConvexClipTree.d.ts +15 -17
- package/lib/esm/clipping/AlternatingConvexClipTree.d.ts.map +1 -1
- package/lib/esm/clipping/AlternatingConvexClipTree.js +24 -20
- package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/esm/clipping/BooleanClipFactory.d.ts +28 -28
- package/lib/esm/clipping/BooleanClipFactory.d.ts.map +1 -1
- package/lib/esm/clipping/BooleanClipFactory.js +28 -28
- package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
- package/lib/esm/clipping/BooleanClipNode.d.ts +11 -11
- package/lib/esm/clipping/BooleanClipNode.d.ts.map +1 -1
- package/lib/esm/clipping/BooleanClipNode.js +11 -11
- package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
- package/lib/esm/clipping/ClipPlane.d.ts +73 -76
- package/lib/esm/clipping/ClipPlane.d.ts.map +1 -1
- package/lib/esm/clipping/ClipPlane.js +105 -86
- package/lib/esm/clipping/ClipPlane.js.map +1 -1
- package/lib/esm/clipping/ClipPrimitive.d.ts +78 -47
- package/lib/esm/clipping/ClipPrimitive.d.ts.map +1 -1
- package/lib/esm/clipping/ClipPrimitive.js +112 -54
- package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
- package/lib/esm/clipping/ClipUtils.d.ts +54 -44
- package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
- package/lib/esm/clipping/ClipUtils.js +33 -29
- package/lib/esm/clipping/ClipUtils.js.map +1 -1
- package/lib/esm/clipping/ClipVector.d.ts +39 -25
- package/lib/esm/clipping/ClipVector.d.ts.map +1 -1
- package/lib/esm/clipping/ClipVector.js +35 -23
- package/lib/esm/clipping/ClipVector.js.map +1 -1
- package/lib/esm/clipping/ConvexClipPlaneSet.d.ts +61 -38
- package/lib/esm/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
- package/lib/esm/clipping/ConvexClipPlaneSet.js +64 -41
- package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts +49 -30
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +50 -30
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.d.ts +2 -2
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.d.ts.map +1 -1
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js +2 -2
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/esm/core-geometry.d.ts +5 -1
- package/lib/esm/core-geometry.d.ts.map +1 -1
- package/lib/esm/core-geometry.js +5 -1
- package/lib/esm/core-geometry.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +4 -3
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +6 -4
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +62 -42
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +70 -47
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.d.ts +36 -26
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +46 -39
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveCurve.d.ts +6 -2
- package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurve.js +13 -9
- package/lib/esm/curve/CurveCurve.js.map +1 -1
- package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts +74 -68
- package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurveCloseApproachXY.js +100 -108
- package/lib/esm/curve/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXY.d.ts +46 -48
- package/lib/esm/curve/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXY.js +72 -61
- package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts +32 -38
- package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXYZ.js +86 -97
- package/lib/esm/curve/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/esm/curve/CurveFactory.d.ts +67 -3
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
- package/lib/esm/curve/CurveFactory.js +74 -6
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.d.ts +6 -6
- package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js +9 -7
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurveOps.d.ts +77 -0
- package/lib/esm/curve/CurveOps.d.ts.map +1 -0
- package/lib/esm/curve/CurveOps.js +156 -0
- package/lib/esm/curve/CurveOps.js.map +1 -0
- package/lib/esm/curve/CurvePrimitive.d.ts +26 -18
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js +4 -3
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/GeometryQuery.d.ts +2 -2
- package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
- package/lib/esm/curve/GeometryQuery.js +2 -2
- package/lib/esm/curve/GeometryQuery.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.d.ts +7 -5
- package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/esm/curve/LineSegment3d.js +5 -5
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.d.ts +2 -2
- package/lib/esm/curve/LineString3d.d.ts.map +1 -1
- package/lib/esm/curve/LineString3d.js +2 -2
- 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/OffsetOptions.d.ts +97 -0
- package/lib/esm/curve/OffsetOptions.d.ts.map +1 -0
- package/lib/esm/curve/OffsetOptions.js +161 -0
- package/lib/esm/curve/OffsetOptions.js.map +1 -0
- 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/ProxyCurve.d.ts +5 -7
- 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/StrokeCountMap.js.map +1 -1
- package/lib/esm/curve/RegionOps.d.ts +76 -56
- package/lib/esm/curve/RegionOps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOps.js +84 -61
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js +2 -2
- package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/esm/curve/StrokeOptions.js +6 -2
- 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/{ChainCollectorContext.d.ts → internalContexts/ChainCollectorContext.d.ts} +4 -4
- package/lib/esm/curve/internalContexts/ChainCollectorContext.d.ts.map +1 -0
- package/lib/esm/curve/{ChainCollectorContext.js → internalContexts/ChainCollectorContext.js} +4 -4
- package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -0
- 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 +59 -70
- package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/MultiChainCollector.js +129 -218
- package/lib/esm/curve/internalContexts/MultiChainCollector.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 +23 -95
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +86 -173
- 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/spiral/IntegratedSpiral3d.js +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.js +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/XYCurveEvaluator.js +1 -1
- package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/esm/geometry3d/Angle.d.ts +9 -0
- package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
- package/lib/esm/geometry3d/Angle.js +13 -0
- 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.d.ts +43 -48
- package/lib/esm/geometry3d/BilinearPatch.d.ts.map +1 -1
- package/lib/esm/geometry3d/BilinearPatch.js +51 -55
- package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/esm/geometry3d/Ellipsoid.d.ts +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.js +13 -11
- package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.d.ts +103 -97
- package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.js +247 -124
- package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/esm/geometry3d/GrowableBlockedArray.d.ts.map +1 -1
- package/lib/esm/geometry3d/GrowableBlockedArray.js +1 -1
- package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
- package/lib/esm/geometry3d/GrowableFloat64Array.js +1 -1
- package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.d.ts +18 -0
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +32 -5
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/esm/geometry3d/Plane3d.d.ts +41 -32
- package/lib/esm/geometry3d/Plane3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Plane3d.js +11 -8
- package/lib/esm/geometry3d/Plane3d.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +37 -34
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +65 -43
- 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 +37 -32
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/esm/geometry3d/Point2dVector2d.d.ts +8 -9
- package/lib/esm/geometry3d/Point2dVector2d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point2dVector2d.js +9 -10
- package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.d.ts +12 -4
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +18 -5
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js +5 -5
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.d.ts +6 -2
- package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.js +31 -22
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.d.ts +16 -1
- package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.js +56 -1
- package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
- package/lib/esm/geometry3d/Range.d.ts +134 -94
- package/lib/esm/geometry3d/Range.d.ts.map +1 -1
- package/lib/esm/geometry3d/Range.js +297 -145
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/geometry3d/Ray2d.d.ts +69 -0
- package/lib/esm/geometry3d/Ray2d.d.ts.map +1 -0
- package/lib/esm/geometry3d/Ray2d.js +142 -0
- package/lib/esm/geometry3d/Ray2d.js.map +1 -0
- package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js.map +1 -1
- package/lib/esm/geometry3d/Transform.d.ts +10 -3
- package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
- package/lib/esm/geometry3d/Transform.js +18 -6
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/esm/numerics/ConvexPolygon2d.d.ts +7 -49
- package/lib/esm/numerics/ConvexPolygon2d.d.ts.map +1 -1
- package/lib/esm/numerics/ConvexPolygon2d.js +14 -104
- package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/esm/numerics/Newton.js.map +1 -1
- package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
- package/lib/esm/numerics/Polynomials.js +0 -2
- package/lib/esm/numerics/Polynomials.js.map +1 -1
- package/lib/esm/numerics/Quadrature.js +5 -5
- package/lib/esm/numerics/Quadrature.js.map +1 -1
- package/lib/esm/polyface/IndexedEdgeMatcher.js +1 -1
- package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js +2 -2
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.d.ts +93 -14
- package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js +173 -35
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/esm/polyface/TaggedNumericData.js +1 -1
- package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +2 -2
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.d.ts +27 -19
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.d.ts.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js +30 -12
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts +12 -8
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +18 -4
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.d.ts +3 -4
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.d.ts.map +1 -1
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js +3 -5
- 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.d.ts +15 -12
- package/lib/esm/polyface/multiclip/Range2dSearchInterface.d.ts.map +1 -1
- package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts +38 -0
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +102 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/esm/serialization/BGFBWriter.js.map +1 -1
- package/lib/esm/serialization/GeometrySamples.d.ts +11 -0
- package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/esm/serialization/GeometrySamples.js +30 -0
- package/lib/esm/serialization/GeometrySamples.js.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.d.ts +2 -7
- package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.js +2 -7
- package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/esm/solid/LinearSweep.d.ts +2 -1
- package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
- package/lib/esm/solid/LinearSweep.js.map +1 -1
- package/lib/esm/solid/RotationalSweep.d.ts +2 -1
- package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
- package/lib/esm/solid/RotationalSweep.js.map +1 -1
- package/lib/esm/solid/RuledSweep.d.ts +2 -1
- package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
- package/lib/esm/solid/RuledSweep.js.map +1 -1
- package/lib/esm/solid/SweepContour.d.ts +2 -2
- package/lib/esm/solid/SweepContour.d.ts.map +1 -1
- package/lib/esm/solid/SweepContour.js +9 -0
- package/lib/esm/solid/SweepContour.js.map +1 -1
- package/lib/esm/topology/ChainMerge.js +1 -1
- package/lib/esm/topology/ChainMerge.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSearch.js +1 -1
- package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSpineContext.js +1 -1
- package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/esm/topology/HalfEdgePriorityQueue.d.ts.map +1 -1
- package/lib/esm/topology/HalfEdgePriorityQueue.js +1 -1
- package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/esm/topology/RegularizeFace.js +3 -3
- package/lib/esm/topology/RegularizeFace.js.map +1 -1
- package/lib/esm/topology/Triangulation.js +1 -1
- package/lib/esm/topology/Triangulation.js.map +1 -1
- package/package.json +6 -17
- package/lib/cjs/curve/ChainCollectorContext.d.ts.map +0 -1
- package/lib/cjs/curve/ChainCollectorContext.js.map +0 -1
- package/lib/esm/curve/ChainCollectorContext.d.ts.map +0 -1
- package/lib/esm/curve/ChainCollectorContext.js.map +0 -1
|
@@ -16,11 +16,12 @@ import { CurvePrimitive } from "../CurvePrimitive";
|
|
|
16
16
|
import { LineSegment3d } from "../LineSegment3d";
|
|
17
17
|
import { LineString3d } from "../LineString3d";
|
|
18
18
|
import { Loop } from "../Loop";
|
|
19
|
+
import { JointOptions, OffsetOptions } from "../OffsetOptions";
|
|
19
20
|
import { Path } from "../Path";
|
|
20
21
|
import { RegionOps } from "../RegionOps";
|
|
21
|
-
|
|
22
|
+
// cspell:word CCWXY
|
|
22
23
|
/**
|
|
23
|
-
* Classification of
|
|
24
|
+
* Classification of how the joint is constructed.
|
|
24
25
|
* @internal
|
|
25
26
|
*/
|
|
26
27
|
var JointMode;
|
|
@@ -32,109 +33,6 @@ var JointMode;
|
|
|
32
33
|
JointMode[JointMode["JustGeometry"] = 3] = "JustGeometry";
|
|
33
34
|
JointMode[JointMode["Gap"] = 4] = "Gap";
|
|
34
35
|
})(JointMode || (JointMode = {}));
|
|
35
|
-
/**
|
|
36
|
-
* * Control parameters for joint construction.
|
|
37
|
-
* * Decision order is:
|
|
38
|
-
* * if turn angle is greater than minArcDegrees, make an arc.
|
|
39
|
-
* * if turn angle is less than or equal maxChamferTurnDegrees, extend curves along tangent to single intersection point.
|
|
40
|
-
* * if turn angle is greater than maxChamferTurnDegrees, construct multiple lines that are tangent to the turn circle "from the outside",
|
|
41
|
-
* with each equal turn less than maxChamferTurnDegrees.
|
|
42
|
-
* * otherwise make single edge.
|
|
43
|
-
* @public
|
|
44
|
-
*/
|
|
45
|
-
export class JointOptions {
|
|
46
|
-
/** Construct JointOptions.
|
|
47
|
-
* * leftOffsetDistance is required
|
|
48
|
-
* * minArcDegrees and maxChamferDegrees are optional.
|
|
49
|
-
*/
|
|
50
|
-
constructor(leftOffsetDistance, minArcDegrees = 180, maxChamferDegrees = 90, preserveEllipticalArcs = false) {
|
|
51
|
-
/** smallest arc to construct.
|
|
52
|
-
* * If this control angle is large, arcs are never created.
|
|
53
|
-
*/
|
|
54
|
-
this.minArcDegrees = 180.0;
|
|
55
|
-
this.maxChamferTurnDegrees = 90;
|
|
56
|
-
/** Offset distance, positive to left of base curve. */
|
|
57
|
-
this.leftOffsetDistance = 0;
|
|
58
|
-
/** Whether to offset elliptical arcs as elliptical arcs (true) or as B-spline curves (false, default). */
|
|
59
|
-
this.preserveEllipticalArcs = false;
|
|
60
|
-
this.leftOffsetDistance = leftOffsetDistance;
|
|
61
|
-
this.minArcDegrees = minArcDegrees;
|
|
62
|
-
this.maxChamferTurnDegrees = maxChamferDegrees;
|
|
63
|
-
this.preserveEllipticalArcs = preserveEllipticalArcs;
|
|
64
|
-
}
|
|
65
|
-
/** Return a deep clone. */
|
|
66
|
-
clone() {
|
|
67
|
-
return new JointOptions(this.leftOffsetDistance, this.minArcDegrees, this.maxChamferTurnDegrees, this.preserveEllipticalArcs);
|
|
68
|
-
}
|
|
69
|
-
/** Copy values of input options */
|
|
70
|
-
setFrom(other) {
|
|
71
|
-
this.leftOffsetDistance = other.leftOffsetDistance;
|
|
72
|
-
this.minArcDegrees = other.minArcDegrees;
|
|
73
|
-
this.maxChamferTurnDegrees = other.maxChamferTurnDegrees;
|
|
74
|
-
this.preserveEllipticalArcs = other.preserveEllipticalArcs;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Parse a number or JointOptions up to JointOptions:
|
|
78
|
-
* * If leftOffsetDistanceOptions is a number, create a JointOptions with other options set to default values.
|
|
79
|
-
* * If leftOffsetDistanceOrOptions is a JointOptions, return it unchanged.
|
|
80
|
-
* @param leftOffsetDistanceOrOptions
|
|
81
|
-
*/
|
|
82
|
-
static create(leftOffsetDistanceOrOptions) {
|
|
83
|
-
if (leftOffsetDistanceOrOptions instanceof JointOptions)
|
|
84
|
-
return leftOffsetDistanceOrOptions;
|
|
85
|
-
// if (Number.isFinite(leftOffsetDistanceOrOptions))
|
|
86
|
-
return new JointOptions(leftOffsetDistanceOrOptions);
|
|
87
|
-
}
|
|
88
|
-
/** return true if the options indicate this amount of turn should be handled with an arc. */
|
|
89
|
-
needArc(theta) {
|
|
90
|
-
return Math.abs(theta.degrees) >= this.minArcDegrees;
|
|
91
|
-
}
|
|
92
|
-
/** Test if turn by theta should be output as single point. */
|
|
93
|
-
numChamferPoints(theta) {
|
|
94
|
-
const degrees = Math.abs(theta.degrees);
|
|
95
|
-
const stepDegrees = Geometry.clamp(this.maxChamferTurnDegrees, 10, 120);
|
|
96
|
-
if (degrees <= stepDegrees)
|
|
97
|
-
return 1;
|
|
98
|
-
return Math.ceil(degrees / stepDegrees);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Options for offsetting a curve.
|
|
103
|
-
* @public
|
|
104
|
-
*/
|
|
105
|
-
export class OffsetOptions {
|
|
106
|
-
/** Options that are provided are captured. */
|
|
107
|
-
constructor(offsetDistanceOrOptions, strokeOptions) {
|
|
108
|
-
this.jointOptions = JointOptions.create(offsetDistanceOrOptions);
|
|
109
|
-
this.strokeOptions = (strokeOptions !== undefined) ? strokeOptions : StrokeOptions.createForCurves();
|
|
110
|
-
}
|
|
111
|
-
get minArcDegrees() { return this.jointOptions.minArcDegrees; }
|
|
112
|
-
set minArcDegrees(value) { this.jointOptions.minArcDegrees = value; }
|
|
113
|
-
get maxChamferTurnDegrees() { return this.jointOptions.maxChamferTurnDegrees; }
|
|
114
|
-
set maxChamferTurnDegrees(value) { this.jointOptions.maxChamferTurnDegrees = value; }
|
|
115
|
-
get leftOffsetDistance() { return this.jointOptions.leftOffsetDistance; }
|
|
116
|
-
set leftOffsetDistance(value) { this.jointOptions.leftOffsetDistance = value; }
|
|
117
|
-
get preserveEllipticalArcs() { return this.jointOptions.preserveEllipticalArcs; }
|
|
118
|
-
set preserveEllipticalArcs(value) { this.jointOptions.preserveEllipticalArcs = value; }
|
|
119
|
-
/** Convert variant input into OffsetOptions.
|
|
120
|
-
* * If a JointOptions is provided, it is captured.
|
|
121
|
-
* * If an OffsetOptions is provided, a reference to it is returned. */
|
|
122
|
-
static create(offsetDistanceOrOptions) {
|
|
123
|
-
if (offsetDistanceOrOptions instanceof OffsetOptions)
|
|
124
|
-
return offsetDistanceOrOptions;
|
|
125
|
-
return new OffsetOptions(offsetDistanceOrOptions);
|
|
126
|
-
}
|
|
127
|
-
/** Convert variant input into offset distance */
|
|
128
|
-
static getOffsetDistance(offsetDistanceOrOptions) {
|
|
129
|
-
if (typeof offsetDistanceOrOptions === "number")
|
|
130
|
-
return offsetDistanceOrOptions;
|
|
131
|
-
return offsetDistanceOrOptions.leftOffsetDistance;
|
|
132
|
-
}
|
|
133
|
-
/** Return a deep clone. */
|
|
134
|
-
clone() {
|
|
135
|
-
return new OffsetOptions(this.jointOptions.clone(), this.strokeOptions.clone());
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
36
|
/**
|
|
139
37
|
* Description of geometry around a joint.
|
|
140
38
|
* @internal
|
|
@@ -147,7 +45,9 @@ class Joint {
|
|
|
147
45
|
this.swingPoint = swingPoint;
|
|
148
46
|
this.flexure = JointMode.Unknown;
|
|
149
47
|
}
|
|
150
|
-
/**
|
|
48
|
+
/**
|
|
49
|
+
* Try to construct an arc transition from ray0 to ray1 with given center.
|
|
50
|
+
*/
|
|
151
51
|
static constructArc(ray0, center, ray1) {
|
|
152
52
|
if (center !== undefined && Geometry.isSameCoordinate(ray0.origin.distance(center), ray1.origin.distance(center))) {
|
|
153
53
|
const angle = ray0.direction.angleToXY(ray1.direction);
|
|
@@ -192,6 +92,7 @@ class Joint {
|
|
|
192
92
|
destination.packedPoints.push(point);
|
|
193
93
|
}
|
|
194
94
|
}
|
|
95
|
+
/** Append stroke points along the offset curve defined by the Joint chain to the destination line string. */
|
|
195
96
|
static collectStrokesFromChain(start, destination, maxTest = 100) {
|
|
196
97
|
let numOut = -2 * maxTest; // allow extra things to happen
|
|
197
98
|
Joint.visitJointsOnChain(start, (joint) => {
|
|
@@ -203,7 +104,7 @@ class Joint {
|
|
|
203
104
|
if (fA === 0.0 && fB === 1.0)
|
|
204
105
|
curve1 = joint.curve1.clone();
|
|
205
106
|
else if (fA < fB)
|
|
206
|
-
curve1 = joint.curve1.clonePartialCurve(fA, fB);
|
|
107
|
+
curve1 = joint.curve1.clonePartialCurve(fA, fB); // trimming is done by clonePartialCurve
|
|
207
108
|
if (curve1) {
|
|
208
109
|
if (!joint.jointCurve) {
|
|
209
110
|
this.addPoint(destination, curve1.startPoint());
|
|
@@ -243,6 +144,7 @@ class Joint {
|
|
|
243
144
|
}
|
|
244
145
|
}
|
|
245
146
|
}
|
|
147
|
+
/** Append CurvePrimitives along the offset curve defined by the Joint chain to the destination array. */
|
|
246
148
|
static collectCurvesFromChain(start, destination, maxTest = 100) {
|
|
247
149
|
if (start === undefined)
|
|
248
150
|
return;
|
|
@@ -257,13 +159,13 @@ class Joint {
|
|
|
257
159
|
if (fA === 0.0 && fB === 1.0)
|
|
258
160
|
curve1 = joint.curve1.clone();
|
|
259
161
|
else if (fA < fB)
|
|
260
|
-
curve1 = joint.curve1.clonePartialCurve(fA, fB);
|
|
162
|
+
curve1 = joint.curve1.clonePartialCurve(fA, fB); // trimming is done by clonePartialCurve
|
|
261
163
|
this.collectPrimitive(destination, curve1);
|
|
262
164
|
}
|
|
263
165
|
return numOut++ < maxTest;
|
|
264
166
|
}, maxTest);
|
|
265
167
|
}
|
|
266
|
-
/** Execute `joint.annotateJointMode()` at all joints on the chain. */
|
|
168
|
+
/** Execute `joint.annotateJointMode()` at all joints on the chain to set some of the joints attributes. */
|
|
267
169
|
static annotateChain(start, options, maxTest = 100) {
|
|
268
170
|
if (start)
|
|
269
171
|
Joint.visitJointsOnChain(start, (joint) => { joint.annotateJointMode(options); return true; }, maxTest);
|
|
@@ -271,7 +173,7 @@ class Joint {
|
|
|
271
173
|
/**
|
|
272
174
|
* Visit joints on a chain.
|
|
273
175
|
* * terminate on `false` return from `callback`
|
|
274
|
-
* @param start first (and, for cyclic chain, final)
|
|
176
|
+
* @param start first (and, for cyclic chain, final) joint
|
|
275
177
|
* @param callback function to call with each Joint as a single parameter.
|
|
276
178
|
*/
|
|
277
179
|
static visitJointsOnChain(start, callback, maxTest = 100) {
|
|
@@ -279,7 +181,7 @@ class Joint {
|
|
|
279
181
|
if (joint) {
|
|
280
182
|
let numTest = 0;
|
|
281
183
|
while (joint !== undefined) {
|
|
282
|
-
if (numTest++ >= maxTest + 5)
|
|
184
|
+
if (numTest++ >= maxTest + 5) // allow extra things to happen
|
|
283
185
|
return true;
|
|
284
186
|
if (!callback(joint))
|
|
285
187
|
return false;
|
|
@@ -295,13 +197,13 @@ class Joint {
|
|
|
295
197
|
if (this.curve0 && this.curve1) {
|
|
296
198
|
const ray0 = this.curve0.fractionToPointAndDerivative(1.0);
|
|
297
199
|
const ray1 = this.curve1.fractionToPointAndDerivative(0.0);
|
|
298
|
-
const intersection = Ray3d.closestApproachRay3dRay3d(ray0, ray1);
|
|
200
|
+
const intersection = Ray3d.closestApproachRay3dRay3d(ray0, ray1); // intersection of the 2 ray lines
|
|
299
201
|
if (intersection.approachType === CurveCurveApproachType.Intersection) {
|
|
300
202
|
if (intersection.detailA.fraction >= 0.0 && intersection.detailB.fraction <= 0.0) {
|
|
301
203
|
this.fraction0 = 1.0;
|
|
302
204
|
this.fraction1 = 0.0;
|
|
303
205
|
this.flexure = JointMode.Extend;
|
|
304
|
-
const theta = ray0.getDirectionRef().angleToXY(ray1.getDirectionRef());
|
|
206
|
+
const theta = ray0.getDirectionRef().angleToXY(ray1.getDirectionRef()); // angle between the 2 ray lines
|
|
305
207
|
if (options.needArc(theta)) {
|
|
306
208
|
const arc = Joint.constructArc(ray0, this.curve0.baseCurveEnd, ray1);
|
|
307
209
|
if (arc) {
|
|
@@ -309,13 +211,12 @@ class Joint {
|
|
|
309
211
|
return;
|
|
310
212
|
}
|
|
311
213
|
}
|
|
312
|
-
const numChamferPoints = options.numChamferPoints(theta);
|
|
313
|
-
if (numChamferPoints <= 1) {
|
|
214
|
+
const numChamferPoints = options.numChamferPoints(theta); // how many interior points in the linestring
|
|
215
|
+
if (numChamferPoints <= 1) { // create sharp corner
|
|
314
216
|
this.jointCurve = LineString3d.create(ray0.origin, intersection.detailA.point, ray1.origin);
|
|
315
217
|
return;
|
|
316
218
|
}
|
|
317
|
-
if (numChamferPoints > 1) {
|
|
318
|
-
// A nontrivial linestring ...
|
|
219
|
+
if (numChamferPoints > 1) { // create chamfer corner (a line string)
|
|
319
220
|
const radians0 = theta.radians;
|
|
320
221
|
const numHalfStep = 2.0 * numChamferPoints;
|
|
321
222
|
const halfStepRadians = radians0 / numHalfStep;
|
|
@@ -335,19 +236,20 @@ class Joint {
|
|
|
335
236
|
}
|
|
336
237
|
}
|
|
337
238
|
}
|
|
338
|
-
//
|
|
239
|
+
// if there is no intersection between the 2 ray lines, fill the gap by a line segment
|
|
339
240
|
this.flexure = JointMode.Gap;
|
|
340
241
|
this.jointCurve = LineSegment3d.create(this.curve0.fractionToPoint(1.0), this.curve1.fractionToPoint(0.0));
|
|
341
242
|
this.fraction0 = 1.0;
|
|
342
243
|
this.fraction1 = 0.0;
|
|
343
244
|
}
|
|
344
245
|
}
|
|
345
|
-
|
|
246
|
+
/** Select the index at which summed fraction difference is smallest */
|
|
346
247
|
selectIntersectionIndexByFraction(fractionA, fractionB, intersections) {
|
|
347
248
|
let index = -1;
|
|
348
249
|
let aMin = Number.MAX_VALUE;
|
|
349
250
|
for (let i = 0; i < intersections.length; i++) {
|
|
350
|
-
const a = Math.abs(intersections[i].detailA.fraction - fractionA)
|
|
251
|
+
const a = Math.abs(intersections[i].detailA.fraction - fractionA)
|
|
252
|
+
+ Math.abs(intersections[i].detailB.fraction - fractionB);
|
|
351
253
|
if (a < aMin) {
|
|
352
254
|
aMin = a;
|
|
353
255
|
index = i;
|
|
@@ -356,42 +258,42 @@ class Joint {
|
|
|
356
258
|
return index;
|
|
357
259
|
}
|
|
358
260
|
/**
|
|
359
|
-
* Examine the adjacent geometry
|
|
360
|
-
* * set JointMode:
|
|
261
|
+
* Examine the adjacent geometry to set some of joint attributes:
|
|
262
|
+
* * set JointMode: one of Cap, Extend, or Trim
|
|
361
263
|
* * set fraction0 and fraction1 of intersection of curve0 and curve1
|
|
264
|
+
* * set joint curve
|
|
362
265
|
* * this REFERENCES curve0, curve1, fraction0, fraction1
|
|
363
266
|
* * this does not reference nextJoint and previousJoint
|
|
364
267
|
*/
|
|
365
268
|
annotateJointMode(options) {
|
|
366
|
-
if (this.curve0 &&
|
|
269
|
+
if (!this.curve0 && this.curve1) { // joint at the start of the chain
|
|
367
270
|
this.flexure = JointMode.Cap;
|
|
368
|
-
this.
|
|
271
|
+
this.fraction1 = 0.0;
|
|
369
272
|
}
|
|
370
|
-
else if (this.
|
|
273
|
+
else if (this.curve0 && !this.curve1) { // joint at the end of the chain
|
|
371
274
|
this.flexure = JointMode.Cap;
|
|
372
|
-
this.
|
|
275
|
+
this.fraction0 = 1.0;
|
|
373
276
|
}
|
|
374
|
-
else if (this.curve0 && this.curve1) {
|
|
375
|
-
|
|
376
|
-
if (this.curve0.endPoint().isAlmostEqual(this.curve1.startPoint())) {
|
|
277
|
+
else if (this.curve0 && this.curve1) { // joints at the middle of the chain
|
|
278
|
+
if (this.curve0.endPoint().isAlmostEqual(this.curve1.startPoint())) { // joint between colinear segments
|
|
377
279
|
this.fraction0 = 1.0;
|
|
378
280
|
this.fraction1 = 0.0;
|
|
379
281
|
this.flexure = JointMode.Trim;
|
|
380
282
|
}
|
|
381
|
-
else if (this.curve0 instanceof LineSegment3d && this.curve1 instanceof LineSegment3d) {
|
|
382
|
-
const ray0 = this.curve0.fractionToPointAndDerivative(0.0);
|
|
383
|
-
const ray1 = this.curve1.fractionToPointAndDerivative(0.0);
|
|
384
|
-
const intersection = Ray3d.closestApproachRay3dRay3d(ray0, ray1);
|
|
283
|
+
else if (this.curve0 instanceof LineSegment3d && this.curve1 instanceof LineSegment3d) { // pair of lines
|
|
284
|
+
const ray0 = this.curve0.fractionToPointAndDerivative(0.0);
|
|
285
|
+
const ray1 = this.curve1.fractionToPointAndDerivative(0.0);
|
|
286
|
+
const intersection = Ray3d.closestApproachRay3dRay3d(ray0, ray1); // intersection of the 2 ray lines
|
|
385
287
|
if (intersection.approachType === CurveCurveApproachType.Intersection) {
|
|
386
288
|
this.fraction0 = intersection.detailA.fraction;
|
|
387
289
|
this.fraction1 = intersection.detailB.fraction;
|
|
388
|
-
if (this.fraction0 >= 1.0 && this.fraction1 <= 0.0) {
|
|
290
|
+
if (this.fraction0 >= 1.0 && this.fraction1 <= 0.0) { // need to extend
|
|
389
291
|
this.annotateExtension(options);
|
|
390
292
|
}
|
|
391
|
-
else if (this.fraction0 < 1.0 && this.fraction1 > 0.0) {
|
|
293
|
+
else if (this.fraction0 < 1.0 && this.fraction1 > 0.0) { // need to trim
|
|
392
294
|
this.flexure = JointMode.Trim;
|
|
393
295
|
}
|
|
394
|
-
else if (this.fraction0 > 1.0 && this.fraction1 > 1.0) {
|
|
296
|
+
else if (this.fraction0 > 1.0 && this.fraction1 > 1.0) { // need to fill gap with a single line segment
|
|
395
297
|
this.flexure = JointMode.Gap;
|
|
396
298
|
this.jointCurve = LineSegment3d.create(this.curve0.fractionToPoint(1.0), this.curve1.fractionToPoint(0.0));
|
|
397
299
|
this.fraction0 = 1.0;
|
|
@@ -399,15 +301,15 @@ class Joint {
|
|
|
399
301
|
}
|
|
400
302
|
}
|
|
401
303
|
}
|
|
402
|
-
else { // generic pair of curves
|
|
304
|
+
else { // generic pair of curves
|
|
403
305
|
const intersections = CurveCurve.intersectionXYPairs(this.curve0, false, this.curve1, false);
|
|
404
306
|
const intersectionIndex = this.selectIntersectionIndexByFraction(1.0, 0.0, intersections);
|
|
405
|
-
if (intersectionIndex >= 0) {
|
|
307
|
+
if (intersectionIndex >= 0) { // need to trim
|
|
406
308
|
this.flexure = JointMode.Trim;
|
|
407
309
|
this.fraction0 = intersections[intersectionIndex].detailA.fraction;
|
|
408
310
|
this.fraction1 = intersections[intersectionIndex].detailB.fraction;
|
|
409
311
|
}
|
|
410
|
-
else {
|
|
312
|
+
else { // need to extend
|
|
411
313
|
this.annotateExtension(options);
|
|
412
314
|
}
|
|
413
315
|
}
|
|
@@ -415,7 +317,8 @@ class Joint {
|
|
|
415
317
|
}
|
|
416
318
|
/**
|
|
417
319
|
* * Examine the primitive trim fractions between each pair of joints.
|
|
418
|
-
* * If trim fractions indicate the primitive must disappear, replace the joint pair by a new joint pointing at
|
|
320
|
+
* * If trim fractions indicate the primitive must disappear, replace the joint pair by a new joint pointing at
|
|
321
|
+
* surrounding primitives
|
|
419
322
|
* @param start
|
|
420
323
|
*/
|
|
421
324
|
static removeDegeneratePrimitives(start, options, maxTest) {
|
|
@@ -450,8 +353,7 @@ class Joint {
|
|
|
450
353
|
}
|
|
451
354
|
*/
|
|
452
355
|
const eliminateF = f0 >= f1 || f0 > 1.0;
|
|
453
|
-
const eliminateG = (g0 !== undefined && g0 > 1.0)
|
|
454
|
-
|| (g0 !== undefined && g1 !== undefined && g0 >= g1);
|
|
356
|
+
const eliminateG = (g0 !== undefined && g0 > 1.0) || (g0 !== undefined && g1 !== undefined && g0 >= g1);
|
|
455
357
|
if (eliminateF && eliminateG) {
|
|
456
358
|
const jointC = jointB.nextJoint;
|
|
457
359
|
const newJoint = new Joint(jointA.curve0, jointC.curve1, undefined);
|
|
@@ -507,9 +409,8 @@ class Joint {
|
|
|
507
409
|
* @internal
|
|
508
410
|
*/
|
|
509
411
|
class PolygonWireOffsetContext {
|
|
510
|
-
/**
|
|
511
|
-
constructor() {
|
|
512
|
-
}
|
|
412
|
+
/** Construct a context. */
|
|
413
|
+
constructor() { }
|
|
513
414
|
// Construct a single offset from base points
|
|
514
415
|
static createOffsetSegment(basePointA, basePointB, distance) {
|
|
515
416
|
Vector3d.createStartEnd(basePointA, basePointB, this._unitAlong);
|
|
@@ -522,13 +423,25 @@ class PolygonWireOffsetContext {
|
|
|
522
423
|
return undefined;
|
|
523
424
|
}
|
|
524
425
|
/**
|
|
525
|
-
* Construct
|
|
526
|
-
*
|
|
527
|
-
*
|
|
528
|
-
*
|
|
529
|
-
*
|
|
426
|
+
* Construct a wire (not area) that is offset from given polyline or polygon (which must be in xy-plane or in
|
|
427
|
+
* a plane parallel to xy-plane).
|
|
428
|
+
* * This is a simple wire offset (in the form of a line string), not an area.
|
|
429
|
+
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
430
|
+
* * See [[JointOptions]] class doc for offset construction rules.
|
|
431
|
+
* @param points a single loop or path
|
|
432
|
+
* @param wrap true to offset the wraparound joint. Assumes first = last point.
|
|
433
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or JointOptions
|
|
434
|
+
* object.
|
|
530
435
|
*/
|
|
531
436
|
constructPolygonWireXYOffset(points, wrap, leftOffsetDistanceOrOptions) {
|
|
437
|
+
/**
|
|
438
|
+
* if "wrap = true", then first and last point in the points array must be close; otherwise
|
|
439
|
+
* generated offset will be invalid.
|
|
440
|
+
*/
|
|
441
|
+
if (wrap && !points[0].isAlmostEqual(points[points.length - 1])) {
|
|
442
|
+
wrap = false;
|
|
443
|
+
}
|
|
444
|
+
/** create raw offsets as a linked list (joint0) */
|
|
532
445
|
const options = JointOptions.create(leftOffsetDistanceOrOptions);
|
|
533
446
|
const numPoints = points.length;
|
|
534
447
|
let fragment0 = PolygonWireOffsetContext.createOffsetSegment(points[0], points[1], options.leftOffsetDistance);
|
|
@@ -548,7 +461,9 @@ class PolygonWireOffsetContext {
|
|
|
548
461
|
newJoint = new Joint(fragment0, undefined, points[numPoints - 1]);
|
|
549
462
|
Joint.link(previousJoint, newJoint);
|
|
550
463
|
}
|
|
464
|
+
/** annotateChain sets some of the joints attributes (including how to extend curves or fill the gap between curves) */
|
|
551
465
|
Joint.annotateChain(joint0, options, numPoints);
|
|
466
|
+
/** make limited passes through the Joint chain until no self-intersections are removed */
|
|
552
467
|
for (let pass = 0; pass++ < 5;) {
|
|
553
468
|
const state = Joint.removeDegeneratePrimitives(joint0, options, numPoints);
|
|
554
469
|
joint0 = state.newStart;
|
|
@@ -562,6 +477,7 @@ class PolygonWireOffsetContext {
|
|
|
562
477
|
*/
|
|
563
478
|
}
|
|
564
479
|
// Joint.collectPrimitivesFromChain(joint0, result, numPoints);
|
|
480
|
+
/** turn the Joint linked list into a CurveCollection (Loop or Path). trimming is done in collectStrokesFromChain */
|
|
565
481
|
const chain = LineString3d.create();
|
|
566
482
|
Joint.collectStrokesFromChain(joint0, chain, numPoints);
|
|
567
483
|
const n = chain.packedPoints.length;
|
|
@@ -585,14 +501,13 @@ export { PolygonWireOffsetContext };
|
|
|
585
501
|
*/
|
|
586
502
|
export class CurveChainWireOffsetContext {
|
|
587
503
|
/** construct a context. */
|
|
588
|
-
constructor() {
|
|
589
|
-
}
|
|
504
|
+
constructor() { }
|
|
590
505
|
/**
|
|
591
506
|
* Annotate a CurvePrimitive with properties `baseCurveStart` and `baseCurveEnd`.
|
|
592
|
-
*
|
|
593
|
-
* @param cp primitive to annotate
|
|
507
|
+
* @param cp curve primitive to annotate
|
|
594
508
|
* @param startPoint optional start point
|
|
595
509
|
* @param endPoint optional end point
|
|
510
|
+
* @return the input CurvePrimitive with annotations
|
|
596
511
|
*/
|
|
597
512
|
static applyBasePoints(cp, startPoint, endPoint) {
|
|
598
513
|
if (cp !== undefined) {
|
|
@@ -604,39 +519,33 @@ export class CurveChainWireOffsetContext {
|
|
|
604
519
|
return cp;
|
|
605
520
|
}
|
|
606
521
|
/**
|
|
607
|
-
* Create the offset of a single primitive.
|
|
608
|
-
* *
|
|
522
|
+
* Create the offset of a single curve primitive as viewed in the xy-plane (ignoring z).
|
|
523
|
+
* * Each primitive may be labeled (as an `any` object) with start or end point of base curve:
|
|
609
524
|
* * `(primitive as any).baseCurveStart: Point3d`
|
|
610
525
|
* * `(primitive as any).baseCurveEnd: Point3d`
|
|
611
|
-
* @param
|
|
612
|
-
* @param offsetDistanceOrOptions offset distance (positive to left of
|
|
526
|
+
* @param curve primitive to offset
|
|
527
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object
|
|
613
528
|
*/
|
|
614
|
-
static createSingleOffsetPrimitiveXY(
|
|
615
|
-
const offset =
|
|
529
|
+
static createSingleOffsetPrimitiveXY(curve, offsetDistanceOrOptions) {
|
|
530
|
+
const offset = curve.constructOffsetXY(offsetDistanceOrOptions);
|
|
616
531
|
if (offset === undefined)
|
|
617
532
|
return undefined;
|
|
618
533
|
// decorate each offset with its base curve's endpoints
|
|
619
534
|
if (Array.isArray(offset)) {
|
|
620
|
-
const basePrims =
|
|
535
|
+
const basePrims = curve.collectCurvePrimitives(undefined, true, true);
|
|
621
536
|
if (basePrims.length !== offset.length)
|
|
622
537
|
return undefined; // unexpected aggregate curve type!
|
|
623
538
|
for (let i = 0; i < basePrims.length; ++i)
|
|
624
539
|
this.applyBasePoints(offset[i], basePrims[i].startPoint(), basePrims[i].endPoint());
|
|
625
540
|
return offset;
|
|
626
541
|
}
|
|
627
|
-
return this.applyBasePoints(offset,
|
|
542
|
+
return this.applyBasePoints(offset, curve.startPoint(), curve.endPoint());
|
|
628
543
|
}
|
|
629
544
|
/**
|
|
630
545
|
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
631
|
-
* * The construction will remove "some" local effects of features smaller than the offset distance, but will
|
|
632
|
-
*
|
|
633
|
-
* *
|
|
634
|
-
* * If the turn is larger than `options.minArcDegrees`, a circular arc is constructed.
|
|
635
|
-
* * If the turn is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to single intersection point.
|
|
636
|
-
* * If the turn is larger than `options.maxChamferDegrees`, the turn is constructed as a sequence of straight lines that are:
|
|
637
|
-
* * outside the arc
|
|
638
|
-
* * have uniform turn angle less than `options.maxChamferDegrees`
|
|
639
|
-
* * each line segment (except first and last) touches the arc at its midpoint.
|
|
546
|
+
* * The construction will remove "some" local effects of features smaller than the offset distance, but will
|
|
547
|
+
* not detect self intersection among widely separated edges.
|
|
548
|
+
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/Offset
|
|
640
549
|
* @param curves base curves.
|
|
641
550
|
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
642
551
|
*/
|
|
@@ -644,14 +553,15 @@ export class CurveChainWireOffsetContext {
|
|
|
644
553
|
const wrap = curves instanceof Loop;
|
|
645
554
|
const offsetOptions = OffsetOptions.create(offsetDistanceOrOptions);
|
|
646
555
|
const simpleOffsets = [];
|
|
647
|
-
|
|
556
|
+
/** traverse primitives (children of curves) and create simple offsets of each primitive as an array */
|
|
648
557
|
for (const c of curves.children) {
|
|
649
558
|
const c1 = CurveChainWireOffsetContext.createSingleOffsetPrimitiveXY(c, offsetOptions);
|
|
650
559
|
if (c1 === undefined) {
|
|
651
560
|
// bad .. maybe arc to inside?
|
|
652
561
|
}
|
|
653
|
-
else if (c1 instanceof CurvePrimitive)
|
|
562
|
+
else if (c1 instanceof CurvePrimitive) {
|
|
654
563
|
simpleOffsets.push(c1);
|
|
564
|
+
}
|
|
655
565
|
else if (Array.isArray(c1)) {
|
|
656
566
|
for (const c2 of c1) {
|
|
657
567
|
if (c2 instanceof CurvePrimitive)
|
|
@@ -659,6 +569,7 @@ export class CurveChainWireOffsetContext {
|
|
|
659
569
|
}
|
|
660
570
|
}
|
|
661
571
|
}
|
|
572
|
+
/** create joints between array elements to make offsets as a linked list (joint0) */
|
|
662
573
|
let fragment0;
|
|
663
574
|
let newJoint;
|
|
664
575
|
let previousJoint;
|
|
@@ -677,8 +588,10 @@ export class CurveChainWireOffsetContext {
|
|
|
677
588
|
}
|
|
678
589
|
if (joint0 && previousJoint && curves instanceof Loop)
|
|
679
590
|
Joint.link(previousJoint, joint0);
|
|
591
|
+
/** annotateChain sets some of the joints attributes (including how to extend curves or fill the gap between curves) */
|
|
680
592
|
const numOffset = simpleOffsets.length;
|
|
681
593
|
Joint.annotateChain(joint0, offsetOptions.jointOptions, numOffset);
|
|
594
|
+
/** turn the Joint linked list into a CurveCollection. trimming is done in collectCurvesFromChain */
|
|
682
595
|
const outputCurves = [];
|
|
683
596
|
Joint.collectCurvesFromChain(joint0, outputCurves, numOffset);
|
|
684
597
|
return RegionOps.createLoopPathOrBagOfCurves(outputCurves, wrap, true);
|