ksys/phys: Start adding ClosestPointQuery and iterator stuff

This commit is contained in:
Léo Lam
2022-03-06 22:50:15 +01:00
parent 6229e5d41a
commit 62959cc554
12 changed files with 249 additions and 16 deletions
@@ -6,12 +6,25 @@ namespace ksys::phys {
class QueryContactPointInfo : public ContactPointInfo {
public:
class Iterator : public ContactPointInfo::Iterator {
public:
using ContactPointInfo::Iterator::Iterator;
void getPointPosition(sead::Vector3f* out, Point point) const override;
sead::Vector3f getPointPosition(Point point) const override;
};
static QueryContactPointInfo* make(sead::Heap* heap, int num_points,
const sead::SafeString& name, int a, int b);
static void free(QueryContactPointInfo* info);
using ContactPointInfo::ContactPointInfo;
~QueryContactPointInfo() override;
auto begin() const { return Iterator(mPoints, mNumContactPoints); }
auto end() const { return Iterator(mPoints, mNumContactPoints, Iterator::IsEnd::Yes); }
friend class ClosestPointQuery;
};
} // namespace ksys::phys