9 #ifndef opengl_CRenderizableDisplayList_H
10 #define opengl_CRenderizableDisplayList_H
18 #define INVALID_DISPLAY_LIST_ID static_cast<unsigned int>(-1)
79 void render()
const override;
#define DEFINE_VIRTUAL_SERIALIZABLE(class_name)
This declaration must be inserted in virtual CSerializable classes definition:
A renderizable object suitable for rendering with OpenGL's display lists.
CRenderizable & setColor_u8(const mrpt::utils::TColor &c) override
Changes the default object color.
unsigned int m_dl
Display list ID, for derived classes that want to use it (it's automatically deleted and freed on des...
virtual ~CRenderizableDisplayList()
EIGEN_STRONG_INLINE void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated)
void render() const override
Render the object, regenerating the display list if needed, otherwise just calling it.
CRenderizableDisplayList()
virtual void render_dl() const =0
Derived classes must implement this method to the render the object.
CRenderizable & setColorG_u8(const uint8_t g) override
Color components in the range [0,255].
CRenderizable & setColorR_u8(const uint8_t r) override
Color components in the range [0,255].
virtual bool should_skip_display_list_cache() const
Optional: If the object has some state in which creating a display list is NOT preferred over direct ...
CRenderizable & setColorA_u8(const uint8_t a) override
Color components in the range [0,255].
bool m_dl_recreate
If using display lists, this is true when the list must be updated (the object changes,...
CRenderizable & setColor_u8(uint8_t R, uint8_t G, uint8_t B, uint8_t A=255)
Color components in the range [0,255].
void readFromStreamRender(mrpt::utils::CStream &in)
CRenderizable & setColorB_u8(const uint8_t b) override
Color components in the range [0,255].
The base class of 3D objects that can be directly rendered through OpenGL.
virtual CRenderizable & setColor_u8(const mrpt::utils::TColor &c)
void readFromStreamRender(utils::CStream &in)
mrpt::utils::TColor m_color
Color components in the range [0,255].
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
GLdouble GLdouble GLdouble r
GLubyte GLubyte GLubyte a
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.