mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-12 16:32:12 -05:00
Refactored general view stuff into RimView
Removing it from RimReservoirView and RimGeoMechView
This commit is contained in:
1 parent
4a21bb4a30
commit
4b7d593b3c
9 files changed
+228
-192
No files matched your search
@@ -32,6 +32,8 @@
|
|||||||
#include "RimResultSlot.h"
|
#include "RimResultSlot.h"
|
||||||
#include "RimWellCollection.h"
|
#include "RimWellCollection.h"
|
||||||
#include "RiuViewer.h"
|
#include "RiuViewer.h"
|
||||||
|
#include "RimGeoMechView.h"
|
||||||
|
#include "RimView.h"
|
||||||
|
|
||||||
CAF_PDM_SOURCE_INIT(Rim3dOverlayInfoConfig, "View3dOverlayInfoConfig");
|
CAF_PDM_SOURCE_INIT(Rim3dOverlayInfoConfig, "View3dOverlayInfoConfig");
|
||||||
|
|
||||||
@@ -65,9 +67,9 @@ void Rim3dOverlayInfoConfig::fieldChangedByUi(const caf::PdmFieldHandle* changed
|
|||||||
{
|
{
|
||||||
this->update3DInfo();
|
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();
|
this->updateUiIconFromToggleField();
|
||||||
|
|
||||||
if (!m_reservoirView) return;
|
if (!m_viewDef) return;
|
||||||
if (!m_reservoirView->viewer()) return;
|
if (!m_viewDef->viewer()) return;
|
||||||
|
|
||||||
if (!this->active())
|
if (!this->active())
|
||||||
{
|
{
|
||||||
m_reservoirView->viewer()->showInfoText(false);
|
m_viewDef->viewer()->showInfoText(false);
|
||||||
m_reservoirView->viewer()->showHistogram(false);
|
m_viewDef->viewer()->showHistogram(false);
|
||||||
m_reservoirView->viewer()->showAnimationProgress(false);
|
m_viewDef->viewer()->showAnimationProgress(false);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_reservoirView->viewer()->showInfoText(showInfoText());
|
m_viewDef->viewer()->showInfoText(showInfoText());
|
||||||
m_reservoirView->viewer()->showHistogram(false);
|
m_viewDef->viewer()->showHistogram(false);
|
||||||
m_reservoirView->viewer()->showAnimationProgress(showAnimProgress());
|
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())
|
if (showInfoText())
|
||||||
{
|
{
|
||||||
QString caseName;
|
QString caseName;
|
||||||
@@ -115,64 +144,64 @@ void Rim3dOverlayInfoConfig::update3DInfo()
|
|||||||
QString faultCellResultMapping;
|
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();
|
caseName = reservoirView->eclipseCase()->caseUserDescription();
|
||||||
totCellCount = QString::number(m_reservoirView->eclipseCase()->reservoirData()->mainGrid()->cells().size());
|
totCellCount = QString::number(reservoirView->eclipseCase()->reservoirData()->mainGrid()->cells().size());
|
||||||
size_t mxActCellCount = m_reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::MATRIX_RESULTS)->reservoirActiveCellCount();
|
size_t mxActCellCount = reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::MATRIX_RESULTS)->reservoirActiveCellCount();
|
||||||
size_t frActCellCount = m_reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::FRACTURE_RESULTS)->reservoirActiveCellCount();
|
size_t frActCellCount = reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::FRACTURE_RESULTS)->reservoirActiveCellCount();
|
||||||
if (frActCellCount > 0) activeCellCountText += "Matrix : ";
|
if (frActCellCount > 0) activeCellCountText += "Matrix : ";
|
||||||
activeCellCountText += QString::number(mxActCellCount);
|
activeCellCountText += QString::number(mxActCellCount);
|
||||||
if (frActCellCount > 0) activeCellCountText += " Fracture : " + QString::number(frActCellCount);
|
if (frActCellCount > 0) activeCellCountText += " Fracture : " + QString::number(frActCellCount);
|
||||||
|
|
||||||
iSize = QString::number(m_reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountI());
|
iSize = QString::number(reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountI());
|
||||||
jSize = QString::number(m_reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountJ());
|
jSize = QString::number(reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountJ());
|
||||||
kSize = QString::number(m_reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountK());
|
kSize = QString::number(reservoirView->eclipseCase()->reservoirData()->mainGrid()->cellCountK());
|
||||||
|
|
||||||
zScale = QString::number(m_reservoirView->scaleZ());
|
zScale = QString::number(reservoirView->scaleZ());
|
||||||
|
|
||||||
propName = m_reservoirView->cellResult()->resultVariable();
|
propName = reservoirView->cellResult()->resultVariable();
|
||||||
cellEdgeName = m_reservoirView->cellEdgeResult()->resultVariable();
|
cellEdgeName = reservoirView->cellEdgeResult()->resultVariable();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString infoText = QString(
|
QString infoText = QString(
|
||||||
"<p><b><center>-- %1 --</center></b><p> "
|
"<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);
|
"<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);
|
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);
|
infoText += QString("<b>Cell Property:</b> %1 ").arg(propName);
|
||||||
|
|
||||||
double min, max;
|
double min, max;
|
||||||
double p10, p90;
|
double p10, p90;
|
||||||
double mean;
|
double mean;
|
||||||
size_t scalarIndex = m_reservoirView->cellResult()->scalarResultIndex();
|
size_t scalarIndex = reservoirView->cellResult()->scalarResultIndex();
|
||||||
m_reservoirView->currentGridCellResults()->cellResults()->minMaxCellScalarValues(scalarIndex, min, max);
|
reservoirView->currentGridCellResults()->cellResults()->minMaxCellScalarValues(scalarIndex, min, max);
|
||||||
m_reservoirView->currentGridCellResults()->cellResults()->p10p90CellScalarValues(scalarIndex, p10, p90);
|
reservoirView->currentGridCellResults()->cellResults()->p10p90CellScalarValues(scalarIndex, p10, p90);
|
||||||
m_reservoirView->currentGridCellResults()->cellResults()->meanCellScalarValues(scalarIndex, mean);
|
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><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("<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>"
|
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);
|
"<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;
|
QString faultMapping;
|
||||||
bool isShowingGrid = m_reservoirView->faultCollection()->isGridVisualizationMode();
|
bool isShowingGrid = reservoirView->faultCollection()->isGridVisualizationMode();
|
||||||
if (!isShowingGrid)
|
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";
|
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";
|
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 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
|
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;
|
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);
|
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()
|
if (reservoirView->cellResult()->hasDynamicResult()
|
||||||
|| m_reservoirView->propertyFilterCollection()->hasActiveDynamicFilters()
|
|| reservoirView->propertyFilterCollection()->hasActiveDynamicFilters()
|
||||||
|| m_reservoirView->wellCollection()->hasVisibleWellPipes()
|
|| reservoirView->wellCollection()->hasVisibleWellPipes()
|
||||||
|| m_reservoirView->cellResult()->isTernarySaturationSelected())
|
|| reservoirView->cellResult()->isTernarySaturationSelected())
|
||||||
{
|
{
|
||||||
int currentTimeStep = m_reservoirView->currentTimeStep();
|
int currentTimeStep = reservoirView->currentTimeStep();
|
||||||
QDateTime date = m_reservoirView->currentGridCellResults()->cellResults()->timeStepDate(0, 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"));
|
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 (showHistogram())
|
||||||
{
|
{
|
||||||
if (m_reservoirView->animationMode() && m_reservoirView->cellResult()->hasResult())
|
if (reservoirView->animationMode() && reservoirView->cellResult()->hasResult())
|
||||||
{
|
{
|
||||||
double min, max;
|
double min, max;
|
||||||
double p10, p90;
|
double p10, p90;
|
||||||
double mean;
|
double mean;
|
||||||
|
|
||||||
size_t scalarIndex = m_reservoirView->cellResult()->scalarResultIndex();
|
size_t scalarIndex = reservoirView->cellResult()->scalarResultIndex();
|
||||||
m_reservoirView->currentGridCellResults()->cellResults()->minMaxCellScalarValues(scalarIndex, min, max);
|
reservoirView->currentGridCellResults()->cellResults()->minMaxCellScalarValues(scalarIndex, min, max);
|
||||||
m_reservoirView->currentGridCellResults()->cellResults()->p10p90CellScalarValues(scalarIndex, p10, p90);
|
reservoirView->currentGridCellResults()->cellResults()->p10p90CellScalarValues(scalarIndex, p10, p90);
|
||||||
m_reservoirView->currentGridCellResults()->cellResults()->meanCellScalarValues(scalarIndex, mean);
|
reservoirView->currentGridCellResults()->cellResults()->meanCellScalarValues(scalarIndex, mean);
|
||||||
|
|
||||||
m_reservoirView->viewer()->showHistogram(true);
|
reservoirView->viewer()->showHistogram(true);
|
||||||
m_reservoirView->viewer()->setHistogram(min, max, m_reservoirView->currentGridCellResults()->cellResults()->cellScalarValuesHistogram(scalarIndex));
|
reservoirView->viewer()->setHistogram(min, max, reservoirView->currentGridCellResults()->cellResults()->cellScalarValuesHistogram(scalarIndex));
|
||||||
m_reservoirView->viewer()->setHistogramPercentiles(p10, p90, mean);
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
if (showHistogram())
|
||||||
///
|
{
|
||||||
//--------------------------------------------------------------------------------------------------
|
}
|
||||||
void Rim3dOverlayInfoConfig::setReservoirView(RimReservoirView* ownerReservoirView)
|
|
||||||
{
|
|
||||||
m_reservoirView = ownerReservoirView;
|
|
||||||
}
|
}
|
||||||
@@ -28,6 +28,9 @@
|
|||||||
#include "cvfVector2.h"
|
#include "cvfVector2.h"
|
||||||
|
|
||||||
class RimReservoirView;
|
class RimReservoirView;
|
||||||
|
class RimGeoMechView;
|
||||||
|
class RimView;
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
///
|
///
|
||||||
///
|
///
|
||||||
@@ -41,7 +44,7 @@ public:
|
|||||||
|
|
||||||
void update3DInfo();
|
void update3DInfo();
|
||||||
|
|
||||||
void setReservoirView(RimReservoirView* ownerReservoirView);
|
void setReservoirView(RimView* ownerView);
|
||||||
|
|
||||||
void setPosition(cvf::Vec2ui position);
|
void setPosition(cvf::Vec2ui position);
|
||||||
caf::PdmField<bool> active;
|
caf::PdmField<bool> active;
|
||||||
@@ -53,7 +56,13 @@ protected:
|
|||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
virtual caf::PdmFieldHandle* objectToggleField();
|
virtual caf::PdmFieldHandle* objectToggleField();
|
||||||
private:
|
private:
|
||||||
caf::PdmPointer<RimReservoirView> m_reservoirView;
|
|
||||||
|
void updateReservoir3DInfo(RimReservoirView * reservoirView);
|
||||||
|
void updateGeoMech3DInfo(RimGeoMechView * geoMechView);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
caf::PdmPointer<RimView> m_viewDef;
|
||||||
|
|
||||||
cvf::Vec2ui m_position;
|
cvf::Vec2ui m_position;
|
||||||
};
|
};
|
||||||
@@ -81,29 +81,12 @@ RimGeoMechView::RimGeoMechView(void)
|
|||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&cellResult, "GridCellResult", "Color Result", ":/CellResult.png", "", "");
|
CAF_PDM_InitFieldNoDefault(&cellResult, "GridCellResult", "Color Result", ":/CellResult.png", "", "");
|
||||||
cellResult = new RimGeoMechResultSlot();
|
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;
|
caf::AppEnum<RimGeoMechView::MeshModeType> defaultMeshType = NO_MESH;
|
||||||
if (preferences->defaultGridLines) defaultMeshType = FULL_MESH;
|
if (preferences->defaultGridLines) defaultMeshType = FULL_MESH;
|
||||||
CAF_PDM_InitField(&meshMode, "MeshMode", defaultMeshType, "Grid lines", "", "", "");
|
CAF_PDM_InitField(&meshMode, "MeshMode", defaultMeshType, "Grid lines", "", "", "");
|
||||||
CAF_PDM_InitFieldNoDefault(&surfaceMode, "SurfaceMode", "Grid surface", "", "", "");
|
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 "cafPdmFieldCvfMat4d.h"
|
||||||
|
|
||||||
#include "cvfObject.h"
|
#include "cvfObject.h"
|
||||||
|
#include "RimView.h"
|
||||||
|
|
||||||
class RimGeoMechResultSlot;
|
class RimGeoMechResultSlot;
|
||||||
class Rim3dOverlayInfoConfig;
|
class Rim3dOverlayInfoConfig;
|
||||||
@@ -40,7 +41,7 @@ class RigFemPart;
|
|||||||
///
|
///
|
||||||
///
|
///
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
class RimGeoMechView : public caf::PdmObject
|
class RimGeoMechView : public RimView
|
||||||
{
|
{
|
||||||
CAF_PDM_HEADER_INIT;
|
CAF_PDM_HEADER_INIT;
|
||||||
|
|
||||||
@@ -48,7 +49,6 @@ public:
|
|||||||
RimGeoMechView(void);
|
RimGeoMechView(void);
|
||||||
virtual ~RimGeoMechView(void);
|
virtual ~RimGeoMechView(void);
|
||||||
|
|
||||||
|
|
||||||
enum MeshModeType
|
enum MeshModeType
|
||||||
{
|
{
|
||||||
FULL_MESH,
|
FULL_MESH,
|
||||||
@@ -66,31 +66,22 @@ public:
|
|||||||
void setGeoMechCase(RimGeoMechCase* gmCase);
|
void setGeoMechCase(RimGeoMechCase* gmCase);
|
||||||
void loadDataAndUpdate();
|
void loadDataAndUpdate();
|
||||||
|
|
||||||
|
virtual void setCurrentTimeStep(int frameIdx){}
|
||||||
|
virtual void updateCurrentTimeStepAndRedraw(){}
|
||||||
|
virtual void endAnimation() {}
|
||||||
|
|
||||||
caf::PdmField<RimGeoMechResultSlot*> cellResult;
|
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< MeshModeType > > meshMode;
|
||||||
caf::PdmField< caf::AppEnum< SurfaceModeType > > surfaceMode;
|
caf::PdmField< caf::AppEnum< SurfaceModeType > > surfaceMode;
|
||||||
|
|
||||||
caf::PdmField< cvf::Color3f > backgroundColor;
|
|
||||||
protected:
|
|
||||||
virtual caf::PdmFieldHandle* userDescriptionField();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updateViewerWidget();
|
void updateViewerWidget();
|
||||||
void updateViewerWidgetWindowTitle();
|
void updateViewerWidgetWindowTitle();
|
||||||
void createDisplayModelAndRedraw();
|
void createDisplayModelAndRedraw();
|
||||||
|
|
||||||
QPointer<RiuViewer> m_viewer;
|
caf::PdmPointer<RimGeoMechCase> m_geomechCase;
|
||||||
caf::PdmPointer<RimGeoMechCase> m_geomechCase;
|
cvf::ref<RivGeoMechPartMgr> m_geoMechVizModel;
|
||||||
cvf::ref<RivGeoMechPartMgr> m_geoMechVizModel;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "cvfArray.h"
|
#include "cvfArray.h"
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace cvf
|
|||||||
class ScalarMapper;
|
class ScalarMapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
class RimReservoirView;
|
class RimView;
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
///
|
///
|
||||||
@@ -52,7 +52,7 @@ public:
|
|||||||
RimLegendConfig();
|
RimLegendConfig();
|
||||||
virtual ~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
|
caf::PdmField<QString> resultVariableName; // Used internally to describe the variable this legend setup is used for
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmPointer<RimReservoirView> m_reservoirView;
|
caf::PdmPointer<RimView> m_reservoirView;
|
||||||
|
|
||||||
cvf::ref<cvf::ScalarMapperDiscreteLinear> m_linDiscreteScalarMapper;
|
cvf::ref<cvf::ScalarMapperDiscreteLinear> m_linDiscreteScalarMapper;
|
||||||
cvf::ref<cvf::ScalarMapperDiscreteLog> m_logDiscreteScalarMapper;
|
cvf::ref<cvf::ScalarMapperDiscreteLog> m_logDiscreteScalarMapper;
|
||||||
|
|||||||
@@ -109,25 +109,7 @@ RimReservoirView::RimReservoirView()
|
|||||||
CAF_PDM_InitFieldNoDefault(&faultResultSettings, "FaultResultSettings", "Separate Fault Result", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&faultResultSettings, "FaultResultSettings", "Separate Fault Result", "", "", "");
|
||||||
faultResultSettings = new RimFaultResultSlot();
|
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", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&wellCollection, "WellCollection", "Simulation Wells", "", "", "");
|
||||||
wellCollection = new RimWellCollection;
|
wellCollection = new RimWellCollection;
|
||||||
|
|
||||||
@@ -147,20 +129,11 @@ RimReservoirView::RimReservoirView()
|
|||||||
CAF_PDM_InitField(&meshMode, "MeshMode", defaultMeshType, "Grid lines", "", "", "");
|
CAF_PDM_InitField(&meshMode, "MeshMode", defaultMeshType, "Grid lines", "", "", "");
|
||||||
CAF_PDM_InitFieldNoDefault(&surfaceMode, "SurfaceMode", "Grid surface", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&surfaceMode, "SurfaceMode", "Grid surface", "", "", "");
|
||||||
|
|
||||||
CAF_PDM_InitField(&maximumFrameRate, "MaximumFrameRate", 10, "Maximum frame rate","", "", "");
|
|
||||||
maximumFrameRate.setUiHidden(true);
|
|
||||||
|
|
||||||
// Visualization fields
|
// Visualization fields
|
||||||
CAF_PDM_InitField(&showMainGrid, "ShowMainGrid", true, "Show Main Grid", "", "", "");
|
CAF_PDM_InitField(&showMainGrid, "ShowMainGrid", true, "Show Main Grid", "", "", "");
|
||||||
CAF_PDM_InitField(&showInactiveCells, "ShowInactiveCells", false, "Show Inactive Cells", "", "", "");
|
CAF_PDM_InitField(&showInactiveCells, "ShowInactiveCells", false, "Show Inactive Cells", "", "", "");
|
||||||
CAF_PDM_InitField(&showInvalidCells, "ShowInvalidCells", false, "Show Invalid 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()->setReservoirView(this);
|
||||||
this->cellResult()->legendConfig()->setPosition(cvf::Vec2ui(10, 120));
|
this->cellResult()->legendConfig()->setPosition(cvf::Vec2ui(10, 120));
|
||||||
|
|
||||||
@@ -223,13 +196,8 @@ void RimReservoirView::updateViewerWidget()
|
|||||||
|
|
||||||
RiuMainWindow::instance()->addViewer(m_viewer);
|
RiuMainWindow::instance()->addViewer(m_viewer);
|
||||||
m_viewer->setMinNearPlaneDistance(10);
|
m_viewer->setMinNearPlaneDistance(10);
|
||||||
this->cellResult()->legendConfig->recreateLegend();
|
|
||||||
this->cellResult()->ternaryLegendConfig->recreateLegend();
|
|
||||||
this->cellEdgeResult()->legendConfig->recreateLegend();
|
|
||||||
|
|
||||||
m_viewer->removeAllColorLegends();
|
this->resetLegendsInViewer();
|
||||||
m_viewer->addColorLegendToBottomLeftCorner(this->cellResult()->legendConfig->legend());
|
|
||||||
m_viewer->addColorLegendToBottomLeftCorner(this->cellEdgeResult()->legendConfig->legend());
|
|
||||||
|
|
||||||
if (RiaApplication::instance()->navigationPolicy() == RiaApplication::NAVIGATION_POLICY_CEETRON)
|
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);
|
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);
|
|| this->meshMode() == FULL_MESH);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
caf::PdmFieldHandle* RimReservoirView::objectToggleField()
|
|
||||||
{
|
|
||||||
return &showWindow;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
@@ -1844,3 +1797,17 @@ RimResultSlot* RimReservoirView::currentFaultResultSlot()
|
|||||||
return faultResultSlot;
|
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 "cafPdmFieldCvfMat4d.h"
|
||||||
|
|
||||||
#include "RivReservoirViewPartMgr.h"
|
#include "RivReservoirViewPartMgr.h"
|
||||||
|
#include "RimView.h"
|
||||||
|
|
||||||
class RigActiveCellInfo;
|
class RigActiveCellInfo;
|
||||||
class RigCaseCellResultsData;
|
class RigCaseCellResultsData;
|
||||||
@@ -74,7 +75,7 @@ enum PartRenderMaskEnum
|
|||||||
///
|
///
|
||||||
///
|
///
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
class RimReservoirView : public caf::PdmObject
|
class RimReservoirView : public RimView
|
||||||
{
|
{
|
||||||
CAF_PDM_HEADER_INIT;
|
CAF_PDM_HEADER_INIT;
|
||||||
public:
|
public:
|
||||||
@@ -108,14 +109,6 @@ public:
|
|||||||
|
|
||||||
caf::PdmField<RimFaultCollection*> faultCollection;
|
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> showInvalidCells;
|
||||||
caf::PdmField<bool> showInactiveCells;
|
caf::PdmField<bool> showInactiveCells;
|
||||||
caf::PdmField<bool> showMainGrid;
|
caf::PdmField<bool> showMainGrid;
|
||||||
@@ -123,14 +116,6 @@ public:
|
|||||||
caf::PdmField< caf::AppEnum< MeshModeType > > meshMode;
|
caf::PdmField< caf::AppEnum< MeshModeType > > meshMode;
|
||||||
caf::PdmField< caf::AppEnum< SurfaceModeType > > surfaceMode;
|
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
|
// Access internal objects
|
||||||
RimReservoirCellResultsStorage* currentGridCellResults();
|
RimReservoirCellResultsStorage* currentGridCellResults();
|
||||||
RigActiveCellInfo* currentActiveCellInfo();
|
RigActiveCellInfo* currentActiveCellInfo();
|
||||||
@@ -140,16 +125,18 @@ public:
|
|||||||
void setEclipseCase(RimCase* reservoir);
|
void setEclipseCase(RimCase* reservoir);
|
||||||
RimCase* eclipseCase();
|
RimCase* eclipseCase();
|
||||||
|
|
||||||
// Animation
|
// Animation overrides from RimView
|
||||||
int currentTimeStep() { return m_currentTimeStep;}
|
|
||||||
void setCurrentTimeStep(int frameIdx);
|
virtual void setCurrentTimeStep(int frameIdx);
|
||||||
void updateCurrentTimeStepAndRedraw();
|
virtual void updateCurrentTimeStepAndRedraw();
|
||||||
void endAnimation();
|
virtual void endAnimation();
|
||||||
|
|
||||||
// 3D Viewer
|
|
||||||
RiuViewer* viewer();
|
|
||||||
private:
|
private:
|
||||||
void updateViewerWidget();
|
void updateViewerWidget();
|
||||||
|
void resetLegendsInViewer();
|
||||||
|
|
||||||
|
|
||||||
void updateViewerWidgetWindowTitle();
|
void updateViewerWidgetWindowTitle();
|
||||||
void setDefaultView();
|
void setDefaultView();
|
||||||
|
|
||||||
@@ -203,8 +190,6 @@ private:
|
|||||||
|
|
||||||
// Overridden PDM methods:
|
// Overridden PDM methods:
|
||||||
public:
|
public:
|
||||||
virtual caf::PdmFieldHandle* userDescriptionField() { return &name; }
|
|
||||||
virtual caf::PdmFieldHandle* objectToggleField();
|
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
protected:
|
protected:
|
||||||
virtual void initAfterRead();
|
virtual void initAfterRead();
|
||||||
@@ -217,8 +202,6 @@ private:
|
|||||||
void clampCurrentTimestep();
|
void clampCurrentTimestep();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmField<int> m_currentTimeStep;
|
|
||||||
QPointer<RiuViewer> m_viewer;
|
|
||||||
caf::PdmPointer<RimCase> m_reservoir;
|
caf::PdmPointer<RimCase> m_reservoir;
|
||||||
|
|
||||||
bool m_previousGridModeMeshLinesWasFaults;
|
bool m_previousGridModeMeshLinesWasFaults;
|
||||||
|
|||||||
@@ -1,14 +1,48 @@
|
|||||||
#include "RimView.h"
|
#include "RimView.h"
|
||||||
#include "cafPdmObjectFactory.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)
|
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
|
#pragma once
|
||||||
|
|
||||||
#include "cafPdmObject.h"
|
#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);
|
RimView(void);
|
||||||
virtual ~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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user