HOG2
Public Member Functions | Private Attributes | List of all members
AbsGraphEnvironment Class Reference

A graph environment to use with the a graph abstraction. More...

#include <AbstractWeightedSearchAlgorithm.h>

Inheritance diagram for AbsGraphEnvironment:
Inheritance graph
[legend]
Collaboration diagram for AbsGraphEnvironment:
Collaboration graph
[legend]

Public Member Functions

 AbsGraphEnvironment (Graph *_g, GraphHeuristic *gh, AbsMapEnvironment *me, BaseMapOccupancyInterface *bmoi)
 
void SetAbsGraph (Graph *_g)
 
void SetWeightedEnvironment (WeightedMap2DEnvironment *w)
 
 ~AbsGraphEnvironment ()
 
GraphOccupancyInterfaceGetOccupancyInfo ()
 
void SetFindExactGoal (bool b)
 Set to true when we want to find the exact goal rather than any child of the parent of the goal. More...
 
bool GoalTest (const graphState &state, const graphState &goal)
 If exactGoal is set, GoalTest returns true when state is the same as goal. More...
 
double HCost (const graphState &state1, const graphState &state2) const
 Heuristic value between two arbitrary nodes. More...
 
void Print (graphState &s)
 
virtual double GCost (const graphState &state1, const graphMove &state2)
 
double GCost (const graphState &state1, const graphState &state2)
 GCost returns a weighted GCost from the WeightedMap2DEnvironment. More...
 
void SetNoDummyGoal (bool b)
 
virtual void StoreGoal (graphState &)
 Stores the goal for use by single-state HCost. More...
 
virtual void ClearGoal ()
 Clears the goal from memory. More...
 
virtual bool IsGoalStored () const
 
virtual double HCost (const graphState &) const
 Heuristic value between node and the stored goal. More...
 
bool GoalTest (const graphState &)
 
- Public Member Functions inherited from GraphEnvironment
 GraphEnvironment (Graph *g, GraphHeuristic *gh=0)
 
 GraphEnvironment (Map *m, Graph *g, GraphHeuristic *gh=0)
 
virtual ~GraphEnvironment ()
 
virtual void GetSuccessors (const graphState &stateID, std::vector< graphState > &neighbors) const
 
virtual int GetNumSuccessors (const graphState &stateID) const
 
virtual void GetActions (const graphState &stateID, std::vector< graphMove > &actions) const
 
virtual graphMove GetAction (const graphState &s1, const graphState &s2) const
 
virtual void ApplyAction (graphState &s, graphMove a) const
 
virtual bool InvertAction (graphMove &a) const
 
void SetDirected (bool b)
 
virtual double GCost (const graphState &state1, const graphState &state2) const
 
virtual double GCost (const graphState &state1, const graphMove &state2) const
 
virtual bool GoalTest (const graphState &state, const graphState &goal) const
 
virtual uint64_t GetMaxHash () const
 
virtual uint64_t GetStateHash (const graphState &state) const
 
virtual void GetStateFromHash (uint64_t parent, graphState &s) const
 
virtual uint64_t GetActionHash (graphMove act) const
 
virtual void OpenGLDraw () const
 
virtual void OpenGLDraw (const graphState &s) const
 
virtual void OpenGLDraw (const graphState &s, const graphMove &gm) const
 
virtual void OpenGLDraw (const graphState &s, const graphState &, float) const
 Draw the transition at some percentage 0...1 between two states. More...
 
virtual void GLDrawLine (const graphState &x, const graphState &y) const
 
virtual void GLLabelState (const graphState &, const char *) const
 
std::string SVGHeader () const
 
std::string SVGDraw () const
 
std::string SVGDraw (const graphState &s) const
 
std::string SVGLabelState (const graphState &s, const char *) const
 
virtual void Draw (Graphics::Display &disp) const
 
void DrawLERP (Graphics::Display &disp, Graph *a, Graph *b, float mix) const
 
void DrawLERP (Graphics::Display &disp, Graph *a, Graph *b, float mix, std::function< float(float, float, float)> l1, std::function< float(float, float, float)> l2) const
 
void DrawLERP (Graphics::Display &disp, Graph *a, Graph *b, graphState sa, graphState sb, float mix, std::function< float(float, float, float)> l1, std::function< float(float, float, float)> l2) const
 
virtual void Draw (Graphics::Display &disp, const graphState &l) const
 
virtual void DrawStateLabel (Graphics::Display &disp, const graphState &l1, const char *txt) const
 
virtual void DrawLine (Graphics::Display &disp, const graphState &x, const graphState &y, double width=1.0) const
 
virtual void DrawLine (Graphics::Display &disp, float x1, float y1, float x2, float y2, double width=1.0) const
 
Graphics::point GetLocation (const graphState &s) const
 
GraphGetGraph ()
 
virtual bool GoalTest (const graphState &) const
 Goal Test if the goal is stored. More...
 
void SetIntegerEdgeCosts (bool val)
 
void SetDrawEdgeCosts (bool val)
 
void SetDrawNodeLabels (bool val)
 
void SetNodeScale (double v)
 
double GetNodeScale ()
 
- Public Member Functions inherited from SearchEnvironment< graphState, graphMove >
virtual ~SearchEnvironment ()
 
virtual void UndoAction (graphState &s, graphMove a) const
 
virtual void GetNextState (const graphState &s1, graphMove a, graphState &s2) const
 
virtual bool IsGoalStored () const
 Returns true if the goal is stored and false otherwise. More...
 
virtual double HCost (const graphState &node1, const graphState &node2, double parentHCost) const
 
virtual uint64_t GetMaxHash () const
 
virtual double GetPathLength (std::vector< graphState > &neighbors)
 
virtual double GetPathLength (const graphState &start, std::vector< graphMove > &neighbors)
 
virtual void SetOccupancyInfo (OccupancyInterface< graphState, graphMove > *)
 
virtual void OpenGLDraw () const
 
virtual void GLDrawPath (const std::vector< graphState > &x) const
 
virtual void SetColor (const rgbColor &r) const
 
virtual void SetColor (GLfloat rr, GLfloat g, GLfloat b, GLfloat t=1.0) const
 
virtual void GetColor (GLfloat &rr, GLfloat &g, GLfloat &b, GLfloat &t) const
 
virtual rgbColor GetColor () const
 
virtual void DrawLine (Graphics::Display &display, const graphState &x, const graphState &y, float width=1.0) const
 
- Public Member Functions inherited from Heuristic< graphState >
 Heuristic ()
 
virtual ~Heuristic ()
 

Private Attributes

Graphg
 
Graphabs
 
WeightedMap2DEnvironmentwenv
 
GraphHeuristich
 
AbsMapEnvironment * regenv
 
GraphOccupancyInterfacegoi
 
bool exactGoal
 
bool noDummyGoal
 

Additional Inherited Members

- Public Attributes inherited from Heuristic< graphState >
std::vector< HeuristicTreeNodelookups
 
std::vector< Heuristic * > heuristics
 
uint64_t histogram [256]
 
- Protected Attributes inherited from GraphEnvironment
bool directed
 
Mapm
 
Graphg
 
GraphHeuristich
 
bool drawEdgeCosts
 
bool integerEdgeCosts
 
bool drawNodeLabels
 
double nodeScale
 
- Protected Attributes inherited from SearchEnvironment< graphState, graphMove >
bool bValidSearchGoal
 
graphState searchGoal
 
rgbColor color
 
GLfloat transparency
 

Detailed Description

A graph environment to use with the a graph abstraction.

Definition at line 77 of file AbstractWeightedSearchAlgorithm.h.

Constructor & Destructor Documentation

◆ AbsGraphEnvironment()

AbsGraphEnvironment::AbsGraphEnvironment ( Graph _g,
GraphHeuristic gh,
AbsMapEnvironment *  me,
BaseMapOccupancyInterface bmoi 
)
inline

◆ ~AbsGraphEnvironment()

AbsGraphEnvironment::~AbsGraphEnvironment ( )
inline

Definition at line 84 of file AbstractWeightedSearchAlgorithm.h.

Member Function Documentation

◆ ClearGoal()

virtual void AbsGraphEnvironment::ClearGoal ( )
inlinevirtual

Clears the goal from memory.

Reimplemented from GraphEnvironment.

Definition at line 232 of file AbstractWeightedSearchAlgorithm.h.

◆ GCost() [1/2]

virtual double AbsGraphEnvironment::GCost ( const graphState state1,
const graphMove state2 
)
inlinevirtual

Definition at line 197 of file AbstractWeightedSearchAlgorithm.h.

◆ GCost() [2/2]

double AbsGraphEnvironment::GCost ( const graphState state1,
const graphState state2 
)
inline

◆ GetOccupancyInfo()

GraphOccupancyInterface* AbsGraphEnvironment::GetOccupancyInfo ( )
inlinevirtual

Reimplemented from GraphEnvironment.

Definition at line 86 of file AbstractWeightedSearchAlgorithm.h.

References goi.

◆ GoalTest() [1/2]

bool AbsGraphEnvironment::GoalTest ( const graphState )
inline

Definition at line 239 of file AbstractWeightedSearchAlgorithm.h.

◆ GoalTest() [2/2]

bool AbsGraphEnvironment::GoalTest ( const graphState state,
const graphState goal 
)
inline

If exactGoal is set, GoalTest returns true when state is the same as goal.

If exactGoal is not set, GoalTest returns true if state and goal have the same parent

Definition at line 101 of file AbstractWeightedSearchAlgorithm.h.

References exactGoal, g, node::GetLabelL(), Graph::GetNode(), GraphAbstractionConstants::kParent, and noDummyGoal.

◆ HCost() [1/2]

virtual double AbsGraphEnvironment::HCost ( const graphState node) const
inlinevirtual

Heuristic value between node and the stored goal.

Asserts that the goal is stored

Reimplemented from GraphEnvironment.

Definition at line 235 of file AbstractWeightedSearchAlgorithm.h.

◆ HCost() [2/2]

double AbsGraphEnvironment::HCost ( const graphState node1,
const graphState node2 
) const
inlinevirtual

◆ IsGoalStored()

virtual bool AbsGraphEnvironment::IsGoalStored ( ) const
inlinevirtual

Reimplemented from GraphEnvironment.

Definition at line 233 of file AbstractWeightedSearchAlgorithm.h.

◆ Print()

void AbsGraphEnvironment::Print ( graphState s)
inline

◆ SetAbsGraph()

void AbsGraphEnvironment::SetAbsGraph ( Graph _g)
inline

◆ SetFindExactGoal()

void AbsGraphEnvironment::SetFindExactGoal ( bool  b)
inline

Set to true when we want to find the exact goal rather than any child of the parent of the goal.

Definition at line 97 of file AbstractWeightedSearchAlgorithm.h.

References exactGoal.

Referenced by AbstractWeightedSearchAlgorithm< state, action, environment >::GetPath().

◆ SetNoDummyGoal()

void AbsGraphEnvironment::SetNoDummyGoal ( bool  b)
inline

◆ SetWeightedEnvironment()

void AbsGraphEnvironment::SetWeightedEnvironment ( WeightedMap2DEnvironment w)
inline

◆ StoreGoal()

virtual void AbsGraphEnvironment::StoreGoal ( graphState s)
inlinevirtual

Stores the goal for use by single-state HCost.

Reimplemented from GraphEnvironment.

Definition at line 231 of file AbstractWeightedSearchAlgorithm.h.

Member Data Documentation

◆ abs

Graph* AbsGraphEnvironment::abs
private

Definition at line 245 of file AbstractWeightedSearchAlgorithm.h.

Referenced by HCost(), and SetAbsGraph().

◆ exactGoal

bool AbsGraphEnvironment::exactGoal
private

◆ g

Graph* AbsGraphEnvironment::g
private

Definition at line 244 of file AbstractWeightedSearchAlgorithm.h.

Referenced by AbsGraphEnvironment(), GCost(), GoalTest(), HCost(), and Print().

◆ goi

GraphOccupancyInterface* AbsGraphEnvironment::goi
private

Definition at line 249 of file AbstractWeightedSearchAlgorithm.h.

Referenced by AbsGraphEnvironment(), and GetOccupancyInfo().

◆ h

GraphHeuristic* AbsGraphEnvironment::h
private

Definition at line 247 of file AbstractWeightedSearchAlgorithm.h.

Referenced by AbsGraphEnvironment(), and HCost().

◆ noDummyGoal

bool AbsGraphEnvironment::noDummyGoal
private

◆ regenv

AbsMapEnvironment* AbsGraphEnvironment::regenv
private

Definition at line 248 of file AbstractWeightedSearchAlgorithm.h.

Referenced by AbsGraphEnvironment(), and HCost().

◆ wenv

WeightedMap2DEnvironment* AbsGraphEnvironment::wenv
private

The documentation for this class was generated from the following file: