9 #ifndef mrpt_math_forwddecls_H 10 #define mrpt_math_forwddecls_H 12 #include <mrpt/config.h> 49 template <
typename MAT,
int TypeSizeAtCompileTime>
55 template <
typename MAT>
60 obj.derived().conservativeResize(
row, col);
64 obj.derived().conservativeResize(nsize);
91 class CMatrixTemplate;
93 class CMatrixTemplateObjects;
100 template <
typename CONTAINER>
106 #define MRPT_MATRIX_CONSTRUCTORS_FROM_POSES(_CLASS_) \ 107 explicit inline _CLASS_(const mrpt::math::TPose2D& p) \ 109 mrpt::math::containerFromPoseOrPoint(*this, p); \ 111 explicit inline _CLASS_(const mrpt::math::TPose3D& p) \ 113 mrpt::math::containerFromPoseOrPoint(*this, p); \ 115 explicit inline _CLASS_(const mrpt::math::TPose3DQuat& p) \ 117 mrpt::math::containerFromPoseOrPoint(*this, p); \ 119 explicit inline _CLASS_(const mrpt::math::TPoint2D& p) \ 121 mrpt::math::containerFromPoseOrPoint(*this, p); \ 123 explicit inline _CLASS_(const mrpt::math::TPoint3D& p) \ 125 mrpt::math::containerFromPoseOrPoint(*this, p); \ 127 explicit inline _CLASS_(const mrpt::poses::CPose2D& p) \ 129 mrpt::math::containerFromPoseOrPoint(*this, p); \ 131 explicit inline _CLASS_(const mrpt::poses::CPose3D& p) \ 133 mrpt::math::containerFromPoseOrPoint(*this, p); \ 135 explicit inline _CLASS_(const mrpt::poses::CPose3DQuat& p) \ 137 mrpt::math::containerFromPoseOrPoint(*this, p); \ 139 explicit inline _CLASS_(const mrpt::poses::CPoint2D& p) \ 141 mrpt::math::containerFromPoseOrPoint(*this, p); \ 143 explicit inline _CLASS_(const mrpt::poses::CPoint3D& p) \ 145 mrpt::math::containerFromPoseOrPoint(*this, p); \ 148 template <
class CONTAINER1,
class CONTAINER2>
149 void cumsum(
const CONTAINER1& in_data, CONTAINER2& out_cumsum);
151 template <
class CONTAINER>
153 template <
class CONTAINER>
156 template <
class MAT_A,
class SKEW_3VECTOR,
class MAT_OUT>
158 template <
class SKEW_3VECTOR,
class MAT_A,
class MAT_OUT>
180 template <
class MATORG,
class MATDEST>
182 const MATORG& M,
const size_t first_row,
const size_t first_col,
188 template <
class CONTAINER,
class POINT_OR_POSE>
209 template <
typename T>
228 template <
typename MatrixType,
typename T,
typename ReturnType,
size_t D>
TConstructorFlags_Matrices
For usage in one of the constructors of CMatrixFixedNumeric or CMatrixTemplate (and derived classes)...
TPoint2D lightFromPose(const mrpt::poses::CPoint2D &p)
Convert a pose into a light-weight structure (functional form, needed for forward declarations) ...
engineering format 'e'
static void internal_resize(MAT &, size_t)
void multiply_A_skew3(const MAT_A &A, const SKEW_3VECTOR &v, MAT_OUT &out)
Only for vectors/arrays "v" of length3, compute out = A * Skew(v), where Skew(v) is the skew symmetri...
GLsizei GLsizei GLuint * obj
CONTAINER & containerFromPoseOrPoint(CONTAINER &C, const POINT_OR_POSE &p)
Conversion of poses (TPose2D,TPoint2D,..., mrpt::poses::CPoint2D,CPose3D,...) to MRPT containers (vec...
void extractMatrix(const MATORG &M, const size_t first_row, const size_t first_col, MATDEST &outMat)
Extract a submatrix - The output matrix must be set to the required size before call.
The purpose of this class is to model traits for containers, so that they can be used as return value...
T wrapTo2Pi(T a)
Modifies the given angle to translate it into the [0,2pi[ range.
static void internal_resize(MAT &obj, size_t row, size_t col)
A class used to store a 3D pose as a translation (x,y,z) and a quaternion (qr,qx,qy,qz).
GLsizei const GLchar ** string
A class used to store a 2D point.
A class used to store a 3D point.
static void internal_resize(MAT &obj, size_t nsize)
static void internal_resize(MAT &, size_t, size_t)
void cumsum(const CONTAINER1 &in_data, CONTAINER2 &out_cumsum)
CONTAINER::Scalar norm_inf(const CONTAINER &v)
Internal resize which compiles to nothing on fixed-size matrices.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
GLenum GLenum GLvoid * row
CONTAINER::value_type element_t
This huge template encapsulates a function to get the vicinity of an element, with maximum genericity...
void multiply_skew3_A(const SKEW_3VECTOR &v, const MAT_A &A, MAT_OUT &out)
Only for vectors/arrays "v" of length3, compute out = Skew(v) * A, where Skew(v) is the skew symmetri...
std::string MRPT_getVersion()
Returns a string describing the MRPT version.
GLubyte GLubyte GLubyte a
fixed floating point 'f'
CONTAINER::Scalar norm(const CONTAINER &v)