SceneObject.h 999 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef ANKI_SCENE_SCENE_OBJECT_H
  2. #define ANKI_SCENE_SCENE_OBJECT_H
  3. #include "anki/scene/Common.h"
  4. #include "anki/util/Object.h"
  5. namespace anki {
  6. #if 0
  7. // Forward
  8. class SceneGraph;
  9. /// The SceneObject deleter
  10. template<typename T, typename Alloc>
  11. struct SceneObjectDeleter
  12. {
  13. void operator()(T* x)
  14. {
  15. Alloc alloc = x->getSceneAllocator();
  16. alloc.destroy(x);
  17. alloc.deallocate(x, 1);
  18. }
  19. };
  20. /// The base of all scene related objects
  21. class SceneObject: public Object<SceneObject, SceneAllocator<SceneObject>,
  22. SceneObjectDeleter<SceneObject, SceneAllocator<SceneObject>>>
  23. {
  24. public:
  25. typedef Object<SceneObject, SceneAllocator<SceneObject>,
  26. SceneObjectDeleter<SceneObject, SceneAllocator<SceneObject>>> Base;
  27. SceneObject(SceneObject* parent, SceneGraph* scene);
  28. SceneAllocator<U8> getSceneAllocator() const;
  29. SceneAllocator<U8> getSceneFrameAllocator() const;
  30. SceneGraph& getSceneGraph()
  31. {
  32. return *scene;
  33. }
  34. public:
  35. SceneGraph* scene;
  36. };
  37. #endif
  38. } // end namespace anki
  39. #endif