Main   Class Hierarchy   Classes   Compound List   Files   Compound Members   File Members   Pages  

PathFind::Tiling Class Reference

#include <tiling.h>

Inheritance diagram for PathFind::Tiling:

Inheritance graph
[legend]
List of all members.

Detailed Description

Search environment implementing a regular grid.

Nodes can be blocked. Edge costs are uniform.

Definition at line 139 of file tiling.h.

Public Types

enum  Type { HEX, OCTILE, OCTILE_UNICOST, TILE }

Public Member Functions

 Tiling (Type type, int rows, int columns)
 Tiling (const Tiling &tiling, int horizOrigin, int vertOrigin, int width, int height)
 Tiling (LineReader &reader)
 Construct tiling from a file.

void clearObstacles ()
int getHeuristic (int start, int target) const
int getMaxCost () const
int getMinCost () const
int getNodeId (int row, int column) const
int getNumberNodes () const
void getSuccessors (int nodeId, int lastNodeId, vector< Successor > &result) const
 Generate successor nodes for the search.

bool isValidNodeId (int nodeId) const
void printFormatted (ostream &o) const
void printFormatted (ostream &o, int start, int target) const
void printFormatted (ostream &o, const vector< int > &path) const
void printLabels (ostream &o, const vector< char > &labels) const
 Print formatted map with char labels.

void printPathAndLabels (ostream &o, const vector< int > &path, const vector< char > &labels) const
void setObstacles (float obstaclePercentage, bool avoidDiag=false)
int getWidth () const
int getHeight () const
TilingNodeInfogetNodeInfo (int nodeId) const
Type getType () const

Private Types

typedef Graph< TilingNodeInfo,
TilingEdgeInfo >::Edge 
TilingEdge
typedef Graph< TilingNodeInfo,
TilingEdgeInfo
TilingGraph
typedef Graph< TilingNodeInfo,
TilingEdgeInfo >::Node 
TilingNode

Private Member Functions

void addOutEdge (int nodeId, int row, int col, int cost)
bool conflictDiag (int row, int col, int roff, int coff)
void createEdges ()
void createNodes ()
vector< char > getCharVector () const
void init (Type type, int rows, int columns)
void printFormatted (ostream &o, const vector< char > &chars) const
bool pruneNode (int targetNodeId, int lastNodeId) const
void readObstacles (LineReader &reader)
 Read obstacles from a file.


Static Private Member Functions

int getMaxEdges (Type type)

Private Attributes

int m_columns
int m_maxEdges
int m_rows
Type m_type
TilingGraph m_graph


Member Typedef Documentation

typedef Graph<TilingNodeInfo, TilingEdgeInfo>::Edge PathFind::Tiling::TilingEdge [private]
 

Definition at line 230 of file tiling.h.

typedef Graph<TilingNodeInfo, TilingEdgeInfo> PathFind::Tiling::TilingGraph [private]
 

Definition at line 232 of file tiling.h.

typedef Graph<TilingNodeInfo, TilingEdgeInfo>::Node PathFind::Tiling::TilingNode [private]
 

Definition at line 234 of file tiling.h.

Referenced by getSuccessors(), and pruneNode().


Member Enumeration Documentation

enum PathFind::Tiling::Type
 

Enumeration values:
HEX  Hex grid type.

See also:
Tiling hex grid mapping
OCTILE  Octiles with cost 1 to adjacent and sqrt(2) to diagonal.
OCTILE_UNICOST  Octiles with uniform cost 1 to adjacent and diagonal.
TILE  Tile grid type.

Definition at line 143 of file tiling.h.

Referenced by Tiling().


Constructor & Destructor Documentation

Tiling::Tiling Type  type,
int  rows,
int  columns
 

Definition at line 41 of file tiling.cpp.

References init().

Tiling::Tiling const Tiling tiling,
int  horizOrigin,
int  vertOrigin,
int  width,
int  height
 

Definition at line 46 of file tiling.cpp.

References getNodeId(), getNodeInfo(), getType(), init(), PathFind::TilingNodeInfo::isObstacle(), m_graph, and PathFind::TilingNodeInfo::setObstacle().

Tiling::Tiling LineReader reader  ) 
 

Construct tiling from a file.

Exceptions:
ReadError Reading failed or syntax error in file.
See also:
Tiling file format

Definition at line 69 of file tiling.cpp.

References PathFind::LineReader::createError(), HEX, init(), OCTILE, OCTILE_UNICOST, PathFind::LineReader::readLine(), readObstacles(), TILE, and Type.


Member Function Documentation

void Tiling::addOutEdge int  nodeId,
int  row,
int  col,
int  cost
[private]
 

Definition at line 133 of file tiling.cpp.

References getNodeId(), m_columns, m_graph, and m_rows.

Referenced by createEdges().

void Tiling::clearObstacles  ) 
 

Definition at line 140 of file tiling.cpp.

References getNumberNodes(), m_graph, and PathFind::TilingNodeInfo::setObstacle().

Referenced by setObstacles().

bool Tiling::conflictDiag int  row,
int  col,
int  roff,
int  coff
[private]
 

Definition at line 488 of file tiling.cpp.

References getNodeId(), m_columns, m_graph, and m_rows.

Referenced by setObstacles().

void Tiling::createEdges  )  [private]
 

Definition at line 150 of file tiling.cpp.

References addOutEdge(), PathFind::COST_ONE, PathFind::COST_SQRT2, getNodeId(), HEX, m_columns, m_rows, m_type, OCTILE, OCTILE_UNICOST, and TILE.

Referenced by init().

void Tiling::createNodes  )  [private]
 

Definition at line 194 of file tiling.cpp.

References getNodeId(), m_columns, m_graph, and m_rows.

Referenced by init().

vector< char > Tiling::getCharVector  )  const [private]
 

Definition at line 204 of file tiling.cpp.

References getNumberNodes(), and m_graph.

Referenced by printFormatted(), printLabels(), and printPathAndLabels().

int PathFind::Tiling::getHeight  )  const [inline]
 

Definition at line 214 of file tiling.h.

References m_rows.

int Tiling::getHeuristic int  start,
int  target
const [virtual]
 

Implements PathFind::Environment.

Definition at line 219 of file tiling.cpp.

References PathFind::COST_ONE, PathFind::COST_SQRT2, HEX, m_columns, m_type, OCTILE, OCTILE_UNICOST, and TILE.

int Tiling::getMaxCost  )  const [virtual]
 

Implements PathFind::Environment.

Definition at line 269 of file tiling.cpp.

References PathFind::COST_ONE, PathFind::COST_SQRT2, m_type, and OCTILE.

int Tiling::getMaxEdges Type  type  )  [static, private]
 

Definition at line 276 of file tiling.cpp.

References HEX, OCTILE, OCTILE_UNICOST, and TILE.

Referenced by init().

int Tiling::getMinCost  )  const [virtual]
 

Implements PathFind::Environment.

Definition at line 292 of file tiling.cpp.

References PathFind::COST_ONE.

int PathFind::Tiling::getNodeId int  row,
int  column
const [inline]
 

Definition at line 179 of file tiling.h.

References m_columns, and m_rows.

Referenced by addOutEdge(), conflictDiag(), createEdges(), createNodes(), printFormatted(), readObstacles(), and Tiling().

TilingNodeInfo& PathFind::Tiling::getNodeInfo int  nodeId  )  const [inline]
 

Definition at line 219 of file tiling.h.

References m_graph.

Referenced by Tiling().

int Tiling::getNumberNodes  )  const [virtual]
 

Implements PathFind::Environment.

Definition at line 297 of file tiling.cpp.

References m_columns, and m_rows.

Referenced by clearObstacles(), getCharVector(), isValidNodeId(), printLabels(), printPathAndLabels(), and setObstacles().

void Tiling::getSuccessors int  nodeId,
int  lastNodeId,
vector< Successor > &  result
const [virtual]
 

Generate successor nodes for the search.

Parameters:
nodeId Current node
lastNodeId Can be used to prune nodes, (is set to NO_NODE in Search::checkPathExists).
result Resulting successors. Passed in as a reference to avoid dynamic memory allocation. The vector will be cleared and filled with the successors.

Implements PathFind::Environment.

Definition at line 302 of file tiling.cpp.

References HEX, PathFind::TilingNodeInfo::isObstacle(), isValidNodeId(), m_graph, m_maxEdges, m_type, OCTILE, OCTILE_UNICOST, pruneNode(), TILE, and TilingNode.

Type PathFind::Tiling::getType  )  const [inline]
 

Definition at line 224 of file tiling.h.

References m_type.

Referenced by Tiling().

int PathFind::Tiling::getWidth  )  const [inline]
 

Definition at line 209 of file tiling.h.

References m_columns.

void Tiling::init Type  type,
int  rows,
int  columns
[private]
 

Definition at line 347 of file tiling.cpp.

References createEdges(), createNodes(), getMaxEdges(), m_columns, m_graph, m_maxEdges, m_rows, and m_type.

Referenced by Tiling().

bool Tiling::isValidNodeId int  nodeId  )  const [virtual]
 

Implements PathFind::Environment.

Definition at line 358 of file tiling.cpp.

References getNumberNodes().

Referenced by getSuccessors().

void Tiling::printFormatted ostream &  o,
const vector< char > &  chars
const [private]
 

Definition at line 368 of file tiling.cpp.

References getNodeId(), m_columns, and m_rows.

void Tiling::printFormatted ostream &  o,
const vector< int > &  path
const
 

Definition at line 389 of file tiling.cpp.

References getCharVector(), and printFormatted().

void Tiling::printFormatted ostream &  o,
int  start,
int  target
const
 

Definition at line 381 of file tiling.cpp.

References getCharVector(), and printFormatted().

void Tiling::printFormatted ostream &  o  )  const
 

Definition at line 363 of file tiling.cpp.

References getCharVector().

Referenced by printFormatted(), printLabels(), and printPathAndLabels().

void Tiling::printLabels ostream &  o,
const vector< char > &  labels
const
 

Print formatted map with char labels.

Space characters are not printed on the map.

Definition at line 403 of file tiling.cpp.

References getCharVector(), getNumberNodes(), and printFormatted().

void Tiling::printPathAndLabels ostream &  o,
const vector< int > &  path,
const vector< char > &  labels
const
 

Definition at line 416 of file tiling.cpp.

References getCharVector(), getNumberNodes(), and printFormatted().

bool Tiling::pruneNode int  targetNodeId,
int  lastNodeId
const [private]
 

Definition at line 442 of file tiling.cpp.

References m_graph, m_type, TILE, and TilingNode.

Referenced by getSuccessors().

void Tiling::readObstacles LineReader reader  )  [private]
 

Read obstacles from a file.

Exceptions:
ReadError Reading failed or syntax error in file.

Definition at line 459 of file tiling.cpp.

References PathFind::LineReader::createError(), getNodeId(), PathFind::TilingNodeInfo::isObstacle(), m_columns, m_graph, m_rows, PathFind::LineReader::readLine(), and PathFind::TilingNodeInfo::setObstacle().

Referenced by Tiling().

void Tiling::setObstacles float  obstaclePercentage,
bool  avoidDiag = false
 

Definition at line 510 of file tiling.cpp.

References clearObstacles(), conflictDiag(), PathFind::TilingNodeInfo::getColumn(), getNumberNodes(), PathFind::TilingNodeInfo::getRow(), PathFind::TilingNodeInfo::isObstacle(), m_graph, and PathFind::TilingNodeInfo::setObstacle().


Member Data Documentation

int PathFind::Tiling::m_columns [private]
 

Definition at line 237 of file tiling.h.

Referenced by addOutEdge(), conflictDiag(), createEdges(), createNodes(), getHeuristic(), getNodeId(), getNumberNodes(), getWidth(), init(), printFormatted(), and readObstacles().

TilingGraph PathFind::Tiling::m_graph [private]
 

Definition at line 245 of file tiling.h.

Referenced by addOutEdge(), clearObstacles(), conflictDiag(), createNodes(), getCharVector(), getNodeInfo(), getSuccessors(), init(), pruneNode(), readObstacles(), setObstacles(), and Tiling().

int PathFind::Tiling::m_maxEdges [private]
 

Definition at line 239 of file tiling.h.

Referenced by getSuccessors(), and init().

int PathFind::Tiling::m_rows [private]
 

Definition at line 241 of file tiling.h.

Referenced by addOutEdge(), conflictDiag(), createEdges(), createNodes(), getHeight(), getNodeId(), getNumberNodes(), init(), printFormatted(), and readObstacles().

Type PathFind::Tiling::m_type [private]
 

Definition at line 243 of file tiling.h.

Referenced by createEdges(), getHeuristic(), getMaxCost(), getSuccessors(), getType(), init(), and pruneNode().


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


Generated on Thu Aug 7 13:05:27 2003 by Doxygen1.3.1