BsMeshCollider.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  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 "BsCollider.h"
  6. #include "BsIResourceListener.h"
  7. namespace BansheeEngine
  8. {
  9. class BS_CORE_EXPORT MeshCollider : public Collider, public IResourceListener
  10. {
  11. public:
  12. MeshCollider();
  13. void setMesh(const HPhysicsMesh& mesh) { mMesh = mesh; onMeshChanged(); markListenerResourcesDirty(); }
  14. HPhysicsMesh getMesh() const { return mMesh; }
  15. static SPtr<MeshCollider> create(const Vector3& position = Vector3::ZERO,
  16. const Quaternion& rotation = Quaternion::IDENTITY);
  17. protected:
  18. /** @copydoc IResourceListener::getListenerResources */
  19. void getListenerResources(Vector<HResource>& resources) override;
  20. /** @copydoc IResourceListener::notifyResourceLoaded */
  21. void notifyResourceLoaded(const HResource& resource) override;
  22. /** @copydoc IResourceListener::notifyResourceChanged */
  23. void notifyResourceChanged(const HResource& resource) override;
  24. virtual void onMeshChanged() { }
  25. HPhysicsMesh mMesh;
  26. };
  27. }