Started to use Update-display-model-And-Redraw scheduling system.

First mainly for object toggle fields on well related objects, to avoid recreating the displaymode for each object toggeled by a multiselect command.
p4#: 22355
This commit is contained in:
Jacob Støren 2013-09-08 22:59:46 +02:00
parent 3a77390b0a
commit f0ddf37301
7 changed files with 33 additions and 20 deletions

View File

@ -154,6 +154,7 @@ RiaApplication::RiaApplication(int& argc, char** argv)
// The creation of a font is time consuming, so make sure you really need your own font // The creation of a font is time consuming, so make sure you really need your own font
// instead of using the application font // instead of using the application font
m_standardFont = new cvf::FixedAtlasFont(cvf::FixedAtlasFont::STANDARD); m_standardFont = new cvf::FixedAtlasFont(cvf::FixedAtlasFont::STANDARD);
m_resViewUpdateTimer = NULL;
} }

View File

@ -153,7 +153,7 @@ void RimCellRangeFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* c
m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::RANGE_FILTERED); m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::RANGE_FILTERED);
m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::RANGE_FILTERED_INACTIVE); m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::RANGE_FILTERED_INACTIVE);
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }

View File

@ -416,7 +416,7 @@ void RimProject::createDisplayModelAndRedrawAllViews()
for (size_t viewIdx = 0; viewIdx < rimCase->reservoirViews.size(); viewIdx++) for (size_t viewIdx = 0; viewIdx < rimCase->reservoirViews.size(); viewIdx++)
{ {
RimReservoirView* reservoirView = rimCase->reservoirViews[viewIdx]; RimReservoirView* reservoirView = rimCase->reservoirViews[viewIdx];
reservoirView->createDisplayModelAndRedraw(); reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
} }

View File

@ -311,6 +311,15 @@ void RimReservoirView::clampCurrentTimestep()
if (m_currentTimeStep < 0 ) m_currentTimeStep = 0; if (m_currentTimeStep < 0 ) m_currentTimeStep = 0;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimReservoirView::scheduleCreateDisplayModelAndRedraw()
{
RiaApplication::instance()->scheduleDisplayModelUpdateAndRedraw(this);
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -449,13 +458,13 @@ void RimReservoirView::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
m_reservoirGridPartManager->scheduleGeometryRegen(RivReservoirViewPartMgr::RANGE_FILTERED); m_reservoirGridPartManager->scheduleGeometryRegen(RivReservoirViewPartMgr::RANGE_FILTERED);
m_reservoirGridPartManager->scheduleGeometryRegen(RivReservoirViewPartMgr::RANGE_FILTERED_INACTIVE); m_reservoirGridPartManager->scheduleGeometryRegen(RivReservoirViewPartMgr::RANGE_FILTERED_INACTIVE);
createDisplayModelAndRedraw(); scheduleCreateDisplayModelAndRedraw();
} }
else if ( changedField == &propertyFilterCollection) else if ( changedField == &propertyFilterCollection)
{ {
m_reservoirGridPartManager->scheduleGeometryRegen(RivReservoirViewPartMgr::PROPERTY_FILTERED); m_reservoirGridPartManager->scheduleGeometryRegen(RivReservoirViewPartMgr::PROPERTY_FILTERED);
createDisplayModelAndRedraw(); scheduleCreateDisplayModelAndRedraw();
} }
else if (changedField == &meshMode) else if (changedField == &meshMode)
{ {
@ -496,8 +505,9 @@ void RimReservoirView::createDisplayModel()
{ {
if (m_viewer.isNull()) return; if (m_viewer.isNull()) return;
// static int callCount = 0; //static int callCount = 0;
// qDebug() << "RimReservoirView::createDisplayModel()" << callCount++; //std::cout << "RimReservoirView::createDisplayModel() " << callCount++ << std::endl;
//RiuMainWindow::instance()->setResultInfo(QString ("RimReservoirView::createDisplayModel() ") + QString::number(callCount++));
if (!(m_reservoir && m_reservoir->reservoirData())) return; if (!(m_reservoir && m_reservoir->reservoirData())) return;

View File

@ -158,6 +158,8 @@ public:
public: public:
void loadDataAndUpdate(); void loadDataAndUpdate();
void createDisplayModelAndRedraw(); void createDisplayModelAndRedraw();
void scheduleCreateDisplayModelAndRedraw();
void scheduleGeometryRegen(unsigned short geometryType); void scheduleGeometryRegen(unsigned short geometryType);
void scheduleReservoirGridGeometryRegen(); void scheduleReservoirGridGeometryRegen();
void schedulePipeGeometryRegen(); void schedulePipeGeometryRegen();

View File

@ -95,7 +95,7 @@ void RimWell::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
{ {
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
else if (&showWell == changedField) else if (&showWell == changedField)
@ -103,7 +103,7 @@ void RimWell::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS); m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS);
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
else if (&showWellCells == changedField) else if (&showWellCells == changedField)
@ -111,7 +111,7 @@ void RimWell::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS); m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS);
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
@ -120,24 +120,24 @@ void RimWell::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS); m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS);
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
else if (&showWellPipes == changedField) else if (&showWellPipes == changedField)
{ {
if (m_reservoirView) m_reservoirView->createDisplayModelAndRedraw(); if (m_reservoirView) m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
else if (&wellPipeColor == changedField) else if (&wellPipeColor == changedField)
{ {
if (m_reservoirView) m_reservoirView->createDisplayModelAndRedraw(); if (m_reservoirView) m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
else if (&pipeRadiusScaleFactor == changedField) else if (&pipeRadiusScaleFactor == changedField)
{ {
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->schedulePipeGeometryRegen(); m_reservoirView->schedulePipeGeometryRegen();
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
} }

View File

@ -197,7 +197,7 @@ void RimWellCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS); m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS);
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
if (&wellCellsToRangeFilterMode == changedField) if (&wellCellsToRangeFilterMode == changedField)
@ -205,7 +205,7 @@ void RimWellCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS); m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS);
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
else if (&showWellCellFences == changedField) else if (&showWellCellFences == changedField)
@ -213,14 +213,14 @@ void RimWellCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS); m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS);
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
else if (&wellCellTransparencyLevel == changedField) else if (&wellCellTransparencyLevel == changedField)
{ {
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
else if (&wellCellFenceType == changedField) else if (&wellCellFenceType == changedField)
@ -228,14 +228,14 @@ void RimWellCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS); m_reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::VISIBLE_WELL_CELLS);
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
else if (&wellPipeVisibility == changedField) else if (&wellPipeVisibility == changedField)
{ {
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
else if ( &pipeCrossSectionVertexCount == changedField else if ( &pipeCrossSectionVertexCount == changedField
@ -248,7 +248,7 @@ void RimWellCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField
if (m_reservoirView) if (m_reservoirView)
{ {
m_reservoirView->schedulePipeGeometryRegen(); m_reservoirView->schedulePipeGeometryRegen();
m_reservoirView->createDisplayModelAndRedraw(); m_reservoirView->scheduleCreateDisplayModelAndRedraw();
} }
} }
} }