29 CMeshFastPtr 
CMeshFast::Create(
bool enableTransparency, 
float xMin, 
float xMax , 
float yMin, 
float yMax )
    31         return CMeshFastPtr( 
new CMeshFast( enableTransparency, xMin ,xMax , yMin ,yMax ) );
    36         const size_t cols = Z.getColCount();
    37         const size_t rows = Z.getRowCount();
    39         if ((m_colorFromZ)||(m_isImage))
    43         ASSERT_((xMax>xMin)&&(yMax>yMin))
    47         const float sCellX=(xMax-xMin)/(rows-1);
    48         const float sCellY=(yMax-yMin)/(cols-1);
    50         for (
size_t iX=0;iX<rows;iX++)
    51                 for (
size_t iY=0;iY<cols;iY++)
    53                         X(iX,iY) = xMin+iX*sCellX;
    54                         Y(iX,iY) = yMin+iY*sCellY;
    58         pointsUpToDate = 
true;
    65 #if MRPT_HAS_OPENGL_GLUT    73         if ( m_color.A != 255 )
    90         for (
unsigned int i=0; i<X.getRowCount(); i++)
    91                 for (
unsigned int j=0; j<X.getColCount(); j++)
    93                         if ( m_isImage && m_textureImage.isColor())
    94                                 glColor4f(C_r(i,j), C_g(i,j), C_b(i,j), m_color.A/255.f);
    97                                 glColor4f(C(i,j), C(i,j), C(i,j), m_color.A/255.f);
    99                         else if (m_colorFromZ)
   107                                 glColor4f(m_color.R/255.f, m_color.G/255.f, m_color.B/255.f, m_color.A/255.f);
   117         if ( m_color.A != 255 )
   136         m_textureImage = 
img;
   139         Z.setSize( 
img.getHeight(), 
img.getWidth());
   143         m_modified_Image = 
true;
   144         m_enableTransparency = 
false;
   145         m_colorFromZ = 
false;
   147         pointsUpToDate=
false;
   162         ASSERT_((
img.getWidth() == 
static_cast<size_t>(in_Z.cols()))&&(
img.getHeight() == 
static_cast<size_t>(in_Z.rows())))
   167         m_textureImage = 
img;
   170         m_modified_Image = 
true;
   171         m_enableTransparency = 
false;
   172         m_colorFromZ = 
false;
   174         pointsUpToDate = 
false;
   193                 writeToStreamRender(out);
   195                 out << m_textureImage;
   197                 out << xMin << xMax << yMin << yMax;
   199                 out << m_enableTransparency;
   203                 out << m_pointSmooth;
   217                         readFromStreamRender(
in);
   219                         in >> m_textureImage;
   228                         in >> m_enableTransparency;
   239                         pointsUpToDate = 
false;
   252         if ((!m_modified_Z)&&(!m_modified_Image)) 
return;
   258                 const size_t cols = m_textureImage.getWidth();
   259                 const size_t rows = m_textureImage.getHeight();
   261                 if ((cols != Z.getColCount())||(rows != Z.getRowCount()))
   263                         printf(
"\nTexture Image and Z sizes have to be equal");
   266                 else if (m_textureImage.isColor())
   268                         C_r.setSize(rows, cols);
   269                         C_g.setSize(rows, cols);
   270                         C_b.setSize(rows, cols);
   271                         m_textureImage.getAsRGBMatrices(C_r, C_g, C_b);
   275                         C.setSize(rows, cols);
   276                         m_textureImage.getAsMatrix(C);
   281                 const size_t cols = Z.getColCount();
   282                 const size_t rows = Z.getRowCount();
   284                 C.setSize(rows,cols);
   289                 C.normalize(0.01f,0.99f);
   293         m_modified_Image = 
false;
   294         m_modified_Z = 
false; 
   295         pointsUpToDate = 
false;
   302         pointsUpToDate = 
false;
   315         bb_min.
z = Z.minCoeff();
   319         bb_max.
z = Z.maxCoeff();
   322         m_pose.composePoint(bb_min, bb_min);
   323         m_pose.composePoint(bb_max, bb_max);
 void updateColorsMatrix() const
Called internally to assure C is updated. 
 
void writeToStream(mrpt::utils::CStream &out, int *getVersion) const
Introduces a pure virtual method responsible for writing to a CStream. 
 
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL. 
 
GLAPI void GLAPIENTRY glEnable(GLenum cap)
 
GLAPI void GLAPIENTRY glPointSize(GLfloat size)
 
TColormap
Different colormaps for use in mrpt::utils::colormap() 
 
void readFromStream(mrpt::utils::CStream &in, int version)
Introduces a pure virtual method responsible for loading from a CStream This can not be used directly...
 
A class for storing images as grayscale or RGB bitmaps. 
 
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
This must be inserted in all CSerializable classes implementation files. 
 
A planar (XY) grid where each cell has an associated height and, optionally, a texture map...
 
EIGEN_STRONG_INLINE void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated) ...
 
#define GL_ONE_MINUS_SRC_ALPHA
 
double z
X,Y,Z coordinates. 
 
void BASE_IMPEXP colormap(const TColormap &color_map, const float color_index, float &r, float &g, float &b)
Transform a float number in the range [0,1] into RGB components. 
 
void assignImageAndZ(const mrpt::utils::CImage &img, const mrpt::math::CMatrixTemplateNumeric< float > &in_Z)
Assigns a texture image and Z simultaneously, and disable transparency. 
 
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 th...
 
GLAPI void GLAPIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor)
 
A renderizable object suitable for rendering with OpenGL's display lists. 
 
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
 
This base provides a set of functions for maths stuff. 
 
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations. 
 
void setZ(const mrpt::math::CMatrixTemplateNumeric< float > &in_Z)
This method sets the matrix of heights for each position (cell) in the mesh grid. ...
 
GLAPI void GLAPIENTRY glBegin(GLenum mode)
 
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
 
GLAPI void GLAPIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z)
 
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
 
void assignImage(const mrpt::utils::CImage &img)
Assigns a texture image, and disable transparency. 
 
void OPENGL_IMPEXP checkOpenGLError()
Checks glGetError and throws an exception if an error situation is found. 
 
void updatePoints() const
 
The namespace for 3D scene representation and rendering. 
 
GLAPI void GLAPIENTRY glEnd(void)
 
A matrix of dynamic size. 
 
void render_dl() const MRPT_OVERRIDE
Render. 
 
GLAPI void GLAPIENTRY glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
 
GLAPI void GLAPIENTRY glDisable(GLenum cap)