RenderableNode.h 769 B

123456789101112131415161718192021222324252627282930
  1. #ifndef RENDERABLE_NODE_H
  2. #define RENDERABLE_NODE_H
  3. #include "SceneNode.h"
  4. class Vao;
  5. class Material;
  6. /// Abstract class that acts as an interface for the renderable objects of the scene
  7. class RenderableNode: public SceneNode
  8. {
  9. public:
  10. RenderableNode(SceneNode* parent);
  11. virtual const Vao& getCpVao() const = 0; ///< Get color pass VAO
  12. virtual const Vao& getDpVao() const = 0; ///< Get depth pass VAO
  13. virtual uint getVertIdsNum() const = 0; ///< Get vert ids number for rendering
  14. virtual const Material& getCpMtl() const = 0; ///< Get color pass material
  15. virtual const Material& getDpMtl() const = 0; ///< Get depth pass material
  16. };
  17. inline RenderableNode::RenderableNode(SceneNode* parent):
  18. SceneNode(SNT_RENDERABLE, false, parent)
  19. {}
  20. #endif