GAMS
1.4.0
|
Copyright (c) 2015 Carnegie Mellon University. More...
#include "ReferenceFrame.h"
#include "gams/GamsExport.h"
#include <string>
#include <cfloat>
#include <utility>
#include "gams/CPP11_compat.h"
#include "madara/knowledge/containers/DoubleVector.h"
#include "madara/knowledge/containers/NativeDoubleVector.h"
#include "ReferenceFrameFwd.h"
#include "Coordinate.inl"
#include "Framed.h"
#include "Stamped.h"
Go to the source code of this file.
Namespaces | |
gams | |
Contains all GAMS-related tools, classes and code. | |
gams::pose | |
Provides position and orientation primitives. | |
gams::pose::units | |
Type tags to indicate the dimension a coordinate lies within. | |
Macros | |
#define | GAMS_POSE_MAKE_BINARY_VEC_SCALAR_OP(op) |
Generates Eigen passthroughs for binary ops betwen vector and scalar. More... | |
#define | GAMS_POSE_MAKE_COMPOSITE_VEC_SCALAR_OP(op) |
Generates composite assignment operators for Coordinates, using Eigen. More... | |
#define | GAMS_POSE_MAKE_COMPOSITE_VECS_OP(op) |
Generates Eigen passthroughs on vectors. More... | |
#define | GAMS_POSE_MAKE_COORDINATE_TYPE(name, units) |
Creates the three variants for each coordinate type: {Coordinate}Vector: just the coordinate values alone {Coordinate}: values plus a bound frame Stamped{Coordinate}: values, frame, and timestamp. More... | |
#define | GAMS_POSE_MAKE_VEC_SCALAR_OPS(op) |
#define | INVAL_COORD DBL_MAX |
Functions | |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator!= (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs) |
Inequality operator for coordinates. More... | |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator!= (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs) |
Inequality operator for Framed coordinates. More... | |
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) |
Inequality operator for Framed and Stamped coordinates. More... | |
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 |
template<typename Derived , typename Units , typename Scalar > | |
auto | gams::pose::operator* (Scalar scalar, const BasicVector< Derived, Units > &vec) -> decltype(vec *scalar) |
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 |
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 |
Pass through to Eigen operator- on vectors, if RHS is free. More... | |
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 |
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 |
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 |
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 |
Pass through to Eigen operator- on vectors, for free types. More... | |
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 |
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 |
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 |
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 |
template<typename Derived , typename Units , typename Scalar > | |
auto | gams::pose::operator/ (Scalar scalar, const BasicVector< Derived, Units > &vec) -> decltype(vec/scalar) |
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 |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator< (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs) |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator< (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs) |
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) |
template<typename Derived , typename Units > | |
std::ostream & | gams::pose::operator<< (std::ostream &o, const BasicVector< Derived, Units > &v) |
std::ostream & | gams::pose::operator<< (std::ostream &o, const Eigen::Vector3d &v) |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator<= (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs) |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator<= (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs) |
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) |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator== (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs) |
Equality operator for coordinates. More... | |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator== (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs) |
Equality operator for Framed coordinates. More... | |
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) |
Equality operator for Framed and Stamped coordinates. More... | |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator> (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs) |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator> (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs) |
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) |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator>= (const BasicVector< LDerived, Units > &lhs, const BasicVector< RDerived, Units > &rhs) |
template<typename LDerived , typename RDerived , typename Units > | |
bool | gams::pose::operator>= (const Framed< BasicVector< LDerived, Units >> &lhs, const Framed< BasicVector< RDerived, Units >> &rhs) |
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) |
Eigen::Vector3d | gams::pose::quat_to_axis_angle (const Eigen::Quaterniond &quat) |
Copyright (c) 2015 Carnegie Mellon University.
All Rights Reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of any form whatsoever must retain the following acknowledgment:
This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense.
NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
This material has been approved for public release and unlimited distribution.
This file contains the Position, Orientation, and Pose classes
Definition in file Coordinate.h.
#define GAMS_POSE_MAKE_BINARY_VEC_SCALAR_OP | ( | op | ) |
Generates Eigen passthroughs for binary ops betwen vector and scalar.
Definition at line 808 of file Coordinate.h.
#define GAMS_POSE_MAKE_COMPOSITE_VEC_SCALAR_OP | ( | op | ) |
Generates composite assignment operators for Coordinates, using Eigen.
Definition at line 796 of file Coordinate.h.
#define GAMS_POSE_MAKE_COMPOSITE_VECS_OP | ( | op | ) |
Generates Eigen passthroughs on vectors.
Definition at line 835 of file Coordinate.h.
#define GAMS_POSE_MAKE_COORDINATE_TYPE | ( | name, | |
units | |||
) |
Creates the three variants for each coordinate type: {Coordinate}Vector: just the coordinate values alone {Coordinate}: values plus a bound frame Stamped{Coordinate}: values, frame, and timestamp.
Definition at line 1133 of file Coordinate.h.
#define GAMS_POSE_MAKE_VEC_SCALAR_OPS | ( | op | ) |
Definition at line 827 of file Coordinate.h.
#define INVAL_COORD DBL_MAX |
Definition at line 78 of file Coordinate.h.