BsPhysicsMesh.cpp 1.0 KB

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