Pyrogenesis  trunk
Public Types | Public Member Functions | Public Attributes | List of all members
PathGoal Class Reference

Pathfinder goal. More...

#include <PathGoal.h>

Collaboration diagram for PathGoal:
Collaboration graph
[legend]

Public Types

enum  Type {
  POINT, CIRCLE, INVERTED_CIRCLE, SQUARE,
  INVERTED_SQUARE
}
 

Public Member Functions

bool NavcellContainsGoal (int i, int j) const
 Returns true if the given navcell contains a part of the goal area. More...
 
bool NavcellRectContainsGoal (int i0, int j0, int i1, int j1, int *i, int *j) const
 Returns true if any navcell (i, j) where min(i0,i1) <= i <= max(i0,i1) min(j0,j1) <= j <= max(j0,j1), contains a part of the goal area. More...
 
bool RectContainsGoal (entity_pos_t x0, entity_pos_t z0, entity_pos_t x1, entity_pos_t z1) const
 Returns true if the rectangle defined by (x0,z0)-(x1,z1) (inclusive) contains a part of the goal area. More...
 
fixed DistanceToPoint (CFixedVector2D pos) const
 Returns the minimum distance from the point with the given pos to any point on the outline of the goal shape. More...
 
CFixedVector2D NearestPointOnGoal (CFixedVector2D pos) const
 Returns the coordinates of the point on the goal that is closest to pos in a straight line. More...
 

Public Attributes

enum PathGoal::Type type
 
entity_pos_t x
 
entity_pos_t z
 
CFixedVector2D u
 
CFixedVector2D v
 
entity_pos_t hw
 
entity_pos_t hh
 
entity_pos_t maxdist
 

Detailed Description

Pathfinder goal.

The goal can be either a point, a circle, or a square (rectangle). For circles/squares, any point inside the shape is considered to be part of the goal. Also, it can be an 'inverted' circle/square, where any point outside the shape is part of the goal.

Member Enumeration Documentation

Enumerator
POINT 
CIRCLE 
INVERTED_CIRCLE 
SQUARE 
INVERTED_SQUARE 

Member Function Documentation

fixed PathGoal::DistanceToPoint ( CFixedVector2D  pos) const

Returns the minimum distance from the point with the given pos to any point on the outline of the goal shape.

bool PathGoal::NavcellContainsGoal ( int  i,
int  j 
) const

Returns true if the given navcell contains a part of the goal area.

bool PathGoal::NavcellRectContainsGoal ( int  i0,
int  j0,
int  i1,
int  j1,
int *  i,
int *  j 
) const

Returns true if any navcell (i, j) where min(i0,i1) <= i <= max(i0,i1) min(j0,j1) <= j <= max(j0,j1), contains a part of the goal area.

If so, arguments i and j (if not NULL) are set to the goal navcell nearest to (i0, j0), assuming the rect has either width or height = 1.

CFixedVector2D PathGoal::NearestPointOnGoal ( CFixedVector2D  pos) const

Returns the coordinates of the point on the goal that is closest to pos in a straight line.

bool PathGoal::RectContainsGoal ( entity_pos_t  x0,
entity_pos_t  z0,
entity_pos_t  x1,
entity_pos_t  z1 
) const

Returns true if the rectangle defined by (x0,z0)-(x1,z1) (inclusive) contains a part of the goal area.

Member Data Documentation

entity_pos_t PathGoal::hh
entity_pos_t PathGoal::hw
entity_pos_t PathGoal::maxdist
enum PathGoal::Type PathGoal::type
CFixedVector2D PathGoal::u
CFixedVector2D PathGoal::v
entity_pos_t PathGoal::x
entity_pos_t PathGoal::z

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