A three dimensional node class that is at the heart of the algorithm. More...
#include <node3d.h>
Public Member Functions | |
Node3D () | |
The default constructor for 3D array initialization. | |
Node3D (float x, float y, float t, float g, float h, const Node3D *pred, int prim=0) | |
Constructor for a node with the given arguments. | |
float | getX () const |
get the x position | |
float | getY () const |
get the y position | |
float | getT () const |
get the heading theta | |
float | getG () const |
get the cost-so-far (real value) | |
float | getH () const |
get the cost-to-come (heuristic value) | |
float | getC () const |
get the total estimated cost | |
int | getIdx () const |
get the index of the node in the 3D array | |
int | getPrim () const |
get the number associated with the motion primitive of the node | |
bool | isOpen () const |
determine whether the node is open | |
bool | isClosed () const |
determine whether the node is closed | |
const Node3D * | getPred () const |
determine whether the node is open | |
void | setX (const float &x) |
set the x position | |
void | setY (const float &y) |
set the y position | |
void | setT (const float &t) |
set the heading theta | |
void | setG (const float &g) |
set the cost-so-far (real value) | |
void | setH (const float &h) |
set the cost-to-come (heuristic value) | |
int | setIdx (int width, int height) |
set and get the index of the node in the 3D grid | |
void | setPrim (const int &prim) |
set the primitive | |
void | open () |
open the node | |
void | close () |
close the node | |
void | setPred (const Node3D *pred) |
set a pointer to the predecessor of the node | |
void | updateG () |
Updates the cost-so-far for the node x' coming from its predecessor. It also discovers the node. | |
bool | operator== (const Node3D &rhs) const |
Custom operator to compare nodes. Nodes are equal if their x and y position as well as heading is similar. | |
bool | isInRange (const Node3D &goal) const |
Determines whether it is appropriate to find a analytical solution. | |
bool | isOnGrid (const int width, const int height) const |
Validity check to test, whether the node is in the 3D array. | |
Node3D * | createSuccessor (const int i) |
Creates a successor in the continous space. | |
Static Public Attributes | |
static const int | dir = 3 |
Number of possible directions. | |
static const float | dx [] = { 0.7068582, 0.705224, 0.705224} |
Possible movements in the x direction. | |
static const float | dy [] = { 0, -0.0415893, 0.0415893} |
Possible movements in the y direction. | |
static const float | dt [] = { 0, 0.1178097, -0.1178097} |
Possible movements regarding heading theta. | |
Private Attributes | |
float | x |
the x position | |
float | y |
the y position | |
float | t |
the heading theta | |
float | g |
the cost-so-far | |
float | h |
the cost-to-go | |
int | idx |
the index of the node in the 3D array | |
bool | o |
the open value | |
bool | c |
the closed value | |
int | prim |
the motion primitive of the node | |
const Node3D * | pred |
the predecessor pointer | |
A three dimensional node class that is at the heart of the algorithm.
Each node has a unique configuration (x, y, theta) in the configuration space C.