summaryrefslogtreecommitdiff
path: root/src/KingSystem/Physics/System/physClosestPointQuery.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/KingSystem/Physics/System/physClosestPointQuery.h')
-rw-r--r--src/KingSystem/Physics/System/physClosestPointQuery.h39
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