mirror of https://github.com/zeldaret/botw.git
Havok: Add hkpShapeRayCastOutput
This commit is contained in:
parent
1a9e217dc1
commit
5861ce0011
|
@ -120,6 +120,7 @@ add_library(hkStubs OBJECT
|
||||||
Havok/Physics2012/Collide/Shape/HeightField/hkpSphereRepShape.h
|
Havok/Physics2012/Collide/Shape/HeightField/hkpSphereRepShape.h
|
||||||
Havok/Physics2012/Collide/Shape/HeightField/Plane/hkpPlaneShape.h
|
Havok/Physics2012/Collide/Shape/HeightField/Plane/hkpPlaneShape.h
|
||||||
Havok/Physics2012/Collide/Shape/Query/hkpRayShapeCollectionFilter.h
|
Havok/Physics2012/Collide/Shape/Query/hkpRayShapeCollectionFilter.h
|
||||||
|
Havok/Physics2012/Collide/Shape/Query/hkpShapeRayCastCollectorOutput.h
|
||||||
Havok/Physics2012/Collide/Shape/Query/hkpShapeRayCastInput.h
|
Havok/Physics2012/Collide/Shape/Query/hkpShapeRayCastInput.h
|
||||||
Havok/Physics2012/Collide/Util/Welding/hkpWeldingUtility.h
|
Havok/Physics2012/Collide/Util/Welding/hkpWeldingUtility.h
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Havok/Common/Base/hkBase.h>
|
||||||
|
|
||||||
|
struct hkpShapeRayCastCollectorOutput {
|
||||||
|
HK_DECLARE_CLASS_ALLOCATOR(hkpShapeRayCastCollectorOutput)
|
||||||
|
|
||||||
|
inline hkpShapeRayCastCollectorOutput();
|
||||||
|
|
||||||
|
inline hkBool hasHit() const;
|
||||||
|
|
||||||
|
inline void reset();
|
||||||
|
|
||||||
|
hkVector4 m_normal;
|
||||||
|
hkReal m_hitFraction;
|
||||||
|
int m_extraInfo;
|
||||||
|
int m_pad[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
inline hkpShapeRayCastCollectorOutput::hkpShapeRayCastCollectorOutput() {
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline hkBool hkpShapeRayCastCollectorOutput::hasHit() const {
|
||||||
|
return m_hitFraction < 1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void hkpShapeRayCastCollectorOutput::reset() {
|
||||||
|
m_hitFraction = 1.0f;
|
||||||
|
m_extraInfo = -1;
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Havok/Physics2012/Collide/Shape/Query/hkpShapeRayCastCollectorOutput.h>
|
||||||
|
#include <Havok/Physics2012/Collide/Shape/hkpShape.h>
|
||||||
|
#include <Havok/Physics2012/Collide/Shape/hkpShapeBase.h>
|
||||||
|
|
||||||
|
struct hkpShapeRayCastOutput : public hkpShapeRayCastCollectorOutput {
|
||||||
|
HK_DECLARE_CLASS_ALLOCATOR(hkpShapeRayCastOutput)
|
||||||
|
|
||||||
|
static constexpr int MAX_HIERARCHY_DEPTH = 8;
|
||||||
|
|
||||||
|
HK_FORCE_INLINE hkpShapeRayCastOutput();
|
||||||
|
|
||||||
|
HK_FORCE_INLINE void changeLevel(int delta);
|
||||||
|
HK_FORCE_INLINE void setKey(hkpShapeKey key);
|
||||||
|
HK_FORCE_INLINE int getLevel() const;
|
||||||
|
|
||||||
|
HK_FORCE_INLINE void reset();
|
||||||
|
|
||||||
|
hkpShapeKey m_shapeKeys[MAX_HIERARCHY_DEPTH];
|
||||||
|
|
||||||
|
private:
|
||||||
|
HK_FORCE_INLINE void _reset();
|
||||||
|
|
||||||
|
int m_shapeKeyIndex;
|
||||||
|
};
|
||||||
|
|
||||||
|
inline hkpShapeRayCastOutput::hkpShapeRayCastOutput() {
|
||||||
|
_reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void hkpShapeRayCastOutput::changeLevel(int delta) {
|
||||||
|
m_shapeKeyIndex += delta;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void hkpShapeRayCastOutput::setKey(hkpShapeKey key) {
|
||||||
|
m_shapeKeys[m_shapeKeyIndex] = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int hkpShapeRayCastOutput::getLevel() const {
|
||||||
|
return m_shapeKeyIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void hkpShapeRayCastOutput::reset() {
|
||||||
|
hkpShapeRayCastCollectorOutput::reset();
|
||||||
|
_reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void hkpShapeRayCastOutput::_reset() {
|
||||||
|
m_shapeKeyIndex = 0;
|
||||||
|
m_shapeKeys[0] = HK_INVALID_SHAPE_KEY;
|
||||||
|
}
|
Loading…
Reference in New Issue