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

Method demandComponents

src/model/Loop.cpp:226–246  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

224 }
225
226 std::vector<ModelObject> Loop_Impl::demandComponents(const HVACComponent& inletComp, const HVACComponent& outletComp,
227 openstudio::IddObjectType type) const {
228 std::vector<HVACComponent> visited;
229 visited.push_back(inletComp);
230 std::vector<HVACComponent> allPaths;
231
232 if (inletComp == outletComp) {
233 allPaths.push_back(inletComp);
234 } else {
235 findModelObjects(outletComp, visited, allPaths, true);
236 }
237 std::vector<ModelObject> modelObjects = std::vector<ModelObject>(allPaths.begin(), allPaths.end());
238
239 // Filter modelObjects for type
240 if (type != IddObjectType::Catchall) {
241 modelObjects.erase(
242 std::remove_if(modelObjects.begin(), modelObjects.end(), [&](const auto& mo) -> bool { return mo.iddObjectType() != type; }),
243 modelObjects.end());
244 }
245 return modelObjects;
246 }
247
248 template <typename T>
249 struct Duplicate

Callers 15

componentsMethod · 0.95
addToDocumentMethod · 0.80
addToNodeMethod · 0.80
addToNodeMethod · 0.80
addToNodeMethod · 0.80
addToNodeMethod · 0.80
addBranchForZoneImplMethod · 0.80
addToNodeMethod · 0.80
addToNodeMethod · 0.80
addToNodeMethod · 0.80
addBranchForZoneImplMethod · 0.80

Calls 8

findModelObjectsFunction · 0.85
beginMethod · 0.80
push_backMethod · 0.45
endMethod · 0.45
eraseMethod · 0.45
iddObjectTypeMethod · 0.45
insertMethod · 0.45
sizeMethod · 0.45

Tested by 15

TEST_FFunction · 0.64
TEST_FFunction · 0.64
TEST_FFunction · 0.64
TEST_FFunction · 0.64
TEST_FFunction · 0.64
TEST_FFunction · 0.64
TEST_FFunction · 0.64
TEST_FFunction · 0.64
TEST_FFunction · 0.64
TEST_FFunction · 0.64
TEST_FFunction · 0.64
TEST_FFunction · 0.64