CmMeshManager.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "CmMeshManager.h"
  2. #include "CmVector3.h"
  3. #include "CmMesh.h"
  4. namespace CamelotFramework
  5. {
  6. MeshManager::MeshManager()
  7. {
  8. mNullMeshData = MeshDataPtr(CM_NEW(MeshData, GenAlloc) MeshData(1), &MemAllocDeleter<MeshData, GenAlloc>::deleter);
  9. mNullMeshData->beginDesc();
  10. mNullMeshData->addVertElem(VET_FLOAT3, VES_POSITION);
  11. mNullMeshData->addSubMesh(3);
  12. mNullMeshData->endDesc();
  13. auto vecIter = mNullMeshData->getVec3DataIter(VES_POSITION);
  14. vecIter.setValue(Vector3(0, 0, 0));
  15. auto indices = mNullMeshData->getIndices32(0);
  16. indices[0] = 0;
  17. indices[1] = 0;
  18. indices[2] = 0;
  19. }
  20. MeshManager::~MeshManager()
  21. {
  22. }
  23. MeshPtr MeshManager::create()
  24. {
  25. MeshPtr mesh = MeshPtr(CM_NEW(Mesh, PoolAlloc) Mesh(), &CoreObject::_deleteDelayed<Mesh, PoolAlloc>);
  26. mesh->setThisPtr(mesh);
  27. mesh->initialize();
  28. return mesh;
  29. }
  30. MeshPtr MeshManager::createEmpty()
  31. {
  32. MeshPtr mesh = MeshPtr(CM_NEW(Mesh, PoolAlloc) Mesh(), &CoreObject::_deleteDelayed<Mesh, PoolAlloc>);
  33. mesh->setThisPtr(mesh);
  34. return mesh;
  35. }
  36. }