[mrpt-viz]
Overview
3-D scene graph: visual objects, scenes, viewports, cameras, and stock objects.
Library mrpt-viz
This library is part of MRPT and can be installed in Debian-based systems with:
sudo apt install libmrpt-viz-dev
Read also how to import MRPT into your CMake scripts.
Overview
mrpt-viz contains the scene-graph API for building, manipulating, and serializing 3-D scenes. In MRPT 3.0 this API moved from the former mrpt::opengl namespace to mrpt::viz (see Porting code from MRPT 2.x to MRPT 3.0 for migration details).
Key entry points:
mrpt::viz::CVisualObject — base class for all 3-D visual objects (renamed from the former
CRenderizable).mrpt::viz::Scene — a complete 3-D scene (renamed from
COpenGLScene).mrpt::viz::Viewport — a sub-region of a scene with its own camera (renamed from
COpenGLViewport).mrpt::viz::CCamera — camera parameters for a viewport.
mrpt::viz::stock_objects — convenience factory functions for common objects (coordinate axes, robot models, etc.).
To actually render a scene on screen, use mrpt::gui::CDisplayWindow3D or mrpt::gui::CDisplayWindowGUI (library mrpt-gui). For off-screen rendering, use mrpt::opengl::CFBORender (library mrpt-opengl).
See the tutorial: Tutorial: 3D scenes
Rendering primitives
Below is a list of the available rendering primitive classes.
mrpt::viz::CArrow:
mrpt::viz::CAssimpModel:
mrpt::viz::CAxis:
mrpt::viz::CBox:
mrpt::viz::CFrustum:
mrpt::viz::CCylinder:
mrpt::viz::CDisk:
mrpt::viz::CEllipsoid3D:
mrpt::viz::CGridPlaneXY:
mrpt::viz::CGridPlaneXZ:
mrpt::viz::CMesh:
mrpt::viz::CMesh3D:
mrpt::viz::CMeshFast:
mrpt::viz::CPointCloud:
mrpt::viz::CPointCloudColoured:
mrpt::viz::CPolyhedron:
mrpt::viz::CSetOfLines:
mrpt::viz::CSphere:
mrpt::viz::CText:
mrpt::viz::CText3D:
mrpt::viz::CEllipsoidRangeBearing2D:
mrpt::viz::CEllipsoidInverseDepth2D:
mrpt::viz::CEllipsoidInverseDepth3D:
mrpt::viz::COctoMapVoxels:
mrpt::viz::CVectorField2D:
mrpt::viz::CVectorField3D:
mrpt::viz::stock_objects::BumblebeeCamera():
mrpt::viz::stock_objects::CornerXYSimple():
mrpt::viz::stock_objects::CornerXYZSimple():
mrpt::viz::stock_objects::CornerXYZ():
mrpt::viz::stock_objects::RobotPioneer():
mrpt::viz::stock_objects::RobotRhodon():
mrpt::viz::stock_objects::Hokuyo_URG():
mrpt::viz::stock_objects::Hokuyo_UTM():
mrpt::viz::stock_objects::Househam_Sprayer():
Pose PDF classes can be converted into visual objects with mrpt::viz::CSetOfObjects::posePDF2opengl():
mrpt::viz::CSetOfObjects::posePDF2opengl() for mrpt::poses::CPosePDFParticles:
Note: The following extra visual classes are provided by other libraries:
mrpt::viz::CAngularObservationMesh (in mrpt-maps):
mrpt::viz::CPlanarLaserScan (in mrpt-maps):
Multi-light API
MRPT 3.0 supports up to 8 simultaneous lights via mrpt::viz::TLightParameters. See Porting code from MRPT 2.x to MRPT 3.0 section 10 for details.