| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #include "CmMeshData.h"
- #include "CmVector2.h"
- #include "CmVector3.h"
- #include "CmHardwareBufferManager.h"
- #include "CmMeshDataRTTI.h"
- namespace CamelotEngine
- {
- MeshData::VertexData::VertexData(UINT32 vertexCount, UINT32 streamIdx)
- :vertex(nullptr), color(nullptr), normal(nullptr), tangent(nullptr),
- bitangent(nullptr), uv0(nullptr), uv1(nullptr),
- streamIdx(streamIdx), vertexCount(vertexCount)
- {
- }
- MeshData::VertexData::~VertexData()
- {
- if(vertex != nullptr)
- delete [] vertex;
- if(color != nullptr)
- delete [] color;
- if(normal != nullptr)
- delete [] normal;
- if(tangent != nullptr)
- delete [] tangent;
- if(bitangent != nullptr)
- delete [] bitangent;
- if(uv0 != nullptr)
- delete [] uv0;
- if(uv1 != nullptr)
- delete [] uv1;
- }
- RTTITypeBase* MeshData::VertexData::getRTTIStatic()
- {
- return VertexDataRTTI::instance();
- }
- RTTITypeBase* MeshData::VertexData::getRTTI() const
- {
- return getRTTIStatic();
- }
- MeshData::MeshData()
- :index(nullptr),
- indexCount(0),
- vertexCount(0)
- {
- declaration = HardwareBufferManager::instance().createVertexDeclaration();
- }
- MeshData::~MeshData()
- {
- if(index != nullptr)
- delete [] index;
- vertexBuffers.clear();
- declaration->destroy();
- }
- /************************************************************************/
- /* SERIALIZATION */
- /************************************************************************/
- RTTITypeBase* MeshData::getRTTIStatic()
- {
- return MeshDataRTTI::instance();
- }
- RTTITypeBase* MeshData::getRTTI() const
- {
- return MeshData::getRTTIStatic();
- }
- }
|