Toolbar - Gridlines - Faults only option #74

This commit is contained in:
Jacob Støren 2013-12-18 23:37:30 +01:00
parent ee135b5949
commit a20e08237b
7 changed files with 87 additions and 25 deletions

View File

@ -220,7 +220,5 @@ bool RimFaultCollection::isGridVisualizationMode() const
{
CVF_ASSERT(m_reservoirView);
return ( m_reservoirView->surfaceMode() == RimReservoirView::SURFACE
|| m_reservoirView->meshMode() == RimReservoirView::FULL_MESH);
return m_reservoirView->isGridVisualizationMode();
}

View File

@ -183,6 +183,8 @@ RimReservoirView::RimReservoirView()
m_pipesPartManager = new RivReservoirPipesPartMgr(this);
m_reservoir = NULL;
m_previousGridModeMeshLinesWasFaults = false;
}
//--------------------------------------------------------------------------------------------------
@ -469,11 +471,15 @@ void RimReservoirView::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
}
else if (changedField == &meshMode)
{
createDisplayModel();
updateDisplayModelVisibility();
RiuMainWindow::instance()->refreshDrawStyleActions();
}
else if (changedField == &surfaceMode)
{
createDisplayModel();
updateDisplayModelVisibility();
RiuMainWindow::instance()->refreshDrawStyleActions();
}
else if (changedField == &name)
{
@ -1669,16 +1675,17 @@ void RimReservoirView::updateDisplayModelForWellResults()
//--------------------------------------------------------------------------------------------------
void RimReservoirView::setMeshOnlyDrawstyle()
{
if (surfaceMode == FAULTS || meshMode == FAULTS_MESH)
if (isGridVisualizationMode())
{
surfaceMode = NO_SURFACE;
meshMode = FAULTS_MESH;
meshMode = FULL_MESH;
}
else
{
surfaceMode = NO_SURFACE;
meshMode = FULL_MESH;
meshMode = FAULTS_MESH;
}
surfaceMode = NO_SURFACE;
updateDisplayModelVisibility();
}
@ -1687,16 +1694,41 @@ void RimReservoirView::setMeshOnlyDrawstyle()
//--------------------------------------------------------------------------------------------------
void RimReservoirView::setMeshSurfDrawstyle()
{
if (surfaceMode == FAULTS || meshMode == FAULTS_MESH)
{
surfaceMode = FAULTS;
meshMode = FAULTS_MESH;
}
else
if (isGridVisualizationMode())
{
surfaceMode = SURFACE;
meshMode = FULL_MESH;
}
else
{
surfaceMode = FAULTS;
meshMode = FAULTS_MESH;
}
updateDisplayModelVisibility();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimReservoirView::setFaultMeshSurfDrawstyle()
{
// Surf: No Fault Surf
// Mesh -------------
// No FF FF SF
// Fault FF FF SF
// Mesh SF SF SF
if (this->isGridVisualizationMode())
{
surfaceMode = SURFACE;
}
else
{
surfaceMode = FAULTS;
}
meshMode = FAULTS_MESH;
updateDisplayModelVisibility();
}
@ -1705,16 +1737,16 @@ void RimReservoirView::setMeshSurfDrawstyle()
//--------------------------------------------------------------------------------------------------
void RimReservoirView::setSurfOnlyDrawstyle()
{
if (surfaceMode == FAULTS || meshMode == FAULTS_MESH)
if (isGridVisualizationMode())
{
surfaceMode = FAULTS;
meshMode = NO_MESH;
surfaceMode = SURFACE;
}
else
{
surfaceMode = SURFACE;
meshMode = NO_MESH;
surfaceMode = FAULTS;
}
meshMode = NO_MESH;
updateDisplayModelVisibility();
}
@ -1725,19 +1757,36 @@ void RimReservoirView::setShowFaultsOnly(bool showFaults)
{
if (showFaults)
{
m_previousGridModeMeshLinesWasFaults = meshMode() == FAULTS_MESH;
if (surfaceMode() != NO_SURFACE) surfaceMode = FAULTS;
if (meshMode() != NO_MESH) meshMode = FAULTS_MESH;
}
else
{
if (surfaceMode() != NO_SURFACE) surfaceMode = SURFACE;
if (meshMode() != NO_MESH) meshMode = FULL_MESH;
if (meshMode() != NO_MESH) meshMode = m_previousGridModeMeshLinesWasFaults ? FAULTS_MESH: FULL_MESH;
}
this->createDisplayModel();
this->createDisplayModel();
updateDisplayModelVisibility();
}
//--------------------------------------------------------------------------------------------------
///
// Surf: No Fault Surf
// Mesh -------------
// No F F G
// Fault F F G
// Mesh G G G
//
//--------------------------------------------------------------------------------------------------
bool RimReservoirView::isGridVisualizationMode() const
{
return ( this->surfaceMode() == SURFACE
|| this->meshMode() == FULL_MESH);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -150,7 +150,10 @@ public:
void setMeshOnlyDrawstyle();
void setMeshSurfDrawstyle();
void setSurfOnlyDrawstyle();
void setFaultMeshSurfDrawstyle();
void setShowFaultsOnly(bool showFaults);
bool isGridVisualizationMode() const;
// Picking info
@ -204,12 +207,13 @@ private:
void syncronizeWellsWithResults();
void clampCurrentTimestep();
private:
caf::PdmField<int> m_currentTimeStep;
QPointer<RiuViewer> m_viewer;
caf::PdmPointer<RimCase> m_reservoir;
bool m_previousGridModeMeshLinesWasFaults;
std::vector<RivReservoirViewPartMgr::ReservoirGeometryCacheType> m_visibleGridParts;
};

View File

@ -41,6 +41,7 @@
<file>Case48x48.png</file>
<file>GridModels.png</file>
<file>draw_style_WellCellsToRangeFilter_24x24.png</file>
<file>draw_style_surface_w_fault_mesh_24x24.png</file>
<file>InfoBox16x16.png</file>
</qresource>
<qresource prefix="/Shader/">

Binary file not shown.

After

Width:  |  Height:  |  Size: 886 B

View File

@ -295,6 +295,9 @@ void RiuMainWindow::createActions()
//connect(m_drawStyleLinesSolidAction, SIGNAL(triggered()), SLOT(slotDrawStyleLinesSolid()));
m_dsActionGroup->addAction(m_drawStyleLinesSolidAction);
m_drawStyleFaultLinesSolidAction = new QAction(QIcon(":/draw_style_surface_w_fault_mesh_24x24.png"), "Fault Mesh And Surfaces", this);
m_dsActionGroup->addAction(m_drawStyleFaultLinesSolidAction);
m_drawStyleSurfOnlyAction = new QAction(QIcon(":/draw_style_surface_24x24.png"), "&Surface Only", this);
//connect(m_drawStyleSurfOnlyAction, SIGNAL(triggered()), SLOT(slotDrawStyleSurfOnly()));
m_dsActionGroup->addAction(m_drawStyleSurfOnlyAction);
@ -435,6 +438,7 @@ void RiuMainWindow::createToolBars()
m_viewToolBar->addAction(m_drawStyleLinesAction);
m_viewToolBar->addAction(m_drawStyleLinesSolidAction);
m_viewToolBar->addAction(m_drawStyleSurfOnlyAction);
m_viewToolBar->addAction(m_drawStyleFaultLinesSolidAction);
m_viewToolBar->addAction(m_drawStyleToggleFaultsAction);
m_viewToolBar->addAction(m_addWellCellsToRangeFilterAction);
@ -1473,6 +1477,10 @@ void RiuMainWindow::slotDrawStyleChanged(QAction* activatedAction)
{
RiaApplication::instance()->activeReservoirView()->setSurfOnlyDrawstyle();
}
else if (activatedAction == m_drawStyleFaultLinesSolidAction)
{
RiaApplication::instance()->activeReservoirView()->setFaultMeshSurfDrawstyle();
}
}
@ -1496,6 +1504,7 @@ void RiuMainWindow::refreshDrawStyleActions()
m_drawStyleLinesAction->setEnabled(enable);
m_drawStyleLinesSolidAction->setEnabled(enable);
m_drawStyleSurfOnlyAction->setEnabled(enable);
m_drawStyleFaultLinesSolidAction->setEnabled(enable);
m_drawStyleToggleFaultsAction->setEnabled(enable);
@ -1505,8 +1514,7 @@ void RiuMainWindow::refreshDrawStyleActions()
{
RimReservoirView* riv = RiaApplication::instance()->activeReservoirView();
m_drawStyleToggleFaultsAction->blockSignals(true);
m_drawStyleToggleFaultsAction->setChecked( riv->meshMode == RimReservoirView::FAULTS_MESH
|| riv->surfaceMode == RimReservoirView::FAULTS);
m_drawStyleToggleFaultsAction->setChecked( !riv->isGridVisualizationMode());
m_drawStyleToggleFaultsAction->blockSignals(false);
m_addWellCellsToRangeFilterAction->blockSignals(true);

View File

@ -96,6 +96,7 @@ public:
void setDefaultWindowSize();
void appendActionsContextMenuForPdmObject(caf::PdmObject* pdmObject, QMenu* menu);
void refreshDrawStyleActions();
protected:
@ -221,6 +222,7 @@ private slots:
void slotDrawStyleChanged(QAction* activatedAction);
void slotToggleFaultsAction(bool);
void slotAddWellCellsToRangeFilterAction(bool doAdd);
// Debug slots
@ -273,10 +275,10 @@ private:
QAction* m_drawStyleToggleFaultsAction;
QAction* m_drawStyleLinesAction;
QAction* m_drawStyleLinesSolidAction;
QAction* m_drawStyleFaultLinesSolidAction;
QAction* m_drawStyleSurfOnlyAction;
QAction* m_addWellCellsToRangeFilterAction;
void refreshDrawStyleActions();
std::vector<QPointer<QDockWidget> > additionalProjectTrees;
std::vector<QPointer<QDockWidget> > additionalPropertyEditors;
};