Go to the documentation of this file.
15 #ifndef loadedCLIQUEABSTRACTION_H
16 #define loadedCLIQUEABSTRACTION_H
34 bool Pathable(
unsigned int from,
unsigned int to);
50 virtual void AddEdge(
edge *e,
unsigned int absLevel);
int getGroupSize(node *parent, int group)
void insertNodeIntoHierarchy(node *newNode)
void renameNodeInAbstraction(node *which, unsigned int oldID)
A generic class for basic operations on Graph abstractions.
void splitNode(node *which, int numGroups)
recVec GetNodeLoc(node *n) const
void GetNumAbstractGraphs(node *from, node *to, std::vector< node * > &fromChain, std::vector< node * > &toChain)
Graph * loadGraph(char *fname)
virtual Graph * abstractGraph(Graph *g)
A generic vector (essentially the same as a point, but offers normalization)
void buildAbstractions(Graph *)
virtual void AddNode(node *n)
add node to abstraction
void RepairAbstraction()
This must be called after any of the above add/remove operations.
void removeNodeFromRepairQ(node *n)
virtual void VerifyHierarchy()
verify that the hierarchy is consistent
void abstractUpEdge(unsigned int absLevel, edge *e)
double h(node *a, node *b)
heuristic cost between any two nodes
void DrawGraph(Graph *g) const
std::vector< node * > modifiedNodeQ
void extractGroupIntoNewNode(node *parent, int group)
void mergeGroupIntoNeighbor(node *parent, int group, node *neighbor=0)
void RemoveEdge(edge *e, unsigned int absLevel)
remove edge from abstraction
virtual ~LoadedCliqueAbstraction()
std::vector< GLuint > displayLists
edge * findEdgeParent(edge *e, unsigned int absLevel)
LoadedCliqueAbstraction(char *)
Construct a new Graph hierarchy.
void transferGroup(int group, node *oldParent, node *newParent)
node * getNodeInGroup(node *parent, int group)
void ToggleDrawAbstraction(int which)
virtual void RemoveNode(node *n)
remove node from abstraction
node * findNeighborCliques(node *parent, int group)
void DrawLevelConnections(node *n) const
void checkAndCreateParent(node *which)
void addNodesToParent(Graph *g, node *n, node *parent, int width)
void resetLocationCache(node *n)
node * findNodeParent(node *n)
void addTunnel(node *n, Graph *g, node *newNode)
virtual void AddEdge(edge *e, unsigned int absLevel)
add edge to abstraction
virtual Graph * cliqueAbstractGraph(Graph *g)
void addNodeToRepairQ(node *n)
virtual Graph * neighborAbstractGraph(Graph *g, int width=1)
bool Pathable(node *from, node *to)
is there a legal path between these 2 nodes?
Nodes to be stored within a Graph.
int getChildGroups(node *which)
A loaded abstraction based on the reduction of cliques.
bool checkNeighborClique(node *child, node *neighbor)
Edge class for connections between node in a Graph.