#3540 Create seperate 2d view with parallel, look down and linked views

This commit is contained in:
Gaute Lindkvist committed 2018-10-24 15:21:53 +02:00
1 parent 45531865ba
commit f80472ffa6
50 files changed
+1014 -177

No files matched your search

@@ -34,6 +34,8 @@
#include "RigSimWellData.h"
#include "RigVirtualPerforationTransmissibilities.h"
#include "Rim2dEclipseView.h"
#include "Rim2dEclipseViewCollection.h"
#include "Rim2dIntersectionViewCollection.h"
#include "RimCaseCollection.h"
#include "RimCellEdgeColors.h"
@@ -98,6 +100,10 @@ RimEclipseCase::RimEclipseCase()
CAF_PDM_InitFieldNoDefault(&m_filesContainingFaultsSemColSeparated, "CachedFileNamesContainingFaults", "", "", "", "");
m_filesContainingFaultsSemColSeparated.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&m_2dContourMapsCollection, "ContourMaps", "2d Contour Maps", "", "", "");
m_2dContourMapsCollection = new Rim2dEclipseViewCollection;
m_2dContourMapsCollection.uiCapability()->setUiTreeHidden(true);
// Obsolete fields
CAF_PDM_InitFieldNoDefault(&m_filesContainingFaults_OBSOLETE, "FilesContainingFaults", "", "", "", "");
m_filesContainingFaults_OBSOLETE.xmlCapability()->setIOWritable(false);
@@ -234,6 +240,11 @@ void RimEclipseCase::initAfterRead()
riv->setEclipseCase(this);
}
for (Rim2dEclipseView* contourMap : m_2dContourMapsCollection->views())
{
contourMap->setEclipseCase(this);
}
if (caseUserDescription().isEmpty() && !m_caseName_OBSOLETE().isEmpty())
{
@@ -298,6 +309,66 @@ 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);
caf::PdmDocument::updateUiIconStateRecursively(contourMap);
size_t i = m_2dContourMapsCollection->views().size();
contourMap->setName(QString("Contour Map %1").arg(i + 1));
m_2dContourMapsCollection->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()->enableCellEdgeColors = false;
contourMap->fractureColors()->setDefaultResultName();
}
caf::PdmDocument::updateUiIconStateRecursively(contourMap);
size_t i = m_2dContourMapsCollection->views().size();
contourMap->setName(QString("Contour Map %1").arg(i + 1));
m_2dContourMapsCollection->push_back(contourMap);
return contourMap;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -504,7 +575,10 @@ void RimEclipseCase::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering
{
uiTreeOrdering.add(&m_2dIntersectionViewCollection);
}
if (!m_2dContourMapsCollection->views().empty())
{
uiTreeOrdering.add(&m_2dContourMapsCollection);
}
uiTreeOrdering.skipRemainingChildren(true);
}
@@ -830,9 +904,14 @@ bool RimEclipseCase::openReserviorCase()
std::vector<Rim3dView*> RimEclipseCase::allSpecialViews() const
{
std::vector<Rim3dView*> views;
for (size_t vIdx = 0; vIdx < reservoirViews.size(); ++vIdx)
for (RimEclipseView* view : reservoirViews)
{
views.push_back(reservoirViews[vIdx]);
views.push_back(view);
}
for (Rim2dEclipseView* view : m_2dContourMapsCollection->views())
{
views.push_back(view);
}
return views;
@@ -900,6 +979,14 @@ void RimEclipseCase::reloadDataAndUpdate()
reservoirView->updateAnnotationItems();
}
for (Rim2dEclipseView* contourMap : m_2dContourMapsCollection->views())
{
CVF_ASSERT(contourMap);
contourMap->loadDataAndUpdate();
contourMap->updateGridBoxData();
contourMap->updateAnnotationItems();
}
RimProject* project = RiaApplication::instance()->project();
if (project)
{