#pragma once /** @brief Base abstract class __declspec( dllexport ) for an elementary renderable. */ class __declspec( dllexport ) ElementaryRenderable { public: /** @brief Shows or hides the renderable. @param visible visibility */ virtual void setVisible(bool visible) = 0; /** @brief Sets the rendering group this renderable belongs to. Rendering groups are to distinguish groups of rendering types (eg.: caustic casters, caustic receivers, shadow casters) if needed. Each group has a unique ID. @param groupID the ID of the group to use */ virtual void setRenderGroup (unsigned char groupID) = 0; /** @brief Retrieves if the renderable is hided or shown. */ virtual bool isVisible() = 0; /** @brief Updates bounding volumes. */ virtual void updateBounds() = 0; };