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

Method createAndAddSubsetClonedObjects

src/utilities/idf/Workspace.cpp:2341–2368  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2339 }
2340
2341 void Workspace_Impl::createAndAddSubsetClonedObjects(const std::shared_ptr<detail::Workspace_Impl>& thisImpl,
2342 std::shared_ptr<detail::Workspace_Impl> cloneImpl, const std::vector<Handle>& handles,
2343 bool keepHandles) const {
2344 // make sure versionObject comes along for the ride
2345 HandleVector wHandles = handles;
2346 if (OptionalWorkspaceObject vo = versionObject()) {
2347 if (std::find(wHandles.begin(), wHandles.end(), vo->handle()) == wHandles.end()) {
2348 wHandles.insert(wHandles.begin(), vo->handle());
2349 }
2350 }
2351
2352 // construct clone's WorkspaceObject_ImplPtrs
2353 detail::WorkspaceObject_ImplPtrVector newObjectImplPtrs;
2354 HandleMap oldNewHandleMap;
2355 for (const Handle& h : wHandles) {
2356 OptionalWorkspaceObject object = thisImpl->getObject(h);
2357 if (object) {
2358 newObjectImplPtrs.push_back(cloneImpl->createObject(object->getImpl<detail::WorkspaceObject_Impl>(), keepHandles));
2359 Handle newH = newObjectImplPtrs.back()->handle();
2360 if (!keepHandles) {
2361 oldNewHandleMap.insert(HandleMap::value_type(h, newH));
2362 }
2363 }
2364 }
2365
2366 // add Object_ImplPtrs to clone's Workspace_Impl
2367 cloneImpl->addClones(newObjectImplPtrs, oldNewHandleMap, true);
2368 }
2369
2370 std::vector<WorkspaceObject> Workspace_Impl::allObjects() const {
2371 WorkspaceObjectVector result;

Callers

nothing calls this directly

Calls 8

beginMethod · 0.80
addClonesMethod · 0.80
endMethod · 0.45
handleMethod · 0.45
insertMethod · 0.45
getObjectMethod · 0.45
push_backMethod · 0.45
createObjectMethod · 0.45

Tested by

no test coverage detected