CmMeshRTTI.h 783 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmRTTIType.h"
  4. #include "CmMesh.h"
  5. #include "CmMeshManager.h"
  6. namespace CamelotEngine
  7. {
  8. class MeshRTTI : public RTTIType<Mesh, Resource, MeshRTTI>
  9. {
  10. MeshDataPtr getMeshData(Mesh* obj) { return obj->getMeshData(); }
  11. void setMeshData(Mesh* obj, MeshDataPtr meshData) { obj->setMeshData(meshData); }
  12. public:
  13. MeshRTTI()
  14. {
  15. addReflectablePtrField("mMeshData", 0, &MeshRTTI::getMeshData, &MeshRTTI::setMeshData);
  16. }
  17. virtual std::shared_ptr<IReflectable> newRTTIObject()
  18. {
  19. return MeshManager::instance().create();
  20. }
  21. virtual const String& getRTTIName()
  22. {
  23. static String name = "Mesh";
  24. throw name;
  25. }
  26. virtual UINT32 getRTTIId()
  27. {
  28. return TID_Mesh;
  29. }
  30. };
  31. }