--------------------------------------------------------------------------------
-- |
-- Module      :  Data.Geometry.Arrangement.Draw
-- Copyright   :  (C) Frank Staals
-- License     :  see the LICENSE file
-- Maintainer  :  Frank Staals
--
-- Functions for Drawing arrangements

--------------------------------------------------------------------------------
module Data.Geometry.Arrangement.Draw where

import Control.Lens
import Data.Geometry.Arrangement
import Ipe
import Data.Geometry.PlanarSubdivision.Draw

-- | Draws an arrangement
drawArrangement :: (Ord r, Num r) => IpeOut (Arrangement s l v e f r) Group r
drawArrangement :: IpeOut (Arrangement s l v e f r) Group r
drawArrangement = PlanarSubdivision s v e f r
-> Group r
   :+ Attributes
        (AttrMapSym1 r) '[ 'Layer, 'Matrix, 'Pin, 'Transformations, 'Clip]
forall k (s :: k) v e f r.
(Num r, Ord r) =>
IpeOut (PlanarSubdivision s v e f r) Group r
drawPlanarSubdivision' (PlanarSubdivision s v e f r
 -> Group r
    :+ Attributes
         (AttrMapSym1 r) '[ 'Layer, 'Matrix, 'Pin, 'Transformations, 'Clip])
-> (Arrangement s l v e f r -> PlanarSubdivision s v e f r)
-> Arrangement s l v e f r
-> Group r
   :+ Attributes
        (AttrMapSym1 r) '[ 'Layer, 'Matrix, 'Pin, 'Transformations, 'Clip]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Getting
  (PlanarSubdivision s v e f r)
  (Arrangement s l v e f r)
  (PlanarSubdivision s v e f r)
-> Arrangement s l v e f r -> PlanarSubdivision s v e f r
forall s (m :: * -> *) a. MonadReader s m => Getting a s a -> m a
view Getting
  (PlanarSubdivision s v e f r)
  (Arrangement s l v e f r)
  (PlanarSubdivision s v e f r)
forall k (s :: k) l v1 e1 f1 r v2 e2 f2.
Lens
  (Arrangement s l v1 e1 f1 r)
  (Arrangement s l v2 e2 f2 r)
  (PlanarSubdivision s v1 e1 f1 r)
  (PlanarSubdivision s v2 e2 f2 r)
subdivision