packages feed

hgeometry 0.12.0.1 → 0.12.0.2

raw patch · 4 files changed

+108/−170 lines, 4 filesdep −directorydep −filepathdep −reanimatedep ~basedep ~hashabledep ~hgeometry-combinatorialPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies removed: directory, filepath, reanimate, reanimate-svg

Dependency ranges changed: base, hashable, hgeometry-combinatorial, lens, linear, text, vector, vector-circular

API changes (from Hackage documentation)

+ Data.Geometry.BezierSpline: colinear :: (Ord r, Fractional r) => r -> BezierSpline 3 2 r -> Bool
+ Data.Geometry.BezierSpline: lineApproximate :: (Ord r, Fractional r) => r -> BezierSpline 3 2 r -> [Point 2 r]
+ Data.Geometry.BezierSpline: quadToCubic :: Fractional r => BezierSpline 2 2 r -> BezierSpline 3 2 r
+ Data.Geometry.Polygon.Bezier: JoinCurve :: Point 2 r -> Point 2 r -> PathJoin r
+ Data.Geometry.Polygon.Bezier: JoinLine :: PathJoin r
+ Data.Geometry.Polygon.Bezier: approximate :: forall t r. (Ord r, Fractional r) => r -> Polygon t (PathJoin r) r -> Polygon t () r
+ Data.Geometry.Polygon.Bezier: approximateSome :: (Ord r, Fractional r) => r -> SomePolygon (PathJoin r) r -> SomePolygon () r
+ Data.Geometry.Polygon.Bezier: data PathJoin r
+ Data.Geometry.Polygon.Bezier: fromBeziers :: (Eq r, Num r) => [BezierSpline 3 2 r] -> SimplePolygon (PathJoin r) r
+ Data.Geometry.Polygon.Bezier: instance GHC.Classes.Eq r => GHC.Classes.Eq (Data.Geometry.Polygon.Bezier.PathJoin r)
+ Data.Geometry.Polygon.Bezier: instance GHC.Classes.Ord r => GHC.Classes.Ord (Data.Geometry.Polygon.Bezier.PathJoin r)
+ Data.Geometry.Polygon.Bezier: instance GHC.Show.Show r => GHC.Show.Show (Data.Geometry.Polygon.Bezier.PathJoin r)
- Algorithms.Geometry.LinearProgramming.Types: _NoSolution :: forall d_a2EhK r_a2EhL. Prism' (LPSolution d_a2EhK r_a2EhL) ()
+ Algorithms.Geometry.LinearProgramming.Types: _NoSolution :: forall d_a2Erb r_a2Erc. Prism' (LPSolution d_a2Erb r_a2Erc) ()
- Algorithms.Geometry.LinearProgramming.Types: _Single :: forall d_a2EhK r_a2EhL. Prism' (LPSolution d_a2EhK r_a2EhL) (Point d_a2EhK r_a2EhL)
+ Algorithms.Geometry.LinearProgramming.Types: _Single :: forall d_a2Erb r_a2Erc. Prism' (LPSolution d_a2Erb r_a2Erc) (Point d_a2Erb r_a2Erc)
- Algorithms.Geometry.LinearProgramming.Types: _UnBounded :: forall d_a2EhK r_a2EhL. Prism' (LPSolution d_a2EhK r_a2EhL) (HalfLine d_a2EhK r_a2EhL)
+ Algorithms.Geometry.LinearProgramming.Types: _UnBounded :: forall d_a2Erb r_a2Erc. Prism' (LPSolution d_a2Erb r_a2Erc) (HalfLine d_a2Erb r_a2Erc)
- Algorithms.Geometry.LinearProgramming.Types: constraints :: forall d_a2EiW r_a2EiX. Lens' (LinearProgram d_a2EiW r_a2EiX) [HalfSpace d_a2EiW r_a2EiX]
+ Algorithms.Geometry.LinearProgramming.Types: constraints :: forall d_a2Esn r_a2Eso. Lens' (LinearProgram d_a2Esn r_a2Eso) [HalfSpace d_a2Esn r_a2Eso]
- Algorithms.Geometry.LinearProgramming.Types: objective :: forall d_a2EiW r_a2EiX. Lens' (LinearProgram d_a2EiW r_a2EiX) (Vector d_a2EiW r_a2EiX)
+ Algorithms.Geometry.LinearProgramming.Types: objective :: forall d_a2Esn r_a2Eso. Lens' (LinearProgram d_a2Esn r_a2Eso) (Vector d_a2Esn r_a2Eso)
- Algorithms.Geometry.SmallestEnclosingBall: definingPoints :: forall p_a2IDw r_a2IDx p_a2IWc. Lens (DiskResult p_a2IDw r_a2IDx) (DiskResult p_a2IWc r_a2IDx) (TwoOrThree ((:+) (Point 2 r_a2IDx) p_a2IDw)) (TwoOrThree ((:+) (Point 2 r_a2IDx) p_a2IWc))
+ Algorithms.Geometry.SmallestEnclosingBall: definingPoints :: forall p_a2IZX r_a2IZY p_a2JiD. Lens (DiskResult p_a2IZX r_a2IZY) (DiskResult p_a2JiD r_a2IZY) (TwoOrThree ((:+) (Point 2 r_a2IZY) p_a2IZX)) (TwoOrThree ((:+) (Point 2 r_a2IZY) p_a2JiD))
- Algorithms.Geometry.SmallestEnclosingBall: enclosingDisk :: forall p_a2IDw r_a2IDx. Lens' (DiskResult p_a2IDw r_a2IDx) (Disk () r_a2IDx)
+ Algorithms.Geometry.SmallestEnclosingBall: enclosingDisk :: forall p_a2IZX r_a2IZY. Lens' (DiskResult p_a2IZX r_a2IZY) (Disk () r_a2IZY)
- Algorithms.Geometry.WSPD: nodeData :: forall d_a2zQv r_a2zQw a_a2zQx a_a2zVe. Lens (NodeData d_a2zQv r_a2zQw a_a2zQx) (NodeData d_a2zQv r_a2zQw a_a2zVe) a_a2zQx a_a2zVe
+ Algorithms.Geometry.WSPD: nodeData :: forall d_a2zZW r_a2zZX a_a2zZY a_a2A4F. Lens (NodeData d_a2zZW r_a2zZX a_a2zZY) (NodeData d_a2zZW r_a2zZX a_a2A4F) a_a2zZY a_a2A4F
- Algorithms.Geometry.WellSeparatedPairDecomposition.Types: bBox :: forall d_a2zQv r_a2zQw a_a2zQx d_a2zVc r_a2zVd. Lens (NodeData d_a2zQv r_a2zQw a_a2zQx) (NodeData d_a2zVc r_a2zVd a_a2zQx) (Box d_a2zQv () r_a2zQw) (Box d_a2zVc () r_a2zVd)
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: bBox :: forall d_a2zZW r_a2zZX a_a2zZY d_a2A4D r_a2A4E. Lens (NodeData d_a2zZW r_a2zZX a_a2zZY) (NodeData d_a2A4D r_a2A4E a_a2zZY) (Box d_a2zZW () r_a2zZX) (Box d_a2A4D () r_a2A4E)
- Algorithms.Geometry.WellSeparatedPairDecomposition.Types: leftPart :: forall d_a2A7p r_a2A7q p_a2A7r. Lens' (FindAndCompact d_a2A7p r_a2A7q p_a2A7r) (Seq ((:+) (Point d_a2A7p r_a2A7q) p_a2A7r))
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: leftPart :: forall d_a2AgQ r_a2AgR p_a2AgS. Lens' (FindAndCompact d_a2AgQ r_a2AgR p_a2AgS) (Seq ((:+) (Point d_a2AgQ r_a2AgR) p_a2AgS))
- Algorithms.Geometry.WellSeparatedPairDecomposition.Types: nodeData :: forall d_a2zQv r_a2zQw a_a2zQx a_a2zVe. Lens (NodeData d_a2zQv r_a2zQw a_a2zQx) (NodeData d_a2zQv r_a2zQw a_a2zVe) a_a2zQx a_a2zVe
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: nodeData :: forall d_a2zZW r_a2zZX a_a2zZY a_a2A4F. Lens (NodeData d_a2zZW r_a2zZX a_a2zZY) (NodeData d_a2zZW r_a2zZX a_a2A4F) a_a2zZY a_a2A4F
- Algorithms.Geometry.WellSeparatedPairDecomposition.Types: rightPart :: forall d_a2A7p r_a2A7q p_a2A7r. Lens' (FindAndCompact d_a2A7p r_a2A7q p_a2A7r) (Seq ((:+) (Point d_a2A7p r_a2A7q) p_a2A7r))
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: rightPart :: forall d_a2AgQ r_a2AgR p_a2AgS. Lens' (FindAndCompact d_a2AgQ r_a2AgR p_a2AgS) (Seq ((:+) (Point d_a2AgQ r_a2AgR) p_a2AgS))
- Algorithms.Geometry.WellSeparatedPairDecomposition.Types: shortSide :: forall d_a2A7p r_a2A7q p_a2A7r. Lens' (FindAndCompact d_a2A7p r_a2A7q p_a2A7r) ShortSide
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: shortSide :: forall d_a2AgQ r_a2AgR p_a2AgS. Lens' (FindAndCompact d_a2AgQ r_a2AgR p_a2AgS) ShortSide
- Algorithms.Geometry.WellSeparatedPairDecomposition.Types: splitDim :: forall d_a2zQv r_a2zQw a_a2zQx. Lens' (NodeData d_a2zQv r_a2zQw a_a2zQx) Int
+ Algorithms.Geometry.WellSeparatedPairDecomposition.Types: splitDim :: forall d_a2zZW r_a2zZX a_a2zZY. Lens' (NodeData d_a2zZW r_a2zZX a_a2zZY) Int
- Data.Geometry.Arrangement: boundedArea :: forall k_a3n55 (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G. Lens' (Arrangement (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G) (Rectangle () r_a3n4G)
+ Data.Geometry.Arrangement: boundedArea :: forall k_a3nrw (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7. Lens' (Arrangement (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7) (Rectangle () r_a3nr7)
- Data.Geometry.Arrangement: inputLines :: forall k_a3n55 (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G. Lens' (Arrangement (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G) (Vector ((:+) (Line 2 r_a3n4G) l_a3n4C))
+ Data.Geometry.Arrangement: inputLines :: forall k_a3nrw (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7. Lens' (Arrangement (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7) (Vector ((:+) (Line 2 r_a3nr7) l_a3nr3))
- Data.Geometry.Arrangement: subdivision :: forall k_a3n55 (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G v_a3nci e_a3ncj f_a3nck. Lens (Arrangement (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G) (Arrangement (s_a3n4B :: k_a3n55) l_a3n4C v_a3nci e_a3ncj f_a3nck r_a3n4G) (PlanarSubdivision s_a3n4B v_a3n4D e_a3n4E f_a3n4F r_a3n4G) (PlanarSubdivision s_a3n4B v_a3nci e_a3ncj f_a3nck r_a3n4G)
+ Data.Geometry.Arrangement: subdivision :: forall k_a3nrw (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7 v_a3nyJ e_a3nyK f_a3nyL. Lens (Arrangement (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7) (Arrangement (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nyJ e_a3nyK f_a3nyL r_a3nr7) (PlanarSubdivision s_a3nr2 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7) (PlanarSubdivision s_a3nr2 v_a3nyJ e_a3nyK f_a3nyL r_a3nr7)
- Data.Geometry.Arrangement: unboundedIntersections :: forall k_a3n55 (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G. Lens' (Arrangement (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G) (ArrangementBoundary s_a3n4B l_a3n4C r_a3n4G)
+ Data.Geometry.Arrangement: unboundedIntersections :: forall k_a3nrw (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7. Lens' (Arrangement (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7) (ArrangementBoundary s_a3nr2 l_a3nr3 r_a3nr7)
- Data.Geometry.Arrangement.Internal: boundedArea :: forall k_a3n55 (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G. Lens' (Arrangement (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G) (Rectangle () r_a3n4G)
+ Data.Geometry.Arrangement.Internal: boundedArea :: forall k_a3nrw (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7. Lens' (Arrangement (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7) (Rectangle () r_a3nr7)
- Data.Geometry.Arrangement.Internal: inputLines :: forall k_a3n55 (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G. Lens' (Arrangement (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G) (Vector ((:+) (Line 2 r_a3n4G) l_a3n4C))
+ Data.Geometry.Arrangement.Internal: inputLines :: forall k_a3nrw (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7. Lens' (Arrangement (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7) (Vector ((:+) (Line 2 r_a3nr7) l_a3nr3))
- Data.Geometry.Arrangement.Internal: subdivision :: forall k_a3n55 (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G v_a3nci e_a3ncj f_a3nck. Lens (Arrangement (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G) (Arrangement (s_a3n4B :: k_a3n55) l_a3n4C v_a3nci e_a3ncj f_a3nck r_a3n4G) (PlanarSubdivision s_a3n4B v_a3n4D e_a3n4E f_a3n4F r_a3n4G) (PlanarSubdivision s_a3n4B v_a3nci e_a3ncj f_a3nck r_a3n4G)
+ Data.Geometry.Arrangement.Internal: subdivision :: forall k_a3nrw (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7 v_a3nyJ e_a3nyK f_a3nyL. Lens (Arrangement (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7) (Arrangement (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nyJ e_a3nyK f_a3nyL r_a3nr7) (PlanarSubdivision s_a3nr2 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7) (PlanarSubdivision s_a3nr2 v_a3nyJ e_a3nyK f_a3nyL r_a3nr7)
- Data.Geometry.Arrangement.Internal: unboundedIntersections :: forall k_a3n55 (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G. Lens' (Arrangement (s_a3n4B :: k_a3n55) l_a3n4C v_a3n4D e_a3n4E f_a3n4F r_a3n4G) (ArrangementBoundary s_a3n4B l_a3n4C r_a3n4G)
+ Data.Geometry.Arrangement.Internal: unboundedIntersections :: forall k_a3nrw (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7. Lens' (Arrangement (s_a3nr2 :: k_a3nrw) l_a3nr3 v_a3nr4 e_a3nr5 f_a3nr6 r_a3nr7) (ArrangementBoundary s_a3nr2 l_a3nr3 r_a3nr7)
- Data.Geometry.Ball: center :: forall d_a2awh p_a2awi r_a2awj d_a2ayV p_a2ayW. Lens (Ball d_a2awh p_a2awi r_a2awj) (Ball d_a2ayV p_a2ayW r_a2awj) ((:+) (Point d_a2awh r_a2awj) p_a2awi) ((:+) (Point d_a2ayV r_a2awj) p_a2ayW)
+ Data.Geometry.Ball: center :: forall d_a2aFI p_a2aFJ r_a2aFK d_a2aIm p_a2aIn. Lens (Ball d_a2aFI p_a2aFJ r_a2aFK) (Ball d_a2aIm p_a2aIn r_a2aFK) ((:+) (Point d_a2aFI r_a2aFK) p_a2aFJ) ((:+) (Point d_a2aIm r_a2aFK) p_a2aIn)
- Data.Geometry.Ball: squaredRadius :: forall d_a2awh p_a2awi r_a2awj. Lens' (Ball d_a2awh p_a2awi r_a2awj) r_a2awj
+ Data.Geometry.Ball: squaredRadius :: forall d_a2aFI p_a2aFJ r_a2aFK. Lens' (Ball d_a2aFI p_a2aFJ r_a2aFK) r_a2aFK
- Data.Geometry.Box.Corners: northEast :: forall a_a1CLy. Lens' (Corners a_a1CLy) a_a1CLy
+ Data.Geometry.Box.Corners: northEast :: forall a_a1CNV. Lens' (Corners a_a1CNV) a_a1CNV
- Data.Geometry.Box.Corners: northWest :: forall a_a1CLy. Lens' (Corners a_a1CLy) a_a1CLy
+ Data.Geometry.Box.Corners: northWest :: forall a_a1CNV. Lens' (Corners a_a1CNV) a_a1CNV
- Data.Geometry.Box.Corners: southEast :: forall a_a1CLy. Lens' (Corners a_a1CLy) a_a1CLy
+ Data.Geometry.Box.Corners: southEast :: forall a_a1CNV. Lens' (Corners a_a1CNV) a_a1CNV
- Data.Geometry.Box.Corners: southWest :: forall a_a1CLy. Lens' (Corners a_a1CLy) a_a1CLy
+ Data.Geometry.Box.Corners: southWest :: forall a_a1CNV. Lens' (Corners a_a1CNV) a_a1CNV
- Data.Geometry.Box.Internal: cwMax :: forall a_a1jTe a_a1kan. Iso (CWMax a_a1jTe) (CWMax a_a1kan) a_a1jTe a_a1kan
+ Data.Geometry.Box.Internal: cwMax :: forall a_a1jVB a_a1kcK. Iso (CWMax a_a1jVB) (CWMax a_a1kcK) a_a1jVB a_a1kcK
- Data.Geometry.Box.Internal: cwMin :: forall a_a1jEd a_a1jT8. Iso (CWMin a_a1jEd) (CWMin a_a1jT8) a_a1jEd a_a1jT8
+ Data.Geometry.Box.Internal: cwMin :: forall a_a1jGA a_a1jVv. Iso (CWMin a_a1jGA) (CWMin a_a1jVv) a_a1jGA a_a1jVv
- Data.Geometry.Box.Internal: maxP :: forall d_a1kau p_a1kav r_a1kaw. Lens' (Box d_a1kau p_a1kav r_a1kaw) ((:+) (CWMax (Point d_a1kau r_a1kaw)) p_a1kav)
+ Data.Geometry.Box.Internal: maxP :: forall d_a1kcR p_a1kcS r_a1kcT. Lens' (Box d_a1kcR p_a1kcS r_a1kcT) ((:+) (CWMax (Point d_a1kcR r_a1kcT)) p_a1kcS)
- Data.Geometry.Box.Internal: minP :: forall d_a1kau p_a1kav r_a1kaw. Lens' (Box d_a1kau p_a1kav r_a1kaw) ((:+) (CWMin (Point d_a1kau r_a1kaw)) p_a1kav)
+ Data.Geometry.Box.Internal: minP :: forall d_a1kcR p_a1kcS r_a1kcT. Lens' (Box d_a1kcR p_a1kcS r_a1kcT) ((:+) (CWMin (Point d_a1kcR r_a1kcT)) p_a1kcS)
- Data.Geometry.Box.Sides: east :: forall a_a1FbN. Lens' (Sides a_a1FbN) a_a1FbN
+ Data.Geometry.Box.Sides: east :: forall a_a1Fea. Lens' (Sides a_a1Fea) a_a1Fea
- Data.Geometry.Box.Sides: north :: forall a_a1FbN. Lens' (Sides a_a1FbN) a_a1FbN
+ Data.Geometry.Box.Sides: north :: forall a_a1Fea. Lens' (Sides a_a1Fea) a_a1Fea
- Data.Geometry.Box.Sides: south :: forall a_a1FbN. Lens' (Sides a_a1FbN) a_a1FbN
+ Data.Geometry.Box.Sides: south :: forall a_a1Fea. Lens' (Sides a_a1Fea) a_a1Fea
- Data.Geometry.Box.Sides: west :: forall a_a1FbN. Lens' (Sides a_a1FbN) a_a1FbN
+ Data.Geometry.Box.Sides: west :: forall a_a1Fea. Lens' (Sides a_a1Fea) a_a1Fea
- Data.Geometry.Ellipse: affineTransformation :: forall r_a2wor r_a2wR7. Iso (Ellipse r_a2wor) (Ellipse r_a2wR7) (Transformation 2 r_a2wor) (Transformation 2 r_a2wR7)
+ Data.Geometry.Ellipse: affineTransformation :: forall r_a2wxS r_a2x0y. Iso (Ellipse r_a2wxS) (Ellipse r_a2x0y) (Transformation 2 r_a2wxS) (Transformation 2 r_a2x0y)
- Data.Geometry.HalfLine: halfLineDirection :: forall d_a22kT r_a22kU. Lens' (HalfLine d_a22kT r_a22kU) (Vector d_a22kT r_a22kU)
+ Data.Geometry.HalfLine: halfLineDirection :: forall d_a22nq r_a22nr. Lens' (HalfLine d_a22nq r_a22nr) (Vector d_a22nq r_a22nr)
- Data.Geometry.HalfLine: startPoint :: forall d_a22kT r_a22kU. Lens' (HalfLine d_a22kT r_a22kU) (Point d_a22kT r_a22kU)
+ Data.Geometry.HalfLine: startPoint :: forall d_a22nq r_a22nr. Lens' (HalfLine d_a22nq r_a22nr) (Point d_a22nq r_a22nr)
- Data.Geometry.HalfSpace: boundingPlane :: forall d_a27kv r_a27kw d_a27mo r_a27mp. Iso (HalfSpace d_a27kv r_a27kw) (HalfSpace d_a27mo r_a27mp) (HyperPlane d_a27kv r_a27kw) (HyperPlane d_a27mo r_a27mp)
+ Data.Geometry.HalfSpace: boundingPlane :: forall d_a27n2 r_a27n3 d_a27oV r_a27oW. Iso (HalfSpace d_a27n2 r_a27n3) (HalfSpace d_a27oV r_a27oW) (HyperPlane d_a27n2 r_a27n3) (HyperPlane d_a27oV r_a27oW)
- Data.Geometry.HyperPlane: inPlane :: forall d_a1YpS r_a1YpT. Lens' (HyperPlane d_a1YpS r_a1YpT) (Point d_a1YpS r_a1YpT)
+ Data.Geometry.HyperPlane: inPlane :: forall d_a1Ysp r_a1Ysq. Lens' (HyperPlane d_a1Ysp r_a1Ysq) (Point d_a1Ysp r_a1Ysq)
- Data.Geometry.HyperPlane: normalVec :: forall d_a1YpS r_a1YpT. Lens' (HyperPlane d_a1YpS r_a1YpT) (Vector d_a1YpS r_a1YpT)
+ Data.Geometry.HyperPlane: normalVec :: forall d_a1Ysp r_a1Ysq. Lens' (HyperPlane d_a1Ysp r_a1Ysq) (Vector d_a1Ysp r_a1Ysq)
- Data.Geometry.Interval.Util: unL :: forall r_aliD r_alMb. Iso (L r_aliD) (L r_alMb) (EndPoint r_aliD) (EndPoint r_alMb)
+ Data.Geometry.Interval.Util: unL :: forall r_alkY r_alOC. Iso (L r_alkY) (L r_alOC) (EndPoint r_alkY) (EndPoint r_alOC)
- Data.Geometry.Interval.Util: unR :: forall r_alMh r_alZa. Iso (R r_alMh) (R r_alZa) (EndPoint r_alMh) (EndPoint r_alZa)
+ Data.Geometry.Interval.Util: unR :: forall r_alOI r_am1B. Iso (R r_alOI) (R r_am1B) (EndPoint r_alOI) (EndPoint r_am1B)
- Data.Geometry.IntervalTree: intervalsLeft :: forall i_ap0w r_ap0x. Lens' (NodeData i_ap0w r_ap0x) (Map (L r_ap0x) [i_ap0w])
+ Data.Geometry.IntervalTree: intervalsLeft :: forall i_ap2T r_ap2U. Lens' (NodeData i_ap2T r_ap2U) (Map (L r_ap2U) [i_ap2T])
- Data.Geometry.IntervalTree: intervalsRight :: forall i_ap0w r_ap0x. Lens' (NodeData i_ap0w r_ap0x) (Map (R r_ap0x) [i_ap0w])
+ Data.Geometry.IntervalTree: intervalsRight :: forall i_ap2T r_ap2U. Lens' (NodeData i_ap2T r_ap2U) (Map (R r_ap2U) [i_ap2T])
- Data.Geometry.IntervalTree: splitPoint :: forall i_ap0w r_ap0x. Lens' (NodeData i_ap0w r_ap0x) r_ap0x
+ Data.Geometry.IntervalTree: splitPoint :: forall i_ap2T r_ap2U. Lens' (NodeData i_ap2T r_ap2U) r_ap2U
- Data.Geometry.IntervalTree: unIntervalTree :: forall i_ap9y r_ap9z i_apgw r_apgx. Iso (IntervalTree i_ap9y r_ap9z) (IntervalTree i_apgw r_apgx) (BinaryTree (NodeData i_ap9y r_ap9z)) (BinaryTree (NodeData i_apgw r_apgx))
+ Data.Geometry.IntervalTree: unIntervalTree :: forall i_apbV r_apbW i_apiT r_apiU. Iso (IntervalTree i_apbV r_apbW) (IntervalTree i_apiT r_apiU) (BinaryTree (NodeData i_apbV r_apbW)) (BinaryTree (NodeData i_apiT r_apiU))
- Data.Geometry.PlanarSubdivision.Basic: components :: forall k_a3b5e (s_a3b4A :: k_a3b5e) v_a3b4B e_a3b4C f_a3b4D r_a3b4E r_a3bhJ. Lens (PlanarSubdivision (s_a3b4A :: k_a3b5e) v_a3b4B e_a3b4C f_a3b4D r_a3b4E) (PlanarSubdivision (s_a3b4A :: k_a3b5e) v_a3b4B e_a3b4C f_a3b4D r_a3bhJ) (Vector (Component s_a3b4A r_a3b4E)) (Vector (Component s_a3b4A r_a3bhJ))
+ Data.Geometry.PlanarSubdivision.Basic: components :: forall k_a3brF (s_a3br1 :: k_a3brF) v_a3br2 e_a3br3 f_a3br4 r_a3br5 r_a3bEa. Lens (PlanarSubdivision (s_a3br1 :: k_a3brF) v_a3br2 e_a3br3 f_a3br4 r_a3br5) (PlanarSubdivision (s_a3br1 :: k_a3brF) v_a3br2 e_a3br3 f_a3br4 r_a3bEa) (Vector (Component s_a3br1 r_a3br5)) (Vector (Component s_a3br1 r_a3bEa))
- Data.Geometry.PlanarSubdivision.Basic: fData :: forall h_a34W8 f_a34W9 f_a35I8. Lens (FaceData h_a34W8 f_a34W9) (FaceData h_a34W8 f_a35I8) f_a34W9 f_a35I8
+ Data.Geometry.PlanarSubdivision.Basic: fData :: forall h_a35iz f_a35iA f_a364z. Lens (FaceData h_a35iz f_a35iA) (FaceData h_a35iz f_a364z) f_a35iA f_a364z
- Data.Geometry.PlanarSubdivision.Basic: holes :: forall h_a34W8 f_a34W9 h_a35I9. Lens (FaceData h_a34W8 f_a34W9) (FaceData h_a35I9 f_a34W9) (Seq h_a34W8) (Seq h_a35I9)
+ Data.Geometry.PlanarSubdivision.Basic: holes :: forall h_a35iz f_a35iA h_a364A. Lens (FaceData h_a35iz f_a35iA) (FaceData h_a364A f_a35iA) (Seq h_a35iz) (Seq h_a364A)
- Data.Geometry.PlanarSubdivision.Basic: location :: forall r_a2XhW v_a2XhX r_a2XwA. Lens (VertexData r_a2XhW v_a2XhX) (VertexData r_a2XwA v_a2XhX) (Point 2 r_a2XhW) (Point 2 r_a2XwA)
+ Data.Geometry.PlanarSubdivision.Basic: location :: forall r_a2XEn v_a2XEo r_a2XT1. Lens (VertexData r_a2XEn v_a2XEo) (VertexData r_a2XT1 v_a2XEo) (Point 2 r_a2XEn) (Point 2 r_a2XT1)
- Data.Geometry.PlanarSubdivision.Basic: rawDartData :: forall k_a3b5e (s_a3b4A :: k_a3b5e) v_a3b4B e_a3b4C f_a3b4D r_a3b4E e_a3bhK. Lens (PlanarSubdivision (s_a3b4A :: k_a3b5e) v_a3b4B e_a3b4C f_a3b4D r_a3b4E) (PlanarSubdivision (s_a3b4A :: k_a3b5e) v_a3b4B e_a3bhK f_a3b4D r_a3b4E) (Vector (Raw s_a3b4A (Dart (Wrap s_a3b4A)) e_a3b4C)) (Vector (Raw s_a3b4A (Dart (Wrap s_a3b4A)) e_a3bhK))
+ Data.Geometry.PlanarSubdivision.Basic: rawDartData :: forall k_a3brF (s_a3br1 :: k_a3brF) v_a3br2 e_a3br3 f_a3br4 r_a3br5 e_a3bEb. Lens (PlanarSubdivision (s_a3br1 :: k_a3brF) v_a3br2 e_a3br3 f_a3br4 r_a3br5) (PlanarSubdivision (s_a3br1 :: k_a3brF) v_a3br2 e_a3bEb f_a3br4 r_a3br5) (Vector (Raw s_a3br1 (Dart (Wrap s_a3br1)) e_a3br3)) (Vector (Raw s_a3br1 (Dart (Wrap s_a3br1)) e_a3bEb))
- Data.Geometry.PlanarSubdivision.Basic: rawFaceData :: forall k_a3b5e (s_a3b4A :: k_a3b5e) v_a3b4B e_a3b4C f_a3b4D r_a3b4E f_a3bhL. Lens (PlanarSubdivision (s_a3b4A :: k_a3b5e) v_a3b4B e_a3b4C f_a3b4D r_a3b4E) (PlanarSubdivision (s_a3b4A :: k_a3b5e) v_a3b4B e_a3b4C f_a3bhL r_a3b4E) (Vector (RawFace s_a3b4A f_a3b4D)) (Vector (RawFace s_a3b4A f_a3bhL))
+ Data.Geometry.PlanarSubdivision.Basic: rawFaceData :: forall k_a3brF (s_a3br1 :: k_a3brF) v_a3br2 e_a3br3 f_a3br4 r_a3br5 f_a3bEc. Lens (PlanarSubdivision (s_a3br1 :: k_a3brF) v_a3br2 e_a3br3 f_a3br4 r_a3br5) (PlanarSubdivision (s_a3br1 :: k_a3brF) v_a3br2 e_a3br3 f_a3bEc r_a3br5) (Vector (RawFace s_a3br1 f_a3br4)) (Vector (RawFace s_a3br1 f_a3bEc))
- Data.Geometry.PlanarSubdivision.Basic: rawVertexData :: forall k_a3b5e (s_a3b4A :: k_a3b5e) v_a3b4B e_a3b4C f_a3b4D r_a3b4E v_a3bhM. Lens (PlanarSubdivision (s_a3b4A :: k_a3b5e) v_a3b4B e_a3b4C f_a3b4D r_a3b4E) (PlanarSubdivision (s_a3b4A :: k_a3b5e) v_a3bhM e_a3b4C f_a3b4D r_a3b4E) (Vector (Raw s_a3b4A (VertexId' (Wrap s_a3b4A)) v_a3b4B)) (Vector (Raw s_a3b4A (VertexId' (Wrap s_a3b4A)) v_a3bhM))
+ Data.Geometry.PlanarSubdivision.Basic: rawVertexData :: forall k_a3brF (s_a3br1 :: k_a3brF) v_a3br2 e_a3br3 f_a3br4 r_a3br5 v_a3bEd. Lens (PlanarSubdivision (s_a3br1 :: k_a3brF) v_a3br2 e_a3br3 f_a3br4 r_a3br5) (PlanarSubdivision (s_a3br1 :: k_a3brF) v_a3bEd e_a3br3 f_a3br4 r_a3br5) (Vector (Raw s_a3br1 (VertexId' (Wrap s_a3br1)) v_a3br2)) (Vector (Raw s_a3br1 (VertexId' (Wrap s_a3br1)) v_a3bEd))
- Data.Geometry.PlanarSubdivision.Basic: vData :: forall r_a2XhW v_a2XhX v_a2XwB. Lens (VertexData r_a2XhW v_a2XhX) (VertexData r_a2XhW v_a2XwB) v_a2XhX v_a2XwB
+ Data.Geometry.PlanarSubdivision.Basic: vData :: forall r_a2XEn v_a2XEo v_a2XT2. Lens (VertexData r_a2XEn v_a2XEo) (VertexData r_a2XEn v_a2XT2) v_a2XEo v_a2XT2
- Data.Geometry.PlanarSubdivision.Raw: fData :: forall h_a34W8 f_a34W9 f_a35I8. Lens (FaceData h_a34W8 f_a34W9) (FaceData h_a34W8 f_a35I8) f_a34W9 f_a35I8
+ Data.Geometry.PlanarSubdivision.Raw: fData :: forall h_a35iz f_a35iA f_a364z. Lens (FaceData h_a35iz f_a35iA) (FaceData h_a35iz f_a364z) f_a35iA f_a364z
- Data.Geometry.PlanarSubdivision.Raw: faceDataVal :: forall k_a35J2 (s_a35Io :: k_a35J2) f_a35Ip f_a35Y6. Lens (RawFace (s_a35Io :: k_a35J2) f_a35Ip) (RawFace (s_a35Io :: k_a35J2) f_a35Y6) (FaceData (Dart s_a35Io) f_a35Ip) (FaceData (Dart s_a35Io) f_a35Y6)
+ Data.Geometry.PlanarSubdivision.Raw: faceDataVal :: forall k_a365t (s_a364P :: k_a365t) f_a364Q f_a36kx. Lens (RawFace (s_a364P :: k_a365t) f_a364Q) (RawFace (s_a364P :: k_a365t) f_a36kx) (FaceData (Dart s_a364P) f_a364Q) (FaceData (Dart s_a364P) f_a36kx)
- Data.Geometry.PlanarSubdivision.Raw: faceIdx :: forall k_a35J2 (s_a35Io :: k_a35J2) f_a35Ip. Lens' (RawFace (s_a35Io :: k_a35J2) f_a35Ip) (Maybe (ComponentId s_a35Io, FaceId' (Wrap s_a35Io)))
+ Data.Geometry.PlanarSubdivision.Raw: faceIdx :: forall k_a365t (s_a364P :: k_a365t) f_a364Q. Lens' (RawFace (s_a364P :: k_a365t) f_a364Q) (Maybe (ComponentId s_a364P, FaceId' (Wrap s_a364P)))
- Data.Geometry.PlanarSubdivision.Raw: holes :: forall h_a34W8 f_a34W9 h_a35I9. Lens (FaceData h_a34W8 f_a34W9) (FaceData h_a35I9 f_a34W9) (Seq h_a34W8) (Seq h_a35I9)
+ Data.Geometry.PlanarSubdivision.Raw: holes :: forall h_a35iz f_a35iA h_a364A. Lens (FaceData h_a35iz f_a35iA) (FaceData h_a364A f_a35iA) (Seq h_a35iz) (Seq h_a364A)
- Data.Geometry.PointLocation.PersistentSweep: outerFace :: forall k_a3jOy (s_a3jOj :: k_a3jOy) v_a3jOk e_a3jOl f_a3jOm r_a3jOn. Getter (PointLocationDS (s_a3jOj :: k_a3jOy) v_a3jOk e_a3jOl f_a3jOm r_a3jOn) (FaceId' s_a3jOj)
+ Data.Geometry.PointLocation.PersistentSweep: outerFace :: forall k_a3kaZ (s_a3kaK :: k_a3kaZ) v_a3kaL e_a3kaM f_a3kaN r_a3kaO. Getter (PointLocationDS (s_a3kaK :: k_a3kaZ) v_a3kaL e_a3kaM f_a3kaN r_a3kaO) (FaceId' s_a3kaK)
- Data.Geometry.PointLocation.PersistentSweep: subdivision :: forall k_a3jOy (s_a3jOj :: k_a3jOy) v_a3jOk e_a3jOl f_a3jOm r_a3jOn. Getter (PointLocationDS (s_a3jOj :: k_a3jOy) v_a3jOk e_a3jOl f_a3jOm r_a3jOn) (PlanarSubdivision s_a3jOj v_a3jOk e_a3jOl f_a3jOm r_a3jOn)
+ Data.Geometry.PointLocation.PersistentSweep: subdivision :: forall k_a3kaZ (s_a3kaK :: k_a3kaZ) v_a3kaL e_a3kaM f_a3kaN r_a3kaO. Getter (PointLocationDS (s_a3kaK :: k_a3kaZ) v_a3kaL e_a3kaM f_a3kaN r_a3kaO) (PlanarSubdivision s_a3kaK v_a3kaL e_a3kaM f_a3kaN r_a3kaO)
- Data.Geometry.PointLocation.PersistentSweep: verticalRayShootingStructure :: forall k_a3jOy (s_a3jOj :: k_a3jOy) v_a3jOk e_a3jOl f_a3jOm r_a3jOn. Getter (PointLocationDS (s_a3jOj :: k_a3jOy) v_a3jOk e_a3jOl f_a3jOm r_a3jOn) (VerticalRayShootingStructure v_a3jOk (Dart s_a3jOj) r_a3jOn)
+ Data.Geometry.PointLocation.PersistentSweep: verticalRayShootingStructure :: forall k_a3kaZ (s_a3kaK :: k_a3kaZ) v_a3kaL e_a3kaM f_a3kaN r_a3kaO. Getter (PointLocationDS (s_a3kaK :: k_a3kaZ) v_a3kaL e_a3kaM f_a3kaN r_a3kaO) (VerticalRayShootingStructure v_a3kaL (Dart s_a3kaK) r_a3kaO)
- Data.Geometry.QuadTree: startingCell :: forall v_a1NJr p_a1NJs r_a1NJt r_a1NVy. Lens (QuadTree v_a1NJr p_a1NJs r_a1NJt) (QuadTree v_a1NJr p_a1NJs r_a1NVy) (Cell r_a1NJt) (Cell r_a1NVy)
+ Data.Geometry.QuadTree: startingCell :: forall v_a1NLO p_a1NLP r_a1NLQ r_a1NXV. Lens (QuadTree v_a1NLO p_a1NLP r_a1NLQ) (QuadTree v_a1NLO p_a1NLP r_a1NXV) (Cell r_a1NLQ) (Cell r_a1NXV)
- Data.Geometry.QuadTree: tree :: forall v_a1NJr p_a1NJs r_a1NJt v_a1NVz p_a1NVA. Lens (QuadTree v_a1NJr p_a1NJs r_a1NJt) (QuadTree v_a1NVz p_a1NVA r_a1NJt) (Tree v_a1NJr p_a1NJs) (Tree v_a1NVz p_a1NVA)
+ Data.Geometry.QuadTree: tree :: forall v_a1NLO p_a1NLP r_a1NLQ v_a1NXW p_a1NXX. Lens (QuadTree v_a1NLO p_a1NLP r_a1NLQ) (QuadTree v_a1NXW p_a1NXX r_a1NLQ) (Tree v_a1NLO p_a1NLP) (Tree v_a1NXW p_a1NXX)
- Data.Geometry.QuadTree.Cell: cellWidthIndex :: forall r_a1I4V. Lens' (Cell r_a1I4V) WidthIndex
+ Data.Geometry.QuadTree.Cell: cellWidthIndex :: forall r_a1I7i. Lens' (Cell r_a1I7i) WidthIndex
- Data.Geometry.QuadTree.Cell: lowerLeft :: forall r_a1I4V r_a1IfU. Lens (Cell r_a1I4V) (Cell r_a1IfU) (Point 2 r_a1I4V) (Point 2 r_a1IfU)
+ Data.Geometry.QuadTree.Cell: lowerLeft :: forall r_a1I7i r_a1Iih. Lens (Cell r_a1I7i) (Cell r_a1Iih) (Point 2 r_a1I7i) (Point 2 r_a1Iih)
- Data.Geometry.QuadTree.Split: _No :: forall i_a1Ls9 v_a1Lsa p_a1Lyq p_a1Lsb. Prism (Split i_a1Ls9 v_a1Lsa p_a1Lyq) (Split i_a1Ls9 v_a1Lsa p_a1Lsb) p_a1Lyq p_a1Lsb
+ Data.Geometry.QuadTree.Split: _No :: forall i_a1Luw v_a1Lux p_a1LAN p_a1Luy. Prism (Split i_a1Luw v_a1Lux p_a1LAN) (Split i_a1Luw v_a1Lux p_a1Luy) p_a1LAN p_a1Luy
- Data.Geometry.QuadTree.Split: _Yes :: forall i_a1Lyw v_a1Lyx p_a1Lsb i_a1Ls9 v_a1Lsa. Prism (Split i_a1Lyw v_a1Lyx p_a1Lsb) (Split i_a1Ls9 v_a1Lsa p_a1Lsb) (v_a1Lyx, Quadrants i_a1Lyw) (v_a1Lsa, Quadrants i_a1Ls9)
+ Data.Geometry.QuadTree.Split: _Yes :: forall i_a1LAT v_a1LAU p_a1Luy i_a1Luw v_a1Lux. Prism (Split i_a1LAT v_a1LAU p_a1Luy) (Split i_a1Luw v_a1Lux p_a1Luy) (v_a1LAU, Quadrants i_a1LAT) (v_a1Lux, Quadrants i_a1Luw)
- Data.Geometry.QuadTree.Tree: _Leaf :: forall v_a1MrZ p_a1Ms0. Prism' (Tree v_a1MrZ p_a1Ms0) p_a1Ms0
+ Data.Geometry.QuadTree.Tree: _Leaf :: forall v_a1Mum p_a1Mun. Prism' (Tree v_a1Mum p_a1Mun) p_a1Mun
- Data.Geometry.QuadTree.Tree: _Node :: forall v_a1Mvo p_a1Ms0 v_a1MrZ. Prism (Tree v_a1Mvo p_a1Ms0) (Tree v_a1MrZ p_a1Ms0) (v_a1Mvo, Quadrants (Tree v_a1Mvo p_a1Ms0)) (v_a1MrZ, Quadrants (Tree v_a1MrZ p_a1Ms0))
+ Data.Geometry.QuadTree.Tree: _Node :: forall v_a1MxL p_a1Mun v_a1Mum. Prism (Tree v_a1MxL p_a1Mun) (Tree v_a1Mum p_a1Mun) (v_a1MxL, Quadrants (Tree v_a1MxL p_a1Mun)) (v_a1Mum, Quadrants (Tree v_a1Mum p_a1Mun))
- Data.Geometry.SegmentTree.Generic: assoc :: forall v_atY5 r_atY6 v_au54. Lens (NodeData v_atY5 r_atY6) (NodeData v_au54 r_atY6) v_atY5 v_au54
+ Data.Geometry.SegmentTree.Generic: assoc :: forall v_au0s r_au0t v_au7r. Lens (NodeData v_au0s r_au0t) (NodeData v_au7r r_au0t) v_au0s v_au7r
- Data.Geometry.SegmentTree.Generic: atomicRange :: forall v_au5u r_au5v r_auj1. Lens (LeafData v_au5u r_au5v) (LeafData v_au5u r_auj1) (AtomicRange r_au5v) (AtomicRange r_auj1)
+ Data.Geometry.SegmentTree.Generic: atomicRange :: forall v_au7R r_au7S r_aulo. Lens (LeafData v_au7R r_au7S) (LeafData v_au7R r_aulo) (AtomicRange r_au7S) (AtomicRange r_aulo)
- Data.Geometry.SegmentTree.Generic: leafAssoc :: forall v_au5u r_au5v v_auj2. Lens (LeafData v_au5u r_au5v) (LeafData v_auj2 r_au5v) v_au5u v_auj2
+ Data.Geometry.SegmentTree.Generic: leafAssoc :: forall v_au7R r_au7S v_aulp. Lens (LeafData v_au7R r_au7S) (LeafData v_aulp r_au7S) v_au7R v_aulp
- Data.Geometry.SegmentTree.Generic: range :: forall v_atY5 r_atY6. Lens' (NodeData v_atY5 r_atY6) (Range r_atY6)
+ Data.Geometry.SegmentTree.Generic: range :: forall v_au0s r_au0t. Lens' (NodeData v_au0s r_au0t) (Range r_au0t)
- Data.Geometry.SegmentTree.Generic: splitPoint :: forall v_atY5 r_atY6. Lens' (NodeData v_atY5 r_atY6) (EndPoint r_atY6)
+ Data.Geometry.SegmentTree.Generic: splitPoint :: forall v_au0s r_au0t. Lens' (NodeData v_au0s r_au0t) (EndPoint r_au0t)
- Data.Geometry.SegmentTree.Generic: unSegmentTree :: forall v_aujg r_aujh v_aur5 r_aur6. Iso (SegmentTree v_aujg r_aujh) (SegmentTree v_aur5 r_aur6) (BinLeafTree (NodeData v_aujg r_aujh) (LeafData v_aujg r_aujh)) (BinLeafTree (NodeData v_aur5 r_aur6) (LeafData v_aur5 r_aur6))
+ Data.Geometry.SegmentTree.Generic: unSegmentTree :: forall v_aulD r_aulE v_auts r_autt. Iso (SegmentTree v_aulD r_aulE) (SegmentTree v_auts r_autt) (BinLeafTree (NodeData v_aulD r_aulE) (LeafData v_aulD r_aulE)) (BinLeafTree (NodeData v_auts r_autt) (LeafData v_auts r_autt))
- Data.Geometry.Slab: unSlab :: forall o_a1Vkj a_a1Vkk r_a1Vkl o_a1VpV a_a1VpW r_a1VpX. Iso (Slab o_a1Vkj a_a1Vkk r_a1Vkl) (Slab o_a1VpV a_a1VpW r_a1VpX) (Interval a_a1Vkk r_a1Vkl) (Interval a_a1VpW r_a1VpX)
+ Data.Geometry.Slab: unSlab :: forall o_a1VmQ a_a1VmR r_a1VmS o_a1Vss a_a1Vst r_a1Vsu. Iso (Slab o_a1VmQ a_a1VmR r_a1VmS) (Slab o_a1Vss a_a1Vst r_a1Vsu) (Interval a_a1VmR r_a1VmS) (Interval a_a1Vst r_a1Vsu)
- Data.Geometry.VerticalRayShooting.PersistentSweep: leftMost :: forall p_a2SeT e_a2SeU r_a2SeV. Getter (VerticalRayShootingStructure p_a2SeT e_a2SeU r_a2SeV) r_a2SeV
+ Data.Geometry.VerticalRayShooting.PersistentSweep: leftMost :: forall p_a2SBk e_a2SBl r_a2SBm. Getter (VerticalRayShootingStructure p_a2SBk e_a2SBl r_a2SBm) r_a2SBm
- Data.Geometry.VerticalRayShooting.PersistentSweep: sweepStruct :: forall p_a2SeT e_a2SeU r_a2SeV. Getter (VerticalRayShootingStructure p_a2SeT e_a2SeU r_a2SeV) (Vector ((:+) r_a2SeV (StatusStructure p_a2SeT e_a2SeU r_a2SeV)))
+ Data.Geometry.VerticalRayShooting.PersistentSweep: sweepStruct :: forall p_a2SBk e_a2SBl r_a2SBm. Getter (VerticalRayShootingStructure p_a2SBk e_a2SBl r_a2SBm) (Vector ((:+) r_a2SBm (StatusStructure p_a2SBk e_a2SBl r_a2SBm)))
- Data.PlaneGraph: graph :: forall k_a2XxC (s_a2XwQ :: k_a2XxC) v_a2XwR e_a2XwS f_a2XwT r_a2XwU k_a2XHU (s_a2XHP :: k_a2XHU) v_a2XHQ e_a2XHR f_a2XHS r_a2XHT. Iso (PlaneGraph (s_a2XwQ :: k_a2XxC) v_a2XwR e_a2XwS f_a2XwT r_a2XwU) (PlaneGraph (s_a2XHP :: k_a2XHU) v_a2XHQ e_a2XHR f_a2XHS r_a2XHT) (PlanarGraph s_a2XwQ 'Primal (VertexData r_a2XwU v_a2XwR) e_a2XwS f_a2XwT) (PlanarGraph s_a2XHP 'Primal (VertexData r_a2XHT v_a2XHQ) e_a2XHR f_a2XHS)
+ Data.PlaneGraph: graph :: forall k_a2XU3 (s_a2XTh :: k_a2XU3) v_a2XTi e_a2XTj f_a2XTk r_a2XTl k_a2Y4l (s_a2Y4g :: k_a2Y4l) v_a2Y4h e_a2Y4i f_a2Y4j r_a2Y4k. Iso (PlaneGraph (s_a2XTh :: k_a2XU3) v_a2XTi e_a2XTj f_a2XTk r_a2XTl) (PlaneGraph (s_a2Y4g :: k_a2Y4l) v_a2Y4h e_a2Y4i f_a2Y4j r_a2Y4k) (PlanarGraph s_a2XTh 'Primal (VertexData r_a2XTl v_a2XTi) e_a2XTj f_a2XTk) (PlanarGraph s_a2Y4g 'Primal (VertexData r_a2Y4k v_a2Y4h) e_a2Y4i f_a2Y4j)
- Data.PlaneGraph: location :: forall r_a2XhW v_a2XhX r_a2XwA. Lens (VertexData r_a2XhW v_a2XhX) (VertexData r_a2XwA v_a2XhX) (Point 2 r_a2XhW) (Point 2 r_a2XwA)
+ Data.PlaneGraph: location :: forall r_a2XEn v_a2XEo r_a2XT1. Lens (VertexData r_a2XEn v_a2XEo) (VertexData r_a2XT1 v_a2XEo) (Point 2 r_a2XEn) (Point 2 r_a2XT1)
- Data.PlaneGraph: vData :: forall r_a2XhW v_a2XhX v_a2XwB. Lens (VertexData r_a2XhW v_a2XhX) (VertexData r_a2XhW v_a2XwB) v_a2XhX v_a2XwB
+ Data.PlaneGraph: vData :: forall r_a2XEn v_a2XEo v_a2XT2. Lens (VertexData r_a2XEn v_a2XEo) (VertexData r_a2XEn v_a2XT2) v_a2XEo v_a2XT2
- Data.PlaneGraph.Core: graph :: forall k_a2XxC (s_a2XwQ :: k_a2XxC) v_a2XwR e_a2XwS f_a2XwT r_a2XwU k_a2XHU (s_a2XHP :: k_a2XHU) v_a2XHQ e_a2XHR f_a2XHS r_a2XHT. Iso (PlaneGraph (s_a2XwQ :: k_a2XxC) v_a2XwR e_a2XwS f_a2XwT r_a2XwU) (PlaneGraph (s_a2XHP :: k_a2XHU) v_a2XHQ e_a2XHR f_a2XHS r_a2XHT) (PlanarGraph s_a2XwQ 'Primal (VertexData r_a2XwU v_a2XwR) e_a2XwS f_a2XwT) (PlanarGraph s_a2XHP 'Primal (VertexData r_a2XHT v_a2XHQ) e_a2XHR f_a2XHS)
+ Data.PlaneGraph.Core: graph :: forall k_a2XU3 (s_a2XTh :: k_a2XU3) v_a2XTi e_a2XTj f_a2XTk r_a2XTl k_a2Y4l (s_a2Y4g :: k_a2Y4l) v_a2Y4h e_a2Y4i f_a2Y4j r_a2Y4k. Iso (PlaneGraph (s_a2XTh :: k_a2XU3) v_a2XTi e_a2XTj f_a2XTk r_a2XTl) (PlaneGraph (s_a2Y4g :: k_a2Y4l) v_a2Y4h e_a2Y4i f_a2Y4j r_a2Y4k) (PlanarGraph s_a2XTh 'Primal (VertexData r_a2XTl v_a2XTi) e_a2XTj f_a2XTk) (PlanarGraph s_a2Y4g 'Primal (VertexData r_a2Y4k v_a2Y4h) e_a2Y4i f_a2Y4j)
- Data.PlaneGraph.Core: location :: forall r_a2XhW v_a2XhX r_a2XwA. Lens (VertexData r_a2XhW v_a2XhX) (VertexData r_a2XwA v_a2XhX) (Point 2 r_a2XhW) (Point 2 r_a2XwA)
+ Data.PlaneGraph.Core: location :: forall r_a2XEn v_a2XEo r_a2XT1. Lens (VertexData r_a2XEn v_a2XEo) (VertexData r_a2XT1 v_a2XEo) (Point 2 r_a2XEn) (Point 2 r_a2XT1)
- Data.PlaneGraph.Core: vData :: forall r_a2XhW v_a2XhX v_a2XwB. Lens (VertexData r_a2XhW v_a2XhX) (VertexData r_a2XhW v_a2XwB) v_a2XhX v_a2XwB
+ Data.PlaneGraph.Core: vData :: forall r_a2XEn v_a2XEo v_a2XT2. Lens (VertexData r_a2XEn v_a2XEo) (VertexData r_a2XEn v_a2XT2) v_a2XEo v_a2XT2

Files

hgeometry.cabal view
@@ -1,5 +1,5 @@ name:                hgeometry-version:             0.12.0.1+version:             0.12.0.2 synopsis:            Geometric Algorithms, Data structures, and Data types. description:   HGeometry provides some basic geometry types, and geometric algorithms and@@ -31,10 +31,6 @@   type:     git   location: https://github.com/noinia/hgeometry -flag planargraph-  default: False-  manual: True- library   ghc-options: -O2 -Wall -fno-warn-unticked-promoted-constructors -fno-warn-type-defaults @@ -85,6 +81,7 @@                     Data.Geometry.Ellipse                      Data.Geometry.Polygon+                    Data.Geometry.Polygon.Bezier                     Data.Geometry.Polygon.Inflate                     Data.Geometry.Polygon.Convex                     Data.Geometry.Polygon.Monotone@@ -400,24 +397,3 @@                     , FlexibleInstances                     , FlexibleContexts                     , MultiParamTypeClasses--executable planargraph-  main-is: planargraph.hs-  if flag(planargraph)-    buildable: True-  else-    buildable: False-  default-language:     Haskell2010-  build-depends:  base,-                  vector,-                  vector-circular,-                  linear,-                  text,-                  hashable,-                  lens,-                  directory,-                  filepath,-                  hgeometry,-                  hgeometry-combinatorial,-                  reanimate,-                  reanimate-svg
− planargraph.hs
@@ -1,136 +0,0 @@-{-# LANGUAGE RankNTypes #-}-{-# LANGUAGE RecordWildCards #-}-module Main where--import Data.PlanarGraph.Immutable-import qualified Data.PlanarGraph.Mutable as Mut--import           Control.Lens          ()-import           Control.Monad.ST-import           Data.Ext-import           Data.Foldable         as F-import           Data.Geometry.Point-import           Data.Geometry.Polygon-import           Data.STRef-import           Data.Hashable-import qualified Data.Text             as T-import qualified Data.Vector           as V-import qualified Data.Vector.Circular  as CV-import           Graphics.SvgTree      (Number (..))-import           Linear.Metric-import           Linear.V2-import           Linear.Vector-import           Reanimate-import           Reanimate.Animation-import           System.Directory-import           System.FilePath-import Debug.Trace--graphs :: [PlanarGraph]-graphs =-  [ pgFromFaces [[0..2]]-  , pgFromFaces [[1,2,3]]-  , pgFromFaces [[0..3]]-  , pgFromFaces [[0..3],[4,3,2,1]]-  , let pg = pgFromFaces [[0..3]]-    in pgMutate pg $ \pg' -> do-          let he0 = Mut.halfEdgeFromId 0 pg'-              he4 = Mut.halfEdgeFromId 4 pg'-          _newEdge <- Mut.pgConnectVertices he0 he4-          return ()-  , pgFromFaces [[0,4,1],[0,1,2],[4,3,1],[4,5,3],[3,5,2],[2,5,0]]-  ]--main :: IO ()--- main = reanimate $ staticFrame (1/60) (fst test2)-main = do-  forM_ graphs savePlanarGraphSVG---- test1 = renderPlanarGraph (pgFromFaces [[0..2]])--- test2 = renderPlanarGraph (pgFromFaces [[0..3],[4,3,2,1]])--savePlanarGraphSVG :: PlanarGraph -> IO ()-savePlanarGraphSVG pg = do-    writeFile fileName svgOutput-    writeFile compactName compactOutput-  where-    svgOutput = renderSvg (Just $ Num 300) (Just $ Num 300) svg-    compactOutput = renderSvg (Just $ Num 300) (Just $ Num 300) compactSvg-    fileName = "planargraph-" ++ show (hash pg) <.> "svg"-    compactName = "planargraph-" ++ show (hash pg) <.> "compact" <.> "svg"-    defOpts = RenderOptions { disableHalfEdges = False }-    compactOpts = RenderOptions { disableHalfEdges = True }-    svg = renderPlanarGraph defOpts pg-    compactSvg = renderPlanarGraph compactOpts pg--data RenderOptions = RenderOptions-  { disableHalfEdges :: Bool }--renderPlanarGraph :: RenderOptions -> PlanarGraph -> SVG-renderPlanarGraph RenderOptions{..} pg = svg-  where-    vs = tutteEmbedding pg-    faces = pgFaces pg-    svg =-        withViewBox (screenBottom, screenBottom, screenHeight, screenHeight) $-        mkGroup-        [ mkBackground bgColor-        , mkGroup-          [ translate (x*scaleFactor) (y*scaleFactor) $-            mkGroup-            [ label-            , withFillOpacity 0 $ withStrokeColor "black" $ withStrokeWidth strokeWidth $-              -- mkRect (strokeWidth+svgWidth label*1.5) (strokeWidth+svgHeight label*1.5)-              translate 0 (-(svgHeight label+0.1)/2) $-              center $ mkLine (0,0) (svgWidth label*1.2,0)-            ]-          | face <- faces-          , let boundary = faceBoundary face pg-                poly = simpleFromPoints $ map ext-                        [ Point2 x y-                        | vId <- boundary-                        , let V2 x y = vs V.! vertexId vId-                        ]-                Point2 x y = centroid poly-                label = scale 0.5 $ center $ latex (T.pack $ show $ faceId face)-          ]-        , mkGroup-          [ mkGroup $-            [ withStrokeColor "black" $-              mkLine (tipX*scaleFactor, tipY*scaleFactor) (tailX*scaleFactor, tailY*scaleFactor)-            ] ++ if disableHalfEdges-              then []-              else -                [ translate (halfX*scaleFactor + angY) (halfY*scaleFactor - angX) $-                  labelTwin-                , translate (halfX*scaleFactor - angY) (halfY*scaleFactor + angX) $-                  labelEdge-                ]-          | edge <- pgEdges pg-          , let (tip, tail) = edgeHalfEdges edge-                V2 tipX tipY = vs V.! vertexId (halfEdgeVertex tip pg)-                V2 tailX tailY = vs V.! vertexId (halfEdgeVertex tail pg)-                (halfX,halfY) = (tipX + (tailX-tipX)/2, tipY + (tailY-tipY)/2)-                labelEdge = scale 0.4 $ center $ latex (T.pack $ show $ halfEdgeId tip)-                labelTwin = scale 0.4 $ center $ latex (T.pack $ show $ halfEdgeId tail)-                V2 angX angY = signorm (V2 tipX tipY - V2 tailX tailY) ^* 0.3-          ]-        , mkGroup-          [ translate (x*scaleFactor) (y*scaleFactor) $-            mkGroup-            [ withFillOpacity 1 $ withFillColor "white" $ withStrokeColor "black" $-              mkCircle 0.3-            , label ]-          | v <- map vertexId $ pgVertices pg-          , let V2 x y = vs V.! v-                label = scaleToWidth 0.2 $ center $ latex (T.pack $ show v)-          ]-        ]--strokeWidth = defaultStrokeWidth*0.5--bgColor :: String-bgColor = "white"--scaleFactor :: Double-scaleFactor = screenTop*0.8
src/Data/Geometry/BezierSpline.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE BangPatterns         #-} {-# LANGUAGE UndecidableInstances #-} -------------------------------------------------------------------------------- -- |@@ -20,21 +21,26 @@   , snap    , pattern Bezier2, pattern Bezier3++  , colinear+  , lineApproximate+  , quadToCubic   ) where -import           Control.Lens hiding (Empty)-import qualified Data.Foldable as F+import           Control.Lens                 hiding (Empty)+import qualified Data.Foldable                as F+import           Data.Geometry.Line import           Data.Geometry.Point import           Data.Geometry.Properties import           Data.Geometry.Transformation import           Data.Geometry.Vector-import           Data.LSeq (LSeq)-import qualified Data.LSeq as LSeq-import           Data.Sequence (Seq(..))-import qualified Data.Sequence as Seq-import           Data.Traversable (fmapDefault,foldMapDefault)+import           Data.LSeq                    (LSeq)+import qualified Data.LSeq                    as LSeq+import           Data.Sequence                (Seq (..))+import qualified Data.Sequence                as Seq+import           Data.Traversable             (fmapDefault, foldMapDefault) import           GHC.TypeNats-import qualified Test.QuickCheck as QC+import qualified Test.QuickCheck              as QC  -------------------------------------------------------------------------------- @@ -177,3 +183,41 @@ -- | Snap a point close to a Bezier curve to the curve. snap   :: (Arity d, Ord r, Fractional r) => BezierSpline n d r -> Point d r -> Point d r snap b = evaluate b . parameterOf b++-- If both control points are on the same side of the straight line from the start and end+-- points then the curve is guaranteed to be within 3/4 of the distance from the straight line+-- to the furthest control point.+-- Otherwise, if the control points are on either side of the straight line, the curve is+-- guaranteed to be within 4/9 of the maximum distance from the straight line to a control+-- point.+-- Also: 3/4 * sqrt(v) = sqrt (9/16 * v)+--       4/9 * sqrt(v) = sqrt (16/81 * v)+-- So: 3/4 * sqrt(v) < eps =>+--     sqrt(9/16 * v) < eps =>+--     9/16*v < eps*eps+-- | Return True if the curve is definitely completely covered by a line of thickness+--   twice the given tolerance. May return false negatives but not false positives.+colinear :: (Ord r, Fractional r) => r -> BezierSpline 3 2 r -> Bool+colinear eps (Bezier3 !a !b !c !d) = sqBound < eps*eps+  where ld = flip sqDistanceTo (lineThrough a d)+        sameSide = ccw a d b == ccw a d c+        maxDist = max (ld b) (ld c)+        sqBound+          | sameSide  = 9/16  * maxDist+          | otherwise = 16/81 * maxDist++-- | Approximate curve as line segments where no point on the curve is further away+--   from the nearest line segment than the given tolerance.+lineApproximate :: (Ord r, Fractional r) => r -> BezierSpline 3 2 r -> [Point 2 r]+lineApproximate eps bezier+  | colinear eps bezier =+    [ bezier^.controlPoints.to LSeq.head+    , bezier^.controlPoints.to LSeq.last ]+  | otherwise =+    let (b1, b2) = split 0.5 bezier+    in lineApproximate eps b1 ++ tail (lineApproximate eps b2)++-- | Convert a quadratic bezier to a cubic bezier.+quadToCubic :: (Fractional r) => BezierSpline 2 2 r -> BezierSpline 3 2 r+quadToCubic (Bezier2 a b c) =+  Bezier3 a ((1/3)*^(Point (toVec a ^+^ 2*^toVec b))) ((1/3)*^(Point (2*^ toVec b ^+^ toVec c))) c
+ src/Data/Geometry/Polygon/Bezier.hs view
@@ -0,0 +1,54 @@+{-# LANGUAGE DataKinds           #-}+{-# LANGUAGE ScopedTypeVariables #-}+module Data.Geometry.Polygon.Bezier+  ( PathJoin(..)+  , fromBeziers+  , approximate+  , approximateSome+  ) where++import           Control.Lens+import           Data.Ext+import           Data.Geometry.BezierSpline (BezierSpline, lineApproximate, pattern Bezier3)+import           Data.Geometry.Point+import           Data.Geometry.Polygon+import qualified Data.Vector.Circular       as CV++data PathJoin r+  = JoinLine+  | JoinCurve (Point 2 r) (Point 2 r)+  deriving (Show, Eq, Ord)++-- | Construct a polygon from a closed set of bezier curves. Each curve must be connected to+--   its neighbours.+fromBeziers :: (Eq r, Num r) => [BezierSpline 3 2 r] -> SimplePolygon (PathJoin r) r+fromBeziers curves+  | isCounterClockwise expanded = p+  | otherwise = p'+  where+    p = unsafeFromPoints+      [ a :+ JoinCurve b c+      | Bezier3 a b c _d <- curves ]+    p' = unsafeFromPoints+      [ d :+ JoinCurve c b+      | Bezier3 _a b c d <- reverse curves ]+    expanded = unsafeFromPoints $ concat+      [ map ext [a, b, c]+      | Bezier3 a b c _d <- curves ]++approximate :: forall t r. (Ord r, Fractional r) => r -> Polygon t (PathJoin r) r -> Polygon t () r+approximate eps p =+  case p of+    SimplePolygon{}  ->+      let vs = p^.outerBoundaryVector+      in unsafeFromCircularVector $ CV.concatMap f $ CV.zip vs (CV.rotateRight 1 vs)+    MultiPolygon v hs -> MultiPolygon (approximate eps v) (map (approximate eps) hs)+  where+    f :: (Point 2 r :+ PathJoin r, Point 2 r :+ PathJoin r) -> CV.CircularVector (Point 2 r :+ ())+    f (a :+ JoinLine, _) = CV.singleton (ext a)+    f (a :+ JoinCurve b c, d :+ _) =+      CV.unsafeFromList $ map ext $ init (lineApproximate eps (Bezier3 a b c d))++approximateSome :: (Ord r, Fractional r) => r -> SomePolygon (PathJoin r) r -> SomePolygon () r+approximateSome eps (Left p)  = Left $ approximate eps p+approximateSome eps (Right p) = Right $ approximate eps p