37 void render(
const RenderContext& rc)
const override;
void enableLight(bool enable=true)
bool textureImageHasBeenAssigned() const
bool m_enableTransparency
Of the texture using "m_textureImageAlpha".
const mrpt::img::CImage & getTextureAlphaImage() const
void renderUpdateBuffers() const override
Called whenever m_outdatedBuffers is true: used to re-generate OpenGL vertex buffers, etc.
const auto & shaderTexturedTrianglesBuffer() const
static constexpr shader_id_t TEXTURED_TRIANGLES
A wrapper for an OpenGL vertex array object (VAO).
A wrapper for an OpenGL buffer object.
void enableTextureLinearInterpolation(bool enable)
Enable linear interpolation of textures (default=false, use nearest pixel)
void destroy()
Automatically called upon destructor, no need for the user to call it in normal situations.
mrpt::img::CImage m_textureImage
The base class of 3D objects that can be directly rendered through OpenGL.
COpenGLVertexArrayObject m_vao
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.
#define DEFINE_VIRTUAL_SERIALIZABLE(class_name)
This declaration must be inserted in virtual CSerializable classes definition:
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 readFromStreamTexturedObject(mrpt::serialization::CArchive &in)
static void releaseTextureName(unsigned int i)
CRenderizableShaderTexturedTriangles()=default
virtual void onUpdateBuffers_TexturedTriangles()=0
Must be implemented in derived classes to update the geometric entities to be drawn in "m_*_buffer" f...
virtual shader_list_t requiredShaders() const override
Returns the ID of the OpenGL shader program required to render this class.
const mrpt::img::CImage & getTextureImage() const
static unsigned int getNewTextureNumber()
Virtual base class for "archives": classes abstracting I/O streams.
mrpt::vision::TStereoCalibResults out
bool isLightEnabled() const
void writeToStreamTexturedObject(mrpt::serialization::CArchive &out) const
The namespace for 3D scene representation and rendering.
mrpt::img::CImage m_textureImageAlpha
std::vector< mrpt::opengl::TTriangle > m_triangles
List of triangles.
unsigned int m_glTextureName
virtual void initializeTextures() const override
VERY IMPORTANT: If you use a multi-thread application, you MUST call this from the same thread that w...
Renderizable generic renderer for objects using the triangles-with-a-texture shader.
virtual ~CRenderizableShaderTexturedTriangles() override
void assignImage(const mrpt::img::CImage &img, const mrpt::img::CImage &imgAlpha)
Assigns a texture and a transparency image, and enables transparency (If the images are not 2^N x 2^M...
bool m_textureInterpolate
bool m_textureImageAssigned
A class for storing images as grayscale or RGB bitmaps.
COpenGLBuffer m_vertexBuffer