Readd PathGraph data
This commit is contained in:
@@ -0,0 +1,28 @@
|
|||||||
|
{-# LANGUAGE TemplateHaskell #-}
|
||||||
|
{-# LANGUAGE StrictData #-}
|
||||||
|
module Dodge.Data.PathGraph where
|
||||||
|
import Geometry.Data
|
||||||
|
import Control.Lens
|
||||||
|
import Data.Graph.Inductive
|
||||||
|
import qualified Data.Set as Set
|
||||||
|
import Data.Map.Strict (Map)
|
||||||
|
data PathGraph = PathGraph
|
||||||
|
{ _pgGraph :: Gr Point2 PathEdge
|
||||||
|
, _pgNodeMap :: Map Point2 Int
|
||||||
|
, _pgNodeCount :: Int
|
||||||
|
, _pgEdgeMap :: Map (V2 Point2) (Int,Int,PathEdge)
|
||||||
|
}
|
||||||
|
data PathEdge = PathEdge
|
||||||
|
{_peStart :: Point2
|
||||||
|
,_peEnd :: Point2
|
||||||
|
,_peObstacles :: Set.Set EdgeObstacle
|
||||||
|
}
|
||||||
|
deriving (Eq,Ord,Show)
|
||||||
|
data EdgeObstacle
|
||||||
|
= BlockObstacle
|
||||||
|
| DoorObstacle
|
||||||
|
| AutoDoorObstacle
|
||||||
|
| WallObstacle
|
||||||
|
deriving (Eq,Ord,Show,Bounded,Enum)
|
||||||
|
|
||||||
|
makeLenses ''PathGraph
|
||||||
Reference in New Issue
Block a user