Main MRPT website > C++ reference for MRPT 1.9.9
lib_mrpt_base.h
Go to the documentation of this file.
1 /* +---------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +---------------------------------------------------------------------------+
9  */
10 
11 /** \defgroup mrpt_base_grp [mrpt-base]
12 
13 <small> <a href="index.html#libs">Back to list of all libraries</a> | <a
14 href="modules.html" >See all modules</a> </small> <br>
15 
16 <h2> mrpt-base: Obsolete in MRPT 2.0.0!</h2>
17 
18 In MRPT 2.0, `mrpt-base` has been split into many smaller libraries for the
19 sake of modularity of easy of code reusability.
20 
21 TODO: Move these comments to separate lib_*.h files
22 
23 
24 A comprehensive collection of geometry-related classes to represent all kind of
25 2D and 3D geomtry transformations in different formats (Euler angles, rotation
26 matrices, quaternions), as well as networks of pose constrains (as used
27 typically in SLAM problems).
28 
29 There are also implemented representations for probability distributions over
30 all of these transformations, in a generic way that allow mono and multi-modal
31 Gaussians and particle-based representations.
32 
33 See mrpt::poses for the complete list of classes here.
34 
35 
36 <h3>mrpt::utils</h3>
37 
38 <ul>
39 <li><b>RTTI (RunTime Type Information):</b> A cross-platform,
40 compiler-independent RTTI system is built around the base class
41 mrpt::utils::CObject.</li>
42 
43 <li><b>Smart pointers:</b> Based on std::shared_ptr<>, any class CFoo inheriting
44 from CObject, automatically has associated smart pointers types CFoo::Ptr and
45 CFoo::ConstPtr. MRPT implements advanced smart pointers capable of multi-thread
46 safe usage and smart pointer typecasting with runtime check for correct castings
47 ([tutorial](http://www.mrpt.org/Smart_pointers)]).</li>
48 
49 <li><b>Image handling:</b> The class mrpt::img::CImage represents a wrapper
50 around OpenCV IplImage's, plus extra functionality such as on-the-fly loading of
51 images stored in disk upon first usage. The internal IplImage is always
52 available so OpenCV's functions can be still used to operate on MRPT images.
53 </li>
54 
55 <li><b>Serialization/Persistence:</b> Object serialization in a simple but
56 powerful (including versioning) format is supported by dozens of MRPT classes,
57 all based on mrpt::serialization::CSerializable. </li>
58 
59 <li><b>Streams:</b> Stream classes (see the base mrpt::utils::CStream) allow
60 serialization of MRPT objects. There are classes for tranparent GZ-compressed
61 files, sockets, serial ports, etc. </li>
62 
63 <li><b>XML-based databases:</b> Simple databases can be mantained, loaded and
64 saved to files with mrpt::db::CSimpleDatabase. </li>
65 
66 <li><b>Name-based argument passing:</b> See the structure
67 mrpt::system::TParameters </li>
68 
69 <li><b>Configuration files:</b> There is one base virtual class
70 (mrpt::config::CConfigFileBase) which can be used to read/write configuration
71 files (including basic types, vectors, matrices,...) from any "configuration
72 source" transparently (an actual configuration file, a text block created on the
73 fly, etc.). </li>
74 
75 
76 </ul>
77 
78 <h3>mrpt::math</h3>
79 
80 MRPT defines a number of generic <i> math containers</i>, which are:
81 
82 <ul>
83 <li><b>Matrices:</b> Dynamic-size matrices (see mrpt::math::CMatrixDouble) and
84 compile-time fixed-size matrices (see mrpt::math::CMatrixFixedNumeric,
85 mrpt::math::CMatrixDouble33, etc.). </li> <li><b>Arrays:</b> Fixed-size
86 vectors, just like plain C arrays but with support for STL-like iterators and
87 much more. See mrpt::math::CArrayDouble<>. </li>
88 </ul>
89 
90 For a more in-depth description of these types, and their relation to the base
91 Eigen classes, read <a
92 href="http://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes"
93 >this page</a>.
94 
95 Notice that fixed-size containers should be preferred where possible, since they
96 allow more compile-time optimizations.
97 
98 Apart from the containers, this namespace contains much more functionality:
99 
100 <ul>
101 <li>A templatized RANSAC algorithm. </li>
102 <li>Probability distribution functions. </li>
103 <li>Statistics: mean, covariance, covariance of weighted samples, etc... from
104 sets of data.</li> <li>A huge amount of geometry-related functions: Lines
105 (mrpt::math::TLine3D), planes (mrpt::math::TPlane3D), segments, polygons,
106 intersections between them, etc. </li> <li>Graph-related stuff: generic directed
107 graphs (mrpt::math::CDirectedGraph) and trees (mrpt::math::CDirectedTree).</li>
108 <li>PDF transformations (uncertainty propagation): See
109 mrpt::math::transform_gaussian_linear,
110 mrpt::math::transform_gaussian_montecarlo,
111 mrpt::math::transform_gaussian_unscented.</li> <li>A templatized implementation
112 of quaternions, mrpt::math::CQuaternion, with support for rotation matrix
113 convertions, Jacobians, etc.</li>
114 </ul>
115 
116 
117 
118 <h3>mrpt::synch</h3>
119 
120 This namespace includes threading tools such as critical sections, semaphores or
121 utilities such as the template mrpt::synch::CThreadSafeVariable that converts
122 any variable into a pair variable-critical section.
123 
124 
125 <h3>mrpt::system</h3>
126 
127 Here can be found functions for filesystem managing, watching directories,
128 creating and handling threads in an OS-independent way, etc.
129 
130 
131 <h3>mrpt::compress</h3>
132 
133 GZip compression methods can be found in this namespace.
134 
135 
136 */



Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST