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).
Three drawing modes are possible:
#include <mrpt/opengl/CBox.h>
Public Member Functions | |
void * | operator new (size_t size) |
void * | operator new[] (size_t size) |
void | operator delete (void *ptr) throw () |
void | operator delete[] (void *ptr) throw () |
void | operator delete (void *memory, void *ptr) throw () |
void * | operator new (size_t size, const std::nothrow_t &) throw () |
void | operator delete (void *ptr, const std::nothrow_t &) throw () |
void | render_dl () const MRPT_OVERRIDE |
Render. More... | |
void | getBoundingBox (mrpt::math::TPoint3D &bb_min, mrpt::math::TPoint3D &bb_max) const MRPT_OVERRIDE |
Evaluates the bounding box of this object (including possible children) in the coordinate frame of the object parent. More... | |
bool | traceRay (const mrpt::poses::CPose3D &o, double &dist) const MRPT_OVERRIDE |
Ray tracing. More... | |
void | setLineWidth (float width) |
float | getLineWidth () const |
void | setWireframe (bool is_wireframe=true) |
bool | isWireframe () const |
void | enableBoxBorder (bool drawBorder=true) |
bool | isBoxBorderEnabled () const |
void | setBoxBorderColor (const mrpt::utils::TColor &c) |
mrpt::utils::TColor | getBoxBorderColor () const |
void | setBoxCorners (const mrpt::math::TPoint3D &corner1, const mrpt::math::TPoint3D &corner2) |
Set the position and size of the box, from two corners in 3D. More... | |
void | getBoxCorners (mrpt::math::TPoint3D &corner1, mrpt::math::TPoint3D &corner2) const |
CRenderizableDisplayList * | clone () const |
Interface for the stlplus smart pointer class. More... | |
void | render () const MRPT_OVERRIDE |
Render the object, regenerating the display list if needed, otherwise just calling it. More... | |
virtual mxArray * | writeToMatlab () const |
Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class. More... | |
mrpt::utils::CObjectPtr | duplicateGetSmartPtr () const |
Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer). More... | |
Static Public Member Functions | |
static void * | operator new (size_t size, void *ptr) |
static CBoxPtr | Create (const mrpt::math::TPoint3D &corner1, const mrpt::math::TPoint3D &corner2, bool is_wireframe=false, float lineWidth=1.0) |
Constructor returning a smart pointer to the newly created object. More... | |
static void | renderTextBitmap (const char *str, void *fontStyle) |
This method is safe for calling from within ::render() methods. More... | |
static void | renderTextBitmap (int screen_x, int screen_y, const std::string &str, float color_r=1, float color_g=1, float color_b=1, mrpt::opengl::TOpenGLFont font=mrpt::opengl::MRPT_GLUT_BITMAP_TIMES_ROMAN_24) |
Render a text message in the current rendering context, creating a glViewport in the way (do not call within ::render() methods) More... | |
static int | textBitmapWidth (const std::string &str, mrpt::opengl::TOpenGLFont font=mrpt::opengl::MRPT_GLUT_BITMAP_TIMES_ROMAN_24) |
Return the exact width in pixels for a given string, as will be rendered by renderTextBitmap(). More... | |
Static Public Attributes | |
static const mrpt::utils::TRuntimeClassId | classCObject |
Protected Member Functions | |
void | writeToStreamRender (utils::CStream &out) const |
CSerializable virtual methods | |
void | writeToStream (mrpt::utils::CStream &out, int *getVersion) const MRPT_OVERRIDE |
Introduces a pure virtual method responsible for writing to a CStream. More... | |
void | readFromStream (mrpt::utils::CStream &in, int version) MRPT_OVERRIDE |
Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori. More... | |
Static Protected Member Functions | |
static void | checkOpenGLError () |
Checks glGetError and throws an exception if an error situation is found. More... | |
static unsigned int | getNewTextureNumber () |
Returns the lowest next free texture name (avoid using OpenGL's own function since we may call them from different threads and seem it's not cool). More... | |
static void | releaseTextureName (unsigned int i) |
Protected Attributes | |
mrpt::math::TPoint3D | m_corner_min |
mrpt::math::TPoint3D | m_corner_max |
Corners coordinates. More... | |
bool | m_wireframe |
true: wireframe, false: solid More... | |
float | m_lineWidth |
For wireframe only. More... | |
bool | m_draw_border |
Draw line borders to solid box with the given linewidth (default: true) More... | |
mrpt::utils::TColor | m_solidborder_color |
Color of the solid box borders. More... | |
std::string | m_name |
bool | m_show_name |
mrpt::utils::TColor | m_color |
Color components in the range [0,255]. More... | |
mrpt::poses::CPose3D | m_pose |
6D pose wrt the parent coordinate reference. This class automatically holds the cached 3x3 rotation matrix for quick load into opengl stack. More... | |
float | m_scale_x |
float | m_scale_y |
float | m_scale_z |
Scale components to apply to the object (default=1) More... | |
bool | m_visible |
Is the object visible? (default=true) More... | |
Private Member Functions | |
CBox () | |
Basic empty constructor. More... | |
CBox (const mrpt::math::TPoint3D &corner1, const mrpt::math::TPoint3D &corner2, bool is_wireframe=false, float lineWidth=1.0) | |
Constructor with all the parameters More... | |
virtual | ~CBox () |
Destructor More... | |
Private Attributes | |
unsigned int | m_dl |
Display list ID, for derived classes that want to use it (it's automatically deleted and freed on destruction of this base class). More... | |
bool | m_dl_recreate |
If using display lists, this is true when the list must be updated (the object changes, it's the first rendering, etc...). More... | |
RTTI stuff | |
typedef CBoxPtr | SmartPtr |
static mrpt::utils::CLASSINIT | _init_CBox |
static mrpt::utils::TRuntimeClassId | classCBox |
static const mrpt::utils::TRuntimeClassId * | classinfo |
static const mrpt::utils::TRuntimeClassId * | _GetBaseClass () |
virtual const mrpt::utils::TRuntimeClassId * | GetRuntimeClass () const |
Returns information about the class of an object in runtime. More... | |
virtual mrpt::utils::CObject * | duplicate () const MRPT_OVERRIDE |
Returns a copy of the object, indepently of its class. More... | |
static mrpt::utils::CObject * | CreateObject () |
static CBoxPtr | Create () |
typedef CBoxPtr mrpt::opengl::CBox::SmartPtr |
|
private |
Basic empty constructor.
Set all parameters to default.
|
private |
Constructor with all the parameters
|
inlineprivatevirtual |
|
staticprotected |
|
staticprotectedinherited |
Checks glGetError and throws an exception if an error situation is found.
|
inlineinherited |
Interface for the stlplus smart pointer class.
Definition at line 71 of file CRenderizableDisplayList.h.
|
static |
|
static |
Constructor returning a smart pointer to the newly created object.
|
static |
|
virtual |
Returns a copy of the object, indepently of its class.
Implements mrpt::utils::CObject.
|
inlineinherited |
|
inline |
Definition at line 71 of file CBox.h.
References mrpt::opengl::CRenderizableDisplayList::notifyChange().
|
virtual |
Evaluates the bounding box of this object (including possible children) in the coordinate frame of the object parent.
Implements mrpt::opengl::CRenderizable.
|
inline |
|
inline |
|
staticprotectedinherited |
Returns the lowest next free texture name (avoid using OpenGL's own function since we may call them from different threads and seem it's not cool).
|
inherited |
Returns the 3D pose of the object as TPose3D.
|
inlineinherited |
Returns a const ref to the 3D pose of the object as mrpt::poses::CPose3D (which explicitly contains the 3x3 rotation matrix)
Definition at line 79 of file CRenderizable.h.
|
virtual |
Returns information about the class of an object in runtime.
Reimplemented from mrpt::opengl::CRenderizableDisplayList.
|
inlineinherited |
|
inlineprotectedinherited |
Must be called to notify that the object has changed (so, the display list must be updated)
Definition at line 49 of file CRenderizableDisplayList.h.
Referenced by mrpt::opengl::CGeneralizedCylinder::addVisibleSectionAtEnd(), mrpt::opengl::CGeneralizedCylinder::addVisibleSectionAtStart(), mrpt::opengl::CMeshFast::adjustGridToImageAR(), mrpt::opengl::CMesh::adjustGridToImageAR(), mrpt::opengl::CSetOfLines::appendLine(), mrpt::opengl::CSetOfLines::appendLines(), mrpt::opengl::CSetOfLines::begin(), mrpt::opengl::CSetOfLines::clear(), mrpt::opengl::CVectorField2D::clear(), mrpt::opengl::CVectorField3D::clear(), mrpt::opengl::CSetOfTexturedTriangles::clearTriangles(), mrpt::opengl::CSetOfTriangles::clearTriangles(), mrpt::opengl::COpenGLStandardObject::enable(), mrpt::opengl::CSimpleLine::enableAntiAliasing(), mrpt::opengl::CGridPlaneXZ::enableAntiAliasing(), mrpt::opengl::CGridPlaneXY::enableAntiAliasing(), mrpt::opengl::CMesh3D::enableAntiAliasing(), mrpt::opengl::CVectorField2D::enableAntiAliasing(), mrpt::opengl::CSetOfLines::enableAntiAliasing(), mrpt::opengl::CVectorField3D::enableAntiAliasing(), enableBoxBorder(), mrpt::opengl::CVectorField3D::enableColorFromModule(), mrpt::opengl::CMesh::enableColorFromZ(), mrpt::opengl::CMeshFast::enableColorFromZ(), mrpt::opengl::COctoMapVoxels::enableCubeTransparency(), mrpt::opengl::C3DSScene::enableExtraAmbientLight(), mrpt::opengl::CMesh3D::enableFaceNormals(), mrpt::opengl::COctoMapVoxels::enableLights(), mrpt::opengl::CPlanarLaserScan::enableLine(), mrpt::opengl::CPlanarLaserScan::enablePoints(), mrpt::opengl::CSphere::enableRadiusIndependentOfEyeDistance(), mrpt::opengl::CMesh3D::enableShowEdges(), mrpt::opengl::CMesh3D::enableShowFaces(), mrpt::opengl::CVectorField3D::enableShowPoints(), mrpt::opengl::CMesh3D::enableShowVertices(), mrpt::opengl::CPlanarLaserScan::enableSurface(), mrpt::opengl::CAxis::enableTickMarks(), mrpt::opengl::CMesh3D::enableTransparency(), mrpt::opengl::CMesh::enableTransparency(), mrpt::opengl::CMeshFast::enableTransparency(), mrpt::opengl::CSetOfTriangles::enableTransparency(), mrpt::opengl::CAngularObservationMesh::enableTransparency(), mrpt::opengl::CMesh::enableWireFrame(), mrpt::opengl::CSetOfLines::end(), mrpt::opengl::COctoMapVoxels::getGridCubeRef(), mrpt::opengl::CSetOfTexturedTriangles::getTriangle(), mrpt::opengl::COctoMapVoxels::getVoxel(), mrpt::opengl::COctoMapVoxels::getVoxelRef(), mrpt::opengl::CSetOfTexturedTriangles::insertTriangle(), mrpt::opengl::CSetOfTriangles::insertTriangle(), mrpt::opengl::CSetOfTriangles::insertTriangles(), mrpt::opengl::COctoMapVoxels::push_back_GridCube(), mrpt::opengl::COctoMapVoxels::push_back_Voxel(), mrpt::opengl::CSetOfTriangles::reserve(), mrpt::opengl::CSetOfLines::reserve(), mrpt::opengl::COctoMapVoxels::reserveVoxels(), mrpt::opengl::CSetOfLines::resize(), mrpt::opengl::CVectorField2D::resize(), mrpt::opengl::CVectorField3D::resize(), mrpt::opengl::COctoMapVoxels::resizeGridCubes(), mrpt::opengl::COctoMapVoxels::resizeVoxels(), mrpt::opengl::COctoMapVoxels::resizeVoxelSets(), mrpt::opengl::CGeneralizedCylinder::setAllSectionsInvisible(), mrpt::opengl::CGeneralizedCylinder::setAllSectionsVisible(), mrpt::opengl::CArrow::setArrowEnds(), mrpt::opengl::CArrow::setArrowYawPitchRoll(), mrpt::opengl::CGeneralizedCylinder::setAxis(), mrpt::opengl::CAxis::setAxisLimits(), setBoxBorderColor(), mrpt::opengl::CGeneralizedCylinder::setClosed(), mrpt::opengl::CGeneralizedEllipsoidTemplate< 3 >::setCovMatrixAndMean(), mrpt::opengl::CDisk::setDiskRadius(), mrpt::opengl::COpenGLStandardObject::setFlags(), mrpt::opengl::CText3D::setFont(), mrpt::opengl::CGeneralizedCylinder::setGeneratrix(), mrpt::opengl::CVectorField2D::setGridCenterAndCellSize(), mrpt::opengl::CGridPlaneXY::setGridFrequency(), mrpt::opengl::CGridPlaneXZ::setGridFrequency(), mrpt::opengl::CMesh::setGridLimits(), mrpt::opengl::CMeshFast::setGridLimits(), mrpt::opengl::CVectorField2D::setGridLimits(), mrpt::opengl::COctoMapVoxels::setGridLinesColor(), mrpt::opengl::COctoMapVoxels::setGridLinesWidth(), mrpt::opengl::CCylinder::setHasBases(), mrpt::opengl::CArrow::setHeadRatio(), mrpt::opengl::CCylinder::setHeight(), mrpt::opengl::CArrow::setLargeRadius(), mrpt::opengl::CSetOfLines::setLineByIndex(), mrpt::opengl::CSimpleLine::setLineCoords(), mrpt::opengl::CSimpleLine::setLineWidth(), mrpt::opengl::CGridPlaneXZ::setLineWidth(), mrpt::opengl::CGridPlaneXY::setLineWidth(), mrpt::opengl::CSetOfLines::setLineWidth(), mrpt::opengl::CAxis::setLineWidth(), mrpt::opengl::CFrustum::setLineWidth(), setLineWidth(), mrpt::opengl::CVectorField2D::setLineWidth(), mrpt::opengl::CGeneralizedEllipsoidTemplate< 3 >::setLineWidth(), mrpt::opengl::CVectorField3D::setLineWidth(), mrpt::opengl::CPolyhedron::setLineWidth(), mrpt::opengl::CVectorField3D::setMaxSpeedForColor(), mrpt::opengl::CVectorField3D::setMotionFieldColormap(), mrpt::opengl::COpenGLStandardObject::setNormal(), mrpt::opengl::CSphere::setNumberDivsLatitude(), mrpt::opengl::CSphere::setNumberDivsLongitude(), mrpt::opengl::CGeneralizedEllipsoidTemplate< 3 >::setNumberOfSegments(), mrpt::opengl::CFrustum::setPlaneColor(), mrpt::opengl::CTexturedPlane::setPlaneCorners(), mrpt::opengl::CGridPlaneXY::setPlaneLimits(), mrpt::opengl::CGridPlaneXZ::setPlaneLimits(), mrpt::opengl::CGridPlaneXZ::setPlaneYcoord(), mrpt::opengl::CGridPlaneXY::setPlaneZcoord(), mrpt::opengl::CVectorField2D::setPointColor(), mrpt::opengl::CVectorField3D::setPointColor(), mrpt::opengl::CVectorField3D::setPointCoordinates(), mrpt::opengl::CVectorField2D::setPointSize(), mrpt::opengl::CVectorField3D::setPointSize(), mrpt::opengl::CGeneralizedEllipsoidTemplate< 3 >::setQuantiles(), mrpt::opengl::CCylinder::setRadii(), mrpt::opengl::CSphere::setRadius(), mrpt::opengl::CCylinder::setRadius(), mrpt::opengl::CPlanarLaserScan::setScan(), mrpt::opengl::CCylinder::setSlicesCount(), mrpt::opengl::CArrow::setSmallRadius(), mrpt::opengl::CCylinder::setStacksCount(), mrpt::opengl::CText3D::setString(), mrpt::opengl::CText3D::setTextKerning(), mrpt::opengl::CText3D::setTextSpacing(), mrpt::opengl::CText3D::setTextStyle(), mrpt::opengl::CTexturedPlane::setTextureCornerCoords(), mrpt::opengl::CVectorField2D::setVectorField(), mrpt::opengl::CVectorField3D::setVectorField(), mrpt::opengl::CVectorField2D::setVectorFieldColor(), mrpt::opengl::CVectorField3D::setVectorFieldColor(), mrpt::opengl::CGeneralizedCylinder::setVisibleSections(), mrpt::opengl::COctoMapVoxels::setVisualizationMode(), mrpt::opengl::COctoMapVoxels::setVoxelAsPointsSize(), setWireframe(), mrpt::opengl::CAngularObservationMesh::setWireframe(), mrpt::opengl::CPolyhedron::setWireframe(), mrpt::opengl::CMeshFast::setXBounds(), mrpt::opengl::CMesh::setXBounds(), mrpt::opengl::CMeshFast::setXMax(), mrpt::opengl::CMesh::setXMax(), mrpt::opengl::CMeshFast::setXMin(), mrpt::opengl::CMesh::setXMin(), mrpt::opengl::CMeshFast::setYBounds(), mrpt::opengl::CMesh::setYBounds(), mrpt::opengl::CMeshFast::setYMax(), mrpt::opengl::CMesh::setYMax(), mrpt::opengl::CMeshFast::setYMin(), mrpt::opengl::CMesh::setYMin(), mrpt::opengl::COctoMapVoxels::showGridLines(), mrpt::opengl::COctoMapVoxels::showVoxels(), mrpt::opengl::COctoMapVoxels::showVoxelsAsPoints(), and mrpt::opengl::CGeneralizedEllipsoidTemplate< 3 >::thisclass_readFromStream().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inline |
|
protectedvirtual |
Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori.
in | The input binary stream where the object data must read from. |
version | The version of the object stored in the stream: use this version number in your code to know how to read the incoming data. |
std::exception | On any error, see CStream::ReadBuffer |
Implements mrpt::utils::CSerializable.
|
inlineprotectedinherited |
Definition at line 58 of file CRenderizableDisplayList.h.
References mrpt::opengl::CRenderizable::readFromStreamRender().
|
staticprotectedinherited |
|
virtualinherited |
Render the object, regenerating the display list if needed, otherwise just calling it.
Implements mrpt::opengl::CRenderizable.
|
virtual |
|
staticinherited |
This method is safe for calling from within ::render() methods.
|
staticinherited |
Render a text message in the current rendering context, creating a glViewport in the way (do not call within ::render() methods)
|
inline |
Definition at line 74 of file CBox.h.
References mrpt::opengl::CRenderizableDisplayList::notifyChange().
void mrpt::opengl::CBox::setBoxCorners | ( | const mrpt::math::TPoint3D & | corner1, |
const mrpt::math::TPoint3D & | corner2 | ||
) |
Set the position and size of the box, from two corners in 3D.
|
inlineinherited |
c | Changes the default object color |
Definition at line 125 of file CRenderizable.h.
References mrpt::utils::TColorf::A, mrpt::utils::TColorf::B, mrpt::utils::TColorf::G, and mrpt::utils::TColorf::R.
|
inlineinherited |
Set the color components of this object (R,G,B,Alpha, in the range 0-1)
Definition at line 131 of file CRenderizable.h.
|
virtualinherited |
Reimplemented in mrpt::opengl::CSetOfTriangles, and mrpt::opengl::CSetOfObjects.
|
inlineinherited |
Set the color components of this object (R,G,B,Alpha, in the range 0-1)
Definition at line 138 of file CRenderizable.h.
References mrpt::opengl::CRenderizable::setColor_u8().
Referenced by mrpt::opengl::CRenderizable::setColor_u8().
|
inline |
Definition at line 65 of file CBox.h.
References mrpt::opengl::CRenderizableDisplayList::notifyChange().
|
inlineinherited |
Changes the location of the object, keeping untouched the orientation.
Definition at line 85 of file CRenderizable.h.
References mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.
|
inlineinherited |
Changes the location of the object, keeping untouched the orientation.
Definition at line 82 of file CRenderizable.h.
|
inherited |
Set the 3D pose from a mrpt::math::TPose3D object (return a ref to this)
|
inherited |
Set the 3D pose from a mrpt::poses::CPose3D object (return a ref to this)
|
inherited |
Set the 3D pose from a mrpt::poses::CPose3D object (return a ref to this)
|
inherited |
Set the 3D pose from a mrpt::poses::CPose3D object (return a ref to this)
|
inlineinherited |
Set object visibility (default=true)
Definition at line 67 of file CRenderizable.h.
|
inline |
Definition at line 68 of file CBox.h.
References mrpt::opengl::CRenderizableDisplayList::notifyChange().
|
inlineprotectedvirtualinherited |
Optional: If the object has some state in which creating a display list is NOT preferred over direct rendering, implement this method and return "true" in those cases.
Reimplemented in mrpt::opengl::CSphere.
Definition at line 56 of file CRenderizableDisplayList.h.
|
staticinherited |
Return the exact width in pixels for a given string, as will be rendered by renderTextBitmap().
|
virtual |
|
inlinevirtualinherited |
Introduces a pure virtual method responsible for writing to a mxArray
Matlab object, typically a MATLAB struct
whose contents are documented in each derived class.
mxArray
(caller is responsible of memory freeing) or NULL is class does not support conversion to MATLAB. Definition at line 79 of file CSerializable.h.
|
protectedvirtual |
Introduces a pure virtual method responsible for writing to a CStream.
This can not be used directly be users, instead use "stream << object;" for writing it to a stream.
out | The output binary stream where object must be dumped. |
getVersion | If NULL, the object must be dumped. If not, only the version of the object dump must be returned in this pointer. This enables the versioning of objects dumping and backward compatibility with previously stored data. |
std::exception | On any error, see CStream::WriteBuffer |
Implements mrpt::utils::CSerializable.
|
protectedinherited |
|
staticprotected |
|
static |
|
staticinherited |
|
staticinherited |
Definition at line 46 of file CRenderizable.h.
|
staticinherited |
Definition at line 38 of file CRenderizableDisplayList.h.
|
staticinherited |
Definition at line 42 of file CSerializable.h.
|
static |
|
protectedinherited |
Color components in the range [0,255].
Definition at line 54 of file CRenderizable.h.
|
protected |
|
protected |
|
mutableprivateinherited |
Display list ID, for derived classes that want to use it (it's automatically deleted and freed on destruction of this base class).
Definition at line 41 of file CRenderizableDisplayList.h.
|
mutableprivateinherited |
If using display lists, this is true when the list must be updated (the object changes, it's the first rendering, etc...).
Definition at line 42 of file CRenderizableDisplayList.h.
|
protected |
|
protected |
|
protectedinherited |
Definition at line 52 of file CRenderizable.h.
|
protectedinherited |
6D pose wrt the parent coordinate reference. This class automatically holds the cached 3x3 rotation matrix for quick load into opengl stack.
Definition at line 55 of file CRenderizable.h.
Referenced by mrpt::opengl::CGeneralizedEllipsoidTemplate< 3 >::render_dl().
|
protectedinherited |
Definition at line 56 of file CRenderizable.h.
|
protectedinherited |
Definition at line 56 of file CRenderizable.h.
|
protectedinherited |
Scale components to apply to the object (default=1)
Definition at line 56 of file CRenderizable.h.
|
protectedinherited |
Definition at line 53 of file CRenderizable.h.
|
protected |
|
protectedinherited |
Is the object visible? (default=true)
Definition at line 57 of file CRenderizable.h.
Page generated by Doxygen 1.8.17 for MRPT 1.4.0 SVN: at Tue Mar 3 09:15:16 UTC 2020 |