Havok: Add hkpCdPointCollector

This commit is contained in:
Léo Lam 2022-03-08 00:22:30 +01:00
parent 6830bcbb64
commit d6e7f6b93e
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
3 changed files with 63 additions and 0 deletions

View File

@ -93,6 +93,7 @@ add_library(hkStubs OBJECT
Havok/Physics2012/Collide/Agent/Collidable/hkpCollidable.h
Havok/Physics2012/Collide/Agent/Collidable/hkpCollidableQualityType.h
Havok/Physics2012/Collide/Agent/ContactMgr/hkpContactMgr.h
Havok/Physics2012/Collide/Agent/Query/hkpCdPointCollector.h
Havok/Physics2012/Collide/Agent3/BvTree3/hkpBvTreeAgent3.h
Havok/Physics2012/Collide/Agent3/Machine/Nn/hkpAgentNnTrack.h
Havok/Physics2012/Collide/Agent3/Machine/Nn/hkpLinkedCollidable.h

View File

@ -1,5 +1,33 @@
#pragma once
#include <cfloat>
#define HK_FLOAT_PI 3.14159265358979f
#define HK_FLOAT_DEG_TO_RAD (HK_FLOAT_PI / 180.0f)
#define HK_FLOAT_RAD_TO_DEG (180.0f / HK_FLOAT_PI)
#define HK_FLOAT_EPSILON FLT_EPSILON
#define HK_FLOAT_MIN FLT_MIN
#define HK_FLOAT_MAX 3.40282e+38f
#define HK_FLOAT_HIGH 1.8446726e+019f
#if defined(HK_REAL_IS_DOUBLE)
#define HK_REAL_PI HK_DOUBLE_PI
#define HK_REAL_DEG_TO_RAD HK_DOUBLE_DEG_TO_RAD
#define HK_REAL_RAD_TO_DEG HK_DOUBLE_RAD_TO_DEG
#define HK_REAL_EPSILON HK_DOUBLE_EPSILON
#define HK_REAL_MIN HK_DOUBLE_MIN
#define HK_REAL_MAX HK_DOUBLE_MAX
#define HK_REAL_HIGH HK_DOUBLE_HIGH
#else
#define HK_REAL_PI HK_FLOAT_PI
#define HK_REAL_DEG_TO_RAD HK_FLOAT_DEG_TO_RAD
#define HK_REAL_RAD_TO_DEG HK_FLOAT_RAD_TO_DEG
#define HK_REAL_EPSILON HK_FLOAT_EPSILON
#define HK_REAL_MIN HK_FLOAT_MIN
#define HK_REAL_MAX HK_FLOAT_MAX
#define HK_REAL_HIGH HK_FLOAT_HIGH
#endif
enum hkVectorConstant {
HK_QUADREAL_BEGIN,

View File

@ -0,0 +1,34 @@
#pragma once
#include <Havok/Common/Base/hkBase.h>
struct hkpCdPoint;
class hkpCdPointCollector {
public:
HK_DECLARE_CLASS_ALLOCATOR(hkpCdPointCollector)
inline hkpCdPointCollector();
inline virtual ~hkpCdPointCollector() = default;
virtual void addCdPoint(const hkpCdPoint& point) = 0;
inline virtual void reset();
inline hkReal getEarlyOutDistance() const;
protected:
hkReal m_earlyOutDistance;
};
inline hkpCdPointCollector::hkpCdPointCollector() {
reset();
}
inline void hkpCdPointCollector::reset() {
m_earlyOutDistance = HK_REAL_MAX;
}
inline hkReal hkpCdPointCollector::getEarlyOutDistance() const {
return m_earlyOutDistance;
}