31#include <Eigen/Geometry>
60 return std::atan2(v(2), v.head<2>().norm());
70 return (
AngleAxis(_azimuth, Vector3::UnitZ()) *
77 double _azimuth = v[0];
78 double _elevation = v[1];
79 double s = std::sin(_elevation), c = std::cos(_elevation);
80 Vector3 n(c * std::cos(_azimuth), c * std::sin(_azimuth), s);
100 double n =
coeffs.head<3>().norm();
111 v2.head<3>() = R * v.head<3>();
112 v2(3) = v(3) - t.translation().dot(v2.head<3>());
Vector3 ominus(const Plane3D &plane)
void fromVector(const Vector4 &coeffs_)
static Matrix3 rotation(const Vector3 &v)
static double elevation(const Vector3 &v)
Plane3D(const Vector4 &v)
const Vector4 & coeffs() const
void oplus(const Vector3 &v)
static double azimuth(const Vector3 &v)
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
friend Plane3D operator*(const Isometry3 &t, const Plane3D &plane)
static void normalize(Vector4 &coeffs)
#define G2O_TYPES_SLAM3D_ADDONS_API
some general case utility functions
Eigen::AngleAxis< double > AngleAxis
Line2D operator*(const SE2 &t, const Line2D &l)
Eigen::Transform< double, 3, Eigen::Isometry, Eigen::ColMajor > Isometry3