Main MRPT website > C++ reference for MRPT 1.9.9
Namespaces | Classes | Typedefs | Enumerations | Functions
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> More...
 
class  PointCloudAdapter< mrpt::maps::CPointsMap >
 Specialization mrpt::opengl::PointCloudAdapter<mrpt::maps::CPointsMap> 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> 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> 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)
 

Typedef Documentation

◆ _GLENUM

Definition at line 19 of file COpenGLStandardObject.h.

◆ CListOpenGLObjects

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

Definition at line 332 of file CRenderizable.h.

Enumeration Type Documentation

◆ predefined_voxel_sets_t

Enumerator
VOXEL_SET_OCCUPIED 
VOXEL_SET_FREESPACE 

Definition at line 18 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 36 of file opengl_fonts.h.

Function Documentation

◆ operator<<() [1/18]

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

Definition at line 229 of file COctoMapVoxels.cpp.

◆ operator<<() [2/18]

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

Definition at line 218 of file COctoMapVoxels.cpp.

◆ operator<<() [3/18]

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

Definition at line 240 of file COctoMapVoxels.cpp.

◆ operator<<() [4/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 274 of file COpenGLScene.h.

◆ operator<<() [5/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 283 of file COpenGLScene.h.

◆ operator<<() [6/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 438 of file COpenGLViewport.h.

◆ operator<<() [7/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 449 of file COpenGLViewport.h.

◆ operator<<() [8/18]

CRenderizable::Ptr & 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 349 of file CRenderizable.cpp.

◆ operator<<() [9/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 270 of file CSetOfLines.h.

◆ operator<<() [10/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 261 of file CSetOfLines.h.

◆ operator<<() [11/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 174 of file CSetOfObjects.h.

◆ operator<<() [12/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 164 of file CSetOfObjects.h.

◆ operator<<() [13/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 232 of file CSetOfTriangles.h.

◆ operator<<() [14/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 223 of file CSetOfTriangles.h.

◆ operator<<() [15/18]

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

◆ operator<<() [16/18]

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

Writes a polyhedron edge to a binary stream.

Definition at line 2006 of file CPolyhedron.cpp.

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

◆ operator<<() [17/18]

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

Writes a polyhedron face to a binary stream.

Definition at line 2020 of file CPolyhedron.cpp.

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

◆ operator<<() [18/18]

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

Definition at line 130 of file CLight.cpp.

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

◆ operator>>() [1/7]

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

Definition at line 234 of file COctoMapVoxels.cpp.

◆ operator>>() [2/7]

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

Definition at line 223 of file COctoMapVoxels.cpp.

◆ operator>>() [3/7]

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

Definition at line 245 of file COctoMapVoxels.cpp.

◆ operator>>() [4/7]

CArchive & mrpt::opengl::operator>> ( mrpt::serialization::CArchive in,
CPointCloudColoured::TPointColour o 
)

◆ operator>>() [5/7]

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

Reads a polyhedron edge from a binary stream.

Definition at line 1999 of file CPolyhedron.cpp.

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

◆ operator>>() [6/7]

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

Reads a polyhedron face from a binary stream.

Definition at line 2013 of file CPolyhedron.cpp.

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

◆ operator>>() [7/7]

Definition at line 124 of file CLight.cpp.

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

◆ 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 24 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().




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