diff options
Diffstat (limited to 'src/KingSystem/Physics/System/physClosestPointQuery.h')
| -rw-r--r-- | src/KingSystem/Physics/System/physClosestPointQuery.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/KingSystem/Physics/System/physClosestPointQuery.h b/src/KingSystem/Physics/System/physClosestPointQuery.h new file mode 100644 index 00000000..8a5b0b86 --- /dev/null +++ b/src/KingSystem/Physics/System/physClosestPointQuery.h @@ -0,0 +1,39 @@ +#pragma once + +#include <basis/seadTypes.h> +#include <math/seadMatrix.h> +#include <prim/seadRuntimeTypeInfo.h> + +namespace ksys::phys { + +class LayerMaskBuilder; +class RigidBody; +class QueryContactPointInfo; + +class ClosestPointQuery { + SEAD_RTTI_BASE(ClosestPointQuery) +public: + ClosestPointQuery(RigidBody* body, QueryContactPointInfo* contact_point_info); + virtual ~ClosestPointQuery(); + + RigidBody* getBody() const { return mBody; } + QueryContactPointInfo* getContactPointInfo() const { return mContactPointInfo; } + + void setLayerMasks(const LayerMaskBuilder& builder); + void setLayerMasksAndBodyCollisionFilterInfo(const LayerMaskBuilder& builder); + + // 0x0000007100fb0850 + bool execute(bool unk); + bool isSuccess() const; + +protected: + void reset(); + + RigidBody* mBody{}; + QueryContactPointInfo* mContactPointInfo{}; + u32 _18{}; + bool mIsSuccess = false; + sead::Matrix34f mMtx = sead::Matrix34f::ident; +}; + +} // namespace ksys::phys |
