BsPhysicsMesh.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsPhysicsMesh.h"
  4. #include "BsPhysicsMeshRTTI.h"
  5. #include "BsResources.h"
  6. #include "BsPhysics.h"
  7. namespace BansheeEngine
  8. {
  9. PhysicsMesh::PhysicsMesh(const MeshDataPtr& meshData, PhysicsMeshType type)
  10. :mInitMeshData(meshData), mType(type)
  11. { }
  12. HPhysicsMesh PhysicsMesh::create(const MeshDataPtr& meshData, PhysicsMeshType type)
  13. {
  14. PhysicsMeshPtr newMesh = _createPtr(meshData, type);
  15. return static_resource_cast<PhysicsMesh>(gResources()._createResourceHandle(newMesh));
  16. }
  17. PhysicsMeshPtr PhysicsMesh::_createPtr(const MeshDataPtr& meshData, PhysicsMeshType type)
  18. {
  19. PhysicsMeshPtr newMesh = gPhysics().createMesh(meshData, type);
  20. newMesh->_setThisPtr(newMesh);
  21. newMesh->initialize();
  22. return newMesh;
  23. }
  24. void PhysicsMesh::initialize()
  25. {
  26. mInitMeshData = nullptr;
  27. Resource::initialize();
  28. }
  29. RTTITypeBase* PhysicsMesh::getRTTIStatic()
  30. {
  31. return PhysicsMeshRTTI::instance();
  32. }
  33. RTTITypeBase* PhysicsMesh::getRTTI() const
  34. {
  35. return getRTTIStatic();
  36. }
  37. }