Skip to content

Commit

Permalink
ormolu'ed
Browse files Browse the repository at this point in the history
  • Loading branch information
tonyday567 committed Jul 26, 2023
1 parent 787fbbd commit 29727ee
Show file tree
Hide file tree
Showing 11 changed files with 52 additions and 34 deletions.
5 changes: 2 additions & 3 deletions src/Chart/Data.hs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

-- | Data primitives and utilities
--
-- Whilst the library makes use of <https://hackage.haskell.org/package/numhask numhask>, it does not re-export, to avoid clashes with Prelude, with the exception of 'zero', 'one', 'angle', 'norm' & 'abs'.
-- Whilst the library makes use of <https://hackage.haskell.org/package/numhask numhask>, it does not re-export, to avoid clashes with Prelude, with the exception of 'zero', 'one', 'angle' & 'abs'.
--
-- 'Rect' and 'Point', from <https://hackage.haskell.org/package/numhask-space numhask-space>, make up the base elements of many chart primitives, and all of numhask-space is re-exported.
module Chart.Data
Expand All @@ -17,14 +17,13 @@ module Chart.Data

-- * NumHask Exports

--

-- | Note that (+) and (*) from numhask are not actually re-exported.
Multiplicative (one),
Additive (zero),
abs,
angle,
magnitude,

-- * Re-exports
module NumHask.Space,
)
Expand Down
5 changes: 3 additions & 2 deletions src/Chart/Examples.hs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ import Data.Function
import Data.Maybe
import Data.String.Interpolate
import Data.Text (Text)
import qualified Data.Text as Text
import Data.Text qualified as Text
import Data.Time
import Optics.Core
import Prelude hiding (abs)
Expand Down Expand Up @@ -513,9 +513,10 @@ surfaceExample =
mempty
& #charts .~ named "surface" cs
& #markupOptions .~ (defaultMarkupOptions & #cssOptions % #shapeRendering .~ UseCssCrisp)
where
-- FIXME: surface legends are broken as.
-- & #hudOptions % #legends .~ [(30,defaultLegendOptions & #content .~ [("", foldOf charts' $ surfaceLegendChart rangef (defaultSurfaceLegendOptions dark "text"))])]
where

grain = Point 100 100
r = one
f = fst . bimap ((-1.0) *) (fmap ((-1.0) *)) . rosenbrock 1 10
Expand Down
6 changes: 3 additions & 3 deletions src/Chart/Hud.hs
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,14 @@ import Data.Bool
import Data.Colour
import Data.Foldable hiding (sum)
import Data.FormatN
import qualified Data.List as List
import Data.List qualified as List
import Data.Maybe
import Data.Path
import Data.Text (Text)
import qualified Data.Text as Text
import Data.Text qualified as Text
import Data.Tuple
import GHC.Generics hiding (to)
import qualified NumHask.Prelude as NH
import NumHask.Prelude qualified as NH
import Optics.Core
import Prelude

Expand Down
3 changes: 1 addition & 2 deletions src/Chart/Markup.hs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ import Data.ByteString.Char8 (pack)
import Data.Colour
import Data.FormatN
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as Map
import Data.Map.Strict qualified as Map
import Data.Maybe
import Data.Path
import Data.Path.Parser
Expand Down Expand Up @@ -475,7 +475,6 @@ cssPreferColorScheme _ PreferNormal = mempty
-- > fillSwitch (color1, color2) "dark" "stuff"
--
-- ... will default to color1 for elements of the "stuff" class, but switch to color2 if "dark" mode is preferred by the user.
--
fillSwitch :: (Colour, Colour) -> ByteString -> ByteString -> ByteString
fillSwitch (colorNormal, colorPrefer) prefer item =
[i|
Expand Down
2 changes: 1 addition & 1 deletion src/Chart/Markup/Parser.hs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ import Chart.Markup
import Data.ByteString (ByteString)
import Data.String.Interpolate
import FlatParse.Basic hiding (cut)
import qualified FlatParse.Basic.Text as T
import FlatParse.Basic.Text qualified as T
import GHC.Generics
import Prelude

Expand Down
2 changes: 1 addition & 1 deletion src/Chart/Primitive.hs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ import Data.Path
import Data.Text (Text)
import Data.Tree
import GHC.Generics
import qualified NumHask.Prelude as NH
import NumHask.Prelude qualified as NH
import Optics.Core
import Prelude

Expand Down
4 changes: 2 additions & 2 deletions src/Chart/Style.hs
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ where
import Chart.Data
import Data.ByteString (ByteString)
import Data.Colour
import qualified Data.List as List
import Data.List qualified as List
import Data.Maybe
import Data.Path
import Data.Path.Parser
import Data.String
import Data.Text (Text)
import qualified Data.Text as Text
import Data.Text qualified as Text
import GHC.Generics
import Optics.Core
import Prelude
Expand Down
16 changes: 8 additions & 8 deletions src/Data/Colour.hs
Original file line number Diff line number Diff line change
Expand Up @@ -71,22 +71,22 @@ module Data.Colour
where

import Chart.Data
import qualified Data.Attoparsec.Text as A
import Data.Attoparsec.Text qualified as A
import Data.Bifunctor
import Data.Bool (bool)
import Data.ByteString (ByteString)
import Data.Char
import Data.Either
import Data.FormatN
import Data.Functor.Rep
import qualified Data.List as List
import Data.List qualified as List
import Data.String.Interpolate
import Data.Text (Text, pack)
import qualified Data.Text as Text
import Data.Text qualified as Text
import GHC.Exts
import GHC.Generics hiding (prec)
import Graphics.Color.Model as M hiding (LCH)
import qualified Graphics.Color.Space as S
import Graphics.Color.Space qualified as S
import NumHask.Algebra.Metric
import NumHask.Array.Fixed
import Optics.Core
Expand Down Expand Up @@ -438,7 +438,7 @@ xy2ch' :: Iso' (Double, Double) (Double, Double)
xy2ch' =
iso
(\(x, y) -> (magnitude (Point x y), 180 / pi * mod_ (angle (Point x y)) (2 * pi)))
(\(c, h) -> let (Point x y) = fmap (c*) (ray (pi / 180 * h)) in (x, y))
(\(c, h) -> let (Point x y) = fmap (c *) (ray (pi / 180 * h)) in (x, y))

mod_ :: Double -> Double -> Double
mod_ x d = x - fromIntegral (floor (x / d) :: Integer) * d
Expand Down Expand Up @@ -651,9 +651,9 @@ showSwatch label c =
showSwatches :: Text -> Text -> [(Text, Colour)] -> Text
showSwatches pref suff hs =
[i|<div>
#{pref}
#{divs}
#{suff}
#{pref}
#{divs}
#{suff}
</div>
|]
where
Expand Down
37 changes: 28 additions & 9 deletions src/Data/Path.hs
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ module Data.Path
where

import Chart.Data
import qualified Control.Foldl as L
import Control.Foldl qualified as L
import Control.Monad.State.Lazy
import GHC.Generics
import qualified Geom2D.CubicBezier as B
import Geom2D.CubicBezier qualified as B
import NumHask.Prelude

-- $setup
Expand Down Expand Up @@ -343,9 +343,16 @@ quadPosition (QuadPolar start' end control) = QuadPosition start' end control'
-- Point 0.9999999933333332 -0.33333333333333326
quadBezier :: (FromInteger a, ExpField a) => QuadPosition a -> a -> Point a
quadBezier (QuadPosition start' end control) theta =
(1 - theta) ^ 2 *| start'
+ 2 * (1 - theta) * theta *| control
+ theta ^ 2 *| end
(1 - theta)
^ 2
*| start'
+ 2
* (1 - theta)
* theta
*| control
+ theta
^ 2
*| end

-- | QuadPosition turning points.
--
Expand Down Expand Up @@ -429,10 +436,22 @@ cubicPosition (CubicPolar start' end control1 control2) = CubicPosition start' e
-- Point 0.6767766952966369 1.2071067811865475
cubicBezier :: (FromInteger a, TrigField a) => CubicPosition a -> a -> Point a
cubicBezier (CubicPosition start' end control1 control2) theta =
(1 - theta) ^ 3 *| start'
+ 3 * (1 - theta) ^ 2 * theta *| control1
+ 3 * (1 - theta) * theta ^ 2 *| control2
+ theta ^ 3 *| end
(1 - theta)
^ 3
*| start'
+ 3
* (1 - theta)
^ 2
* theta
*| control1
+ 3
* (1 - theta)
* theta
^ 2
*| control2
+ theta
^ 3
*| end

-- | Turning point positions for a CubicPosition (0,1 or 2)
--
Expand Down
2 changes: 1 addition & 1 deletion src/Data/Path/Parser.hs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import Data.Text.Encoding (encodeUtf8)
import FlatParse.Basic
import GHC.Generics
import GHC.OverloadedLabels
import NumHask.Prelude hiding ((<|>), optional)
import NumHask.Prelude hiding (optional, (<|>))
import Optics.Core hiding ((<|))

-- $parsing
Expand Down
4 changes: 2 additions & 2 deletions test/test.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ module Main (main) where
import Chart.Examples
import Chart.Markup
import Chart.Markup.Parser
import qualified Data.ByteString as BS
import Data.ByteString qualified as BS
import Data.Foldable
import Data.Maybe
import Data.TreeDiff
import qualified Data.TreeDiff.OMap as O
import Data.TreeDiff.OMap qualified as O
import FlatParse.Basic
import GHC.Exts
import Test.Tasty (TestTree, defaultMain, testGroup)
Expand Down

0 comments on commit 29727ee

Please sign in to comment.