MRPT  2.0.1
lib_mrpt_opengl.h
Go to the documentation of this file.
1 /* +---------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in https://www.mrpt.org/License |
8  +---------------------------------------------------------------------------+
9  */
10 
11 // clang-format off
12 
13 /** \defgroup mrpt_opengl_grp [mrpt-opengl]
14 
15 Visualization helpers for 3D rendering of all kind of primitives
16 
17 <small> <a href="index.html#libs">Back to list of all libraries</a> | <a href="modules.html" >See all modules</a> </small>
18 <br>
19 
20 
21 # Library `mrpt-opengl`
22 
23 This library is part of MRPT and can be installed in Debian-based systems with:
24 
25  sudo apt install libmrpt-opengl-dev
26 
27 See: \ref mrpt_from_cmake
28 
29 This library includes several data classes that represent objects that can be
30 inserted into a 3D scene, which can be then rendered or streamed to disk or whatever.
31 
32 A good starting point to explore this library is the base class for all the
33 3D objects: mrpt::opengl::CRenderizable
34 
35 A 3D scene is represented by an object of the type mrpt::opengl::COpenGLScene,
36 which in turn can contain one or several "viewports" in such a way that the
37 rendering area is divided into several spaces, each displaying the same or different
38 objects. See the tutorial online: https://www.mrpt.org/Tutorial_3D_Scenes
39 
40 See the full list of classes in mrpt::opengl.
41 
42 Below follows a table with the preview of most rendering primitive classes:
43 
44 <div align="center">
45 <table border="0" cellspan="4" cellspacing="4" style="border-width: 1px; border-style: solid;">
46  <tr> <td> mrpt::opengl::CArrow </td> <td> \image html preview_CArrow.png </td> </tr>
47  <tr> <td> mrpt::opengl::CAssimpModel </td> <td> \image html preview_CAssimpModel.png </td> </tr>
48  <tr> <td> mrpt::opengl::CAxis </td> <td> \image html preview_CAxis.png </td> </tr>
49  <tr> <td> mrpt::opengl::CBox </td> <td> \image html preview_CBox.png </td> </tr>
50  <tr> <td> mrpt::opengl::CFrustum </td> <td> \image html preview_CFrustum.png </td> </tr>
51  <tr> <td> mrpt::opengl::CCylinder </td> <td> \image html preview_CCylinder.png </td> </tr>
52  <tr> <td> mrpt::opengl::CDisk </td> <td> \image html preview_CDisk.png </td> </tr>
53  <tr> <td> mrpt::opengl::CEllipsoid3D </td> <td> \image html preview_CEllipsoid.png </td> </tr>
54  <tr> <td> mrpt::opengl::CGridPlaneXY </td> <td> \image html preview_CGridPlaneXY.png </td> </tr>
55  <tr> <td> mrpt::opengl::CGridPlaneXZ </td> <td> \image html preview_CGridPlaneXZ.png </td> </tr>
56  <tr> <td> mrpt::opengl::CMesh </td> <td> \image html preview_CMesh.png </td> </tr>
57  <tr> <td> mrpt::opengl::CMesh3D </td> <td> \image html preview_CMesh3D.png </td> </tr>
58  <tr> <td> mrpt::opengl::CMeshFast </td> <td> \image html preview_CMeshFast.png </td> </tr>
59  <tr> <td> mrpt::opengl::CPointCloud </td> <td> \image html preview_CPointCloud.png </td> </tr>
60  <tr> <td> mrpt::opengl::CPointCloudColoured </td> <td> \image html preview_CPointCloudColoured.png </td> </tr>
61  <tr> <td> mrpt::opengl::CPolyhedron </td> <td> \image html preview_CPolyhedron.png </td> </tr>
62  <tr> <td> mrpt::opengl::CSetOfLines </td> <td> \image html preview_CSetOfLines.png </td> </tr>
63  <tr> <td> mrpt::opengl::CSphere </td> <td> \image html preview_CSphere.png </td> </tr>
64  <tr> <td> mrpt::opengl::CText </td> <td> \image html preview_CText.png </td> </tr>
65  <tr> <td> mrpt::opengl::CText3D </td> <td> \image html preview_CText3D.png </td> </tr>
66  <tr> <td> mrpt::opengl::CEllipsoidRangeBearing2D </td> <td> \image html preview_CEllipsoidRangeBearing2D.png </td> </tr>
67  <tr> <td> mrpt::opengl::CEllipsoidInverseDepth2D </td> <td> \image html preview_CEllipsoidInverseDepth2D.png </td> </tr>
68  <tr> <td> mrpt::opengl::CEllipsoidInverseDepth3D </td> <td> \image html preview_CEllipsoidInverseDepth3D.png </td> </tr>
69  <tr> <td> mrpt::opengl::COctoMapVoxels </td> <td> \image html preview_COctoMapVoxels.png </td> </tr>
70  <tr> <td> mrpt::opengl::CVectorField2D </td> <td> \image html preview_CVectorField2D.png </td> </tr>
71  <tr> <td> mrpt::opengl::CVectorField3D </td> <td> \image html preview_CVectorField3D.png </td> </tr>
72  <tr> <td> mrpt::opengl::stock_objects::BumblebeeCamera() </td> <td> \image html preview_stock_objects_BumblebeeCamera.png </td> </tr>
73  <tr> <td> mrpt::opengl::stock_objects::CornerXYSimple() </td> <td> \image html preview_stock_objects_CornerXYSimple.png </td> </tr>
74  <tr> <td> mrpt::opengl::stock_objects::CornerXYZSimple() </td> <td> \image html preview_stock_objects_CornerXYZSimple.png </td> </tr>
75  <tr> <td> mrpt::opengl::stock_objects::CornerXYZ() </td> <td> \image html preview_stock_objects_CornerXYZ.png </td> </tr>
76  <tr> <td> mrpt::opengl::stock_objects::RobotPioneer() </td> <td> \image html preview_stock_objects_RobotPioneer.png </td> </tr>
77  <tr> <td> mrpt::opengl::stock_objects::RobotRhodon() </td> <td> \image html preview_stock_objects_RobotRhodon.png </td> </tr>
78  <tr> <td> mrpt::opengl::stock_objects::Hokuyo_URG() </td> <td> \image html preview_stock_objects_Hokuyo_URG.png </td> </tr>
79  <tr> <td> mrpt::opengl::stock_objects::Hokuyo_UTM() </td> <td> \image html preview_stock_objects_Hokuyo_UTM.png </td> </tr>
80  <tr> <td> mrpt::opengl::stock_objects::Househam_Sprayer() </td> <td> \image html preview_stock_objects_Househam_Sprayer.png </td> </tr>
81 </table>
82 </div>
83 
84 Also, pose PDF classes can be converted into OpenGL objects with CSetOfObjects::posePDF2opengl():
85 
86 <div align="center">
87 <table border="0" cellspan="4" cellspacing="4" style="border-width: 1px; border-style: solid;">
88  <tr> <td> CSetOfObjects::posePDF2opengl() <br> for mrpt::poses::CPosePDFParticles</td> <td> \image html preview_CPosePDFParticles_as_opengl.png </td> </tr>
89 </table>
90 </div>
91 
92 
93 Note: The following extra OpenGL classes are provided by other libraries:
94 
95 
96 <div align="center">
97 <table border="0" cellspan="4" cellspacing="4" style="border-width: 1px; border-style: solid;">
98 <tr> <td> mrpt::opengl::CAngularObservationMesh <br> (In mrpt-maps) </td> <td> \image html preview_CAngularObservationMesh.png </td> </tr>
99 <tr> <td> mrpt::opengl::CPlanarLaserScan <br> (In mrpt-maps) </td> <td> \image html preview_CPlanarLaserScan.png </td> </tr>
100 </table>
101 </div>
102 
103 */



Page generated by Doxygen 1.8.14 for MRPT 2.0.1 Git: 0fef1a6d7 Fri Apr 3 23:00:21 2020 +0200 at vie abr 3 23:20:28 CEST 2020