56 #ifndef _GAMS_UTILITY_POSITION_H_
57 #define _GAMS_UTILITY_POSITION_H_
62 #include "madara/knowledge/containers/DoubleVector.h"
63 #include "madara/knowledge/containers/NativeDoubleVector.h"
87 double init_x = DBL_MAX,
double init_y = 0.0,
double init_z = 0.0);
96 : x(pos.x()), y(pos.y()), z(pos.z()) {}
126 madara::knowledge::containers::DoubleArray & rhs)
const;
134 madara::knowledge::containers::NativeDoubleArray & rhs)
const;
149 madara::knowledge::containers::DoubleArray & rhs)
const;
157 madara::knowledge::containers::NativeDoubleArray & rhs)
const;
180 const Position & rhs,
const double & epsilon)
const;
189 const Position & rhs,
const double & epsilon)
const;
198 const Position& rhs,
double& phi,
double& theta)
const;
229 const Position & p,
double & slope)
const;
243 std::string
to_string(
const std::string & delimiter =
",")
const;
263 madara::knowledge::containers::DoubleArray & target)
const;
270 madara::knowledge::containers::DoubleArray & source);
277 madara::knowledge::containers::NativeDoubleArray & target)
285 madara::knowledge::containers::NativeDoubleArray & source);
Provides Reference Frame (i.e., coordinate systemm) transforms.
A position in an x, y, z coordinate system.
virtual void from_container(madara::knowledge::containers::NativeDoubleArray &source)
Helper function for copying values to a MADARA double array.
bool approximately_equal_2d(const Position &rhs, const double &epsilon) const
Approximate equality.
bool approximately_equal(const Position &rhs, const double &epsilon) const
Approximate equality.
double distance_to(const Position &rhs) const
Get distance between two positions.
Position operator-(const Position &rhs) const
Subtraction operator performs element-wise subtraction.
virtual ~Position()
Destructor.
bool operator!=(const madara::knowledge::containers::DoubleArray &rhs) const
Inequality operator.
virtual void from_container(madara::knowledge::containers::DoubleArray &source)
Helper function for copying values to a MADARA double array.
virtual bool slope_2d(const Position &p, double &slope) const
Get slope between two points.
Position(const pose::Position &pos)
std::string to_string(const std::string &delimiter=",") const
Helper function for converting the position to a string.
virtual double distance_to_2d(const Position &rhs) const
bool operator<(const Position &rhs) const
Less than used for ordering in stl containers.
virtual double dot(const Position &p_2) const
Dot product of two positions treated as vectors.
pose::Position to_pos(const pose::ReferenceFrame &frame) const
Position(double init_x=DBL_MAX, double init_y=0.0, double init_z=0.0)
Constructor.
double y
the y coordinate(e.g. longitude)
Position(const Position &source)
Copy constructor.
virtual double distance_to_2d(const Position &end, const Position &check) const
Get distance between a point and a line segment.
void direction_to(const Position &rhs, double &phi, double &theta) const
Get spherical direction to position.
virtual bool is_between_2d(const Position &end, const Position &check) const
Deterime if a third point is inline and between another two points.
virtual void to_container(madara::knowledge::containers::NativeDoubleArray &target) const
Helper function for copying values to a MADARA double array.
Position operator*(const double &scale) const
Scale the position.
bool operator==(const Position &rhs) const
Equality operator.
bool operator!=(const madara::knowledge::containers::NativeDoubleArray &rhs) const
Inequality operator.
static Position from_string(const std::string &delimiter=",")
Helper function for creating a Position from a string.
bool operator!=(const Position &rhs) const
Inequality operator.
double x
the x coordinate(e.g. latitude)
bool operator==(const madara::knowledge::containers::DoubleArray &rhs) const
Equality operator.
double z
the z coordinate(e.g. altitude)
virtual void to_container(madara::knowledge::containers::DoubleArray &target) const
Helper function for copying values to a MADARA double array.
static Position from_record(const madara::knowledge::KnowledgeRecord &record)
Helper function for creating a Position from a KnowledgeRecord.
void operator=(const Position &rhs)
Assignment operator.
bool operator==(const madara::knowledge::containers::NativeDoubleArray &rhs) const
Equality operator.
Position operator+(const Position &rhs) const
Addition operator performs element-wise addition.
std::vector< Position > Positions
Contains all GAMS-related tools, classes and code.
Copyright (c) 2015-2018 Carnegie Mellon University.
Copyright (c) 2015 Carnegie Mellon University.