/* render/renderext.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_RENDER_RENDEREXT_H__ #define __INCLUDED_RENDER_RENDEREXT_H__ #include #include "core/extension.h" #include "render/particles.h" namespace render { /// the render extension of an entity class RenderExt : public core::Extension { public: RenderExt(core::Entity *entity); ~RenderExt(); typedef std::list ParticleSystems; virtual void frame(float elapsed); inline bool visible() const { return state_visible; } inline bool detailvisible() const { return state_detailvisible; } /** * true if the entity is behind the camera */ inline bool behind() const { return state_behind; } inline float fuzz() const { return state_fuzz; } /// distance to the camera inline float distance() const { return state_distance; } /// particles inline ParticleSystems &particles() { return state_particles; } private: bool state_visible; bool state_detailvisible; bool state_behind; float state_fuzz; float state_distance; ParticleSystems state_particles; }; } // namespace render #endif // __INCLUDED_RENDER_RENDEREXT_H__