BsFCollider.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. // Not used for triggers, only relevant if parent rigidbody uses child mass
  19. virtual void setMass(float mass) { mMass = mass; }
  20. virtual float getMass() const { return mMass; }
  21. virtual void setRigidbody(const SPtr<Rigidbody>& rigidbody);
  22. virtual SPtr<Rigidbody> getRigidbody() const { return mRigidbody; }
  23. virtual void setMaterial(const HPhysicsMaterial& material);
  24. virtual HPhysicsMaterial getMaterial() const { return mMaterial; }
  25. virtual void setContactOffset(float value) = 0;
  26. virtual float getContactOffset() const = 0;
  27. virtual void setRestOffset(float value) = 0;
  28. virtual float getRestOffset() const = 0;
  29. virtual void setLayer(UINT64 layer);
  30. virtual UINT64 getLayer() const { return mLayer; }
  31. protected:
  32. UINT64 mLayer = 1;
  33. float mMass = 1.0f;
  34. SPtr<Rigidbody> mRigidbody;
  35. HPhysicsMaterial mMaterial;
  36. };
  37. }