mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-09 23:16:00 -06:00
Refactored general view stuff into RimView
Removing it from RimReservoirView and RimGeoMechView
This commit is contained in:
parent
4a21bb4a30
commit
4b7d593b3c
@ -32,6 +32,8 @@
|
||||
#include "RimResultSlot.h"
|
||||
#include "RimWellCollection.h"
|
||||
#include "RiuViewer.h"
|
||||
#include "RimGeoMechView.h"
|
||||
#include "RimView.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT(Rim3dOverlayInfoConfig, "View3dOverlayInfoConfig");
|
||||
|
||||
@ -65,9 +67,9 @@ void Rim3dOverlayInfoConfig::fieldChangedByUi(const caf::PdmFieldHandle* changed
|
||||
{
|
||||
this->update3DInfo();
|
||||
|
||||
if (m_reservoirView && m_reservoirView->viewer())
|
||||
if (m_viewDef && m_viewDef->viewer())
|
||||
{
|
||||
m_reservoirView->viewer()->update();
|
||||
m_viewDef->viewer()->update();
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,22 +88,49 @@ void Rim3dOverlayInfoConfig::update3DInfo()
|
||||
{
|
||||
this->updateUiIconFromToggleField();
|
||||
|
||||
if (!m_reservoirView) return;
|
||||
if (!m_reservoirView->viewer()) return;
|
||||
if (!m_viewDef) return;
|
||||
if (!m_viewDef->viewer()) return;
|
||||
|
||||
if (!this->active())
|
||||
{
|
||||
m_reservoirView->viewer()->showInfoText(false);
|
||||
m_reservoirView->viewer()->showHistogram(false);
|
||||
m_reservoirView->viewer()->showAnimationProgress(false);
|
||||
m_viewDef->viewer()->showInfoText(false);
|
||||
m_viewDef->viewer()->showHistogram(false);
|
||||
m_viewDef->viewer()->showAnimationProgress(false);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
m_reservoirView->viewer()->showInfoText(showInfoText());
|
||||
m_reservoirView->viewer()->showHistogram(false);
|
||||
m_reservoirView->viewer()->showAnimationProgress(showAnimProgress());
|
||||
m_viewDef->viewer()->showInfoText(showInfoText());
|
||||
m_viewDef->viewer()->showHistogram(false);
|
||||
m_viewDef->viewer()->showAnimationProgress(showAnimProgress());
|
||||
|
||||
RimReservoirView * reservoirView = dynamic_cast<RimReservoirView*>(m_viewDef.p());
|
||||
if (reservoirView) updateReservoir3DInfo(reservoirView);
|
||||
RimGeoMechView * geoMechView = dynamic_cast<RimGeoMechView*>(m_viewDef.p());
|
||||
if (geoMechView) updateGeoMech3DInfo(geoMechView);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* Rim3dOverlayInfoConfig::objectToggleField()
|
||||
{
|
||||
return &active;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dOverlayInfoConfig::setReservoirView(RimView* ownerReservoirView)
|
||||
{
|
||||
m_viewDef = ownerReservoirView;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dOverlayInfoConfig::updateReservoir3DInfo(RimReservoirView * reservoirView)
|
||||
{
|
||||
if (showInfoText())
|
||||
{
|
||||
QString caseName;
|
||||
@ -115,64 +144,64 @@ void Rim3dOverlayInfoConfig::update3DInfo()
|
||||
QString faultCellResultMapping;
|
||||
|
||||
|
||||
if (m_reservoirView->eclipseCase() && m_reservoirView->eclipseCase()->reservoirData() && m_reservoirView->eclipseCase()->reservoirData()->mainGrid())
|
||||
if (reservoirView->eclipseCase() && reservoirView->eclipseCase()->reservoirData() && reservoirView->eclipseCase()->reservoirData()->mainGrid())
|
||||
{
|
||||
caseName = m_reservoirView->eclipseCase()->caseUserDescription();
|
||||
totCellCount = QString::number(m_reservoirView->eclipseCase()->reservoirData()->mainGrid()->cells().size());
|
||||
size_t mxActCellCount = m_reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::MATRIX_RESULTS)->reservoirActiveCellCount();
|
||||
size_t frActCellCount = m_reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::FRACTURE_RESULTS)->reservoirActiveCellCount();
|
||||
caseName = reservoirView->eclipseCase()->caseUserDescription();
|
||||
totCellCount = QString::number(reservoirView->eclipseCase()->reservoirData()->mainGrid()->cells().size());
|
||||
size_t mxActCellCount = reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::MATRIX_RESULTS)->reservoirActiveCellCount();
|
||||
size_t frActCellCount = reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::FRACTURE_RESULTS)->reservoirActiveCellCount();
|
||||
if (frActCellCount > 0) activeCellCountText += "Matrix : ";
|
||||
activeCellCountText += QString::number(mxActCellCount);
|
||||
if (frActCellCount > 0) activeCellCountText += " Fracture : " + QString::number(frActCellCount);
|
||||
|
||||
iSize = QString::number(m_reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountI());
|
||||
jSize = QString::number(m_reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountJ());
|
||||
kSize = QString::number(m_reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountK());
|
||||
iSize = QString::number(reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountI());
|
||||
jSize = QString::number(reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountJ());
|
||||
kSize = QString::number(reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountK());
|
||||
|
||||
zScale = QString::number(m_reservoirView->scaleZ());
|
||||
zScale = QString::number(reservoirView->scaleZ());
|
||||
|
||||
propName = m_reservoirView->cellResult()->resultVariable();
|
||||
cellEdgeName = m_reservoirView->cellEdgeResult()->resultVariable();
|
||||
propName = reservoirView->cellResult()->resultVariable();
|
||||
cellEdgeName = reservoirView->cellEdgeResult()->resultVariable();
|
||||
}
|
||||
|
||||
QString infoText = QString(
|
||||
"<p><b><center>-- %1 --</center></b><p> "
|
||||
"<b>Cell count. Total:</b> %2 <b>Active:</b> %3 <br>"
|
||||
"<b>Cell count. Total:</b> %2 <b>Active:</b> %3 <br>"
|
||||
"<b>Main Grid I,J,K:</b> %4, %5, %6 <b>Z-Scale:</b> %7<br>").arg(caseName, totCellCount, activeCellCountText, iSize, jSize, kSize, zScale);
|
||||
|
||||
if (m_reservoirView->cellResult()->isTernarySaturationSelected())
|
||||
if (reservoirView->cellResult()->isTernarySaturationSelected())
|
||||
{
|
||||
infoText += QString("<b>Cell Property:</b> %1 ").arg(propName);
|
||||
}
|
||||
|
||||
if (m_reservoirView->animationMode() && m_reservoirView->cellResult()->hasResult())
|
||||
if (reservoirView->animationMode() && reservoirView->cellResult()->hasResult())
|
||||
{
|
||||
infoText += QString("<b>Cell Property:</b> %1 ").arg(propName);
|
||||
|
||||
double min, max;
|
||||
double p10, p90;
|
||||
double mean;
|
||||
size_t scalarIndex = m_reservoirView->cellResult()->scalarResultIndex();
|
||||
m_reservoirView->currentGridCellResults()->cellResults()->minMaxCellScalarValues(scalarIndex, min, max);
|
||||
m_reservoirView->currentGridCellResults()->cellResults()->p10p90CellScalarValues(scalarIndex, p10, p90);
|
||||
m_reservoirView->currentGridCellResults()->cellResults()->meanCellScalarValues(scalarIndex, mean);
|
||||
size_t scalarIndex = reservoirView->cellResult()->scalarResultIndex();
|
||||
reservoirView->currentGridCellResults()->cellResults()->minMaxCellScalarValues(scalarIndex, min, max);
|
||||
reservoirView->currentGridCellResults()->cellResults()->p10p90CellScalarValues(scalarIndex, p10, p90);
|
||||
reservoirView->currentGridCellResults()->cellResults()->meanCellScalarValues(scalarIndex, mean);
|
||||
|
||||
//infoText += QString("<blockquote><b>Min:</b> %1 <b>P10:</b> %2 <b>Mean:</b> %3 <b>P90:</b> %4 <b>Max:</b> %5 </blockquote>").arg(min).arg(p10).arg(mean).arg(p90).arg(max);
|
||||
//infoText += QString("<blockquote><pre>Min: %1 P10: %2 Mean: %3 \n P90: %4 Max: %5 </pre></blockquote>").arg(min).arg(p10).arg(mean).arg(p90).arg(max);
|
||||
infoText += QString("<table border=0 cellspacing=5 ><tr><td>Min</td><td>P10</td> <td>Mean</td> <td>P90</td> <td>Max</td> </tr>"
|
||||
"<tr><td>%1</td><td> %2</td><td> %3</td><td> %4</td><td> %5 </td></tr></table>").arg(min).arg(p10).arg(mean).arg(p90).arg(max);
|
||||
infoText += QString("<table border=0 cellspacing=5 ><tr><td>Min</td><td>P10</td> <td>Mean</td> <td>P90</td> <td>Max</td> </tr>"
|
||||
"<tr><td>%1</td><td> %2</td><td> %3</td><td> %4</td><td> %5 </td></tr></table>").arg(min).arg(p10).arg(mean).arg(p90).arg(max);
|
||||
|
||||
if (m_reservoirView->faultResultSettings()->hasValidCustomResult())
|
||||
if (reservoirView->faultResultSettings()->hasValidCustomResult())
|
||||
{
|
||||
QString faultMapping;
|
||||
bool isShowingGrid = m_reservoirView->faultCollection()->isGridVisualizationMode();
|
||||
bool isShowingGrid = reservoirView->faultCollection()->isGridVisualizationMode();
|
||||
if (!isShowingGrid)
|
||||
{
|
||||
if (m_reservoirView->faultCollection()->faultResult() == RimFaultCollection::FAULT_BACK_FACE_CULLING)
|
||||
if (reservoirView->faultCollection()->faultResult() == RimFaultCollection::FAULT_BACK_FACE_CULLING)
|
||||
{
|
||||
faultMapping = "Cells behind fault";
|
||||
}
|
||||
else if (m_reservoirView->faultCollection()->faultResult() == RimFaultCollection::FAULT_FRONT_FACE_CULLING)
|
||||
else if (reservoirView->faultCollection()->faultResult() == RimFaultCollection::FAULT_FRONT_FACE_CULLING)
|
||||
{
|
||||
faultMapping = "Cells in front of fault";
|
||||
}
|
||||
@ -188,7 +217,7 @@ void Rim3dOverlayInfoConfig::update3DInfo()
|
||||
|
||||
infoText += QString("<b>Fault results: </b> %1<br>").arg(faultMapping);
|
||||
|
||||
infoText += QString("<b>Fault Property:</b> %1 <br>").arg(m_reservoirView->faultResultSettings()->customFaultResult()->resultVariable());
|
||||
infoText += QString("<b>Fault Property:</b> %1 <br>").arg(reservoirView->faultResultSettings()->customFaultResult()->resultVariable());
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -197,43 +226,43 @@ void Rim3dOverlayInfoConfig::update3DInfo()
|
||||
}
|
||||
|
||||
|
||||
if (m_reservoirView->animationMode() && m_reservoirView->cellEdgeResult()->hasResult())
|
||||
if (reservoirView->animationMode() && reservoirView->cellEdgeResult()->hasResult())
|
||||
{
|
||||
double min, max;
|
||||
m_reservoirView->cellEdgeResult()->minMaxCellEdgeValues(min, max);
|
||||
reservoirView->cellEdgeResult()->minMaxCellEdgeValues(min, max);
|
||||
infoText += QString("<b>Cell Edge Property:</b> %1 <blockquote>Min: %2 Max: %3 </blockquote>").arg(cellEdgeName).arg(min).arg(max);
|
||||
|
||||
}
|
||||
|
||||
if ( m_reservoirView->cellResult()->hasDynamicResult()
|
||||
|| m_reservoirView->propertyFilterCollection()->hasActiveDynamicFilters()
|
||||
|| m_reservoirView->wellCollection()->hasVisibleWellPipes()
|
||||
|| m_reservoirView->cellResult()->isTernarySaturationSelected())
|
||||
if (reservoirView->cellResult()->hasDynamicResult()
|
||||
|| reservoirView->propertyFilterCollection()->hasActiveDynamicFilters()
|
||||
|| reservoirView->wellCollection()->hasVisibleWellPipes()
|
||||
|| reservoirView->cellResult()->isTernarySaturationSelected())
|
||||
{
|
||||
int currentTimeStep = m_reservoirView->currentTimeStep();
|
||||
QDateTime date = m_reservoirView->currentGridCellResults()->cellResults()->timeStepDate(0, currentTimeStep);
|
||||
int currentTimeStep = reservoirView->currentTimeStep();
|
||||
QDateTime date = reservoirView->currentGridCellResults()->cellResults()->timeStepDate(0, currentTimeStep);
|
||||
infoText += QString("<b>Time Step:</b> %1 <b>Time:</b> %2").arg(currentTimeStep).arg(date.toString("dd.MMM yyyy"));
|
||||
}
|
||||
|
||||
m_reservoirView->viewer()->setInfoText(infoText);
|
||||
reservoirView->viewer()->setInfoText(infoText);
|
||||
}
|
||||
|
||||
if (showHistogram())
|
||||
{
|
||||
if (m_reservoirView->animationMode() && m_reservoirView->cellResult()->hasResult())
|
||||
if (reservoirView->animationMode() && reservoirView->cellResult()->hasResult())
|
||||
{
|
||||
double min, max;
|
||||
double p10, p90;
|
||||
double mean;
|
||||
|
||||
size_t scalarIndex = m_reservoirView->cellResult()->scalarResultIndex();
|
||||
m_reservoirView->currentGridCellResults()->cellResults()->minMaxCellScalarValues(scalarIndex, min, max);
|
||||
m_reservoirView->currentGridCellResults()->cellResults()->p10p90CellScalarValues(scalarIndex, p10, p90);
|
||||
m_reservoirView->currentGridCellResults()->cellResults()->meanCellScalarValues(scalarIndex, mean);
|
||||
size_t scalarIndex = reservoirView->cellResult()->scalarResultIndex();
|
||||
reservoirView->currentGridCellResults()->cellResults()->minMaxCellScalarValues(scalarIndex, min, max);
|
||||
reservoirView->currentGridCellResults()->cellResults()->p10p90CellScalarValues(scalarIndex, p10, p90);
|
||||
reservoirView->currentGridCellResults()->cellResults()->meanCellScalarValues(scalarIndex, mean);
|
||||
|
||||
m_reservoirView->viewer()->showHistogram(true);
|
||||
m_reservoirView->viewer()->setHistogram(min, max, m_reservoirView->currentGridCellResults()->cellResults()->cellScalarValuesHistogram(scalarIndex));
|
||||
m_reservoirView->viewer()->setHistogramPercentiles(p10, p90, mean);
|
||||
reservoirView->viewer()->showHistogram(true);
|
||||
reservoirView->viewer()->setHistogram(min, max, reservoirView->currentGridCellResults()->cellResults()->cellScalarValuesHistogram(scalarIndex));
|
||||
reservoirView->viewer()->setHistogramPercentiles(p10, p90, mean);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -241,15 +270,16 @@ void Rim3dOverlayInfoConfig::update3DInfo()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* Rim3dOverlayInfoConfig::objectToggleField()
|
||||
void Rim3dOverlayInfoConfig::updateGeoMech3DInfo(RimGeoMechView * geoMechView)
|
||||
{
|
||||
return &active;
|
||||
}
|
||||
if (showInfoText())
|
||||
{
|
||||
QString infoText = QString(
|
||||
"<p><b><center>-- %1 --</center></b><p> ").arg("ToDo: Describe Geo Mech Case");
|
||||
geoMechView->viewer()->setInfoText(infoText);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dOverlayInfoConfig::setReservoirView(RimReservoirView* ownerReservoirView)
|
||||
{
|
||||
m_reservoirView = ownerReservoirView;
|
||||
if (showHistogram())
|
||||
{
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,9 @@
|
||||
#include "cvfVector2.h"
|
||||
|
||||
class RimReservoirView;
|
||||
class RimGeoMechView;
|
||||
class RimView;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
@ -41,7 +44,7 @@ public:
|
||||
|
||||
void update3DInfo();
|
||||
|
||||
void setReservoirView(RimReservoirView* ownerReservoirView);
|
||||
void setReservoirView(RimView* ownerView);
|
||||
|
||||
void setPosition(cvf::Vec2ui position);
|
||||
caf::PdmField<bool> active;
|
||||
@ -53,7 +56,13 @@ protected:
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
virtual caf::PdmFieldHandle* objectToggleField();
|
||||
private:
|
||||
caf::PdmPointer<RimReservoirView> m_reservoirView;
|
||||
|
||||
void updateReservoir3DInfo(RimReservoirView * reservoirView);
|
||||
void updateGeoMech3DInfo(RimGeoMechView * geoMechView);
|
||||
|
||||
|
||||
|
||||
caf::PdmPointer<RimView> m_viewDef;
|
||||
|
||||
cvf::Vec2ui m_position;
|
||||
};
|
||||
|
@ -81,29 +81,12 @@ RimGeoMechView::RimGeoMechView(void)
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&cellResult, "GridCellResult", "Color Result", ":/CellResult.png", "", "");
|
||||
cellResult = new RimGeoMechResultSlot();
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&overlayInfoConfig, "OverlayInfoConfig", "Info Box", "", "", "");
|
||||
overlayInfoConfig = new Rim3dOverlayInfoConfig();
|
||||
|
||||
CAF_PDM_InitField(&name, "UserDescription", QString("View"), "Name", "", "", "");
|
||||
|
||||
double defaultScaleFactor = 1.0;
|
||||
if (preferences) defaultScaleFactor = preferences->defaultScaleFactorZ;
|
||||
CAF_PDM_InitField(&scaleZ, "GridZScale", defaultScaleFactor, "Z Scale", "", "Scales the scene in the Z direction", "");
|
||||
|
||||
CAF_PDM_InitField(&showWindow, "ShowWindow", true, "Show 3D viewer", "", "", "");
|
||||
showWindow.setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&cameraPosition, "CameraPosition", cvf::Mat4d::IDENTITY, "", "", "", "");
|
||||
|
||||
|
||||
caf::AppEnum<RimGeoMechView::MeshModeType> defaultMeshType = NO_MESH;
|
||||
if (preferences->defaultGridLines) defaultMeshType = FULL_MESH;
|
||||
CAF_PDM_InitField(&meshMode, "MeshMode", defaultMeshType, "Grid lines", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&surfaceMode, "SurfaceMode", "Grid surface", "", "", "");
|
||||
|
||||
cvf::Color3f defBackgColor = preferences->defaultViewerBackgroundColor();
|
||||
CAF_PDM_InitField(&backgroundColor, "ViewBackgroundColor", defBackgColor, "Background", "", "", "");
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -113,14 +96,6 @@ RimGeoMechView::~RimGeoMechView(void)
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* RimGeoMechView::userDescriptionField()
|
||||
{
|
||||
return &name;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "cafPdmFieldCvfMat4d.h"
|
||||
|
||||
#include "cvfObject.h"
|
||||
#include "RimView.h"
|
||||
|
||||
class RimGeoMechResultSlot;
|
||||
class Rim3dOverlayInfoConfig;
|
||||
@ -40,7 +41,7 @@ class RigFemPart;
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class RimGeoMechView : public caf::PdmObject
|
||||
class RimGeoMechView : public RimView
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
|
||||
@ -48,7 +49,6 @@ public:
|
||||
RimGeoMechView(void);
|
||||
virtual ~RimGeoMechView(void);
|
||||
|
||||
|
||||
enum MeshModeType
|
||||
{
|
||||
FULL_MESH,
|
||||
@ -66,31 +66,22 @@ public:
|
||||
void setGeoMechCase(RimGeoMechCase* gmCase);
|
||||
void loadDataAndUpdate();
|
||||
|
||||
virtual void setCurrentTimeStep(int frameIdx){}
|
||||
virtual void updateCurrentTimeStepAndRedraw(){}
|
||||
virtual void endAnimation() {}
|
||||
|
||||
caf::PdmField<RimGeoMechResultSlot*> cellResult;
|
||||
caf::PdmField<Rim3dOverlayInfoConfig*> overlayInfoConfig;
|
||||
|
||||
// Fields:
|
||||
caf::PdmField<QString> name;
|
||||
caf::PdmField<double> scaleZ;
|
||||
caf::PdmField<bool> showWindow;
|
||||
caf::PdmField<cvf::Mat4d> cameraPosition;
|
||||
|
||||
|
||||
caf::PdmField< caf::AppEnum< MeshModeType > > meshMode;
|
||||
caf::PdmField< caf::AppEnum< SurfaceModeType > > surfaceMode;
|
||||
|
||||
caf::PdmField< cvf::Color3f > backgroundColor;
|
||||
protected:
|
||||
virtual caf::PdmFieldHandle* userDescriptionField();
|
||||
|
||||
private:
|
||||
void updateViewerWidget();
|
||||
void updateViewerWidgetWindowTitle();
|
||||
void createDisplayModelAndRedraw();
|
||||
void updateViewerWidget();
|
||||
void updateViewerWidgetWindowTitle();
|
||||
void createDisplayModelAndRedraw();
|
||||
|
||||
QPointer<RiuViewer> m_viewer;
|
||||
caf::PdmPointer<RimGeoMechCase> m_geomechCase;
|
||||
cvf::ref<RivGeoMechPartMgr> m_geoMechVizModel;
|
||||
caf::PdmPointer<RimGeoMechCase> m_geomechCase;
|
||||
cvf::ref<RivGeoMechPartMgr> m_geoMechVizModel;
|
||||
};
|
||||
|
||||
#include "cvfArray.h"
|
||||
|
@ -39,7 +39,7 @@ namespace cvf
|
||||
class ScalarMapper;
|
||||
}
|
||||
|
||||
class RimReservoirView;
|
||||
class RimView;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@ -52,7 +52,7 @@ public:
|
||||
RimLegendConfig();
|
||||
virtual ~RimLegendConfig();
|
||||
|
||||
void setReservoirView(RimReservoirView* ownerReservoirView) {m_reservoirView = ownerReservoirView; }
|
||||
void setReservoirView(RimView* ownerReservoirView) {m_reservoirView = ownerReservoirView; }
|
||||
|
||||
caf::PdmField<QString> resultVariableName; // Used internally to describe the variable this legend setup is used for
|
||||
|
||||
@ -111,7 +111,7 @@ private:
|
||||
|
||||
|
||||
private:
|
||||
caf::PdmPointer<RimReservoirView> m_reservoirView;
|
||||
caf::PdmPointer<RimView> m_reservoirView;
|
||||
|
||||
cvf::ref<cvf::ScalarMapperDiscreteLinear> m_linDiscreteScalarMapper;
|
||||
cvf::ref<cvf::ScalarMapperDiscreteLog> m_logDiscreteScalarMapper;
|
||||
|
@ -109,25 +109,7 @@ RimReservoirView::RimReservoirView()
|
||||
CAF_PDM_InitFieldNoDefault(&faultResultSettings, "FaultResultSettings", "Separate Fault Result", "", "", "");
|
||||
faultResultSettings = new RimFaultResultSlot();
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&overlayInfoConfig, "OverlayInfoConfig", "Info Box", "", "", "");
|
||||
overlayInfoConfig = new Rim3dOverlayInfoConfig();
|
||||
overlayInfoConfig->setReservoirView(this);
|
||||
|
||||
CAF_PDM_InitField(&name, "UserDescription", QString(""), "Name", "", "", "");
|
||||
|
||||
double defaultScaleFactor = 1.0;
|
||||
if (preferences) defaultScaleFactor = preferences->defaultScaleFactorZ;
|
||||
CAF_PDM_InitField(&scaleZ, "GridZScale", defaultScaleFactor, "Z Scale", "", "Scales the scene in the Z direction", "");
|
||||
|
||||
CAF_PDM_InitField(&showWindow, "ShowWindow", true, "Show 3D viewer", "", "", "");
|
||||
showWindow.setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&m_currentTimeStep, "CurrentTimeStep", 0, "Current Time Step","", "", "");
|
||||
m_currentTimeStep.setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&animationMode, "AnimationMode", false, "Animation Mode","", "", "");
|
||||
animationMode.setUiHidden(true);
|
||||
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&wellCollection, "WellCollection", "Simulation Wells", "", "", "");
|
||||
wellCollection = new RimWellCollection;
|
||||
|
||||
@ -147,20 +129,11 @@ RimReservoirView::RimReservoirView()
|
||||
CAF_PDM_InitField(&meshMode, "MeshMode", defaultMeshType, "Grid lines", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&surfaceMode, "SurfaceMode", "Grid surface", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&maximumFrameRate, "MaximumFrameRate", 10, "Maximum frame rate","", "", "");
|
||||
maximumFrameRate.setUiHidden(true);
|
||||
|
||||
// Visualization fields
|
||||
CAF_PDM_InitField(&showMainGrid, "ShowMainGrid", true, "Show Main Grid", "", "", "");
|
||||
CAF_PDM_InitField(&showInactiveCells, "ShowInactiveCells", false, "Show Inactive Cells", "", "", "");
|
||||
CAF_PDM_InitField(&showInvalidCells, "ShowInvalidCells", false, "Show Invalid Cells", "", "", "");
|
||||
cvf::Color3f defBackgColor = preferences->defaultViewerBackgroundColor();
|
||||
CAF_PDM_InitField(&backgroundColor, "ViewBackgroundColor", defBackgColor, "Background", "", "", "");
|
||||
|
||||
|
||||
CAF_PDM_InitField(&cameraPosition, "CameraPosition", cvf::Mat4d::IDENTITY, "", "", "", "");
|
||||
|
||||
|
||||
|
||||
this->cellResult()->setReservoirView(this);
|
||||
this->cellResult()->legendConfig()->setPosition(cvf::Vec2ui(10, 120));
|
||||
|
||||
@ -223,13 +196,8 @@ void RimReservoirView::updateViewerWidget()
|
||||
|
||||
RiuMainWindow::instance()->addViewer(m_viewer);
|
||||
m_viewer->setMinNearPlaneDistance(10);
|
||||
this->cellResult()->legendConfig->recreateLegend();
|
||||
this->cellResult()->ternaryLegendConfig->recreateLegend();
|
||||
this->cellEdgeResult()->legendConfig->recreateLegend();
|
||||
|
||||
m_viewer->removeAllColorLegends();
|
||||
m_viewer->addColorLegendToBottomLeftCorner(this->cellResult()->legendConfig->legend());
|
||||
m_viewer->addColorLegendToBottomLeftCorner(this->cellEdgeResult()->legendConfig->legend());
|
||||
this->resetLegendsInViewer();
|
||||
|
||||
if (RiaApplication::instance()->navigationPolicy() == RiaApplication::NAVIGATION_POLICY_CEETRON)
|
||||
{
|
||||
@ -1024,14 +992,6 @@ void RimReservoirView::updateStaticCellColors(unsigned short geometryType)
|
||||
m_reservoirGridPartManager->updateCellColor(static_cast<RivReservoirViewPartMgr::ReservoirGeometryCacheType>(geometryType), color);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuViewer* RimReservoirView::viewer()
|
||||
{
|
||||
return m_viewer;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1659,13 +1619,6 @@ bool RimReservoirView::isGridVisualizationMode() const
|
||||
|| this->meshMode() == FULL_MESH);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* RimReservoirView::objectToggleField()
|
||||
{
|
||||
return &showWindow;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
@ -1844,3 +1797,17 @@ RimResultSlot* RimReservoirView::currentFaultResultSlot()
|
||||
return faultResultSlot;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimReservoirView::resetLegendsInViewer()
|
||||
{
|
||||
this->cellResult()->legendConfig->recreateLegend();
|
||||
this->cellResult()->ternaryLegendConfig->recreateLegend();
|
||||
this->cellEdgeResult()->legendConfig->recreateLegend();
|
||||
|
||||
m_viewer->removeAllColorLegends();
|
||||
m_viewer->addColorLegendToBottomLeftCorner(this->cellResult()->legendConfig->legend());
|
||||
m_viewer->addColorLegendToBottomLeftCorner(this->cellEdgeResult()->legendConfig->legend());
|
||||
}
|
||||
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "cafPdmFieldCvfMat4d.h"
|
||||
|
||||
#include "RivReservoirViewPartMgr.h"
|
||||
#include "RimView.h"
|
||||
|
||||
class RigActiveCellInfo;
|
||||
class RigCaseCellResultsData;
|
||||
@ -74,7 +75,7 @@ enum PartRenderMaskEnum
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class RimReservoirView : public caf::PdmObject
|
||||
class RimReservoirView : public RimView
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
public:
|
||||
@ -108,14 +109,6 @@ public:
|
||||
|
||||
caf::PdmField<RimFaultCollection*> faultCollection;
|
||||
|
||||
caf::PdmField<Rim3dOverlayInfoConfig*> overlayInfoConfig;
|
||||
|
||||
// Visualization setup fields
|
||||
|
||||
caf::PdmField<QString> name;
|
||||
caf::PdmField<double> scaleZ;
|
||||
caf::PdmField<bool> showWindow;
|
||||
|
||||
caf::PdmField<bool> showInvalidCells;
|
||||
caf::PdmField<bool> showInactiveCells;
|
||||
caf::PdmField<bool> showMainGrid;
|
||||
@ -123,14 +116,6 @@ public:
|
||||
caf::PdmField< caf::AppEnum< MeshModeType > > meshMode;
|
||||
caf::PdmField< caf::AppEnum< SurfaceModeType > > surfaceMode;
|
||||
|
||||
caf::PdmField< cvf::Color3f > backgroundColor;
|
||||
|
||||
caf::PdmField<cvf::Mat4d> cameraPosition;
|
||||
|
||||
caf::PdmField<int> maximumFrameRate;
|
||||
caf::PdmField<bool> animationMode;
|
||||
|
||||
|
||||
// Access internal objects
|
||||
RimReservoirCellResultsStorage* currentGridCellResults();
|
||||
RigActiveCellInfo* currentActiveCellInfo();
|
||||
@ -140,16 +125,18 @@ public:
|
||||
void setEclipseCase(RimCase* reservoir);
|
||||
RimCase* eclipseCase();
|
||||
|
||||
// Animation
|
||||
int currentTimeStep() { return m_currentTimeStep;}
|
||||
void setCurrentTimeStep(int frameIdx);
|
||||
void updateCurrentTimeStepAndRedraw();
|
||||
void endAnimation();
|
||||
// Animation overrides from RimView
|
||||
|
||||
virtual void setCurrentTimeStep(int frameIdx);
|
||||
virtual void updateCurrentTimeStepAndRedraw();
|
||||
virtual void endAnimation();
|
||||
|
||||
// 3D Viewer
|
||||
RiuViewer* viewer();
|
||||
|
||||
private:
|
||||
void updateViewerWidget();
|
||||
void resetLegendsInViewer();
|
||||
|
||||
|
||||
void updateViewerWidgetWindowTitle();
|
||||
void setDefaultView();
|
||||
|
||||
@ -203,8 +190,6 @@ private:
|
||||
|
||||
// Overridden PDM methods:
|
||||
public:
|
||||
virtual caf::PdmFieldHandle* userDescriptionField() { return &name; }
|
||||
virtual caf::PdmFieldHandle* objectToggleField();
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
protected:
|
||||
virtual void initAfterRead();
|
||||
@ -217,8 +202,6 @@ private:
|
||||
void clampCurrentTimestep();
|
||||
|
||||
private:
|
||||
caf::PdmField<int> m_currentTimeStep;
|
||||
QPointer<RiuViewer> m_viewer;
|
||||
caf::PdmPointer<RimCase> m_reservoir;
|
||||
|
||||
bool m_previousGridModeMeshLinesWasFaults;
|
||||
|
@ -1,14 +1,48 @@
|
||||
#include "RimView.h"
|
||||
#include "cafPdmObjectFactory.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimView, "GenericView");
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaPreferences.h"
|
||||
#include "Rim3dOverlayInfoConfig.h"
|
||||
#include "RiuViewer.h"
|
||||
|
||||
CAF_PDM_ABSTRACT_SOURCE_INIT(RimView, "GenericView"); // Do not use. Abstract class
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimView::RimView(void)
|
||||
{
|
||||
CAF_PDM_InitObject("Generic View", ":/ReservoirView.png", "", "");
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RiaPreferences* preferences = app->preferences();
|
||||
CVF_ASSERT(preferences);
|
||||
|
||||
|
||||
CAF_PDM_InitField(&name, "UserDescription", QString(""), "Name", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&showWindow, "ShowWindow", true, "Show 3D viewer", "", "", "");
|
||||
showWindow.setUiHidden(true);
|
||||
CAF_PDM_InitField(&cameraPosition, "CameraPosition", cvf::Mat4d::IDENTITY, "", "", "", "");
|
||||
|
||||
double defaultScaleFactor = 1.0;
|
||||
if (preferences) defaultScaleFactor = preferences->defaultScaleFactorZ;
|
||||
CAF_PDM_InitField(&scaleZ, "GridZScale", defaultScaleFactor, "Z Scale", "", "Scales the scene in the Z direction", "");
|
||||
|
||||
cvf::Color3f defBackgColor = preferences->defaultViewerBackgroundColor();
|
||||
CAF_PDM_InitField(&backgroundColor, "ViewBackgroundColor", defBackgColor, "Background", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&maximumFrameRate, "MaximumFrameRate", 10, "Maximum frame rate", "", "", "");
|
||||
maximumFrameRate.setUiHidden(true);
|
||||
CAF_PDM_InitField(&animationMode, "AnimationMode", false, "Animation Mode", "", "", "");
|
||||
animationMode.setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&m_currentTimeStep, "CurrentTimeStep", 0, "Current Time Step", "", "", "");
|
||||
m_currentTimeStep.setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&overlayInfoConfig, "OverlayInfoConfig", "Info Box", "", "", "");
|
||||
overlayInfoConfig = new Rim3dOverlayInfoConfig();
|
||||
overlayInfoConfig->setReservoirView(this);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -20,5 +54,13 @@ RimView::~RimView(void)
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuViewer* RimView::viewer()
|
||||
{
|
||||
return m_viewer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -20,6 +20,16 @@
|
||||
#pragma once
|
||||
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmFieldCvfColor.h"
|
||||
#include "cafPdmFieldCvfMat4d.h"
|
||||
|
||||
class RiuViewer;
|
||||
class Rim3dOverlayInfoConfig;
|
||||
|
||||
#define CAF_PDM_ABSTRACT_SOURCE_INIT(ClassName, keyword) \
|
||||
bool ClassName::Error_You_forgot_to_add_the_macro_CAF_PDM_HEADER_INIT_and_or_CAF_PDM_SOURCE_INIT_to_your_cpp_file_for_this_class() { return false;} \
|
||||
QString ClassName::classKeywordStatic() { assert(PdmObject::isValidXmlElementName(keyword)); return keyword; }
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@ -32,7 +42,36 @@ public:
|
||||
RimView(void);
|
||||
virtual ~RimView(void);
|
||||
|
||||
// 3D Viewer
|
||||
RiuViewer* viewer();
|
||||
|
||||
caf::PdmField<QString> name;
|
||||
caf::PdmField<double> scaleZ;
|
||||
|
||||
caf::PdmField<bool> showWindow;
|
||||
caf::PdmField<cvf::Mat4d> cameraPosition;
|
||||
caf::PdmField< cvf::Color3f > backgroundColor;
|
||||
|
||||
caf::PdmField<int> maximumFrameRate;
|
||||
caf::PdmField<bool> animationMode;
|
||||
|
||||
caf::PdmField<Rim3dOverlayInfoConfig*> overlayInfoConfig;
|
||||
// Animation
|
||||
int currentTimeStep() { return m_currentTimeStep;}
|
||||
virtual void setCurrentTimeStep(int frameIdx) = 0;
|
||||
virtual void updateCurrentTimeStepAndRedraw() = 0;
|
||||
virtual void endAnimation() = 0;
|
||||
|
||||
|
||||
public:
|
||||
virtual caf::PdmFieldHandle* objectToggleField() { return &showWindow; }
|
||||
virtual caf::PdmFieldHandle* userDescriptionField() { return &name; }
|
||||
protected:
|
||||
//void updateViewerWidget();
|
||||
//virtual void resetLegendsInViewer() = 0;
|
||||
|
||||
QPointer<RiuViewer> m_viewer;
|
||||
caf::PdmField<int> m_currentTimeStep;
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user