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