Strokes.hs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. {-- Strokes.hs - stroke representation
  2. -- Copyright (C) 2018 caryoscelus
  3. --
  4. -- This program is free software: you can redistribute it and/or modify
  5. -- it under the terms of the GNU General Public License as published by
  6. -- the Free Software Foundation, either version 3 of the License, or
  7. -- (at your option) any later version.
  8. --
  9. -- This program is distributed in the hope that it will be useful,
  10. -- but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. -- GNU General Public License for more details.
  13. --
  14. -- You should have received a copy of the GNU General Public License
  15. -- along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. --}
  17. {-# LANGUAGE
  18. NoMonomorphismRestriction,
  19. TemplateHaskell,
  20. ScopedTypeVariables,
  21. TypeFamilies,
  22. LambdaCase,
  23. GADTs,
  24. FlexibleContexts
  25. #-}
  26. module Strokes where
  27. import Graphics.GPipe -- TODO
  28. import Data.Label
  29. type Coord = Integer
  30. type Point = V2 Coord
  31. type Container a = [ a ]
  32. data Stroke = Stroke
  33. { _sZoom :: Int
  34. , _sPoints :: [Point]
  35. }
  36. mkLabel ''Stroke
  37. type Picture = Container Stroke