object3d.h 673 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef WALLENGINE_OBJECT3D_H
  2. #define WALLENGINE_OBJECT3D_H
  3. #include <wallpaperengine/video/node.h>
  4. #include <wallpaperengine/scene.h>
  5. namespace wp
  6. {
  7. class object3d : wp::video::node
  8. {
  9. public:
  10. enum Type
  11. {
  12. Type_Material = 0,
  13. Type_Model = 1,
  14. Type_Particle = 2,
  15. Type_Sound = 3,
  16. Type_None = 4
  17. };
  18. object3d (Type type, wp::object* parent);
  19. virtual void render ();
  20. template <class T> T* as();
  21. template <class T> bool is();
  22. protected:
  23. wp::object* m_parent;
  24. private:
  25. Type m_type;
  26. };
  27. };
  28. #endif //WALLENGINE_OBJECT3D_H