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;}
52 virtual void render_dl()
const = 0;
bool m_dl_recreate
If using display lists, this is true when the list must be updated (the object changes, it's the first rendering, etc...).
CRenderizableDisplayList * clone() const
Interface for the smart pointer class.
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
CRenderizable & setColor_u8(uint8_t R, uint8_t G, uint8_t B, uint8_t A=255)
Color components in the range [0,255].
The base class of 3D objects that can be directly rendered through OpenGL.
EIGEN_STRONG_INLINE void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated) ...
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 ...
unsigned int m_dl
Display list ID, for derived classes that want to use it (it's automatically deleted and freed on des...
#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.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
#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...
CRenderizable & setColor_u8(const mrpt::utils::TColor &c) MRPT_OVERRIDE
Changes the default object color.
CRenderizable & setColorG_u8(const uint8_t g) MRPT_OVERRIDE
Color components in the range [0,255].
void readFromStreamRender(mrpt::utils::CStream &in)
CRenderizable & setColorB_u8(const uint8_t b) MRPT_OVERRIDE
Color components in the range [0,255].
void readFromStreamRender(utils::CStream &in)
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
GLdouble GLdouble GLdouble r
virtual CRenderizable & setColor_u8(const mrpt::utils::TColor &c)
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
CRenderizable & setColorA_u8(const uint8_t a) MRPT_OVERRIDE
Color components in the range [0,255].
GLubyte GLubyte GLubyte a