AI_AStar::Graph Class Reference

#include <AI_AStar.h>

List of all members.


Detailed Description

Graph as collection of nodes and links and operations over them.

The nodes are indexed by so-called ID indices. The ID index is not same as index of node in array (is not in 0 and number returned by getNodesNumber()). Graph could be combinated (for example one from AI_AStar and one from AI_AStar::Session) and ID index serves for unique node identification in graph's combination.

Version:
1.01 (18.8.2006)

1.0 Initial release


Public Member Functions

 Graph ()
 Constructor.
 ~Graph ()
 Destructor.
NodeaddNode (void *ptr_user_data=NULL)
 Add node into graph.
LinkaddLink (Node *ptr_node1, Node *ptr_node2, float f_lenght, float f_min, float f_max, Session *ptr_session=NULL)
 Add link into graph.
void reset (void)
 Remove all nodes and links from graph and links between nodes of this graph and any other nodes.
void clear (void)
 Free all allocated memory.
void setBaseNodeIndex (const int i)
 Set base index of graph nodes.
const int getBaseNodeIndex (void) const
 Get base index of graph nodes.
const int getLinksNumber (void) const
 Get number of links in graph.
const int getNodesNumber (void) const
 Get number of nodes in graph.
NodegetNode (const int i) const
 Return node by its index in array (not by node's own id index).
LinkgetLink (const int i) const
 Return link by its index in array.

Protected Attributes

NodeArray m_arr_nodes
 Nodes.
LinkArray m_arr_links
 Links.
int m_i_first_node_index
 Base index of node (from which the numbering of nodes will start).

Constructor & Destructor Documentation

AI_AStar::Graph::Graph (  )  [inline]

Constructor.

AI_AStar::Graph::~Graph (  )  [inline]

Destructor.


Member Function Documentation

AI_AStar::Node * AI_AStar::Graph::addNode ( void *  ptr_user_data = NULL  ) 

Add node into graph.

AI_AStar::Link * AI_AStar::Graph::addLink ( AI_AStar::Node ptr_node1,
AI_AStar::Node ptr_node2,
float  f_lenght,
float  f_min,
float  f_max,
AI_AStar::Session ptr_session = NULL 
)

Add link into graph.

Parameters:
ptr_node1 First node of link.
ptr_node2 Second node of link.
f_lenght Lenght of link.
f_min Minimum width of an agent that could go through this path.
f_max Maximum width of an agent that could go through this path.
ptr_session Session into which the link belongs (NULL means the link is in basic graph - not in session).

void AI_AStar::Graph::reset ( void   ) 

Remove all nodes and links from graph and links between nodes of this graph and any other nodes.

Do not free any memory. Should be used only within A* session.

void AI_AStar::Graph::clear ( void   ) 

Free all allocated memory.

Could be carefully used to clear memory outside destructor.

void AI_AStar::Graph::setBaseNodeIndex ( const int  i  )  [inline]

Set base index of graph nodes.

const int AI_AStar::Graph::getBaseNodeIndex ( void   )  const [inline]

Get base index of graph nodes.

const int AI_AStar::Graph::getLinksNumber ( void   )  const [inline]

Get number of links in graph.

const int AI_AStar::Graph::getNodesNumber ( void   )  const [inline]

Get number of nodes in graph.

AI_AStar::Node * AI_AStar::Graph::getNode ( const int  i  )  const [inline]

Return node by its index in array (not by node's own id index).

AI_AStar::Link * AI_AStar::Graph::getLink ( const int  i  )  const [inline]

Return link by its index in array.


Member Data Documentation

Nodes.

Links.

Base index of node (from which the numbering of nodes will start).


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