Sound Bakery  v0.1.0
Open-source audio middleware for games
Loading...
Searching...
No Matches
object_tracker.h
1#pragma once
2
3#include "sound_bakery/core/core_fwd.h"
4
5namespace SB::Core
6{
7 class SB_CLASS ObjectTracker
8 {
9 using RawObjectPtr = Object*;
10
11 public:
12 void trackObject(RawObjectPtr object);
13 void untrackObject(RawObjectPtr object, std::optional<rttr::type> typeOverride = std::nullopt);
14
15 std::unordered_set<RawObjectPtr> getObjectsOfCategory(SB_OBJECT_CATEGORY category);
16 std::unordered_set<RawObjectPtr> getObjectsOfType(rttr::type type);
17
18 private:
19 std::unordered_map<SB_OBJECT_CATEGORY, std::unordered_set<RawObjectPtr>> m_categoryToObjects;
20 std::unordered_map<rttr::type, std::unordered_set<RawObjectPtr>> m_typeToObjects;
21 };
22} // namespace SB::Core
Definition database_ptr.h:23
Definition object_tracker.h:8
Simple base Object that all Sound Bakery objects should inherit from.
Definition object.h:33