CmMeshRTTI.h 756 B

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