MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / getRecursiveResources

Function getRecursiveResources

src/model/ResourceObject.cpp:104–125  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

102 }
103
104 std::vector<ResourceObject> getRecursiveResources(const ModelObject& object) {
105 std::set<Handle> resultSet;
106 std::pair<HandleSet::const_iterator, bool> insertResult;
107 std::vector<ResourceObject> result;
108
109 std::deque<ModelObject> objectQueue;
110 objectQueue.push_back(object);
111
112 while (!objectQueue.empty()) {
113 ModelObject currentObject(objectQueue[0]);
114 objectQueue.pop_front();
115 for (const ResourceObject& resource : currentObject.resources()) {
116 insertResult = resultSet.insert(resource.handle());
117 if (insertResult.second) {
118 result.push_back(resource);
119 objectQueue.push_back(resource.cast<ModelObject>());
120 }
121 }
122 }
123
124 return result;
125 }
126
127 std::vector<std::vector<ModelObject>> getRecursiveResourceSubTrees(const ModelObject& object, bool includeComponentCostLineItems) {
128 std::set<Handle> resultSet;

Callers 1

Calls 5

push_backMethod · 0.45
emptyMethod · 0.45
resourcesMethod · 0.45
insertMethod · 0.45
handleMethod · 0.45

Tested by

no test coverage detected