module Tile.Geometry
  ( tileRanks,
    tilePoints,
  )
where

import Tile.Affine
import Tile.Tile

tileRanks :: Tile -> [Int]
tileRanks :: Tile -> [Int]
tileRanks = AffineRankSpace -> [Int]
ranks (AffineRankSpace -> [Int])
-> (Tile -> AffineRankSpace) -> Tile -> [Int]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tile -> AffineRankSpace
space

tilePoints :: AffineRankSpace -> Tile -> [Point]
tilePoints :: AffineRankSpace -> Tile -> [[Int]]
tilePoints AffineRankSpace
rootSpace Tile
tile = (Int -> [Int]) -> [Int] -> [[Int]]
forall a b. (a -> b) -> [a] -> [b]
map (AffineRankSpace -> Int -> [Int]
pointOf AffineRankSpace
rootSpace) (Tile -> [Int]
tileRanks Tile
tile)