#1670 Move grid functions from RimCellRangeFilterCollection to RigReservoirGridTools

This commit is contained in:
Magne Sjaastad
2017-06-28 13:46:19 +02:00
parent 7cc95c3fa8
commit 468d5134cb
7 changed files with 243 additions and 167 deletions

View File

@@ -22,16 +22,17 @@
#include "RimCellRangeFilter.h"
#include "RigActiveCellInfo.h"
#include "RigGridBase.h"
#include "RigMainGrid.h"
#include "RigReservoirGridTools.h"
#include "RimEclipseCase.h"
#include "RimCellRangeFilterCollection.h"
#include "RimEclipseCase.h"
#include "RimEclipseView.h"
#include "RimViewController.h"
#include "cafPdmUiSliderEditor.h"
#include "cvfAssert.h"
#include "cvfStructGrid.h"
CAF_PDM_SOURCE_INIT(RimCellRangeFilter, "CellRangeFilter");
@@ -125,8 +126,16 @@ void RimCellRangeFilter::setDefaultValues()
const cvf::StructGridInterface* grid = selectedGrid();
RigActiveCellInfo* actCellInfo = parentContainer()->activeCellInfo();
if (grid == parentContainer()->gridByIndex(0) && actCellInfo)
RimView* rimView = nullptr;
this->firstAncestorOrThisOfTypeAsserted(rimView);
RigActiveCellInfo* actCellInfo = RigReservoirGridTools::activeCellInfo(rimView);
RimCase* rimCase = nullptr;
this->firstAncestorOrThisOfTypeAsserted(rimCase);
const cvf::StructGridInterface* mainGrid = RigReservoirGridTools::mainGrid(rimCase);
if (grid == mainGrid && actCellInfo)
{
cvf::Vec3st min, max;
actCellInfo->IJKBoundingBox(min, max);
@@ -195,8 +204,15 @@ void RimCellRangeFilter::defineEditorAttribute(const caf::PdmFieldHandle* field,
myAttr->m_maximum = static_cast<int>(grid->cellCountK());
}
RigActiveCellInfo* actCellInfo = parentContainer()->activeCellInfo();
if (grid == parentContainer()->gridByIndex(0) && actCellInfo)
RimCase* rimCase = nullptr;
this->firstAncestorOrThisOfTypeAsserted(rimCase);
const cvf::StructGridInterface* mainGrid = RigReservoirGridTools::mainGrid(rimCase);
RimView* rimView = nullptr;
this->firstAncestorOrThisOfTypeAsserted(rimView);
RigActiveCellInfo* actCellInfo = RigReservoirGridTools::activeCellInfo(rimView);
if (grid == mainGrid && actCellInfo)
{
cvf::Vec3st min, max;
actCellInfo->IJKBoundingBox(min, max);
@@ -264,12 +280,15 @@ QList<caf::PdmOptionItemInfo> RimCellRangeFilter::calculateValueOptions(const ca
if (useOptionsOnly) (*useOptionsOnly) = true;
if (&gridIndex == fieldNeedingOptions)
{
for (int gIdx = 0; gIdx < parentContainer()->gridCount(); ++gIdx)
{
RimCase* rimCase = nullptr;
this->firstAncestorOrThisOfTypeAsserted(rimCase);
for (int gIdx = 0; gIdx < RigReservoirGridTools::gridCount(rimCase); ++gIdx)
{
QString gridName;
gridName += parentContainer()->gridName(gIdx);
gridName += RigReservoirGridTools::gridName(rimCase, gIdx);
if (gIdx == 0)
{
if (gridName.isEmpty())
@@ -307,15 +326,15 @@ bool RimCellRangeFilter::isRangeFilterControlled() const
//--------------------------------------------------------------------------------------------------
const cvf::StructGridInterface* RimCellRangeFilter::selectedGrid()
{
if (gridIndex() >= parentContainer()->gridCount())
RimCase* rimCase = nullptr;
this->firstAncestorOrThisOfTypeAsserted(rimCase);
int clampedIndex = gridIndex();
if (clampedIndex >= RigReservoirGridTools::gridCount(rimCase))
{
gridIndex = 0;
clampedIndex = 0;
}
const cvf::StructGridInterface* grid = parentContainer()->gridByIndex(gridIndex());
CVF_ASSERT(grid);
return grid;
return RigReservoirGridTools::gridByIndex(rimCase, clampedIndex);
}

View File

@@ -20,22 +20,15 @@
#include "RimCellRangeFilterCollection.h"
#include "RigFemPart.h"
#include "RigFemPartCollection.h"
#include "RigFemPartGrid.h"
#include "RigGeoMechCaseData.h"
#include "RigMainGrid.h"
#include "RimCellRangeFilter.h"
#include "RimEclipseCase.h"
#include "RimEclipseView.h"
#include "RimGeoMechCase.h"
#include "RimGeoMechView.h"
#include "RimView.h"
#include "RimViewController.h"
#include "RimViewLinker.h"
#include "cafPdmUiEditorHandle.h"
#include "cvfStructGridGeometryGenerator.h"
CAF_PDM_SOURCE_INIT(RimCellRangeFilterCollection, "CellRangeFilterCollection");
@@ -101,35 +94,6 @@ void RimCellRangeFilterCollection::compoundCellRangeFilter(cvf::CellRangeFilter*
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RigMainGrid* RimCellRangeFilterCollection::mainGrid() const
{
RimEclipseView* eclipseView = this->eclipseView();
if (eclipseView && eclipseView->mainGrid())
{
return eclipseView->mainGrid();
}
return nullptr;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RigActiveCellInfo* RimCellRangeFilterCollection::activeCellInfo() const
{
RimEclipseView* eclipseView = this->eclipseView();
if (eclipseView)
{
return eclipseView->currentActiveCellInfo();
}
return NULL;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -168,14 +132,6 @@ void RimCellRangeFilterCollection::updateDisplayModeNotifyManagedViews(RimCellRa
view->scheduleCreateDisplayModelAndRedraw();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimEclipseView* RimCellRangeFilterCollection::eclipseView() const
{
return dynamic_cast<RimEclipseView*>(baseView());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -214,89 +170,6 @@ bool RimCellRangeFilterCollection::hasActiveIncludeFilters() const
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const cvf::StructGridInterface* RimCellRangeFilterCollection::gridByIndex(int gridIndex) const
{
RigMainGrid* mnGrid = mainGrid();
RigFemPartCollection* femPartColl = this->femPartColl();
if (mnGrid)
{
RigGridBase* grid = mnGrid->gridByIndex(gridIndex);
CVF_ASSERT(grid);
return grid;
}
else if (femPartColl)
{
if (gridIndex < femPartColl->partCount())
return femPartColl->part(gridIndex)->structGrid();
else
return NULL;
}
return NULL;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RimCellRangeFilterCollection::gridCount() const
{
RigMainGrid* mnGrid = mainGrid();
RigFemPartCollection* femPartColl = this->femPartColl();
if (mnGrid)
{
return (int)mnGrid->gridCount();
}
else if (femPartColl)
{
return femPartColl->partCount();
}
return 0;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimCellRangeFilterCollection::gridName(int gridIndex) const
{
RigMainGrid* mnGrid = mainGrid();
RigFemPartCollection* femPartColl = this->femPartColl();
if (mnGrid)
{
return mnGrid->gridByIndex(gridIndex)->gridName().c_str();
}
else if (femPartColl)
{
return QString::number(gridIndex);
}
return "";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RigFemPartCollection* RimCellRangeFilterCollection::femPartColl() const
{
RimGeoMechView* geoView = dynamic_cast<RimGeoMechView*>(baseView());
if (geoView &&
geoView->geoMechCase() &&
geoView->geoMechCase()->geoMechData() )
{
return geoView->geoMechCase()->geoMechData()->femParts();
}
return NULL;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -22,17 +22,11 @@
#include "cafPdmChildArrayField.h"
#include "cafPdmField.h"
class RigActiveCellInfo;
class RigFemPartCollection;
class RigGridBase;
class RimView;
class RimCellRangeFilter;
class RimEclipseView;
class RigMainGrid;
namespace cvf {
class CellRangeFilter;
class StructGridInterface;
};
//==================================================================================================
@@ -55,12 +49,6 @@ public:
bool hasActiveFilters() const;
bool hasActiveIncludeFilters() const;
const cvf::StructGridInterface* gridByIndex(int gridIndex) const;
int gridCount() const;
QString gridName(int gridIndex) const;
RigActiveCellInfo* activeCellInfo() const;
void updateDisplayModeNotifyManagedViews(RimCellRangeFilter* changedRangeFilter);
void updateIconState();
@@ -71,9 +59,4 @@ protected:
private:
RimView* baseView() const;
private:
RimEclipseView* eclipseView() const;
RigMainGrid* mainGrid() const;
RigFemPartCollection* femPartColl() const;
};

View File

@@ -22,9 +22,9 @@
#include "RigActiveCellInfo.h"
#include "RigCaseCellResultsData.h"
#include "RigReservoirGridTools.h"
#include "RimCase.h"
#include "RimCellRangeFilterCollection.h"
#include "RimEclipseView.h"
#include "RimProject.h"
#include "RimReservoirCellResultsStorage.h"
@@ -179,8 +179,12 @@ void RimMultiSnapshotDefinition::fieldChangedByUi(const caf::PdmFieldHandle* cha
if (view())
{
mainGrid = view()->rangeFilterCollection()->gridByIndex(0);
actCellInfo = view()->rangeFilterCollection()->activeCellInfo();
actCellInfo = RigReservoirGridTools::activeCellInfo(view());
RimCase* rimCase = nullptr;
view()->firstAncestorOrThisOfTypeAsserted(rimCase);
mainGrid = RigReservoirGridTools::mainGrid(rimCase);
}
if (mainGrid && actCellInfo)