Scene UI
This commit is contained in:
@ -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.
|
||||
|
Reference in New Issue
Block a user