#3635 Move creation of contour maps out of RimEclipseCase

This commit is contained in:
Gaute Lindkvist
2018-11-08 16:18:03 +01:00
parent 23e3391c64
commit c334106e9c
4 changed files with 84 additions and 67 deletions

View File

@@ -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 <QAction>
@@ -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<Rim2dEclipseView*>(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;
}

View File

@@ -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);
};

View File

@@ -308,67 +308,6 @@ RimEclipseView* RimEclipseCase::createCopyAndAddView(const RimEclipseView* sourc
return rimEclipseView;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
Rim2dEclipseView* RimEclipseCase::create2dContourMapFrom3dView(const RimEclipseView* sourceView)
{
Rim2dEclipseView* contourMap = dynamic_cast<Rim2dEclipseView*>(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<RimCaseCollection*>(this->parentField()->ownerObject());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
Rim2dEclipseViewCollection* RimEclipseCase::contourMapCollection()
{
return m_2dContourMapCollection;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -87,8 +87,6 @@ public:
RimEclipseView* createAndAddReservoirView();
RimEclipseView* createCopyAndAddView(const RimEclipseView* sourceView);
Rim2dEclipseView* create2dContourMapFrom3dView(const RimEclipseView* reservoirView);
Rim2dEclipseView* create2dContourMap();
const RigVirtualPerforationTransmissibilities* computeAndGetVirtualPerforationTransmissibilities();
@@ -97,6 +95,7 @@ public:
RimCaseCollection* parentCaseCollection();
Rim2dEclipseViewCollection* contourMapCollection();
QStringList timeStepStrings() const override;
QString timeStepName(int frameIdx) const override;