diff options
| author | Léo Lam <leo@leolam.fr> | 2022-01-30 19:36:08 +0100 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2022-01-30 19:36:17 +0100 |
| commit | 3a2ba7a23af481e471eb0dc49f4bb02e7b879bf2 (patch) | |
| tree | 57a88b4753c0b127733ebf827dac8b834250b931 /lib | |
| parent | ff2e2f9ff7a8b52b2f098bcda36f353ab9faa595 (diff) | |
Havok: Add hkpBoxShape
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/hkStubs/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | lib/hkStubs/Havok/Physics2012/Collide/Shape/Convex/Box/hkpBoxShape.h | 44 | ||||
| -rw-r--r-- | lib/hkStubs/Havok/Physics2012/Collide/Shape/Convex/hkpConvexShape.h | 2 |
3 files changed, 47 insertions, 0 deletions
diff --git a/lib/hkStubs/CMakeLists.txt b/lib/hkStubs/CMakeLists.txt index bf9397ba..fe6295dc 100644 --- a/lib/hkStubs/CMakeLists.txt +++ b/lib/hkStubs/CMakeLists.txt @@ -109,6 +109,7 @@ add_library(hkStubs OBJECT Havok/Physics2012/Collide/Shape/Compound/Tree/hkpBvTreeShape.h Havok/Physics2012/Collide/Shape/Compound/Tree/Mopp/hkpMoppBvTreeShape.h Havok/Physics2012/Collide/Shape/Convex/hkpConvexShape.h + Havok/Physics2012/Collide/Shape/Convex/Box/hkpBoxShape.h Havok/Physics2012/Collide/Shape/Convex/Capsule/hkpCapsuleShape.h Havok/Physics2012/Collide/Shape/HeightField/hkpSphereRepShape.h Havok/Physics2012/Collide/Shape/Query/hkpRayShapeCollectionFilter.h diff --git a/lib/hkStubs/Havok/Physics2012/Collide/Shape/Convex/Box/hkpBoxShape.h b/lib/hkStubs/Havok/Physics2012/Collide/Shape/Convex/Box/hkpBoxShape.h new file mode 100644 index 00000000..6f1bc5e6 --- /dev/null +++ b/lib/hkStubs/Havok/Physics2012/Collide/Shape/Convex/Box/hkpBoxShape.h @@ -0,0 +1,44 @@ +#pragma once + +#include <Havok/Physics2012/Collide/Shape/Convex/hkpConvexShape.h> + +/// A simple box shape centered around the origin. +class hkpBoxShape : public hkpConvexShape { +public: + HK_DECLARE_CLASS_ALLOCATOR(hkpBoxShape) + HK_DECLARE_REFLECTION() + HKCD_DECLARE_SHAPE_TYPE(hkcdShapeType::BOX) + +public: + hkpBoxShape() {} + explicit hkpBoxShape(const hkVector4& halfExtents, hkReal radius = hkConvexShapeDefaultRadius); + explicit hkpBoxShape(hkFinishLoadedObjectFlag flag); + + ~hkpBoxShape() override; + + void getSupportingVertex(hkVector4Parameter direction, + hkcdVertex& supportingVertexOut) const override; + void convertVertexIdsToVertices(const hkpVertexId* ids, int numIds, + hkcdVertex* verticesOut) const override; + void getCentre(hkVector4& centreOut) const override; + int getNumCollisionSpheres() const override; + const hkSphere* getCollisionSpheres(hkSphere* sphereBuffer) const override; + void getAabb(const hkTransform& localToWorld, hkReal tolerance, hkAabb& out) const override; + hkBool castRay(const hkpShapeRayCastInput& input, + hkpShapeRayCastOutput& results) const override; + void getFirstVertex(hkVector4& v) const override; + + inline const hkVector4& getHalfExtents() const; + void setHalfExtents(const hkVector4& halfExtents); + +protected: + hkVector4 m_halfExtents; +}; + +inline int hkpBoxShape::getNumCollisionSpheres() const { + return 0; +} + +inline const hkVector4& hkpBoxShape::getHalfExtents() const { + return m_halfExtents; +} diff --git a/lib/hkStubs/Havok/Physics2012/Collide/Shape/Convex/hkpConvexShape.h b/lib/hkStubs/Havok/Physics2012/Collide/Shape/Convex/hkpConvexShape.h index a9dfa55a..c53c92c3 100644 --- a/lib/hkStubs/Havok/Physics2012/Collide/Shape/Convex/hkpConvexShape.h +++ b/lib/hkStubs/Havok/Physics2012/Collide/Shape/Convex/hkpConvexShape.h @@ -4,6 +4,8 @@ #include <Havok/Physics2012/Collide/Shape/HeightField/hkpSphereRepShape.h> #include <Havok/Physics2012/Collide/Shape/hkpShape.h> +extern hkReal hkConvexShapeDefaultRadius; + class hkpConvexShape : public hkpSphereRepShape { public: HK_DECLARE_CLASS_ALLOCATOR(hkpConvexShape) |
