diff options
author | Griffin Smith <root@gws.fyi> | 2019-12-25T00·40-0500 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2019-12-30T16·24-0500 |
commit | 6f427fe4d6ba9a03f122d15839298040a7cfb925 (patch) | |
tree | 5ab6c11d7b1f4109e1d196f9d1135cbb4bd828f6 /src/Xanthous/Util.hs | |
parent | 13516911366a484ee5484166520133e056010515 (diff) |
Fix circle rendering, add filled circle
Make raster circle rendering use the Rasterific package instead of attempting desperately to hand-roll it, and add a method for generating filled circles.
Diffstat (limited to 'src/Xanthous/Util.hs')
-rw-r--r-- | src/Xanthous/Util.hs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Xanthous/Util.hs b/src/Xanthous/Util.hs index b8b789e1b1ea..93155af3fd59 100644 --- a/src/Xanthous/Util.hs +++ b/src/Xanthous/Util.hs @@ -26,6 +26,8 @@ module Xanthous.Util , takeWhileInclusive , smallestNotIn , removeVectorIndex + , maximum1 + , minimum1 -- * Type-level programming utils , KnownBool(..) @@ -38,6 +40,8 @@ import Data.Foldable (foldr) import Data.Monoid import Data.Proxy import qualified Data.Vector as V +import Data.Semigroup (Max(..), Min(..)) +import Data.Semigroup.Foldable -------------------------------------------------------------------------------- newtype EqEqProp a = EqEqProp a @@ -218,6 +222,12 @@ removeVectorIndex idx vect = let (before, after) = V.splitAt idx vect in before <> fromMaybe Empty (tailMay after) +maximum1 :: (Ord a, Foldable1 f) => f a -> a +maximum1 = getMax . foldMap1 Max + +minimum1 :: (Ord a, Foldable1 f) => f a -> a +minimum1 = getMin . foldMap1 Min + -------------------------------------------------------------------------------- -- | This class gives a boolean associated with a type-level bool, a'la |