module Data.Geometry.Boundary where
import Control.Lens (iso,Iso)
import Data.Geometry.Properties
import Data.Geometry.Transformation
newtype Boundary g = Boundary g
deriving (Show,Eq,Ord,Read,IsTransformable
,Functor,Foldable,Traversable)
type instance NumType (Boundary g) = NumType g
type instance Dimension (Boundary g) = Dimension g
_Boundary :: Iso g h (Boundary g) (Boundary h)
_Boundary = iso Boundary (\(Boundary b) -> b)
data PointLocationResult = Inside | OnBoundary | Outside deriving (Show,Read,Eq)