This commit is contained in:
2023-03-05 15:51:07 -08:00
parent 7d20397e83
commit aeb5014a07
10 changed files with 49 additions and 8 deletions

View File

@ -7,6 +7,7 @@
#include "display/Transform.hpp"
#include "event/Event.hpp"
#include "scene/Scene.hpp"
#include "util/array.hpp"
namespace Dawn {
class SceneItemComponent;
@ -113,6 +114,22 @@ namespace Dawn {
}
return children;
}
template<class T>
std::vector<T*> findChildrenDeep() {
std::vector<Transform*> itemsToCheck = this->transform.children;
std::vector<T*> itemsFound;
while(itemsToCheck.size() > 0) {
auto item = itemsToCheck.begin();
vectorAppend(&itemsToCheck, (*item)->children);
auto component = (*item)->item->getComponent<T>();
if(component != nullptr) itemsFound.push_back(component);
itemsToCheck.erase(item);
}
return itemsFound;
}
/**
* Destroy this SceneItem.