GAMS  1.2.2
gams::pose Namespace Reference

Provides position and orientation primitives. More...

Namespaces

 cartesian
 Contains frame translation functions for Cartesian reference frames.
 
 detail
 Provides underlying pose classes that provide infrastructure for higher level pose-related functions.
 
 euler
 Provides support for Euler tools for positions and orientations.
 
 geodetic_util
 
 gps
 Contains functions for translating GPS frames.
 
 impl
 Private implementation details.
 
 order
 Provides support for ordering reference-frame inputss.
 
 simple_rotate
 For internal use.
 
 units
 Type tags to indicate the dimension a coordinate lies within.
 

Classes

class  Accleration
 
class  AcclerationVector
 
class  AngularAccleration
 
class  AngularAcclerationVector
 
class  AngularVelocity
 
class  AngularVelocityVector
 
struct  basic_positional_mixin
 Internal use. More...
 
struct  basic_rotational_mixin
 Internal use. More...
 
class  BasicPose
 Underlying template for all Pose types, including PoseVector, Pose, and StampedPose See PositionVector and OrientationVector for representation deatils. More...
 
class  BasicVector
 For internal use. The underlying template for all coordinate types. More...
 
struct  common_rotational_mixin
 Internal use. More...
 
struct  default_positional_unit_traits
 Internal use. More...
 
struct  default_rotational_unit_traits
 Internal use. More...
 
struct  default_unit_traits
 Internal use. More...
 
class  Displacement
 
class  DisplacementVector
 
struct  fixed_into_free
 Helper struct for defining which fixed coordinate types map to which free vector coordinate types. More...
 
struct  fixed_into_free< Orientation >
 
struct  fixed_into_free< OrientationVector >
 
struct  fixed_into_free< Position >
 
struct  fixed_into_free< PositionVector >
 
struct  fixed_into_free< StampedOrientation >
 
struct  fixed_into_free< StampedPosition >
 
class  Framed
 Internal class implementing coordinates bound to reference frame. More...
 
class  FrameEvalSettings
 Settings class for saving/loading reference frames. More...
 
class  FrameStore
 Class for storing and loading frames in a given KnowledgeBase, using given settings, with a set expiry. More...
 
class  Orientation
 
class  OrientationVector
 
class  Pose
 
class  PoseVector
 
class  Position
 
class  PositionVector
 
class  PrioritizedRegion
 A helper class for prioritized region information. More...
 
class  Quaternion
 Used internally to implement angle operations. More...
 
class  ReferenceFrame
 Provides Reference Frame (i.e., coordinate systemm) transforms. More...
 
class  ReferenceFrameIdentity
 For internal use. More...
 
struct  ReferenceFrameType
 For internal use. More...
 
class  ReferenceFrameVersion
 For internal use. More...
 
class  Region
 A helper class for region information. More...
 
class  Rotation
 
class  RotationVector
 
class  SearchArea
 A utility class for search areas. More...
 
class  Stamped
 Internal class implementing coordinates stamped with timestamp. More...
 
class  StampedAccleration
 
class  StampedAngularAccleration
 
class  StampedAngularVelocity
 
class  StampedDisplacement
 
class  StampedOrientation
 
class  StampedPose
 
class  StampedPosition
 
class  StampedRotation
 
class  StampedVelocity
 
class  undefined_transform
 Thrown when an attempt is made to transform between two frame types, and there's not transform defined. More...
 
struct  unit_traits
 Helper trait to customize BasicVector based on unit. More...
 
struct  unit_traits< units::absolute< units::length > >
 
struct  unit_traits< units::absolute< units::plane_angle > >
 
struct  unit_traits< units::acceleration >
 
struct  unit_traits< units::angular_acceleration >
 
struct  unit_traits< units::angular_velocity >
 
struct  unit_traits< units::length >
 
struct  unit_traits< units::plane_angle >
 
struct  unit_traits< units::velocity >
 
class  unrelated_frames
 Thrown when an an attempt is made to transform between frames that do not belong to the same frame tree. More...
 
class  Velocity
 
class  VelocityVector
 

Functions

GAMS_EXPORT const ReferenceFramedefault_frame (void)
 Default frame. More...
 
void default_normalize_angular (const ReferenceFrameType *, double &, double &, double &)
 
void default_normalize_linear (const ReferenceFrameType *, double &, double &, double &)
 
void default_normalize_pose (const ReferenceFrameType *self, double &x, double &y, double &z, double &rx, double &ry, double &rz)
 
GAMS_EXPORT const ReferenceFramefind_common_frame (const ReferenceFrame *from, const ReferenceFrame *to, std::vector< const ReferenceFrame * > *to_stack=nullptr)
 Helper function to find the common frame between two frames. More...
 
GAMS_EXPORT const ReferenceFramegps_frame (void)
 Returns the canonical GPS frame representing Earth. More...
 
 MADARA_MAKE_VAL_SUPPORT_TEST (transform_to, x,(x.transform_to(std::declval< ReferenceFrame >())))
 
 MADARA_MAKE_VAL_SUPPORT_TEST (timestamp, x,(x.time(), x.time(TimeValue{})))
 Type trait to detect stamped types. More...
 
 MADARA_MAKE_VAL_SUPPORT_TEST (nano_timestamp, x,(x.nanos(), x.nanos(0UL)))
 Type trait to detect stamped types. More...
 
template<typename LDerived , typename RDerived , typename Units >
bool operator!= (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator!= (const Stamped< Framed< BasicVector< LDerived, Units >>> &lhs, const Stamped< Framed< BasicVector< RDerived, Units >>> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator!= (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs)
 
template<typename Derived , typename Units , typename Scalar >
auto operator* (Scalar scalar, const BasicVector< Derived, Units > &vec) -> decltype(vec *scalar)
 
template<typename Derived , typename Units , typename Scalar >
auto operator* (const BasicVector< Derived, Units > &vec, Scalar scalar) -> typename std::enable_if< std::is_arithmetic< Scalar >::value &&BasicVector< Derived, Units >::free(), typename BasicVector< Derived, Units >::derived_type >::type
 
template<typename Derived , typename Units , typename Scalar >
auto operator*= (BasicVector< Derived, Units > &vec, Scalar scalar) -> typename std::enable_if< std::is_arithmetic< Scalar >::value &&BasicVector< Derived, Units >::free(), typename BasicVector< Derived, Units >::derived_type & >::type
 
template<typename LDerived , typename LUnits , typename RDerived , typename RUnits >
auto operator+ (const BasicVector< LDerived, LUnits > &lhs, const BasicVector< RDerived, RUnits > &rhs) -> typename std::enable_if< RDerived::free(), LDerived >::type
 Pass through to Eigen operator- on vectors, if RHS is free. More...
 
template<typename LDerived , typename RDerived , typename Units >
auto operator+= (BasicVector< LDerived, Units > &lhs, const Eigen::MatrixBase< RDerived > &rhs) -> typename std::enable_if< unit_traits< Units >::positional, LDerived & >::type
 
template<typename LDerived , typename RDerived , typename Units >
auto operator+= (BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs) -> typename std::enable_if< unit_traits< Units >::positional &&unit_traits< Units >::free, LDerived & >::type
 
template<typename LDerived , typename RDerived , typename Units >
auto operator+= (BasicVector< LDerived, units::absolute< Units >> &lhs, const BasicVector< RDerived, Units > &rhs) -> typename std::enable_if< unit_traits< Units >::positional &&unit_traits< Units >::free, LDerived & >::type
 
template<typename LDerived , typename LUnits , typename RDerived , typename RUnits >
auto operator- (const BasicVector< LDerived, LUnits > &lhs, const BasicVector< RDerived, RUnits > &rhs) -> typename std::enable_if< LDerived::free()&&RDerived::free(), LDerived >::type
 Pass through to Eigen operator- on vectors, for free types. More...
 
template<typename LDerived , typename RDerived , typename Units >
auto operator-= (BasicVector< LDerived, Units > &lhs, const Eigen::MatrixBase< RDerived > &rhs) -> typename std::enable_if< unit_traits< Units >::positional, LDerived & >::type
 
template<typename LDerived , typename RDerived , typename Units >
auto operator-= (BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs) -> typename std::enable_if< unit_traits< Units >::positional &&unit_traits< Units >::free, LDerived & >::type
 
template<typename LDerived , typename RDerived , typename Units >
auto operator-= (BasicVector< LDerived, units::absolute< Units >> &lhs, const BasicVector< RDerived, Units > &rhs) -> typename std::enable_if< unit_traits< Units >::positional &&unit_traits< Units >::free, LDerived & >::type
 
template<typename Derived , typename Units , typename Scalar >
auto operator/ (const BasicVector< Derived, Units > &vec, Scalar scalar) -> typename std::enable_if< std::is_arithmetic< Scalar >::value &&BasicVector< Derived, Units >::free(), typename BasicVector< Derived, Units >::derived_type >::type
 
template<typename Derived , typename Units , typename Scalar >
auto operator/ (Scalar scalar, const BasicVector< Derived, Units > &vec) -> decltype(vec/scalar)
 
template<typename Derived , typename Units , typename Scalar >
auto operator/= (BasicVector< Derived, Units > &vec, Scalar scalar) -> typename std::enable_if< std::is_arithmetic< Scalar >::value &&BasicVector< Derived, Units >::free(), typename BasicVector< Derived, Units >::derived_type & >::type
 
template<typename LDerived , typename RDerived , typename Units >
bool operator< (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator< (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator< (const Stamped< Framed< BasicVector< LDerived, Units >>> &lhs, const Stamped< Framed< BasicVector< RDerived, Units >>> &rhs)
 
template<typename Base >
std::ostream & operator<< (std::ostream &o, const Stamped< Base > &v)
 
template<typename Derived >
std::ostream & operator<< (std::ostream &o, const BasicPose< Derived > &pose)
 
std::ostream & operator<< (std::ostream &o, const Eigen::Vector3d &v)
 
template<typename Derived , typename Units >
std::ostream & operator<< (std::ostream &o, const BasicVector< Derived, Units > &v)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator<= (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator<= (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator<= (const Stamped< Framed< BasicVector< LDerived, Units >>> &lhs, const Stamped< Framed< BasicVector< RDerived, Units >>> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator== (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator== (const Stamped< Framed< BasicVector< LDerived, Units >>> &lhs, const Stamped< Framed< BasicVector< RDerived, Units >>> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator== (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator> (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator> (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator> (const Stamped< Framed< BasicVector< LDerived, Units >>> &lhs, const Stamped< Framed< BasicVector< RDerived, Units >>> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator>= (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator>= (const Stamped< Framed< BasicVector< LDerived, Units >>> &lhs, const Stamped< Framed< BasicVector< RDerived, Units >>> &rhs)
 
template<typename LDerived , typename RDerived , typename Units >
bool operator>= (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs)
 
Eigen::Vector3d quat_to_axis_angle (const Eigen::Quaterniond &quat)
 
ReferenceFrame try_get_frame ()
 
template<typename T , typename... Args>
auto try_get_frame (const T &v, Args &&...) -> typename std::enable_if< supports_transform_to< T >::value, ReferenceFrame >::type
 
template<typename T , typename... Args>
auto try_get_frame (const T &, Args &&...args) -> typename std::enable_if<!supports_transform_to< T >::value, ReferenceFrame >::type
 
uint64_t try_get_nano_time (uint64_t def)
 Base case: return default. More...
 
template<typename T , typename... Args>
auto try_get_nano_time (uint64_t, const T &v, Args &&...) -> typename std::enable_if< supports_nano_timestamp< T >::value, uint64_t >::type
 If T supports nanos(), call it and return value. More...
 
template<typename T , typename... Args>
auto try_get_nano_time (uint64_t def, const T &, Args &&...args) -> typename std::enable_if<!supports_nano_timestamp< T >::value, uint64_t >::type
 If T doesn't support nanos(), recurse to remaining args. More...
 
TimeValue try_get_time ()
 
template<typename T , typename... Args>
auto try_get_time (const T &v, Args &&...) -> typename std::enable_if< supports_timestamp< T >::value, TimeValue >::type
 
template<typename T , typename... Args>
auto try_get_time (const T &, Args &&...args) -> typename std::enable_if<!supports_timestamp< T >::value, TimeValue >::type
 
template<typename T >
auto try_transform_to (const T &v, const ReferenceFrame &frame) -> typename std::enable_if< supports_transform_to< T >::value, T >::type
 

Variables

const ReferenceFrameTypeCartesian
 ReferenceFrameType struct for Cartesian frames. More...
 
static const detail::degrees_t degrees
 Degres unit flag; see Euler constructor. More...
 
constexpr double EARTH_CIRC = EARTH_RADIUS * 2 * M_PI
 
constexpr double EARTH_RADIUS = 6371000.0
 
const ReferenceFrameTypeGPS
 ReferenceFrameType for GPS frames. More...
 
static const detail::radians_t radians
 Radians unit flag; see Euler constructor. More...
 
static const detail::revolutions_t revolutions
 Revolutions (i.e., 1 == 360 degrees) unit flag; see Euler constructor. More...
 

Detailed Description

Provides position and orientation primitives.

Function Documentation

GAMS_EXPORT const ReferenceFrame& gams::pose::default_frame ( void  )

Default frame.

Cartesian type. Will be used by any Coordinates by default, if no other is specified. In general, you should not need to create any other parent-less Cartesian frames.

void gams::pose::default_normalize_angular ( const ReferenceFrameType ,
double &  ,
double &  ,
double &   
)
inline

Definition at line 1274 of file ReferenceFrame.h.

void gams::pose::default_normalize_linear ( const ReferenceFrameType ,
double &  ,
double &  ,
double &   
)
inline

Definition at line 1270 of file ReferenceFrame.h.

void gams::pose::default_normalize_pose ( const ReferenceFrameType self,
double &  x,
double &  y,
double &  z,
double &  rx,
double &  ry,
double &  rz 
)
inline

Definition at line 1278 of file ReferenceFrame.h.

GAMS_EXPORT const ReferenceFrame* gams::pose::find_common_frame ( const ReferenceFrame from,
const ReferenceFrame to,
std::vector< const ReferenceFrame * > *  to_stack = nullptr 
)

Helper function to find the common frame between two frames.

Parameters
fromthe initial frame
tothe target frame
to_stackif not nullptr, the frames needed to go from base to target frame will be pushed to pointed to vector
GAMS_EXPORT const ReferenceFrame& gams::pose::gps_frame ( void  )

Returns the canonical GPS frame representing Earth.

In general, use this function, instead of creating your own GPS typed ReferenceFrame.

gams::pose::MADARA_MAKE_VAL_SUPPORT_TEST ( transform_to  ,
,
(x.transform_to(std::declval< ReferenceFrame >()))   
)
gams::pose::MADARA_MAKE_VAL_SUPPORT_TEST ( timestamp  ,
,
(x.time(), x.time(TimeValue{}))   
)

Type trait to detect stamped types.

gams::pose::MADARA_MAKE_VAL_SUPPORT_TEST ( nano_timestamp  ,
,
(x.nanos(), x.nanos(0UL))   
)

Type trait to detect stamped types.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator!= ( const Framed< BasicVector< LDerived, Units >> &  lhs,
const Framed< BasicVector< RDerived, Units >> &  rhs 
)
inline

Definition at line 956 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator!= ( const Stamped< Framed< BasicVector< LDerived, Units >>> &  lhs,
const Stamped< Framed< BasicVector< RDerived, Units >>> &  rhs 
)
inline

Definition at line 956 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator!= ( const BasicVector< LDerived, Units > &  lhs,
const BasicVector< RDerived, Units > &  rhs 
)
inline

Definition at line 956 of file Coordinate.h.

template<typename Derived , typename Units , typename Scalar >
auto gams::pose::operator* ( Scalar  scalar,
const BasicVector< Derived, Units > &  vec 
) -> decltype(vec * scalar)
inline

Definition at line 821 of file Coordinate.h.

template<typename Derived , typename Units , typename Scalar >
auto gams::pose::operator* ( const BasicVector< Derived, Units > &  vec,
Scalar  scalar 
) -> typename std::enable_if<std::is_arithmetic<Scalar>::value && BasicVector<Derived, Units>::free(), typename BasicVector<Derived, Units>::derived_type>::type
inline

Definition at line 821 of file Coordinate.h.

template<typename Derived , typename Units , typename Scalar >
auto gams::pose::operator*= ( BasicVector< Derived, Units > &  vec,
Scalar  scalar 
) -> typename std::enable_if<std::is_arithmetic<Scalar>::value && BasicVector<Derived, Units>::free(), typename BasicVector<Derived, Units>::derived_type&>::type
inline

Definition at line 821 of file Coordinate.h.

template<typename LDerived , typename LUnits , typename RDerived , typename RUnits >
auto gams::pose::operator+ ( const BasicVector< LDerived, LUnits > &  lhs,
const BasicVector< RDerived, RUnits > &  rhs 
) -> typename std::enable_if<RDerived::free(), LDerived>::type
inline

Pass through to Eigen operator- on vectors, if RHS is free.

Pass through to Eigen operator- on vectors, if RHS is fixed and lHS is free.

Returns
vector of same type as LHS
vector of same type as RHS

Definition at line 866 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
auto gams::pose::operator+= ( BasicVector< LDerived, Units > &  lhs,
const Eigen::MatrixBase< RDerived > &  rhs 
) -> typename std::enable_if<unit_traits<Units>::positional, LDerived &>::type
inline

Definition at line 859 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
auto gams::pose::operator+= ( BasicVector< LDerived, Units > &  lhs,
const BasicVector< RDerived, Units > &  rhs 
) -> typename std::enable_if<unit_traits<Units>::positional && unit_traits<Units>::free, LDerived &>::type
inline

Definition at line 859 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
auto gams::pose::operator+= ( BasicVector< LDerived, units::absolute< Units >> &  lhs,
const BasicVector< RDerived, Units > &  rhs 
) -> typename std::enable_if<unit_traits<Units>::positional && unit_traits<Units>::free, LDerived &>::type
inline

Definition at line 859 of file Coordinate.h.

template<typename LDerived , typename LUnits , typename RDerived , typename RUnits >
auto gams::pose::operator- ( const BasicVector< LDerived, LUnits > &  lhs,
const BasicVector< RDerived, RUnits > &  rhs 
) -> typename std::enable_if<LDerived::free() && RDerived::free(), LDerived>::type
inline

Pass through to Eigen operator- on vectors, for free types.

Pass through to Eigen operator- on vectors, for fixed types.

Returns
a free type vector

Definition at line 892 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
auto gams::pose::operator-= ( BasicVector< LDerived, Units > &  lhs,
const Eigen::MatrixBase< RDerived > &  rhs 
) -> typename std::enable_if<unit_traits<Units>::positional, LDerived &>::type
inline

Definition at line 860 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
auto gams::pose::operator-= ( BasicVector< LDerived, Units > &  lhs,
const BasicVector< RDerived, Units > &  rhs 
) -> typename std::enable_if<unit_traits<Units>::positional && unit_traits<Units>::free, LDerived &>::type
inline

Definition at line 860 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
auto gams::pose::operator-= ( BasicVector< LDerived, units::absolute< Units >> &  lhs,
const BasicVector< RDerived, Units > &  rhs 
) -> typename std::enable_if<unit_traits<Units>::positional && unit_traits<Units>::free, LDerived &>::type
inline

Definition at line 860 of file Coordinate.h.

template<typename Derived , typename Units , typename Scalar >
auto gams::pose::operator/ ( const BasicVector< Derived, Units > &  vec,
Scalar  scalar 
) -> typename std::enable_if<std::is_arithmetic<Scalar>::value && BasicVector<Derived, Units>::free(), typename BasicVector<Derived, Units>::derived_type>::type
inline

Definition at line 822 of file Coordinate.h.

template<typename Derived , typename Units , typename Scalar >
auto gams::pose::operator/ ( Scalar  scalar,
const BasicVector< Derived, Units > &  vec 
) -> decltype(vec / scalar)
inline

Definition at line 822 of file Coordinate.h.

template<typename Derived , typename Units , typename Scalar >
auto gams::pose::operator/= ( BasicVector< Derived, Units > &  vec,
Scalar  scalar 
) -> typename std::enable_if<std::is_arithmetic<Scalar>::value && BasicVector<Derived, Units>::free(), typename BasicVector<Derived, Units>::derived_type&>::type
inline

Definition at line 822 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator< ( const BasicVector< LDerived, Units > &  lhs,
const BasicVector< RDerived, Units > &  rhs 
)
inline

Definition at line 957 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator< ( const Framed< BasicVector< LDerived, Units >> &  lhs,
const Framed< BasicVector< RDerived, Units >> &  rhs 
)
inline

Definition at line 957 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator< ( const Stamped< Framed< BasicVector< LDerived, Units >>> &  lhs,
const Stamped< Framed< BasicVector< RDerived, Units >>> &  rhs 
)
inline

Definition at line 957 of file Coordinate.h.

template<typename Base >
std::ostream& gams::pose::operator<< ( std::ostream &  o,
const Stamped< Base > &  v 
)
inline

Definition at line 208 of file Stamped.h.

template<typename Derived >
std::ostream& gams::pose::operator<< ( std::ostream &  o,
const BasicPose< Derived > &  pose 
)
inline

Definition at line 521 of file Pose.h.

std::ostream& gams::pose::operator<< ( std::ostream &  o,
const Eigen::Vector3d &  v 
)
inline

Definition at line 1099 of file Coordinate.h.

template<typename Derived , typename Units >
std::ostream& gams::pose::operator<< ( std::ostream &  o,
const BasicVector< Derived, Units > &  v 
)
inline

Definition at line 1122 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator<= ( const BasicVector< LDerived, Units > &  lhs,
const BasicVector< RDerived, Units > &  rhs 
)
inline

Definition at line 958 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator<= ( const Framed< BasicVector< LDerived, Units >> &  lhs,
const Framed< BasicVector< RDerived, Units >> &  rhs 
)
inline

Definition at line 958 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator<= ( const Stamped< Framed< BasicVector< LDerived, Units >>> &  lhs,
const Stamped< Framed< BasicVector< RDerived, Units >>> &  rhs 
)
inline

Definition at line 958 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator== ( const Framed< BasicVector< LDerived, Units >> &  lhs,
const Framed< BasicVector< RDerived, Units >> &  rhs 
)
inline

Definition at line 955 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator== ( const Stamped< Framed< BasicVector< LDerived, Units >>> &  lhs,
const Stamped< Framed< BasicVector< RDerived, Units >>> &  rhs 
)
inline

Definition at line 955 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator== ( const BasicVector< LDerived, Units > &  lhs,
const BasicVector< RDerived, Units > &  rhs 
)
inline

Definition at line 955 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator> ( const BasicVector< LDerived, Units > &  lhs,
const BasicVector< RDerived, Units > &  rhs 
)
inline

Definition at line 959 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator> ( const Framed< BasicVector< LDerived, Units >> &  lhs,
const Framed< BasicVector< RDerived, Units >> &  rhs 
)
inline

Definition at line 959 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator> ( const Stamped< Framed< BasicVector< LDerived, Units >>> &  lhs,
const Stamped< Framed< BasicVector< RDerived, Units >>> &  rhs 
)
inline

Definition at line 959 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator>= ( const Framed< BasicVector< LDerived, Units >> &  lhs,
const Framed< BasicVector< RDerived, Units >> &  rhs 
)
inline

Definition at line 960 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator>= ( const Stamped< Framed< BasicVector< LDerived, Units >>> &  lhs,
const Stamped< Framed< BasicVector< RDerived, Units >>> &  rhs 
)
inline

Definition at line 960 of file Coordinate.h.

template<typename LDerived , typename RDerived , typename Units >
bool gams::pose::operator>= ( const BasicVector< LDerived, Units > &  lhs,
const BasicVector< RDerived, Units > &  rhs 
)
inline

Definition at line 960 of file Coordinate.h.

Eigen::Vector3d gams::pose::quat_to_axis_angle ( const Eigen::Quaterniond &  quat)
inline

Definition at line 168 of file Coordinate.h.

ReferenceFrame gams::pose::try_get_frame ( )
inline

Definition at line 85 of file Framed.h.

template<typename T , typename... Args>
auto gams::pose::try_get_frame ( const T &  v,
Args &&  ... 
) -> typename std::enable_if<supports_transform_to<T>::value, ReferenceFrame>::type
inline

Definition at line 91 of file Framed.h.

template<typename T , typename... Args>
auto gams::pose::try_get_frame ( const T &  ,
Args &&...  args 
) -> typename std::enable_if<!supports_transform_to<T>::value, ReferenceFrame>::type
inline

Definition at line 98 of file Framed.h.

uint64_t gams::pose::try_get_nano_time ( uint64_t  def)
inline

Base case: return default.

Definition at line 258 of file ReferenceFrame.h.

template<typename T , typename... Args>
auto gams::pose::try_get_nano_time ( uint64_t  ,
const T &  v,
Args &&  ... 
) -> typename std::enable_if<supports_nano_timestamp<T>::value, uint64_t>::type
inline

If T supports nanos(), call it and return value.

Definition at line 265 of file ReferenceFrame.h.

template<typename T , typename... Args>
auto gams::pose::try_get_nano_time ( uint64_t  def,
const T &  ,
Args &&...  args 
) -> typename std::enable_if<!supports_nano_timestamp<T>::value, uint64_t>::type
inline

If T doesn't support nanos(), recurse to remaining args.

Definition at line 273 of file ReferenceFrame.h.

TimeValue gams::pose::try_get_time ( )
inline

Definition at line 80 of file Stamped.h.

template<typename T , typename... Args>
auto gams::pose::try_get_time ( const T &  v,
Args &&  ... 
) -> typename std::enable_if<supports_timestamp<T>::value, TimeValue>::type
inline

Definition at line 86 of file Stamped.h.

template<typename T , typename... Args>
auto gams::pose::try_get_time ( const T &  ,
Args &&...  args 
) -> typename std::enable_if<!supports_timestamp<T>::value, TimeValue>::type
inline

Definition at line 93 of file Stamped.h.

template<typename T >
auto gams::pose::try_transform_to ( const T &  v,
const ReferenceFrame frame 
) -> typename std::enable_if<supports_transform_to<T>::value, T>::type
inline

Definition at line 72 of file Framed.h.

Variable Documentation

const ReferenceFrameType* gams::pose::Cartesian

ReferenceFrameType struct for Cartesian frames.

Used by default by ReferenceFrame objects, or can be passed as first parameter.

const detail::degrees_t gams::pose::degrees
static

Degres unit flag; see Euler constructor.

Definition at line 90 of file AngleUnits.h.

constexpr double gams::pose::EARTH_CIRC = EARTH_RADIUS * 2 * M_PI

Definition at line 95 of file GPSFrame.h.

constexpr double gams::pose::EARTH_RADIUS = 6371000.0

Definition at line 94 of file GPSFrame.h.

const ReferenceFrameType* gams::pose::GPS

ReferenceFrameType for GPS frames.

Pass as first argument of ReferenceFrame constructors to create a GPS frame instead of the default Cartesian; however, you should generally not create new GPS frames. Instead, use gps_frame().

const detail::radians_t gams::pose::radians
static

Radians unit flag; see Euler constructor.

Definition at line 87 of file AngleUnits.h.

const detail::revolutions_t gams::pose::revolutions
static

Revolutions (i.e., 1 == 360 degrees) unit flag; see Euler constructor.

Definition at line 93 of file AngleUnits.h.