BsPhysXBoxCollider.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsPhysXPrerequisites.h"
  5. #include "Physics/BsBoxCollider.h"
  6. #include "PxPhysics.h"
  7. namespace bs
  8. {
  9. /** @addtogroup PhysX
  10. * @{
  11. */
  12. /** PhysX implementation of a BoxCollider. */
  13. class PhysXBoxCollider : public BoxCollider
  14. {
  15. public:
  16. PhysXBoxCollider(physx::PxPhysics* physx, const Vector3& position, const Quaternion& rotation,
  17. const Vector3& extents);
  18. ~PhysXBoxCollider();
  19. /** @copydoc BoxCollider::setScale */
  20. void setScale(const Vector3& scale) override;
  21. /** @copydoc BoxCollider::setExtents */
  22. void setExtents(const Vector3& extents) override;
  23. /** @copydoc BoxCollider::getExtents */
  24. Vector3 getExtents() const override;
  25. private:
  26. /** Returns the PhysX collider implementation common to all colliders. */
  27. FPhysXCollider* getInternal() const;
  28. /** Applies the sphere geometry to the internal object based on set extents and scale. */
  29. void applyGeometry();
  30. Vector3 mExtents;
  31. };
  32. /** @} */
  33. }