CmMeshManager.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "CmMeshManager.h"
  2. #include "CmVector3.h"
  3. #include "CmMesh.h"
  4. namespace CamelotEngine
  5. {
  6. MeshManager::MeshManager()
  7. {
  8. mNullMeshData = MeshDataPtr(new MeshData());
  9. mNullMeshData->indexCount = 3;
  10. mNullMeshData->vertexCount = 1;
  11. mNullMeshData->index = new int[3];
  12. mNullMeshData->index[0] = 0;
  13. mNullMeshData->index[1] = 0;
  14. mNullMeshData->index[2] = 0;
  15. std::shared_ptr<MeshData::VertexData> vertexData = std::shared_ptr<MeshData::VertexData>(new MeshData::VertexData(1));
  16. mNullMeshData->vertexBuffers.insert(std::make_pair(0, vertexData));
  17. vertexData->vertex = new Vector3[1];
  18. vertexData->vertex[0] = Vector3(0, 0, 0);
  19. mNullMeshData->declaration->addElement(0, 0, VET_FLOAT3, VES_POSITION);
  20. MeshData::SubMeshData subMesh;
  21. subMesh.indexOffset = 0;
  22. subMesh.indexCount = 3;
  23. mNullMeshData->subMeshes.push_back(subMesh);
  24. }
  25. MeshManager::~MeshManager()
  26. {
  27. }
  28. MeshPtr MeshManager::create()
  29. {
  30. MeshPtr mesh = MeshPtr(new Mesh(), &CoreObject::_deleteDelayed);
  31. mesh->setThisPtr(mesh);
  32. mesh->initialize();
  33. return mesh;
  34. }
  35. MeshPtr MeshManager::createEmpty()
  36. {
  37. MeshPtr mesh = MeshPtr(new Mesh());
  38. mesh->setThisPtr(mesh);
  39. return mesh;
  40. }
  41. }