mirror of https://github.com/zeldaret/botw.git
Havok: Add hkpBoxShape
This commit is contained in:
parent
ff2e2f9ff7
commit
3a2ba7a23a
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue