Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

mapCliqueAbstraction Class Reference

A map abstraction based on the reduction of cliques. More...

#include <mapCliqueAbstraction.h>

Inheritance diagram for mapCliqueAbstraction:

Inheritance graph
[legend]
Collaboration diagram for mapCliqueAbstraction:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 mapCliqueAbstraction (Map *, bool uniform=true)
 Construct a new graph hierarchy.

virtual ~mapCliqueAbstraction ()
virtual mapAbstractionclone (Map *_m)
 return a new abstraction map of the same type as this map abstraction

virtual void verifyHierarchy ()
 verify that the hierarchy is consistent

bool pathable (node *from, node *to)
 is there a legal path between these 2 nodes?

bool pathable (unsigned int from, unsigned int to)
void getParentHierarchy (node *from, node *to, std::vector< node * > &fromChain, std::vector< node * > &toChain)
 given 2 nodes, find as much of their hierarchy that exists in the graph

void clearMarkedNodes ()
 get current revision of hierarchy -- indicates if changes have been made */

void clearDisplayLists ()
virtual void removeNode (node *n)
 remove node from abstraction

void removeEdge (edge *e, unsigned int absLevel)
 remove edge from abstraction

virtual void addNode (node *n)
 add node to abstraction

virtual void addEdge (edge *e, unsigned int absLevel)
 add edge to abstraction

void repairAbstraction ()
 This must be called after any of the above add/remove operations.

nodefindNodeParent (node *n)
edgefindEdgeParent (edge *e, unsigned int absLevel)
int measureRepairHits ()
 measureRepairHits Measure the number of levels hit during repair.


Protected Member Functions

virtual graphabstractGraph (graph *g)
virtual graphcliqueAbstractGraph (graph *g)
void addNodesToParent (graph *g, node *n, node *parent, int width)
void addTunnel (node *n, graph *g, node *newNode)
void renameNodeInAbstraction (node *which, unsigned int oldID)
int getChildGroups (node *which)
void splitNode (node *which, int numGroups)
void addNodeToRepairQ (node *n)
void removeNodeFromRepairQ (node *n)
void resetLocationCache (node *n)
void checkAndCreateParent (node *which)
void insertNodeIntoHierarchy (node *newNode)
void transferGroup (int group, node *oldParent, node *newParent)
void abstractUpEdge (unsigned int absLevel, edge *e)
void extractGroupIntoNewNode (node *parent, int group)
void mergeGroupIntoNeighbor (node *parent, int group, node *neighbor=0)
bool checkNeighborClique (node *child, node *neighbor)
nodefindNeighborCliques (node *parent, int group)
nodefindNeighborCliques (node *)
int getGroupSize (node *parent, int group)
nodegetNodeInGroup (node *parent, int group)

Private Member Functions

void buildAbstractions ()
void cleanMemory ()

Private Attributes

std::vector< GLuint > displayLists
std::vector< node * > modifiedNodeQ
bool abstractUniformly

Detailed Description

A map abstraction based on the reduction of cliques.


Constructor & Destructor Documentation

mapCliqueAbstraction::mapCliqueAbstraction Map _m,
bool  uniform = true
 

Construct a new graph hierarchy.

Constructions a new graph abstraction hierarchy from the graph using the designated abstraction method.

mapCliqueAbstraction::~mapCliqueAbstraction  )  [virtual]
 


Member Function Documentation

graph * mapCliqueAbstraction::abstractGraph graph g  )  [protected, virtual]
 

void mapCliqueAbstraction::abstractUpEdge unsigned int  absLevel,
edge e
[protected]
 

void mapCliqueAbstraction::addEdge edge e,
unsigned int  absLevel
[virtual]
 

add edge to abstraction

Implements graphAbstraction.

void mapCliqueAbstraction::addNode node n  )  [virtual]
 

add node to abstraction

Implements graphAbstraction.

void mapCliqueAbstraction::addNodesToParent graph g,
node n,
node parent,
int  width
[protected]
 

void mapCliqueAbstraction::addNodeToRepairQ node n  )  [protected]
 

void mapCliqueAbstraction::addTunnel node n,
graph g,
node newNode
[protected]
 

void mapCliqueAbstraction::buildAbstractions  )  [private]
 

void mapCliqueAbstraction::checkAndCreateParent node which  )  [protected]
 

bool mapCliqueAbstraction::checkNeighborClique node child,
node neighbor
[protected]
 

void mapCliqueAbstraction::cleanMemory  )  [private]
 

void mapCliqueAbstraction::clearDisplayLists  ) 
 

void mapCliqueAbstraction::clearMarkedNodes  ) 
 

get current revision of hierarchy -- indicates if changes have been made */

Reimplemented from mapAbstraction.

graph * mapCliqueAbstraction::cliqueAbstractGraph graph g  )  [protected, virtual]
 

virtual mapAbstraction* mapCliqueAbstraction::clone Map _m  )  [inline, virtual]
 

return a new abstraction map of the same type as this map abstraction

Implements mapAbstraction.

void mapCliqueAbstraction::extractGroupIntoNewNode node parent,
int  group
[protected]
 

edge * mapCliqueAbstraction::findEdgeParent edge e,
unsigned int  absLevel
 

node * mapCliqueAbstraction::findNeighborCliques node  )  [protected]
 

node * mapCliqueAbstraction::findNeighborCliques node parent,
int  group
[protected]
 

node * mapCliqueAbstraction::findNodeParent node n  ) 
 

int mapCliqueAbstraction::getChildGroups node which  )  [protected]
 

int mapCliqueAbstraction::getGroupSize node parent,
int  group
[protected]
 

node * mapCliqueAbstraction::getNodeInGroup node parent,
int  group
[protected]
 

void mapCliqueAbstraction::getParentHierarchy node from,
node to,
std::vector< node * > &  fromChain,
std::vector< node * > &  toChain
 

given 2 nodes, find as much of their hierarchy that exists in the graph

Reimplemented from graphAbstraction.

void mapCliqueAbstraction::insertNodeIntoHierarchy node newNode  )  [protected]
 

int mapCliqueAbstraction::measureRepairHits  )  [virtual]
 

measureRepairHits Measure the number of levels hit during repair.

Always returns 0 unless compiled with -D INSTRUMENT_REPAIR

Reimplemented from graphAbstraction.

void mapCliqueAbstraction::mergeGroupIntoNeighbor node parent,
int  group,
node neighbor = 0
[protected]
 

bool mapCliqueAbstraction::pathable unsigned int  from,
unsigned int  to
 

bool mapCliqueAbstraction::pathable node from,
node to
[virtual]
 

is there a legal path between these 2 nodes?

Implements graphAbstraction.

void mapCliqueAbstraction::removeEdge edge e,
unsigned int  absLevel
[virtual]
 

remove edge from abstraction

Implements graphAbstraction.

void mapCliqueAbstraction::removeNode node n  )  [virtual]
 

remove node from abstraction

Implements graphAbstraction.

void mapCliqueAbstraction::removeNodeFromRepairQ node n  )  [protected]
 

void mapCliqueAbstraction::renameNodeInAbstraction node which,
unsigned int  oldID
[protected]
 

void mapCliqueAbstraction::repairAbstraction  )  [virtual]
 

This must be called after any of the above add/remove operations.

But the operations can be stacked followed by a single repairAbstraction call.

Implements graphAbstraction.

void mapCliqueAbstraction::resetLocationCache node n  )  [protected]
 

void mapCliqueAbstraction::splitNode node which,
int  numGroups
[protected]
 

void mapCliqueAbstraction::transferGroup int  group,
node oldParent,
node newParent
[protected]
 

void mapCliqueAbstraction::verifyHierarchy  )  [virtual]
 

verify that the hierarchy is consistent

Implements graphAbstraction.


Member Data Documentation

bool mapCliqueAbstraction::abstractUniformly [private]
 

std::vector<GLuint> mapCliqueAbstraction::displayLists [private]
 

std::vector<node *> mapCliqueAbstraction::modifiedNodeQ [private]
 


The documentation for this class was generated from the following files:
Generated on Tue Aug 18 03:43:38 2009 for HOG by doxygen 1.3.4