Go to the documentation of this file.
9 #ifndef mrpt_math_forwddecls_H
10 #define mrpt_math_forwddecls_H
12 #include <mrpt/config.h>
27 template<
class T>
inline T
square(
const T x);
49 template <
typename MAT,
int TypeSizeAtCompileTime>
54 template <
typename MAT>
56 static inline void internal_resize(MAT &obj,
size_t row,
size_t col) { obj.derived().conservativeResize(row,col); }
57 static inline void internal_resize(MAT &obj,
size_t nsize) { obj.derived().conservativeResize(nsize); }
79 template <
class T>
class CMatrixTemplate;
80 template <
class T>
class CMatrixTemplateObjects;
84 template <
typename CONTAINER>
struct ContainerType {
88 #define MRPT_MATRIX_CONSTRUCTORS_FROM_POSES(_CLASS_) \
89 explicit inline _CLASS_( const mrpt::math::TPose2D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \
90 explicit inline _CLASS_( const mrpt::math::TPose3D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \
91 explicit inline _CLASS_( const mrpt::math::TPose3DQuat &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \
92 explicit inline _CLASS_( const mrpt::math::TPoint2D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \
93 explicit inline _CLASS_( const mrpt::math::TPoint3D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \
94 explicit inline _CLASS_( const mrpt::poses::CPose2D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \
95 explicit inline _CLASS_( const mrpt::poses::CPose3D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \
96 explicit inline _CLASS_( const mrpt::poses::CPose3DQuat &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \
97 explicit inline _CLASS_( const mrpt::poses::CPoint2D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \
98 explicit inline _CLASS_( const mrpt::poses::CPoint3D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); }
101 template <
class CONTAINER1,
class CONTAINER2>
void cumsum(
const CONTAINER1 &in_data, CONTAINER2 &out_cumsum);
103 template <
class CONTAINER>
inline typename CONTAINER::Scalar
norm(
const CONTAINER &v);
104 template <
class CONTAINER>
inline typename CONTAINER::Scalar
norm_inf(
const CONTAINER &v);
106 template <
class MAT_A,
class SKEW_3VECTOR,
class MAT_OUT>
void multiply_A_skew3(
const MAT_A &A,
const SKEW_3VECTOR &v, MAT_OUT &out);
107 template <
class SKEW_3VECTOR,
class MAT_A,
class MAT_OUT>
void multiply_skew3_A(
const SKEW_3VECTOR &v,
const MAT_A &A, MAT_OUT &out);
118 template <
class MATORG,
class MATDEST>
121 const size_t first_row,
122 const size_t first_col,
127 template <
class CONTAINER,
class POINT_OR_POSE>
153 template<
typename MatrixType,
typename T,
typename ReturnType,
size_t D>
struct getVicinity;
This huge template encapsulates a function to get the vicinity of an element, with maximum genericity...
TPoint2D BASE_IMPEXP lightFromPose(const mrpt::poses::CPoint2D &p)
Convert a pose into a light-weight structure (functional form, needed for forward declarations)
CONTAINER::Scalar norm_inf(const CONTAINER &v)
void cumsum(const CONTAINER1 &in_data, CONTAINER2 &out_cumsum)
static void internal_resize(MAT &, size_t)
CONTAINER::value_type element_t
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
T wrapTo2Pi(T a)
Modifies the given angle to translate it into the [0,2pi[ range.
A class used to store a 3D pose as a translation (x,y,z) and a quaternion (qr,qx,qy,...
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...
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.
CONTAINER::Scalar norm(const CONTAINER &v)
The purpose of this class is to model traits for containers, so that they can be used as return value...
A class used to store a 2D pose.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
TConstructorFlags_Matrices
For usage in one of the constructors of CMatrixFixedNumeric or CMatrixTemplate (and derived classes),...
static void internal_resize(MAT &, size_t, size_t)
static void internal_resize(MAT &obj, size_t nsize)
Internal resize which compiles to nothing on fixed-size matrices.
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...
T square(const T x)
Inline function for the square of a number.
CONTAINER & containerFromPoseOrPoint(CONTAINER &C, const POINT_OR_POSE &p)
Conversion of poses (TPose2D,TPoint2D,..., mrpt::poses::CPoint2D,CPose3D,...) to MRPT containers (vec...
A class used to store a 2D point.
A class used to store a 3D point.
static void internal_resize(MAT &obj, size_t row, size_t col)
std::string BASE_IMPEXP MRPT_getVersion()
Returns a string describing the MRPT version.
Page generated by Doxygen 1.8.16 for MRPT 1.4.0 SVN: at Mon Oct 14 23:11:08 UTC 2019 | | |