BsFCollider.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 "BsVector3.h"
  6. #include "BsQuaternion.h"
  7. namespace BansheeEngine
  8. {
  9. class BS_CORE_EXPORT FCollider
  10. {
  11. public:
  12. virtual ~FCollider();
  13. virtual Vector3 getPosition() const = 0;
  14. virtual Quaternion getRotation() const = 0;
  15. virtual void setTransform(const Vector3& pos, const Quaternion& rotation) = 0;
  16. virtual void setIsTrigger(bool value) = 0;
  17. virtual bool getIsTrigger() const = 0;
  18. virtual void setRigidbody(const SPtr<Rigidbody>& rigidbody);
  19. virtual SPtr<Rigidbody> getRigidbody() const { return mRigidbody; }
  20. virtual void setMaterial(const HPhysicsMaterial& material);
  21. virtual HPhysicsMaterial getMaterial() const { return mMaterial; }
  22. virtual void setIsActive(bool value);
  23. virtual bool getIsActive() const { return mIsActive; }
  24. virtual void setContactOffset(float value) = 0;
  25. virtual float getContactOffset() = 0;
  26. virtual void setRestOffset(float value) = 0;
  27. virtual float getRestOffset() = 0;
  28. virtual void setLayer(UINT64 layer);
  29. virtual UINT64 getLayer() const { return mLayer; }
  30. protected:
  31. bool mIsActive = true;
  32. UINT64 mLayer = 1;
  33. SPtr<Rigidbody> mRigidbody;
  34. HPhysicsMaterial mMaterial;
  35. };
  36. }