GAMS  1.4.0
gams::utility::Position Class Reference

A position in an x, y, z coordinate system. More...

#include <Position.h>

Inheritance diagram for gams::utility::Position:
gams::utility::GPSPosition

Public Member Functions

 Position (const pose::Position &pos)
 
 Position (const Position &source)
 Copy constructor. More...
 
 Position (double init_x=DBL_MAX, double init_y=0.0, double init_z=0.0)
 Constructor. More...
 
virtual ~Position ()
 Destructor. More...
 
bool approximately_equal (const Position &rhs, const double &epsilon) const
 Approximate equality. More...
 
bool approximately_equal_2d (const Position &rhs, const double &epsilon) const
 Approximate equality. More...
 
void direction_to (const Position &rhs, double &phi, double &theta) const
 Get spherical direction to position. More...
 
double distance_to (const Position &rhs) const
 Get distance between two positions. More...
 
virtual double distance_to_2d (const Position &end, const Position &check) const
 Get distance between a point and a line segment. More...
 
virtual double distance_to_2d (const Position &rhs) const
 
virtual double dot (const Position &p_2) const
 Dot product of two positions treated as vectors. More...
 
virtual void from_container (madara::knowledge::containers::DoubleArray &source)
 Helper function for copying values to a MADARA double array. More...
 
virtual void from_container (madara::knowledge::containers::NativeDoubleArray &source)
 Helper function for copying values to a MADARA double array. More...
 
virtual bool is_between_2d (const Position &end, const Position &check) const
 Deterime if a third point is inline and between another two points. More...
 
bool operator!= (const madara::knowledge::containers::DoubleArray &rhs) const
 Inequality operator. More...
 
bool operator!= (const madara::knowledge::containers::NativeDoubleArray &rhs) const
 Inequality operator. More...
 
bool operator!= (const Position &rhs) const
 Inequality operator. More...
 
bool operator< (const Position &rhs) const
 Less than used for ordering in stl containers. More...
 
void operator= (const Position &rhs)
 Assignment operator. More...
 
bool operator== (const madara::knowledge::containers::DoubleArray &rhs) const
 Equality operator. More...
 
bool operator== (const madara::knowledge::containers::NativeDoubleArray &rhs) const
 Equality operator. More...
 
bool operator== (const Position &rhs) const
 Equality operator. More...
 
virtual bool slope_2d (const Position &p, double &slope) const
 Get slope between two points. More...
 
virtual void to_container (madara::knowledge::containers::DoubleArray &target) const
 Helper function for copying values to a MADARA double array. More...
 
virtual void to_container (madara::knowledge::containers::NativeDoubleArray &target) const
 Helper function for copying values to a MADARA double array. More...
 
pose::Position to_pos (const pose::ReferenceFrame &frame) const
 
std::string to_string (const std::string &delimiter=",") const
 Helper function for converting the position to a string. More...
 

Static Public Member Functions

static Position from_record (const madara::knowledge::KnowledgeRecord &record)
 Helper function for creating a Position from a KnowledgeRecord. More...
 
static Position from_string (const std::string &delimiter=",")
 Helper function for creating a Position from a string. More...
 

Public Attributes

double x
 the x coordinate(e.g. latitude) More...
 
double y
 the y coordinate(e.g. longitude) More...
 
double z
 the z coordinate(e.g. altitude) More...
 

Protected Member Functions

Position operator* (const double &scale) const
 Scale the position. More...
 
Position operator+ (const Position &rhs) const
 Addition operator performs element-wise addition. More...
 
Position operator- (const Position &rhs) const
 Subtraction operator performs element-wise subtraction. More...
 

Detailed Description

A position in an x, y, z coordinate system.

DEPRECATED: use pose::Position instead. Will be removed in GAMS v2

Definition at line 77 of file Position.h.

Constructor & Destructor Documentation

◆ Position() [1/3]

gams::utility::Position::Position ( double  init_x = DBL_MAX,
double  init_y = 0.0,
double  init_z = 0.0 
)

Constructor.

Parameters
init_xthe x axis coordinate(e.g. latitude)
init_ythe y axis coordinate(e.g. longitude)
init_zthe z axis coordinate(e.g. altitude)

◆ Position() [2/3]

gams::utility::Position::Position ( const Position source)

Copy constructor.

Parameters
sourcethe source to copy

◆ Position() [3/3]

gams::utility::Position::Position ( const pose::Position pos)
inline

Definition at line 95 of file Position.h.

◆ ~Position()

virtual gams::utility::Position::~Position ( )
virtual

Destructor.

Member Function Documentation

◆ approximately_equal()

bool gams::utility::Position::approximately_equal ( const Position rhs,
const double &  epsilon 
) const

Approximate equality.

Parameters
rhsvalue to compare
epsilonapproximation value
Returns
true if position is within epsilon in each direction of this

◆ approximately_equal_2d()

bool gams::utility::Position::approximately_equal_2d ( const Position rhs,
const double &  epsilon 
) const

Approximate equality.

Parameters
rhsvalue to compare
epsilonapproximation value
Returns
true if position is within epsilon in each direction of this

◆ direction_to()

void gams::utility::Position::direction_to ( const Position rhs,
double &  phi,
double &  theta 
) const

Get spherical direction to position.

Parameters
rhsother position
phidirection in x/y plane
thetadirection in z plane

◆ distance_to()

double gams::utility::Position::distance_to ( const Position rhs) const

Get distance between two positions.

Parameters
rhssecond position
Returns
euclidean distance between the two points

◆ distance_to_2d() [1/2]

virtual double gams::utility::Position::distance_to_2d ( const Position end,
const Position check 
) const
virtual

Get distance between a point and a line segment.

Parameters
endend of line segment including *this
checkpoint to find distance for
Returns
distance from check to line including *this and end

◆ distance_to_2d() [2/2]

virtual double gams::utility::Position::distance_to_2d ( const Position rhs) const
virtual
Parameters
rhssecond position
Returns
euclidean distance between the two points with just x and y

◆ dot()

virtual double gams::utility::Position::dot ( const Position p_2) const
virtual

Dot product of two positions treated as vectors.

Parameters
p_2other position
Returns
dot product of the two positions

◆ from_container() [1/2]

virtual void gams::utility::Position::from_container ( madara::knowledge::containers::DoubleArray &  source)
virtual

Helper function for copying values to a MADARA double array.

Parameters
sourcesource container to copy values from

Reimplemented in gams::utility::GPSPosition.

◆ from_container() [2/2]

virtual void gams::utility::Position::from_container ( madara::knowledge::containers::NativeDoubleArray &  source)
virtual

Helper function for copying values to a MADARA double array.

Parameters
sourcesource container to copy values from

Reimplemented in gams::utility::GPSPosition.

◆ from_record()

static Position gams::utility::Position::from_record ( const madara::knowledge::KnowledgeRecord &  record)
static

Helper function for creating a Position from a KnowledgeRecord.

Parameters
recorda record containing a double array
Returns
the Position equivalent of the record

◆ from_string()

static Position gams::utility::Position::from_string ( const std::string &  delimiter = ",")
static

Helper function for creating a Position from a string.

Parameters
delimitercharacters to insert between position components

◆ is_between_2d()

virtual bool gams::utility::Position::is_between_2d ( const Position end,
const Position check 
) const
virtual

Deterime if a third point is inline and between another two points.

Parameters
endsecond endpoint
checkpoint to check
Returns
true if check is inline and between *this and end

◆ operator!=() [1/3]

bool gams::utility::Position::operator!= ( const madara::knowledge::containers::DoubleArray &  rhs) const

Inequality operator.

Parameters
rhsvalue to compare
Returns
true if x, y, z are equal in both objects, false otherwise

◆ operator!=() [2/3]

bool gams::utility::Position::operator!= ( const madara::knowledge::containers::NativeDoubleArray &  rhs) const

Inequality operator.

Parameters
rhsvalue to compare
Returns
true if x, y, z are equal in both objects, false otherwise

◆ operator!=() [3/3]

bool gams::utility::Position::operator!= ( const Position rhs) const

Inequality operator.

Parameters
rhsvalue to compare
Returns
true if x, y, z are equal in both objects, false otherwise

◆ operator*()

Position gams::utility::Position::operator* ( const double &  scale) const
protected

Scale the position.

Parameters
scalefactor to scale by
Returns
scaled version of *this

◆ operator+()

Position gams::utility::Position::operator+ ( const Position rhs) const
protected

Addition operator performs element-wise addition.

Parameters
rhsvalue to add to *this
Returns
element-wise addition of *this and rhs

◆ operator-()

Position gams::utility::Position::operator- ( const Position rhs) const
protected

Subtraction operator performs element-wise subtraction.

Parameters
rhsvalue to subtract from *this
Returns
element-wise subtraction of rhs from *this

◆ operator<()

bool gams::utility::Position::operator< ( const Position rhs) const

Less than used for ordering in stl containers.

Parameters
rhscomparing position
Returns
true if *this is less than rhs

◆ operator=()

void gams::utility::Position::operator= ( const Position rhs)

Assignment operator.

Parameters
rhsvalues to copy

◆ operator==() [1/3]

bool gams::utility::Position::operator== ( const madara::knowledge::containers::DoubleArray &  rhs) const

Equality operator.

Parameters
rhsvalue to compare
Returns
true if x, y, z are equal in both objects, false otherwise

◆ operator==() [2/3]

bool gams::utility::Position::operator== ( const madara::knowledge::containers::NativeDoubleArray &  rhs) const

Equality operator.

Parameters
rhsvalue to compare
Returns
true if x, y, z are equal in both objects, false otherwise

◆ operator==() [3/3]

bool gams::utility::Position::operator== ( const Position rhs) const

Equality operator.

Parameters
rhsvalue to compare
Returns
true if x, y, z are equal in both objects, false otherwise

◆ slope_2d()

virtual bool gams::utility::Position::slope_2d ( const Position p,
double &  slope 
) const
virtual

Get slope between two points.

Parameters
pother point
slopelocation to store slope between two points
Returns
true if slope exists

◆ to_container() [1/2]

virtual void gams::utility::Position::to_container ( madara::knowledge::containers::DoubleArray &  target) const
virtual

Helper function for copying values to a MADARA double array.

Parameters
targettarget container to copy values to

Reimplemented in gams::utility::GPSPosition.

◆ to_container() [2/2]

virtual void gams::utility::Position::to_container ( madara::knowledge::containers::NativeDoubleArray &  target) const
virtual

Helper function for copying values to a MADARA double array.

Parameters
targettarget container to copy values to

Reimplemented in gams::utility::GPSPosition.

◆ to_pos()

pose::Position gams::utility::Position::to_pos ( const pose::ReferenceFrame frame) const
inline

Definition at line 98 of file Position.h.

◆ to_string()

std::string gams::utility::Position::to_string ( const std::string &  delimiter = ",") const

Helper function for converting the position to a string.

Parameters
delimitercharacters to insert between position components

Member Data Documentation

◆ x

double gams::utility::Position::x

the x coordinate(e.g. latitude)

Definition at line 288 of file Position.h.

◆ y

double gams::utility::Position::y

the y coordinate(e.g. longitude)

Definition at line 291 of file Position.h.

◆ z

double gams::utility::Position::z

the z coordinate(e.g. altitude)

Definition at line 294 of file Position.h.


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