cubicbezier 0.6.0.4 → 0.6.0.5
raw patch · 2 files changed
+16/−6 lines, 2 filesdep +semigroupsdep ~basedep ~mtlPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: semigroups
Dependency ranges changed: base, mtl
API changes (from Hackage documentation)
+ Geom2D.CubicBezier.Basic: instance Data.Semigroup.Semigroup (Geom2D.CubicBezier.Basic.OpenPath a)
- Geom2D.CubicBezier.Basic: degree :: (GenericBezier b, Unbox a) => b a -> Int
+ Geom2D.CubicBezier.Basic: degree :: (GenericBezier b, (Unbox a)) => b a -> Int
- Geom2D.CubicBezier.Basic: toVector :: (GenericBezier b, Unbox a) => b a -> Vector (a, a)
+ Geom2D.CubicBezier.Basic: toVector :: (GenericBezier b, (Unbox a)) => b a -> Vector (a, a)
- Geom2D.CubicBezier.Basic: unsafeFromVector :: (GenericBezier b, Unbox a) => Vector (a, a) -> b a
+ Geom2D.CubicBezier.Basic: unsafeFromVector :: (GenericBezier b, (Unbox a)) => Vector (a, a) -> b a
Files
- Geom2D/CubicBezier/Basic.hs +13/−5
- cubicbezier.cabal +3/−1
Geom2D/CubicBezier/Basic.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE PatternGuards #-}-{-# LANGUAGE BangPatterns, FlexibleInstances, MultiParamTypeClasses, DeriveTraversable, ViewPatterns, PatternSynonyms, MultiWayIf #-}+{-# LANGUAGE BangPatterns, CPP, FlexibleInstances, MultiParamTypeClasses, DeriveTraversable, ViewPatterns, PatternSynonyms, MultiWayIf #-} module Geom2D.CubicBezier.Basic (CubicBezier (..), QuadBezier (..), AnyBezier (..), GenericBezier(..), PathJoin (..), ClosedPath(..), OpenPath (..), AffineTransform (..), anyToCubic, anyToQuad,@@ -16,6 +16,9 @@ import Math.BernsteinPoly import Numeric.Integration.TanhSinh import Data.Monoid ()+#if !MIN_VERSION_base(4,11,0)+import Data.Semigroup (Semigroup(..))+#endif import Data.List (minimumBy) import Data.Function (on) import Data.VectorSpace@@ -93,12 +96,17 @@ data ClosedPath a = ClosedPath [(Point a, PathJoin a)] deriving (Show, Functor, Foldable, Traversable) +instance Semigroup (OpenPath a) where+ p1 <> OpenPath [] _ = p1+ OpenPath [] _ <> p2 = p2+ OpenPath joins1 _ <> OpenPath joins2 p =+ OpenPath (joins1 ++ joins2) p+ instance Monoid (OpenPath a) where mempty = OpenPath [] (error "empty path")- mappend p1 (OpenPath [] _) = p1- mappend (OpenPath [] _) p2 = p2- mappend (OpenPath joins1 _) (OpenPath joins2 p) =- OpenPath (joins1 ++ joins2) p+#if !MIN_VERSION_base(4,11,0)+ mappend = (<>)+#endif instance (Num a) => AffineTransform (PathJoin a) a where transform _ JoinLine = JoinLine
cubicbezier.cabal view
@@ -1,5 +1,5 @@ Name: cubicbezier-Version: 0.6.0.4+Version: 0.6.0.5 Synopsis: Efficient manipulating of 2D cubic bezier curves. Category: Graphics, Geometry, Typography Copyright: Kristof Bastiaensen (2017)@@ -36,6 +36,8 @@ Build-depends: base >= 4.8 && < 5, containers >= 0.5.3, integration >= 0.1.1, vector >= 0.10, matrices >= 0.4.1, microlens >= 0.1.2, microlens-th >= 0.1.2, microlens-mtl >= 0.1.2, mtl >= 2.1.1, fast-math >= 1.0.0, vector-space >= 0.10.4+ if !impl(ghc>=8.0)+ Build-depends: semigroups >= 0.16 Exposed-Modules: Geom2D Geom2D.CubicBezier