BsPhysicsMesh.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsCorePrerequisites.h"
  5. #include "BsResource.h"
  6. namespace BansheeEngine
  7. {
  8. class BS_CORE_EXPORT PhysicsMesh : public Resource
  9. {
  10. public:
  11. PhysicsMesh(const MeshDataPtr& meshData, PhysicsMeshType type);
  12. virtual ~PhysicsMesh() { }
  13. PhysicsMeshType getType() const { return mType; }
  14. virtual MeshDataPtr getMeshData() const = 0;
  15. static HPhysicsMesh create(const MeshDataPtr& meshData, PhysicsMeshType type = PhysicsMeshType::Convex);
  16. static PhysicsMeshPtr _createPtr(const MeshDataPtr& meshData, PhysicsMeshType type);
  17. protected:
  18. /** @copydoc PhysicsMesh::initialize() */
  19. void initialize() override;
  20. PhysicsMeshType mType;
  21. MeshDataPtr mInitMeshData; // Transient, only used during initalization
  22. /************************************************************************/
  23. /* SERIALIZATION */
  24. /************************************************************************/
  25. public:
  26. friend class PhysicsMeshRTTI;
  27. static RTTITypeBase* getRTTIStatic();
  28. RTTITypeBase* getRTTI() const override;
  29. };
  30. }