36 void render(
const RenderContext& rc)
const override;
A wrapper for an OpenGL vertex array object (VAO).
A wrapper for an OpenGL buffer object.
virtual shader_list_t requiredShaders() const override
Returns the ID of the OpenGL shader program required to render this class.
void notifyChange() const
Call to enable calling renderUpdateBuffers() before the next render() rendering iteration.
void destroy()
Automatically called upon destructor, no need for the user to call it in normal situations.
COpenGLVertexArrayObject m_vao
The base class of 3D objects that can be directly rendered through OpenGL.
virtual ~CRenderizableShaderWireFrame()
void setLineWidth(float w)
void destroy()
Automatically called upon destructor, no need for the user to call it in normal situations.
std::vector< shader_id_t > shader_list_t
A list of shader IDs.
bool isAntiAliasingEnabled() const
#define DEFINE_VIRTUAL_SERIALIZABLE(class_name)
This declaration must be inserted in virtual CSerializable classes definition:
std::vector< mrpt::math::TPoint3Df > m_vertex_buffer_data
COpenGLBuffer m_vertexBuffer
const auto & shaderWireframeVertexColorBuffer() const
static constexpr shader_id_t WIREFRAME
float getLineWidth() const
std::vector< mrpt::img::TColor > m_color_buffer_data
void enableAntiAliasing(bool enable=true)
Renderizable generic renderer for objects using the wireframe shader.
CRenderizableShaderWireFrame()=default
The namespace for 3D scene representation and rendering.
const auto & shaderWireframeVertexPointBuffer() const
COpenGLBuffer m_colorBuffer
virtual void onUpdateBuffers_Wireframe()=0
Must be implemented in derived classes to update the geometric entities to be drawn in "m_*_buffer" f...
void freeOpenGLResources() override
Free opengl buffers.
void render(const RenderContext &rc) const override
Implements the rendering of 3D objects in each class derived from CRenderizable.
void renderUpdateBuffers() const override
Called whenever m_outdatedBuffers is true: used to re-generate OpenGL vertex buffers, etc.