Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
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

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

namespace  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
inlineconstexpr