31#include <rtabmap/core/rtabmap_core_export.h>
36#include <Eigen/Geometry>
37#include <opencv2/core/core.hpp>
65 Transform(
float r11,
float r12,
float r13,
float o14,
66 float r21,
float r22,
float r23,
float o24,
67 float r31,
float r32,
float r33,
float o34);
78 Transform(
float x,
float y,
float z,
float roll,
float pitch,
float yaw);
84 Transform(
float x,
float y,
float z,
float qx,
float qy,
float qz,
float qw);
96 float r11()
const {
return data()[0];}
97 float r12()
const {
return data()[1];}
98 float r13()
const {
return data()[2];}
99 float r21()
const {
return data()[4];}
100 float r22()
const {
return data()[5];}
101 float r23()
const {
return data()[6];}
102 float r31()
const {
return data()[8];}
103 float r32()
const {
return data()[9];}
104 float r33()
const {
return data()[10];}
106 float o14()
const {
return data()[3];}
107 float o24()
const {
return data()[7];}
108 float o34()
const {
return data()[11];}
110 float & operator[](
int index) {
return data()[index];}
111 const float & operator[](
int index)
const {
return data()[index];}
112 float & operator()(
int row,
int col) {
return data()[row*4 + col];}
113 const float & operator()(
int row,
int col)
const {
return data()[row*4 + col];}
140 const float *
data()
const {
return (
const float *)data_.data;}
141 float * data() {
return (
float *)data_.data;}
149 float &
x() {
return data()[3];}
150 float &
y() {
return data()[7];}
151 float &
z() {
return data()[11];}
152 const float & x()
const {
return data()[3];}
153 const float & y()
const {
return data()[7];}
154 const float & z()
const {
return data()[11];}
253 bool operator==(
const Transform & t)
const;
254 bool operator!=(
const Transform & t)
const;
257 Eigen::Matrix4f toEigen4f()
const;
258 Eigen::Matrix4d toEigen4d()
const;
259 Eigen::Affine3f toEigen3f()
const;
260 Eigen::Affine3d toEigen3d()
const;
262 Eigen::Quaternionf getQuaternionf()
const;
263 Eigen::Quaterniond getQuaterniond()
const;
275 static Transform fromEigen4d(
const Eigen::Matrix4d & matrix);
276 static Transform fromEigen3f(
const Eigen::Affine3f & matrix);
277 static Transform fromEigen3d(
const Eigen::Affine3d & matrix);
278 static Transform fromEigen3f(
const Eigen::Isometry3f & matrix);
279 static Transform fromEigen3d(
const Eigen::Isometry3d & matrix);
280 static Transform fromEigen3f(
const Eigen::Matrix<float, 3, 4> & matrix);
281 static Transform fromEigen3d(
const Eigen::Matrix<double, 3, 4> & matrix);
290 0.0f, -1.0f, 0.0f, 0.0f,
291 0.0f, 0.0f, 1.0f, 0.0f,
292 -1.0f, 0.0f, 0.0f, 0.0f);}
300 0.0f, 0.0f,-1.0f, 0.0f,
301 -1.0f, 0.0f, 0.0f, 0.0f,
302 0.0f, 1.0f, 0.0f, 0.0f);}
329 const std::map<double, Transform> & tfBuffer,
330 const double & stamp);
335 const std::map<double, Transform> & tfBuffer,
336 const double & stamp,
356 transform_(transform),
359 const Transform & transform()
const {
return transform_;}
360 const double & stamp()
const {
return stamp_;}
RTABMAP_CORE_EXPORT std::ostream & operator<<(std::ostream &os, const CameraModel &model)
Stream operator for printing a camera model to an output stream.