mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-09 23:16:00 -06:00
Added flip X/Y-axis on RimCase, will invert the sign of coordinates for the given flip axis.
p4#: 21453
This commit is contained in:
parent
8ccd89d3d1
commit
4b8e30e649
@ -51,6 +51,10 @@ RimCase::RimCase()
|
||||
CAF_PDM_InitFieldNoDefault(&m_fractureModelResults, "FractureModelResults", "", "", "", "");
|
||||
m_fractureModelResults.setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&flipXAxis, "FlipXAxis", false, "Flip X Axis", "", "", "");
|
||||
CAF_PDM_InitField(&flipYAxis, "FlipYAxis", false, "Flip Y Axis", "", "", "");
|
||||
|
||||
|
||||
// Obsolete field
|
||||
CAF_PDM_InitField(&caseName, "CaseName", QString(), "Obsolete", "", "" ,"");
|
||||
caseName.setIOWritable(false);
|
||||
@ -250,6 +254,25 @@ void RimCase::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
|
||||
|
||||
releaseResultMemory = oldValue.toBool();
|
||||
}
|
||||
else if (changedField == &flipXAxis || changedField == &flipYAxis)
|
||||
{
|
||||
RigCaseData* rigEclipseCase = reservoirData();
|
||||
if (rigEclipseCase)
|
||||
{
|
||||
rigEclipseCase->mainGrid()->setFlipAxis(flipXAxis, flipYAxis);
|
||||
|
||||
computeCachedData();
|
||||
|
||||
for (size_t i = 0; i < reservoirViews().size(); i++)
|
||||
{
|
||||
RimReservoirView* reservoirView = reservoirViews()[i];
|
||||
|
||||
reservoirView->scheduleReservoirGridGeometryRegen();
|
||||
reservoirView->schedulePipeGeometryRegen();
|
||||
reservoirView->createDisplayModelAndRedraw();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -51,6 +51,9 @@ public:
|
||||
caf::PdmField<QString> caseUserDescription;
|
||||
caf::PdmField<bool> releaseResultMemory;
|
||||
caf::PdmPointersField<RimReservoirView*> reservoirViews;
|
||||
caf::PdmField<bool> flipXAxis;
|
||||
caf::PdmField<bool> flipYAxis;
|
||||
|
||||
|
||||
virtual bool openEclipseGridFile() { return false;}; // Should be pure virtual but PDM does not allow that.
|
||||
|
||||
|
@ -96,6 +96,8 @@ void RimInputCase::openDataFileSet(const QStringList& filenames)
|
||||
{
|
||||
m_gridFileName = filenames[i];
|
||||
|
||||
this->reservoirData()->mainGrid()->setFlipAxis(flipXAxis, flipYAxis);
|
||||
|
||||
computeCachedData();
|
||||
|
||||
break;
|
||||
@ -183,6 +185,8 @@ bool RimInputCase::openEclipseGridFile()
|
||||
|
||||
results(RifReaderInterface::MATRIX_RESULTS)->setReaderInterface(readerInterface.p());
|
||||
results(RifReaderInterface::FRACTURE_RESULTS)->setReaderInterface(readerInterface.p());
|
||||
|
||||
this->reservoirData()->mainGrid()->setFlipAxis(flipXAxis, flipYAxis);
|
||||
|
||||
computeCachedData();
|
||||
loadAndSyncronizeInputProperties();
|
||||
@ -310,32 +314,6 @@ void RimInputCase::loadAndSyncronizeInputProperties()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimInputCase::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimInputCase::addFiles(const QStringList& newFileNames)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimInputCase::removeFiles(const QStringList& obsoleteFileNames)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -56,9 +56,6 @@ public:
|
||||
// RimCase overrides
|
||||
virtual bool openEclipseGridFile(); // Find grid file among file set. Read, Find read and validate property date. Syncronize child property sets.
|
||||
|
||||
// PdmObject overrides
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
|
||||
// Overrides from RimCase
|
||||
virtual QString locationOnDisc() const;
|
||||
virtual QString gridFileName() const { return m_gridFileName();}
|
||||
@ -66,9 +63,6 @@ public:
|
||||
virtual void updateFilePathsFromProjectPath(const QString& projectPath, const QString& oldProjectPath);
|
||||
|
||||
private:
|
||||
void addFiles(const QStringList& newFileNames);
|
||||
void removeFiles(const QStringList& obsoleteFileNames);
|
||||
|
||||
cvf::ref<RifReaderInterface> createMockModel(QString modelName);
|
||||
|
||||
// Fields
|
||||
|
@ -1031,6 +1031,14 @@ void RimReservoirView::scheduleGeometryRegen(unsigned short geometryType)
|
||||
m_reservoirGridPartManager->scheduleGeometryRegen(static_cast<RivReservoirViewPartMgr::ReservoirGeometryCacheType>(geometryType));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimReservoirView::scheduleReservoirGridGeometryRegen()
|
||||
{
|
||||
m_reservoirGridPartManager->clearGeometryCache();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1038,6 +1046,7 @@ void RimReservoirView::schedulePipeGeometryRegen()
|
||||
{
|
||||
m_pipesPartManager->scheduleGeometryRegen();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -153,6 +153,7 @@ public:
|
||||
void loadDataAndUpdate();
|
||||
void createDisplayModelAndRedraw();
|
||||
void scheduleGeometryRegen(unsigned short geometryType);
|
||||
void scheduleReservoirGridGeometryRegen();
|
||||
void schedulePipeGeometryRegen();
|
||||
void updateDisplayModelForWellResults();
|
||||
|
||||
|
@ -47,6 +47,11 @@ RimResultCase::RimResultCase()
|
||||
caseDirectory.setIOWritable(false);
|
||||
caseDirectory.setUiHidden(true);
|
||||
|
||||
flipXAxis.setIOWritable(true);
|
||||
flipXAxis.setUiHidden(true);
|
||||
flipYAxis.setIOWritable(true);
|
||||
flipYAxis.setUiHidden(true);
|
||||
|
||||
m_activeCellInfoIsReadFromFile = false;
|
||||
m_gridAndWellDataIsReadFromFile = false;
|
||||
}
|
||||
|
@ -26,6 +26,8 @@ RigMainGrid::RigMainGrid(void)
|
||||
m_displayModelOffset = cvf::Vec3d::ZERO;
|
||||
|
||||
m_gridIndex = 0;
|
||||
m_flipXAxis = false;
|
||||
m_flipYAxis = false;
|
||||
}
|
||||
|
||||
|
||||
@ -116,3 +118,41 @@ const RigGridBase* RigMainGrid::gridByIndex(size_t localGridIndex) const
|
||||
return m_localGrids[localGridIndex-1].p();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RigMainGrid::setFlipAxis(bool flipXAxis, bool flipYAxis)
|
||||
{
|
||||
bool needFlipX = false;
|
||||
bool needFlipY = false;
|
||||
|
||||
if (m_flipXAxis != flipXAxis)
|
||||
{
|
||||
needFlipX = true;
|
||||
}
|
||||
|
||||
if (m_flipYAxis != flipYAxis)
|
||||
{
|
||||
needFlipY = true;
|
||||
}
|
||||
|
||||
if (needFlipX || needFlipY)
|
||||
{
|
||||
for (size_t i = 0; i < m_nodes.size(); i++)
|
||||
{
|
||||
if (needFlipX)
|
||||
{
|
||||
m_nodes[i].x() *= -1.0;
|
||||
}
|
||||
|
||||
if (needFlipY)
|
||||
{
|
||||
m_nodes[i].y() *= -1.0;
|
||||
}
|
||||
}
|
||||
|
||||
m_flipXAxis = flipXAxis;
|
||||
m_flipYAxis = flipYAxis;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -53,6 +53,8 @@ public:
|
||||
virtual cvf::Vec3d displayModelOffset() const;
|
||||
void setDisplayModelOffset(cvf::Vec3d offset);
|
||||
|
||||
void setFlipAxis(bool flipXAxis, bool flipYAxis);
|
||||
|
||||
private:
|
||||
void initAllSubGridsParentGridPointer();
|
||||
void initAllSubCellsMainGridCellIndex();
|
||||
@ -64,5 +66,8 @@ private:
|
||||
cvf::Collection<RigLocalGrid> m_localGrids; ///< List of all the LGR's in this reservoir
|
||||
|
||||
cvf::Vec3d m_displayModelOffset;
|
||||
|
||||
bool m_flipXAxis;
|
||||
bool m_flipYAxis;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user