CmMeshManager.cpp 966 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "CmMeshManager.h"
  2. #include "CmVector3.h"
  3. #include "CmMesh.h"
  4. namespace CamelotEngine
  5. {
  6. MeshManager::MeshManager()
  7. {
  8. mNullMeshData = MeshDataPtr(CM_NEW(MeshData, GenAlloc) MeshData(), &MemAllocDeleter<MeshData, GenAlloc>::deleter);
  9. auto indices = new UINT32[3];
  10. indices[0] = 0;
  11. indices[1] = 0;
  12. indices[2] = 0;
  13. auto vertices = new Vector3[1];
  14. vertices[0] = Vector3(0, 0, 0);
  15. mNullMeshData->setPositions(vertices, 3);
  16. mNullMeshData->setIndices(indices, 3);
  17. }
  18. MeshManager::~MeshManager()
  19. {
  20. }
  21. MeshPtr MeshManager::create()
  22. {
  23. MeshPtr mesh = MeshPtr(CM_NEW(Mesh, PoolAlloc) Mesh(), &CoreObject::_deleteDelayed<Mesh, PoolAlloc>);
  24. mesh->setThisPtr(mesh);
  25. mesh->initialize();
  26. return mesh;
  27. }
  28. MeshPtr MeshManager::createEmpty()
  29. {
  30. MeshPtr mesh = MeshPtr(CM_NEW(Mesh, PoolAlloc) Mesh(), &CoreObject::_deleteDelayed<Mesh, PoolAlloc>);
  31. mesh->setThisPtr(mesh);
  32. return mesh;
  33. }
  34. }