CmMeshData.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include "CmMeshData.h"
  2. #include "CmVector2.h"
  3. #include "CmVector3.h"
  4. #include "CmMeshDataST.h"
  5. namespace CamelotEngine
  6. {
  7. MeshData::VertexData::VertexData(UINT32 vertexCount, UINT32 streamIdx)
  8. :vertex(nullptr), normal(nullptr), tangent(nullptr),
  9. bitangent(nullptr), uv0(nullptr), uv1(nullptr),
  10. streamIdx(streamIdx), vertexCount(vertexCount)
  11. {
  12. }
  13. MeshData::VertexData::~VertexData()
  14. {
  15. if(vertex != nullptr)
  16. delete [] vertex;
  17. if(normal != nullptr)
  18. delete [] normal;
  19. if(tangent != nullptr)
  20. delete [] tangent;
  21. if(bitangent != nullptr)
  22. delete [] bitangent;
  23. if(uv0 != nullptr)
  24. delete [] uv0;
  25. if(uv1 != nullptr)
  26. delete [] uv1;
  27. }
  28. RTTITypeBase* MeshData::VertexData::getRTTIStatic()
  29. {
  30. return VertexDataST::instance();
  31. }
  32. RTTITypeBase* MeshData::VertexData::getRTTI() const
  33. {
  34. return getRTTIStatic();
  35. }
  36. MeshData::MeshData()
  37. :index(nullptr),
  38. indexCount(0),
  39. vertexCount(0)
  40. { }
  41. MeshData::~MeshData()
  42. {
  43. if(index != nullptr)
  44. delete [] index;
  45. vertexBuffers.clear();
  46. }
  47. /************************************************************************/
  48. /* SERIALIZATION */
  49. /************************************************************************/
  50. RTTITypeBase* MeshData::getRTTIStatic()
  51. {
  52. return MeshDataRTTI::instance();
  53. }
  54. RTTITypeBase* MeshData::getRTTI() const
  55. {
  56. return MeshData::getRTTIStatic();
  57. }
  58. }