From c334106e9cd9006bebf2fccdad50df25b9738326 Mon Sep 17 00:00:00 2001 From: Gaute Lindkvist Date: Thu, 8 Nov 2018 16:18:03 +0100 Subject: [PATCH] #3635 Move creation of contour maps out of RimEclipseCase --- .../Commands/RicNew2dContourViewFeature.cpp | 69 ++++++++++++++++++- .../Commands/RicNew2dContourViewFeature.h | 8 +++ .../ProjectDataModel/RimEclipseCase.cpp | 69 +++---------------- .../ProjectDataModel/RimEclipseCase.h | 5 +- 4 files changed, 84 insertions(+), 67 deletions(-) diff --git a/ApplicationCode/Commands/RicNew2dContourViewFeature.cpp b/ApplicationCode/Commands/RicNew2dContourViewFeature.cpp index bb52ee7a2f..c903ddaf9d 100644 --- a/ApplicationCode/Commands/RicNew2dContourViewFeature.cpp +++ b/ApplicationCode/Commands/RicNew2dContourViewFeature.cpp @@ -20,13 +20,19 @@ #include "Rim2dEclipseView.h" #include "Rim2dEclipseViewCollection.h" +#include "RimCellEdgeColors.h" #include "RimEclipseView.h" #include "RimEclipseCase.h" +#include "RimEclipseCellColors.h" #include "Rim3dView.h" #include "Riu3DMainWindowTools.h" -#include "RiaLogging.h" +#include "RiaApplication.h" +#include "RiaLogging.h" +#include "RiaPreferences.h" + +#include "cafPdmDocument.h" #include "cafSelectionManager.h" #include @@ -56,11 +62,11 @@ void RicNew2dContourViewFeature::onActionTriggered(bool isChecked) // Find case to insert into if (reservoirView) { - contourMap = eclipseCase->create2dContourMapFrom3dView(reservoirView); + contourMap = create2dContourMapFrom3dView(eclipseCase, reservoirView); } else if (eclipseCase) { - contourMap = eclipseCase->create2dContourMap(); + contourMap = create2dContourMap(eclipseCase); } if (contourMap) @@ -97,3 +103,60 @@ void RicNew2dContourViewFeature::setupActionLook(QAction* actionToSetup) } actionToSetup->setIcon(QIcon(":/2DMap16x16.png")); } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +Rim2dEclipseView* RicNew2dContourViewFeature::create2dContourMapFrom3dView(RimEclipseCase* eclipseCase, const RimEclipseView* sourceView) +{ + Rim2dEclipseView* contourMap = dynamic_cast(sourceView->xmlCapability()->copyAndCastByXmlSerialization( + Rim2dEclipseView::classKeywordStatic(), sourceView->classKeyword(), caf::PdmDefaultObjectFactory::instance())); + CVF_ASSERT(contourMap); + + contourMap->setEclipseCase(eclipseCase); + contourMap->setBackgroundColor(cvf::Color3f(1.0f, 1.0f, 0.98f)); // Ignore original view background + + caf::PdmDocument::updateUiIconStateRecursively(contourMap); + + size_t i = eclipseCase->contourMapCollection()->views().size(); + contourMap->setName(QString("Contour Map %1").arg(i + 1)); + eclipseCase->contourMapCollection()->push_back(contourMap); + + // Resolve references after contour map has been inserted into Rim structures + contourMap->resolveReferencesRecursively(); + contourMap->initAfterReadRecursively(); + + return contourMap; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +Rim2dEclipseView* RicNew2dContourViewFeature::create2dContourMap(RimEclipseCase* eclipseCase) +{ + Rim2dEclipseView* contourMap = new Rim2dEclipseView(); + contourMap->setEclipseCase(eclipseCase); + + // Set default values + { + contourMap->cellResult()->setResultType(RiaDefines::DYNAMIC_NATIVE); + + if (RiaApplication::instance()->preferences()->loadAndShowSoil) + { + contourMap->cellResult()->setResultVariable("SOIL"); + } + + contourMap->hasUserRequestedAnimation = true; + contourMap->setBackgroundColor(cvf::Color3f(1.0f, 1.0f, 0.98f)); + contourMap->initAfterReadRecursively(); + contourMap->zoomAll(); + } + + caf::PdmDocument::updateUiIconStateRecursively(contourMap); + + size_t i = eclipseCase->contourMapCollection()->views().size(); + contourMap->setName(QString("Contour Map %1").arg(i + 1)); + eclipseCase->contourMapCollection()->push_back(contourMap); + + return contourMap; +} diff --git a/ApplicationCode/Commands/RicNew2dContourViewFeature.h b/ApplicationCode/Commands/RicNew2dContourViewFeature.h index a42ccd5f11..40d4570b21 100644 --- a/ApplicationCode/Commands/RicNew2dContourViewFeature.h +++ b/ApplicationCode/Commands/RicNew2dContourViewFeature.h @@ -21,6 +21,10 @@ #include "cafCmdFeature.h" +class RimEclipseCase; +class Rim2dEclipseView; +class RimEclipseView; + //================================================================================================== /// //================================================================================================== @@ -33,4 +37,8 @@ protected: bool isCommandEnabled() override; void onActionTriggered( bool isChecked ) override; void setupActionLook( QAction* actionToSetup ) override; + + static Rim2dEclipseView* create2dContourMapFrom3dView(RimEclipseCase* eclipseCase, const RimEclipseView* reservoirView); + static Rim2dEclipseView* create2dContourMap(RimEclipseCase* eclipseCase); + }; diff --git a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp index 58a6668252..4066f15093 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp @@ -308,67 +308,6 @@ RimEclipseView* RimEclipseCase::createCopyAndAddView(const RimEclipseView* sourc return rimEclipseView; } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -Rim2dEclipseView* RimEclipseCase::create2dContourMapFrom3dView(const RimEclipseView* sourceView) -{ - Rim2dEclipseView* contourMap = dynamic_cast(sourceView->xmlCapability()->copyAndCastByXmlSerialization( - Rim2dEclipseView::classKeywordStatic(), sourceView->classKeyword(), caf::PdmDefaultObjectFactory::instance())); - CVF_ASSERT(contourMap); - - contourMap->setEclipseCase(this); - contourMap->setBackgroundColor(cvf::Color3f(1.0f, 1.0f, 0.98f)); // Ignore original view background - - caf::PdmDocument::updateUiIconStateRecursively(contourMap); - - size_t i = m_2dContourMapCollection->views().size(); - contourMap->setName(QString("Contour Map %1").arg(i + 1)); - m_2dContourMapCollection->push_back(contourMap); - - // Resolve references after contour map has been inserted into Rim structures - contourMap->resolveReferencesRecursively(); - contourMap->initAfterReadRecursively(); - - return contourMap; -} - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -Rim2dEclipseView* RimEclipseCase::create2dContourMap() -{ - Rim2dEclipseView* contourMap = new Rim2dEclipseView(); - contourMap->setEclipseCase(this); - - // Set default values - { - contourMap->cellResult()->setResultType(RiaDefines::DYNAMIC_NATIVE); - - if (RiaApplication::instance()->preferences()->loadAndShowSoil) - { - contourMap->cellResult()->setResultVariable("SOIL"); - } - - contourMap->hasUserRequestedAnimation = true; - - contourMap->cellEdgeResult()->setResultVariable("MULT"); - contourMap->cellEdgeResult()->setActive(false); - contourMap->fractureColors()->setDefaultResultName(); - contourMap->setBackgroundColor(cvf::Color3f(1.0f, 1.0f, 0.98f)); - contourMap->initAfterReadRecursively(); - contourMap->zoomAll(); - } - - caf::PdmDocument::updateUiIconStateRecursively(contourMap); - - size_t i = m_2dContourMapCollection->views().size(); - contourMap->setName(QString("Contour Map %1").arg(i + 1)); - m_2dContourMapCollection->push_back(contourMap); - - return contourMap; -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -633,6 +572,14 @@ RimCaseCollection* RimEclipseCase::parentCaseCollection() return dynamic_cast(this->parentField()->ownerObject()); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +Rim2dEclipseViewCollection* RimEclipseCase::contourMapCollection() +{ + return m_2dContourMapCollection; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimEclipseCase.h b/ApplicationCode/ProjectDataModel/RimEclipseCase.h index ff78340695..cf98bafc13 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseCase.h +++ b/ApplicationCode/ProjectDataModel/RimEclipseCase.h @@ -87,8 +87,6 @@ public: RimEclipseView* createAndAddReservoirView(); RimEclipseView* createCopyAndAddView(const RimEclipseView* sourceView); - Rim2dEclipseView* create2dContourMapFrom3dView(const RimEclipseView* reservoirView); - Rim2dEclipseView* create2dContourMap(); const RigVirtualPerforationTransmissibilities* computeAndGetVirtualPerforationTransmissibilities(); @@ -97,7 +95,8 @@ public: RimCaseCollection* parentCaseCollection(); - + Rim2dEclipseViewCollection* contourMapCollection(); + QStringList timeStepStrings() const override; QString timeStepName(int frameIdx) const override; std::vector timeStepDates() const override;