Pyrogenesis  trunk
Classes | Namespaces | Macros | Typedefs | Functions | Variables
Pathfinding.h File Reference
#include "graphics/Terrain.h"
#include "maths/MathUtil.h"
#include "simulation2/system/Entity.h"
#include "PathGoal.h"
Include dependency graph for Pathfinding.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Grid< T >
 Basic 2D array, intended for storing tile data, plus support for lazy updates by ICmpObstructionManager. More...
 
struct  LongPathRequest
 
struct  ShortPathRequest
 
struct  Waypoint
 
struct  WaypointPath
 Returned path. More...
 
struct  PathCost
 Represents the cost of a path consisting of horizontal/vertical and diagonal movements over a uniform-cost grid. More...
 
class  PathfinderPassability
 

Namespaces

 Pathfinding
 

Macros

#define IS_PASSABLE(item, classmask)   (((item) & (classmask)) == 0)
 
#define PASS_CLASS_MASK_FROM_INDEX(id)   ((pass_class_t)(1u << id))
 
#define SPECIAL_PASS_CLASS   PASS_CLASS_MASK_FROM_INDEX((PASS_CLASS_BITS-1))
 

Typedefs

typedef u16 pass_class_t
 
typedef u16 NavcellData
 

Functions

void Pathfinding::NearestNavcell (entity_pos_t x, entity_pos_t z, u16 &i, u16 &j, u16 w, u16 h)
 Compute the navcell indexes on the grid nearest to a given point w, h are the grid dimensions, i.e. More...
 
void Pathfinding::TerrainTileCenter (u16 i, u16 j, entity_pos_t &x, entity_pos_t &z)
 Returns the position of the center of the given terrain tile. More...
 
void Pathfinding::NavcellCenter (u16 i, u16 j, entity_pos_t &x, entity_pos_t &z)
 
bool Pathfinding::CheckLineMovement (entity_pos_t x0, entity_pos_t z0, entity_pos_t x1, entity_pos_t z1, pass_class_t passClass, const Grid< NavcellData > &grid)
 

Variables

constexpr int PASS_CLASS_BITS = 16
 
constexpr fixed Pathfinding::NAVCELL_SIZE = fixed::FromInt(1)
 The long-range pathfinder operates primarily over a navigation grid (a uniform-cost 2D passability grid, with horizontal/vertical (not diagonal) connectivity). More...
 
constexpr int Pathfinding::NAVCELL_SIZE_INT = 1
 
constexpr int Pathfinding::NAVCELL_SIZE_LOG2 = 0
 
constexpr int Pathfinding::NAVCELLS_PER_TERRAIN_TILE = TERRAIN_TILE_SIZE / NAVCELL_SIZE_INT
 The terrain grid is coarser, and it is often convenient to convert from one to the other. More...
 
constexpr entity_pos_t Pathfinding::CLEARANCE_EXTENSION_RADIUS = fixed::FromInt(1)
 To make sure the long-range pathfinder is more strict than the short-range one, we need to slightly over-rasterize. More...
 

Macro Definition Documentation

◆ IS_PASSABLE

#define IS_PASSABLE (   item,
  classmask 
)    (((item) & (classmask)) == 0)

◆ PASS_CLASS_MASK_FROM_INDEX

#define PASS_CLASS_MASK_FROM_INDEX (   id)    ((pass_class_t)(1u << id))

◆ SPECIAL_PASS_CLASS

#define SPECIAL_PASS_CLASS   PASS_CLASS_MASK_FROM_INDEX((PASS_CLASS_BITS-1))

Typedef Documentation

◆ NavcellData

typedef u16 NavcellData

◆ pass_class_t

typedef u16 pass_class_t

Variable Documentation

◆ PASS_CLASS_BITS

constexpr int PASS_CLASS_BITS = 16
inline