156 void render(
const RenderContext& rc)
const override;
333 const size_t set_index,
const size_t idx)
const 366 template <
class OCTOMAP>
369 m.getAsOctoMapVoxels(*
this);
bool areLightsEnabled() const
void showVoxels(unsigned int voxel_set, bool show)
Shows/hides the voxels (voxel_set is a 0-based index for the set of voxels to modify, e.g.
mrpt::img::TColor m_grid_color
void reserveVoxels(const size_t set_index, const size_t nVoxels)
TGridCube & getGridCubeRef(const size_t idx)
void renderUpdateBuffers() const override
Called whenever m_outdatedBuffers is true: used to re-generate OpenGL vertex buffers, etc.
All cubes are of identical color.
visualization_mode_t
The different coloring schemes, which modulate the generic mrpt::opengl::CRenderizable object color...
bool areVoxelsVisible(unsigned int voxel_set) const
const TGridCube & getGridCube(const size_t idx) const
void enableLights(bool enable)
Can be used to enable/disable the effects of lighting in this object.
mrpt::math::TPoint3D m_bb_min
Cached bounding boxes.
std::deque< TInfoPerVoxelSet > m_voxel_sets
void setFromOctoMap(OCTOMAP &m)
Sets the contents of the object from a mrpt::maps::COctoMap object.
void freeOpenGLResources() override
Free opengl buffers.
void setVoxelAsPointsSize(float pointSize)
Only used when showVoxelsAsPoints() is enabled.
mrpt::math::TPoint3D m_bb_max
size_t getVoxelCount(const size_t set_index) const
Returns the total count of voxels in one voxel set.
void notifyChange() const
Call to enable calling renderUpdateBuffers() before the next render() rendering iteration.
TVoxel & getVoxelRef(const size_t set_index, const size_t idx)
void onUpdateBuffers_Wireframe() override
Must be implemented in derived classes to update the geometric entities to be drawn in "m_*_buffer" f...
Combination of COLOR_FROM_HEIGHT and TRANSPARENCY_FROM_OCCUPANCY.
mrpt::math::TPoint3Df min
opposite corners of the cube
void enableCubeTransparency(bool enable)
By default, the alpha (transparency) component of voxel cubes is taken into account, but transparency can be disabled with this method.
float getGridLinesWidth() const
Gets the width of grid lines.
void setBoundingBox(const mrpt::math::TPoint3D &bb_min, const mrpt::math::TPoint3D &bb_max)
Manually changes the bounding box (normally the user doesn't need to call this)
Color goes from black (at the bottom) to the chosen color (at the top)
size_t getVoxelSetCount() const
Returns the number of voxel sets.
void reserveGridCubes(const size_t nCubes)
bool areVoxelsShownAsPoints() const
std::vector< TVoxel > voxels
Transparency goes from opaque (occupied voxel) to transparent (free voxel).
Renderizable generic renderer for objects using the triangles shader.
void clear()
Clears everything.
void freeOpenGLResources() override
Free opengl buffers.
void resizeVoxels(const size_t set_index, const size_t nVoxels)
std::vector< shader_id_t > shader_list_t
A list of shader IDs.
TInfoPerVoxelSet()=default
TGridCube(const mrpt::math::TPoint3Df &min_, const mrpt::math::TPoint3Df &max_)
A flexible renderer of voxels, typically from a 3D octo map (see mrpt::maps::COctoMap).
#define ASSERT_(f)
Defines an assertion mechanism.
void push_back_GridCube(const TGridCube &c)
float getVoxelAsPointsSize() const
static constexpr shader_id_t WIREFRAME
Color goes from black (occupaid voxel) to the chosen color (free voxel) and they are transparent...
size_t getGridCubeCount() const
Returns the total count of grid cubes.
mrpt::math::TPoint3Df max
void setGridLinesColor(const mrpt::img::TColor &color)
bool m_showVoxelsAsPoints
virtual shader_list_t requiredShaders() const override
Returns the ID of the OpenGL shader program required to render this class.
const TVoxel & getVoxel(const size_t set_index, const size_t idx) const
void onUpdateBuffers_Triangles() override
Must be implemented in derived classes to update the geometric entities to be drawn in "m_*_buffer" f...
bool areGridLinesVisible() const
mrpt::math::TPoint3Df coords
Renderizable generic renderer for objects using the points shader.
const mrpt::img::TColor & getGridLinesColor() const
The info of each grid block.
static constexpr shader_id_t TRIANGLES
void push_back_Voxel(const size_t set_index, const TVoxel &v)
void onUpdateBuffers_Points() override
Must be implemented in derived classes to update the geometric entities to be drawn in "m_*_buffer" f...
float m_showVoxelsAsPointsSize
The info of each of the voxels.
Color goes from black (occupied voxel) to the chosen color (free voxel)
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...
visualization_mode_t m_visual_mode
void showVoxelsAsPoints(const bool enable)
For quick renders: render voxels as points instead of cubes.
#define ASSERTDEB_(f)
Defines an assertion mechanism - only when compiled in debug.
void resizeVoxelSets(const size_t nVoxelSets)
~COctoMapVoxels() override=default
Private, virtual destructor: only can be deleted from smart pointers.
Renderizable generic renderer for objects using the wireframe shader.
visualization_mode_t getVisualizationMode() const
The namespace for 3D scene representation and rendering.
void showGridLines(bool show)
Shows/hides the grid lines.
#define DEFINE_SERIALIZABLE(class_name, NS)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
void setVisualizationMode(visualization_mode_t mode)
Select the visualization mode.
bool m_enable_cube_transparency
COctoMapVoxels()
Constructor.
std::vector< TGridCube > m_grid_cubes
TVoxel(const mrpt::math::TPoint3Df &coords_, const double side_length_, mrpt::img::TColor color_)
void render(const RenderContext &rc) const override
Implements the rendering of 3D objects in each class derived from CRenderizable.
void freeOpenGLResources() override
Free opengl buffers.
void resizeGridCubes(const size_t nCubes)
bool isCubeTransparencyEnabled() const
void freeOpenGLResources() override
Free opengl buffers.
static constexpr shader_id_t POINTS
void setGridLinesWidth(float w)
Sets the width of grid lines.