1#pragma once
2
3#include <basis/seadTypes.h>
4#include <math/seadVector.h>
5
6namespace al {
7class AreaObj;
8
9class AreaObjGroup {
10public:
11 AreaObjGroup(const char* groupName, const s32 capacity);
12 void createBuffer();
13 void createBuffer(const s32 capacity);
14 AreaObj* getAreaObj(const s32 index) const;
15 AreaObj* getInVolumeAreaObj(const sead::Vector3f& position) const;
16 void incrementCount();
17 void registerAreaObj(AreaObj* newAreaObj);
18
19 const char* getName() const { return mGroupName; };
20
21 s32 getSize() const { return mCount; }
22
23private:
24 const char* mGroupName;
25 AreaObj** mBuffer = nullptr;
26 s32 mCount = 0;
27 s32 mCapacity;
28};
29
30static_assert(sizeof(AreaObjGroup) == 0x18);
31
32} // namespace al
33