1 #ifndef GAME_MWMECHANICS_PATHFINDING_H
2 #define GAME_MWMECHANICS_PATHFINDING_H
33 bool checkWayIsClear(
const osg::Vec3f& from,
const osg::Vec3f& to,
float offsetXY);
42 static float sgn(
float val)
71 return !
mPath.empty();
79 const std::list<ESM::Pathgrid::Point>&
getPath()
const
98 mPath.push_back(point);
104 return ESM::Pathgrid::Point(static_cast<int>(v[0]), static_cast<int>(v[1]), static_cast<int>(v[2]));
115 return osg::Vec3f(static_cast<float>(p.
mX), static_cast<float>(p.
mY), static_cast<float>(p.
mZ));
135 assert(grid && !grid->
mPoints.empty());
138 int closestIndex = 0;
142 for(
unsigned int counter = 1; counter < grid->
mPoints.size(); counter++)
145 if(potentialDistBetween < distanceBetween)
147 distanceBetween = potentialDistBetween;
148 closestIndex = counter;
156 std::list<ESM::Pathgrid::Point>
mPath;
const MWWorld::CellStore * getPathCell() const
Definition: pathfinding.cpp:354
float getZAngleToNext(float x, float y) const
In radians.
Definition: pathfinding.cpp:279
float pos[3]
Definition: defs.hpp:40
static int sgn(int a)
Definition: pathfinding.hpp:49
void buildPath(const ESM::Pathgrid::Point &startPoint, const ESM::Pathgrid::Point &endPoint, const MWWorld::CellStore *cell, const PathgridGraph &pathgridGraph)
Definition: pathfinding.cpp:170
PathFinder()
Definition: pathfinding.cpp:122
const std::list< ESM::Pathgrid::Point > & getPath() const
Definition: pathfinding.hpp:79
Definition: pathfinding.hpp:35
static const int PathTolerance
Definition: pathfinding.hpp:40
const MWWorld::CellStore * mCell
Definition: pathfinding.hpp:159
int mX
Definition: loadpgrd.hpp:32
const ESM::Pathgrid * mPathgrid
Definition: pathfinding.hpp:158
PointList mPoints
Definition: loadpgrd.hpp:54
bool isPathConstructed() const
Definition: pathfinding.hpp:69
const float PATHFIND_SHORTCUT_RETRY_DIST
Definition: pathfinding.hpp:29
Mutable state of a cell.
Definition: cellstore.hpp:51
static float sgn(float val)
Definition: pathfinding.hpp:42
bool checkWayIsClear(const osg::Vec3f &from, const osg::Vec3f &to, float offsetXY)
Definition: pathfinding.cpp:108
static osg::Vec3f MakeOsgVec3(const ESM::Pathgrid::Point &p)
Definition: pathfinding.hpp:113
void clearPath()
Definition: pathfinding.cpp:128
float distance(const ESM::Pathgrid::Point &point, float x, float y, float z)
Definition: pathfinding.cpp:69
static ESM::Pathgrid::Point MakePathgridPoint(const osg::Vec3f &v)
utility function to convert a osg::Vec3f to a Pathgrid::Point
Definition: pathfinding.hpp:102
void buildSyncedPath(const ESM::Pathgrid::Point &startPoint, const ESM::Pathgrid::Point &endPoint, const MWWorld::CellStore *cell, const PathgridGraph &pathgridGraph)
Definition: pathfinding.cpp:325
Definition: loadpgrd.hpp:16
void addPointToPath(const ESM::Pathgrid::Point &point)
Definition: pathfinding.hpp:96
static int GetClosestPoint(const ESM::Pathgrid *grid, const osg::Vec3f &pos)
Definition: pathfinding.hpp:133
int mY
Definition: loadpgrd.hpp:32
float getZAngleToDir(const osg::Vec3f &dir)
Definition: pathfinding.cpp:85
float getXAngleToPoint(const ESM::Pathgrid::Point &origin, const ESM::Pathgrid::Point &dest)
Definition: pathfinding.cpp:102
Definition: pathgrid.hpp:20
static float DistanceSquared(ESM::Pathgrid::Point point, const osg::Vec3f &pos)
Definition: pathfinding.hpp:122
int mZ
Definition: loadpgrd.hpp:32
float getXAngleToDir(const osg::Vec3f &dir)
Definition: pathfinding.cpp:90
Definition: loadpgrd.hpp:30
static ESM::Pathgrid::Point MakePathgridPoint(const ESM::Position &p)
utility function to convert an ESM::Position to a Pathgrid::Point
Definition: pathfinding.hpp:108
float getZAngleToPoint(const ESM::Pathgrid::Point &origin, const ESM::Pathgrid::Point &dest)
Definition: pathfinding.cpp:96
int getPathSize() const
Definition: pathfinding.hpp:74
bool checkPathCompleted(float x, float y, float tolerance=PathTolerance)
true if we are within tolerance units of the last path point.
Definition: pathfinding.cpp:306
std::list< ESM::Pathgrid::Point > mPath
Definition: pathfinding.hpp:156
float getXAngleToNext(float x, float y, float z) const
Definition: pathfinding.cpp:293
const float PATHFIND_Z_REACH
Definition: pathfinding.hpp:26