From 16f8b9771fa115c2a7886dd1da40ddb745a93847 Mon Sep 17 00:00:00 2001 From: Rebecca Cox Date: Mon, 18 Sep 2017 20:27:20 +0200 Subject: [PATCH] #1815 Observed data: Add function to return vector of all observed data --- .../RimObservedDataCollection.cpp | 12 ++++++++++++ .../RimObservedDataCollection.h | 1 + .../ProjectDataModel/RimProject.cpp | 18 ++++++++++++++++++ ApplicationCode/ProjectDataModel/RimProject.h | 4 +++- 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/ApplicationCode/ProjectDataModel/RimObservedDataCollection.cpp b/ApplicationCode/ProjectDataModel/RimObservedDataCollection.cpp index bfdf52d193..c337d02816 100644 --- a/ApplicationCode/ProjectDataModel/RimObservedDataCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimObservedDataCollection.cpp @@ -76,3 +76,15 @@ RimSummaryObservedDataFile* RimObservedDataCollection::createAndAddObservedDataF return newObservedData; } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +std::vector RimObservedDataCollection::allObservedData() +{ + std::vector allObservedData; + + allObservedData.insert(allObservedData.begin(), m_observedDataArray.begin(), m_observedDataArray.end()); + + return allObservedData; +} diff --git a/ApplicationCode/ProjectDataModel/RimObservedDataCollection.h b/ApplicationCode/ProjectDataModel/RimObservedDataCollection.h index 4b81b3b979..139a253d17 100644 --- a/ApplicationCode/ProjectDataModel/RimObservedDataCollection.h +++ b/ApplicationCode/ProjectDataModel/RimObservedDataCollection.h @@ -36,6 +36,7 @@ public: void removeObservedData(RimObservedData* observedData); void addObservedData(RimObservedData* observedData); RimSummaryObservedDataFile* createAndAddObservedDataFromFileName(const QString& fileName); + std::vector allObservedData(); private: caf::PdmChildArrayField m_observedDataArray; diff --git a/ApplicationCode/ProjectDataModel/RimProject.cpp b/ApplicationCode/ProjectDataModel/RimProject.cpp index 92a0a9d971..0ac55e507c 100644 --- a/ApplicationCode/ProjectDataModel/RimProject.cpp +++ b/ApplicationCode/ProjectDataModel/RimProject.cpp @@ -549,6 +549,24 @@ void RimProject::allSummaryCases(std::vector& sumCases) } } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimProject::allObservedData(std::vector& observedData) +{ + for (RimOilField* oilField : oilFields) + { + if (!oilField) continue; + RimObservedDataCollection* observedDataCollection = oilField->observedDataCollection(); + if (observedDataCollection) + { + observedData.clear(); + std::vector allObservedData = observedDataCollection->allObservedData(); + observedData.insert(observedData.end(), allObservedData.begin(), allObservedData.end()); + } + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimProject.h b/ApplicationCode/ProjectDataModel/RimProject.h index 1533d37581..b7ee5abfeb 100644 --- a/ApplicationCode/ProjectDataModel/RimProject.h +++ b/ApplicationCode/ProjectDataModel/RimProject.h @@ -38,7 +38,8 @@ class RimDialogData; class RimEclipseCase; class RimIdenticalGridCaseGroup; class RimMainPlotCollection; -class RimMultiSnapshotDefinition; +class RimMultiSnapshotDefinition; +class RimObservedData; class RimOilField; class RimScriptCollection; class RimSummaryCase; @@ -94,6 +95,7 @@ public: void allCases(std::vector& cases); void allSummaryCases(std::vector& sumCases); + void allObservedData(std::vector& observedData); void allNotLinkedViews(std::vector& views); void allVisibleViews(std::vector& views);