10 #ifndef opengl_CMesh_H 11 #define opengl_CMesh_H 92 std::pair<CSetOfTriangles::TTriangle, TTriangleVertexIndices>>
102 mutable std::vector<mrpt::math::TPolygonWithPlane>
tmpPolys;
114 void getGridLimits(
float& xmin,
float& xmax,
float& ymin,
float& ymax)
const 215 float yMin = 0.0f,
float yMax = 0.0f);
243 const float ycenter = 0.5 * (
yMin +
yMax);
247 yMax = ycenter + 0.5 * newratio * xwidth;
248 yMin = ycenter - 0.5 * newratio * xwidth;
259 float yMin = 0.0f,
float yMax = 0.0f);
void setXMax(const float nxm)
virtual ~CMesh()
Private, virtual destructor: only can be deleted from smart pointers.
std::vector< mrpt::math::TPolygonWithPlane > tmpPolys
void adjustGridToImageAR()
Adjust grid limits according to the image aspect ratio, maintaining the X limits and resizing in the ...
TColormap
Different colormaps for use in mrpt::utils::colormap()
A class for storing images as grayscale or RGB bitmaps.
void setZ(const mrpt::math::CMatrixTemplateNumeric< float > &in_Z)
This method sets the matrix of heights for each position (cell) in the mesh grid. ...
void enableTransparency(bool v)
void setXMin(const float nxm)
bool m_enableTransparency
void enableWireFrame(bool v)
static Ptr Create(Args &&... args)
void render_dl() const override
Render.
EIGEN_STRONG_INLINE void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated) ...
void getXBounds(float &min, float &max) const
bool m_modified_Z
Whether C is not up-to-date wrt to Z.
void getGridLimits(float &xmin, float &xmax, float &ymin, float &ymax) const
void setYMax(const float nym)
A renderizable object suitable for rendering with OpenGL's display lists.
void assignImage(const mrpt::utils::CImage &img)
Assigns a texture image, and disable transparency.
math::CMatrix C_b
Blue Component of the Color [0,1] for each cell, updated by updateColorsMatrix.
math::CMatrix C_g
Green Component of the Color [0,1] for each cell, updated by updateColorsMatrix.
size_t getWidth() const override
Returns the width of the image in pixels.
bool traceRay(const mrpt::poses::CPose3D &o, double &dist) const override
Trace ray.
void setYBounds(const float min, const float max)
size_t getHeight() const override
Returns the height of the image in pixels.
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 updatePolygons() const
math::CMatrix Z
Z(x,y): Z-coordinate of the point (x,y)
void setGridLimits(float xmin, float xmax, float ymin, float ymax)
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
std::shared_ptr< CMesh > Ptr
void getZ(mrpt::math::CMatrixFloat &out) const
Returns a reference to the internal Z matrix, allowing changing it efficiently.
void getBoundingBox(mrpt::math::TPoint3D &bb_min, mrpt::math::TPoint3D &bb_max) const override
Evaluates the bounding box of this object (including possible children) in the coordinate frame of th...
CMesh(bool enableTransparency=false, float xMin=0.0f, float xMax=0.0f, float yMin=0.0f, float yMax=0.0f)
Constructor.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
mrpt::utils::CImage m_textureImage
void enableColorFromZ(bool v, mrpt::utils::TColormap colorMap=mrpt::utils::cmHOT)
math::CMatrix C_r
Red Component of the Color [0,1] for each cell, updated by updateColorsMatrix.
void updateColorsMatrix() const
Called internally to assure C is updated.
void getYBounds(float &min, float &max) const
A matrix of dynamic size.
void setUV(const mrpt::math::CMatrixTemplateNumeric< float > &in_U, const mrpt::math::CMatrixTemplateNumeric< float > &in_V)
Sets the (u,v) texture coordinates (in range [0,1]) for each cell.
void setXBounds(const float min, const float max)
A planar (XY) grid where each cell has an associated height and, optionally, a texture map...
void setMask(const mrpt::math::CMatrixTemplateNumeric< float > &in_mask)
This method sets the boolean mask of valid heights for each position (cell) in the mesh grid...
This class is a "CSerializable" wrapper for "CMatrixFloat".
math::CMatrix U
Texture coordinates.
void updateTriangles() const
Called internally to assure the triangle list is updated.
std::vector< std::pair< mrpt::math::TPoint3D, size_t > > vertex_normals
The accumulated normals & counts for each vertex, so normals can be averaged.
mrpt::utils::TColormap m_colorMap
Used when m_colorFromZ is true.
std::vector< std::pair< CSetOfTriangles::TTriangle, TTriangleVertexIndices > > actualMesh
List of triangles in the mesh.
bool m_modified_Image
Whether C is not up-to-date wrt to the texture image.
void getMask(mrpt::math::CMatrixFloat &out) const
Returns a reference to the internal mask matrix, allowing changing it efficiently.
void setYMin(const float nym)
math::CMatrix C
Grayscale Color [0,1] for each cell, updated by updateColorsMatrix.
bool trianglesUpToDate
Whether the actual mesh needs to be recalculated.