object3d.h 645 B

123456789101112131415161718192021222324252627282930313233343536
  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_None = 3
  16. };
  17. object3d (Type type, wp::object* parent);
  18. virtual void render ();
  19. template <class T> T* as();
  20. template <class T> bool is();
  21. protected:
  22. wp::object* m_parent;
  23. private:
  24. Type m_type;
  25. };
  26. };
  27. #endif //WALLENGINE_OBJECT3D_H