9 #ifndef opengl_CRenderizableDisplayList_H
10 #define opengl_CRenderizableDisplayList_H
18 #define INVALID_DISPLAY_LIST_ID static_cast<unsigned int>(-1)
49 EIGEN_STRONG_INLINE
void notifyChange()
const { m_dl_recreate=
true;}
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
#define DEFINE_VIRTUAL_SERIALIZABLE(class_name)
This declaration must be inserted in virtual CSerializable classes definition:
#define DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
This declaration must be inserted in all CSerializable classes definition, before the class declarati...
A renderizable object suitable for rendering with OpenGL's display lists.
CRenderizableDisplayList()
CRenderizable & setColorG_u8(const uint8_t g) MRPT_OVERRIDE
Color components in the range [0,255].
unsigned int m_dl
Display list ID, for derived classes that want to use it (it's automatically deleted and freed on des...
CRenderizableDisplayList * clone() const
Interface for the stlplus smart pointer class.
void render() const MRPT_OVERRIDE
Render the object, regenerating the display list if needed, otherwise just calling it.
EIGEN_STRONG_INLINE void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated)
CRenderizable & setColor_u8(const mrpt::utils::TColor &c) MRPT_OVERRIDE
Changes the default object color.
virtual void render_dl() const =0
Derived classes must implement this method to the render the object.
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) MRPT_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,...
void readFromStreamRender(mrpt::utils::CStream &in)
virtual ~CRenderizableDisplayList()
CRenderizable & setColorB_u8(const uint8_t b) MRPT_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)
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.