Add pathing infrastructure
This commit is contained in:
@@ -4,9 +4,24 @@ 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 Float
|
||||
, _pgNodeMap :: NodeMap Point2
|
||||
{ _pgGraph :: Gr Point2 PathEdge
|
||||
, _pgNodeMap :: Map Point2 Int
|
||||
, _pgNodeCount :: Int
|
||||
, _pgEdgeMap :: Map (V2 Point2) Int2
|
||||
}
|
||||
data PathEdge = PathEdge
|
||||
{_peStart :: Point2
|
||||
,_peEnd :: Point2
|
||||
,_peObstacles :: Set.Set EdgeObstacle
|
||||
}
|
||||
deriving (Eq,Ord,Show)
|
||||
data EdgeObstacle
|
||||
= BlockObstacle
|
||||
| DoorObstacle
|
||||
| AutoDoorObstacle
|
||||
deriving (Eq,Ord,Show,Bounded,Enum)
|
||||
|
||||
makeLenses ''PathGraph
|
||||
|
||||
Reference in New Issue
Block a user