MRPT  1.9.9
mrpt::opengl Namespace Reference

Detailed Description

The namespace for 3D scene representation and rendering.

See also the summary page of the mrpt-opengl library for more info and thumbnails of many of the render primitive.

Namespaces

 detail
 
 gl_utils
 A set of auxiliary functions that can be called to render OpenGL primitives from MRPT or user code.
 
 graph_tools
 Tool functions for graphs of pose constraints.
 
 stock_objects
 A collection of pre-built 3D objects for quick insertion in opengl::COpenGLScene objects.
 

Classes

class  CAngularObservationMesh
 A mesh built from a set of 2D laser scan observations. More...
 
class  CArrow
 A 3D arrow. More...
 
class  CAssimpModel
 This class can load & render 3D models in a number of different formats (requires the library assimp). More...
 
class  CAxis
 Draw a 3D world axis, with coordinate marks at some regular interval. More...
 
class  CBox
 A solid or wireframe box in 3D, defined by 6 rectangular faces parallel to the planes X, Y and Z (note that the object can be translated and rotated afterwards as any other CRenderizable object using the "object pose" in the base class). More...
 
class  CCamera
 A camera: if added to a scene, the viewpoint defined by this camera will be used instead of the camera parameters set in COpenGLViewport::m_camera. More...
 
class  CColorBar
 A colorbar indicator. More...
 
class  CCylinder
 A cylinder or cone whose base lies in the XY plane. More...
 
class  CDisk
 A planar disk in the XY plane. More...
 
class  CEllipsoid
 A 2D ellipse or 3D ellipsoid, depending on the size of the m_cov matrix (2x2 or 3x3). More...
 
class  CEllipsoidInverseDepth2D
 An especial "ellipsoid" in 3D computed as the uncertainty iso-surfaces of a (inv_range,yaw) variable. More...
 
class  CEllipsoidInverseDepth3D
 An especial "ellipsoid" in 3D computed as the uncertainty iso-surfaces of a (inv_range,yaw,pitch) variable. More...
 
class  CEllipsoidRangeBearing2D
 An especial "ellipsoid" in 2D computed as the uncertainty iso-surfaces of a (range,bearing) variable. More...
 
class  CFBORender
 A class for rendering 3D scenes off-screen directly into an image using OpenGL extensions (glext). More...
 
class  CFrustum
 A solid or wireframe frustum in 3D (a rectangular truncated pyramid), with arbitrary (possibly assymetric) field-of-view angles. More...
 
class  CGeneralizedCylinder
 This object represents any figure obtained by extruding any profile along a given axis. More...
 
class  CGeneralizedEllipsoidTemplate
 A class that generalizes the concept of an ellipsoid to arbitrary parameterizations of uncertainty shapes in either 2D or 3D. More...
 
class  CGridPlaneXY
 A grid of lines over the XY plane. More...
 
class  CGridPlaneXZ
 A grid of lines over the XZ plane. More...
 
struct  CLight
 Each of the possible lights of a 3D scene. More...
 
class  CMesh
 A planar (XY) grid where each cell has an associated height and, optionally, a texture map. More...
 
class  CMesh3D
 A 3D mesh composed of Triangles and/or Quads. More...
 
class  CMeshFast
 A planar (XY) grid where each cell has an associated height and, optionally, a texture map. More...
 
class  COctoMapVoxels
 A flexible renderer of voxels, typically from a 3D octo map (see mrpt::maps::COctoMap). More...
 
class  COctreePointRenderer
 Template class that implements the data structure and algorithms for Octree-based efficient rendering. More...
 
class  COpenGLScene
 This class allows the user to create, load, save, and render 3D scenes using OpenGL primitives. More...
 
class  COpenGLStandardObject
 Objects of this class represent a generic openGL object without specific geometric properties. More...
 
class  COpenGLViewport
 A viewport within a COpenGLScene, containing a set of OpenGL objects to render. More...
 
class  CPlanarLaserScan
 This object renders a 2D laser scan by means of three elements: the points, the line along end-points and the 2D scanned surface. More...
 
class  CPointCloud
 A cloud of points, all with the same color or each depending on its value along a particular coordinate axis. More...
 
class  CPointCloudColoured
 A cloud of points, each one with an individual colour (R,G,B). More...
 
class  CPolyhedron
 This class represents arbitrary polyhedra. More...
 
class  CRenderizable
 The base class of 3D objects that can be directly rendered through OpenGL. More...
 
class  CRenderizableDisplayList
 A renderizable object suitable for rendering with OpenGL's display lists. More...
 
class  CSetOfLines
 A set of independent lines (or segments), one line with its own start and end positions (X,Y,Z). More...
 
class  CSetOfObjects
 A set of object, which are referenced to the coordinates framework established in this object. More...
 
class  CSetOfTexturedTriangles
 A set of textured triangles. More...
 
class  CSetOfTriangles
 A set of colored triangles. More...
 
class  CSimpleLine
 A line segment. More...
 
class  CSphere
 A solid or wire-frame sphere. More...
 
class  CText
 A 2D text (bitmap rendering): it always "faces the observer" despite it's at some 3D location. More...
 
class  CText3D
 A 3D text (rendered with OpenGL primitives), with selectable font face and drawing style. More...
 
class  CTextMessageCapable
 Keeps a list of text messages which can be rendered to OpenGL contexts by graphic classes. More...
 
class  CTexturedObject
 A base class for all OpenGL objects with loadable textures. More...
 
class  CTexturedPlane
 A 2D plane in the XY plane with a texture image. More...
 
class  CVectorField2D
 A 2D vector field representation, consisting of points and arrows drawn on a plane (invisible grid). More...
 
class  CVectorField3D
 A 3D vector field representation, consisting of points and arrows drawn at any spatial position. More...
 
class  mrptEventGLPostRender
 An event sent by an mrpt::opengl::COpenGLViewport after calling the scene OpenGL drawing primitives and before doing a glSwapBuffers. More...
 
class  mrptEventGLPreRender
 An event sent by an mrpt::opengl::COpenGLViewport just after clearing the viewport and setting the GL_PROJECTION matrix, and before calling the scene OpenGL drawing primitives. More...
 
class  PLY_Exporter
 A virtual base class that implements the capability of exporting 3D point clouds and faces to a file in the Stanford PLY format. More...
 
class  PLY_Importer
 A virtual base class that implements the capability of importing 3D point clouds and faces from a file in the Stanford PLY format. More...
 
class  PointCloudAdapter
 An adapter to different kinds of point cloud object. More...
 
class  PointCloudAdapter< mrpt::maps::CColouredPointsMap >
 Specialization mrpt::opengl::PointCloudAdapter<mrpt::maps::CColouredPointsMap> mrpt_adapters_grp. More...
 
class  PointCloudAdapter< mrpt::maps::CPointsMap >
 Specialization mrpt::opengl::PointCloudAdapter<mrpt::maps::CPointsMap> More...
 
class  PointCloudAdapter< mrpt::maps::CPointsMapXYZI >
 Specialization mrpt::opengl::PointCloudAdapter<mrpt::maps::CPointsMapXYZI> mrpt_adapters_grp. More...
 
class  PointCloudAdapter< mrpt::maps::CSimplePointsMap >
 Specialization mrpt::opengl::PointCloudAdapter<mrpt::maps::CSimplePointsMap> More...
 
class  PointCloudAdapter< mrpt::maps::CWeightedPointsMap >
 Specialization mrpt::opengl::PointCloudAdapter<mrpt::maps::CWeightedPointsMap> mrpt_adapters_grp. More...
 
class  PointCloudAdapter< mrpt::obs::CObservation3DRangeScan >
 Specialization mrpt::opengl::PointCloudAdapter<CObservation3DRangeScan> More...
 
class  PointCloudAdapter< mrpt::opengl::CPointCloud >
 Specialization mrpt::opengl::PointCloudAdapter<mrpt::opengl::CPointCloud> More...
 
class  PointCloudAdapter< mrpt::opengl::CPointCloudColoured >
 Specialization mrpt::opengl::PointCloudAdapter<mrpt::opengl::CPointCloudColoured> mrpt_adapters_grp. More...
 
class  PointCloudAdapter< pcl::PointCloud< pcl::PointXYZ > >
 Specialization mrpt::opengl::PointCloudAdapter<pcl::PointCloud<pcl::PointXYZ> > for an XYZ point cloud (without RGB) More...
 
class  PointCloudAdapter< pcl::PointCloud< pcl::PointXYZRGB > >
 Specialization mrpt::opengl::PointCloudAdapter<pcl::PointCloud<pcl::PointXYZRGB> > for an XYZ point cloud with RGB. More...
 
class  PointCloudAdapter< pcl::PointCloud< pcl::PointXYZRGBA > >
 Specialization mrpt::opengl::PointCloudAdapter<pcl::PointCloud<pcl::PointXYZRGBA> > for an XYZ point cloud with RGB. More...
 
struct  T2DTextData
 An auxiliary struct for holding a list of text messages in some mrpt::opengl & mrpt::gui classes The font can be either a bitmapped or a vectorized font. More...
 
struct  TFontParams
 A description of a bitmapped or vectorized text font. More...
 

Typedefs

using _GLENUM = uint32_t
 
using CListOpenGLObjects = std::deque< CRenderizable::Ptr >
 A list of objects pointers, automatically managing memory free at destructor, and managing copies correctly. More...
 

Enumerations

enum  predefined_voxel_sets_t { VOXEL_SET_OCCUPIED = 0, VOXEL_SET_FREESPACE = 1 }
 
enum  TOpenGLFont {
  MRPT_GLUT_BITMAP_NONE = -1, MRPT_GLUT_BITMAP_TIMES_ROMAN_10 = 0, MRPT_GLUT_BITMAP_TIMES_ROMAN_24 = 1, MRPT_GLUT_BITMAP_HELVETICA_10 = 2,
  MRPT_GLUT_BITMAP_HELVETICA_12 = 3, MRPT_GLUT_BITMAP_HELVETICA_18 = 4
}
 Existing fonts for 2D texts in mrpt::opengl methods. More...
 
enum  TOpenGLFontStyle { FILL = 0, OUTLINE = 1, NICE = 2 }
 Different style for vectorized font rendering. More...
 

Functions

mrpt::serialization::CArchiveoperator>> (mrpt::serialization::CArchive &in, mrpt::opengl::CLight &o)
 
mrpt::serialization::CArchiveoperator<< (mrpt::serialization::CArchive &out, const mrpt::opengl::CLight &o)
 
COpenGLScene::Ptroperator<< (COpenGLScene::Ptr &s, const CRenderizable::Ptr &r)
 Inserts an openGL object into a scene. More...
 
template<class T >
COpenGLScene::Ptroperator<< (COpenGLScene::Ptr &s, const std::vector< T > &v)
 Inserts any iterable collection of openGL objects into a scene, allowing call chaining. More...
 
COpenGLViewport::Ptroperator<< (COpenGLViewport::Ptr &s, const CRenderizable::Ptr &r)
 Inserts an openGL object into a viewport. More...
 
COpenGLViewport::Ptroperator<< (COpenGLViewport::Ptr &s, const std::vector< CRenderizable::Ptr > &v)
 Inserts any iterable set of openGL objects into a viewport. More...
 
mrpt::serialization::CArchiveoperator>> (mrpt::serialization::CArchive &in, CPointCloudColoured::TPointColour &o)
 
mrpt::serialization::CArchiveoperator<< (mrpt::serialization::CArchive &out, const CPointCloudColoured::TPointColour &o)
 
mrpt::serialization::CArchiveoperator>> (mrpt::serialization::CArchive &in, CPolyhedron::TPolyhedronEdge &o)
 Reads a polyhedron edge from a binary stream. More...
 
mrpt::serialization::CArchiveoperator<< (mrpt::serialization::CArchive &out, const CPolyhedron::TPolyhedronEdge &o)
 Writes a polyhedron edge to a binary stream. More...
 
mrpt::serialization::CArchiveoperator>> (mrpt::serialization::CArchive &in, CPolyhedron::TPolyhedronFace &o)
 Reads a polyhedron face from a binary stream. More...
 
mrpt::serialization::CArchiveoperator<< (mrpt::serialization::CArchive &out, const CPolyhedron::TPolyhedronFace &o)
 Writes a polyhedron face to a binary stream. More...
 
CRenderizable::Ptroperator<< (CRenderizable::Ptr &r, const mrpt::poses::CPose3D &p)
 Applies a mrpt::poses::CPose3D transformation to the object. More...
 
template<class T >
CSetOfLines::Ptroperator<< (CSetOfLines::Ptr &l, const T &s)
 Inserts a set of segments into the list. More...
 
template<>
CSetOfLines::Ptroperator<< (CSetOfLines::Ptr &l, const mrpt::math::TSegment3D &s)
 Inserts a segment into the list. More...
 
CSetOfObjects::Ptroperator<< (CSetOfObjects::Ptr &s, const CRenderizable::Ptr &r)
 Inserts an object into the list. More...
 
template<class T >
CSetOfObjects::Ptroperator<< (CSetOfObjects::Ptr &o, const std::vector< T > &v)
 Inserts a set of objects into the list. More...
 
template<class T >
CSetOfTriangles::Ptroperator<< (CSetOfTriangles::Ptr &s, const T &t)
 Inserts a set of triangles into the list; note that this method allows to pass another CSetOfTriangles as argument. More...
 
template<>
CSetOfTriangles::Ptroperator<< (CSetOfTriangles::Ptr &s, const CSetOfTriangles::TTriangle &t)
 Inserts a triangle into the list. More...
 
CArchiveoperator<< (CArchive &out, const COctoMapVoxels::TInfoPerVoxelSet &a)
 
CArchiveoperator>> (CArchive &in, COctoMapVoxels::TInfoPerVoxelSet &a)
 
CArchiveoperator<< (CArchive &out, const COctoMapVoxels::TGridCube &a)
 
CArchiveoperator>> (CArchive &in, COctoMapVoxels::TGridCube &a)
 
CArchiveoperator<< (CArchive &out, const COctoMapVoxels::TVoxel &a)
 
CArchiveoperator>> (CArchive &in, COctoMapVoxels::TVoxel &a)
 
Functions to obtain a 3D representation of a pose PDF
template<class POSE_PDF >
CSetOfObjects::Ptr posePDF2opengl (const POSE_PDF &o)
 Returns a representation of a the PDF - this is just an auxiliary function, it's more natural to call mrpt::poses::CPosePDF::getAs3DObject. More...
 

Typedef Documentation

◆ _GLENUM

Definition at line 16 of file COpenGLStandardObject.h.

◆ CListOpenGLObjects

A list of objects pointers, automatically managing memory free at destructor, and managing copies correctly.

Definition at line 328 of file CRenderizable.h.

Enumeration Type Documentation

◆ predefined_voxel_sets_t

Enumerator
VOXEL_SET_OCCUPIED 
VOXEL_SET_FREESPACE 

Definition at line 16 of file COctoMapVoxels.h.

◆ TOpenGLFontStyle

Different style for vectorized font rendering.

See also
T2DTextData
Enumerator
FILL 

renders glyphs as filled polygons

OUTLINE 

renders glyphs as outlines with GL_LINES

NICE 

renders glyphs filled with antialiased outlines

Definition at line 33 of file opengl_fonts.h.

Function Documentation

◆ operator<<() [1/18]

mrpt::serialization::CArchive & mrpt::opengl::operator<< ( mrpt::serialization::CArchive out,
const mrpt::opengl::CLight o 
)

Definition at line 123 of file CLight.cpp.

References mrpt::opengl::CLight::writeToStream().

Here is the call graph for this function:

◆ operator<<() [2/18]

CSetOfObjects::Ptr& mrpt::opengl::operator<< ( CSetOfObjects::Ptr s,
const CRenderizable::Ptr r 
)
inline

Inserts an object into the list.

Allows call chaining.

See also
mrpt::opengl::CSetOfObjects::insert

Definition at line 161 of file CSetOfObjects.h.

◆ operator<<() [3/18]

template<class T >
CSetOfObjects::Ptr& mrpt::opengl::operator<< ( CSetOfObjects::Ptr o,
const std::vector< T > &  v 
)
inline

Inserts a set of objects into the list.

Allows call chaining.

See also
mrpt::opengl::CSetOfObjects::insert

Definition at line 171 of file CSetOfObjects.h.

◆ operator<<() [4/18]

CArchive& mrpt::opengl::operator<< ( CArchive out,
const COctoMapVoxels::TInfoPerVoxelSet a 
)

Definition at line 205 of file COctoMapVoxels.cpp.

◆ operator<<() [5/18]

CArchive& mrpt::opengl::operator<< ( CArchive out,
const COctoMapVoxels::TGridCube a 
)

Definition at line 216 of file COctoMapVoxels.cpp.

◆ operator<<() [6/18]

template<class T >
CSetOfTriangles::Ptr& mrpt::opengl::operator<< ( CSetOfTriangles::Ptr s,
const T &  t 
)
inline

Inserts a set of triangles into the list; note that this method allows to pass another CSetOfTriangles as argument.

Allows call chaining.

See also
mrpt::opengl::CSetOfTriangles::insertTriangle

Definition at line 219 of file CSetOfTriangles.h.

◆ operator<<() [7/18]

CArchive& mrpt::opengl::operator<< ( CArchive out,
const COctoMapVoxels::TVoxel a 
)

Definition at line 227 of file COctoMapVoxels.cpp.

◆ operator<<() [8/18]

template<>
CSetOfTriangles::Ptr& mrpt::opengl::operator<< ( CSetOfTriangles::Ptr s,
const CSetOfTriangles::TTriangle t 
)
inline

Inserts a triangle into the list.

Allows call chaining.

See also
mrpt::opengl::CSetOfTriangles::insertTriangle

Definition at line 228 of file CSetOfTriangles.h.

◆ operator<<() [9/18]

template<class T >
CSetOfLines::Ptr& mrpt::opengl::operator<< ( CSetOfLines::Ptr l,
const T &  s 
)
inline

Inserts a set of segments into the list.

Allows call chaining.

See also
mrpt::opengl::CSetOfLines::appendLines

Definition at line 254 of file CSetOfLines.h.

◆ operator<<() [10/18]

COpenGLScene::Ptr& mrpt::opengl::operator<< ( COpenGLScene::Ptr s,
const CRenderizable::Ptr r 
)
inline

Inserts an openGL object into a scene.

Allows call chaining.

See also
mrpt::opengl::COpenGLScene::insert

Definition at line 257 of file COpenGLScene.h.

◆ operator<<() [11/18]

◆ operator<<() [12/18]

template<>
CSetOfLines::Ptr& mrpt::opengl::operator<< ( CSetOfLines::Ptr l,
const mrpt::math::TSegment3D s 
)
inline

Inserts a segment into the list.

Allows call chaining.

See also
mrpt::opengl::CSetOfLines::appendLine(const TSegment &)

Definition at line 263 of file CSetOfLines.h.

◆ operator<<() [13/18]

template<class T >
COpenGLScene::Ptr& mrpt::opengl::operator<< ( COpenGLScene::Ptr s,
const std::vector< T > &  v 
)
inline

Inserts any iterable collection of openGL objects into a scene, allowing call chaining.

See also
mrpt::opengl::COpenGLScene::insert

Definition at line 266 of file COpenGLScene.h.

◆ operator<<() [14/18]

CRenderizable::Ptr & mrpt::mrpt::opengl::operator<< ( CRenderizable::Ptr r,
const mrpt::poses::CPose3D p 
)

Applies a mrpt::poses::CPose3D transformation to the object.

Note that this method doesn't set the pose to the given value, but combines it with the existing one.

See also
setPose

Definition at line 343 of file CRenderizable.cpp.

◆ operator<<() [15/18]

COpenGLViewport::Ptr& mrpt::opengl::operator<< ( COpenGLViewport::Ptr s,
const CRenderizable::Ptr r 
)
inline

Inserts an openGL object into a viewport.

Allows call chaining.

See also
mrpt::opengl::COpenGLViewport::insert

Definition at line 427 of file COpenGLViewport.h.

◆ operator<<() [16/18]

COpenGLViewport::Ptr& mrpt::opengl::operator<< ( COpenGLViewport::Ptr s,
const std::vector< CRenderizable::Ptr > &  v 
)
inline

Inserts any iterable set of openGL objects into a viewport.

Allows call chaining.

See also
mrpt::opengl::COpenGLViewport::insert

Definition at line 438 of file COpenGLViewport.h.

◆ operator<<() [17/18]

CArchive & mrpt::mrpt::opengl::operator<< ( mrpt::serialization::CArchive out,
const CPolyhedron::TPolyhedronEdge o 
)

Writes a polyhedron edge to a binary stream.

Definition at line 1968 of file CPolyhedron.cpp.

References mrpt::opengl::CPolyhedron::TPolyhedronEdge::v1, and mrpt::opengl::CPolyhedron::TPolyhedronEdge::v2.

◆ operator<<() [18/18]

CArchive & mrpt::mrpt::opengl::operator<< ( mrpt::serialization::CArchive out,
const CPolyhedron::TPolyhedronFace o 
)

Writes a polyhedron face to a binary stream.

Definition at line 1982 of file CPolyhedron.cpp.

References mrpt::opengl::CPolyhedron::TPolyhedronFace::normal, and mrpt::opengl::CPolyhedron::TPolyhedronFace::vertices.

◆ operator>>() [1/7]

Definition at line 117 of file CLight.cpp.

References mrpt::opengl::CLight::readFromStream().

Here is the call graph for this function:

◆ operator>>() [2/7]

CArchive& mrpt::opengl::operator>> ( CArchive in,
COctoMapVoxels::TInfoPerVoxelSet a 
)

Definition at line 210 of file COctoMapVoxels.cpp.

◆ operator>>() [3/7]

CArchive& mrpt::opengl::operator>> ( CArchive in,
COctoMapVoxels::TGridCube a 
)

Definition at line 221 of file COctoMapVoxels.cpp.

◆ operator>>() [4/7]

CArchive& mrpt::opengl::operator>> ( CArchive in,
COctoMapVoxels::TVoxel a 
)

Definition at line 232 of file COctoMapVoxels.cpp.

◆ operator>>() [5/7]

◆ operator>>() [6/7]

CArchive & mrpt::mrpt::opengl::operator>> ( mrpt::serialization::CArchive in,
CPolyhedron::TPolyhedronEdge o 
)

Reads a polyhedron edge from a binary stream.

Definition at line 1961 of file CPolyhedron.cpp.

References mrpt::opengl::CPolyhedron::TPolyhedronEdge::v1, and mrpt::opengl::CPolyhedron::TPolyhedronEdge::v2.

◆ operator>>() [7/7]

CArchive & mrpt::mrpt::opengl::operator>> ( mrpt::serialization::CArchive in,
CPolyhedron::TPolyhedronFace o 
)

Reads a polyhedron face from a binary stream.

Definition at line 1975 of file CPolyhedron.cpp.

References mrpt::opengl::CPolyhedron::TPolyhedronFace::normal, and mrpt::opengl::CPolyhedron::TPolyhedronFace::vertices.

◆ posePDF2opengl()

template<class POSE_PDF >
CSetOfObjects::Ptr mrpt::opengl::posePDF2opengl ( const POSE_PDF &  o)
inline

Returns a representation of a the PDF - this is just an auxiliary function, it's more natural to call mrpt::poses::CPosePDF::getAs3DObject.

Definition at line 21 of file pose_pdfs.h.

References mrpt::opengl::CSetOfObjects::posePDF2opengl().

Referenced by mrpt::poses::CPointPDF::getAs3DObject(), mrpt::poses::CPose3DQuatPDF::getAs3DObject(), mrpt::poses::CPosePDF::getAs3DObject(), and mrpt::poses::CPose3DPDF::getAs3DObject().

Here is the call graph for this function:
Here is the caller graph for this function:



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019