#3214 Use template function to get referencing objects of specified type

This commit is contained in:
Magne Sjaastad
2018-08-15 12:55:45 +02:00
parent 97c3b9efea
commit 59f9d189e5
8 changed files with 45 additions and 58 deletions

View File

@@ -96,11 +96,10 @@ void RimSummaryCaseCollection::addCase(RimSummaryCase* summaryCase, bool updateC
m_cases.push_back(summaryCase);
// Update derived ensemble cases (if any)
std::vector<caf::PdmObjectHandle*> referringObjects;
objectsWithReferringPtrFields(referringObjects);
for (auto refObj : referringObjects)
std::vector<RimDerivedEnsembleCaseCollection*> referringObjects;
objectsWithReferringPtrFieldsOfType(referringObjects);
for (auto derEnsemble : referringObjects)
{
auto derEnsemble = dynamic_cast<RimDerivedEnsembleCaseCollection*>(refObj);
if (!derEnsemble) continue;
derEnsemble->updateDerivedEnsembleCases();
@@ -421,12 +420,11 @@ void RimSummaryCaseCollection::onLoadDataAndUpdate()
void RimSummaryCaseCollection::updateReferringCurveSets()
{
// Update curve set referring to this group
std::vector<PdmObjectHandle*> referringObjects;
objectsWithReferringPtrFields(referringObjects);
std::vector<RimEnsembleCurveSet*> referringObjects;
objectsWithReferringPtrFieldsOfType(referringObjects);
for (PdmObjectHandle* obj : referringObjects)
for (auto curveSet : referringObjects)
{
RimEnsembleCurveSet* curveSet = dynamic_cast<RimEnsembleCurveSet*>(obj);
if (curveSet) curveSet->updateAllCurves();
}
}