(#553) Fixed. Now the CreatDisplayModel sets timestep without firing signals

from the AnimationController.
This commit is contained in:
Jacob Støren
2015-09-28 20:43:55 +02:00
parent 5d04655d6a
commit e74098d7ca
2 changed files with 36 additions and 6 deletions

View File

@@ -330,16 +330,16 @@ void RimEclipseView::createDisplayModel()
// for the different frames. updateCurrentTimeStep updates the colors etc. // for the different frames. updateCurrentTimeStep updates the colors etc.
// For property filtered geometry : just set all the models as empty scenes // For property filtered geometry : just set all the models as empty scenes
// updateCurrentTimeStep requests the actual parts // updateCurrentTimeStep requests the actual parts
if ((this->viewController() && this->viewController()->isVisibleCellsOveridden()) if (!this->propertyFilterCollection()->hasActiveFilters()
|| !this->propertyFilterCollection()->hasActiveFilters()) || this->viewController() && this->viewController()->isVisibleCellsOveridden())
{ {
std::vector<RivCellSetEnum> geometryTypesToAdd; std::vector<RivCellSetEnum> geometryTypesToAdd;
if (this->viewController() && this->viewController()->isVisibleCellsOveridden()) if (this->viewController() && this->viewController()->isVisibleCellsOveridden())
{ {
geometryTypesToAdd.push_back(OVERRIDDEN_CELL_VISIBILITY); geometryTypesToAdd.push_back(OVERRIDDEN_CELL_VISIBILITY);
} }
else if (this->rangeFilterCollection()->hasActiveFilters() && this->wellCollection()->hasVisibleWellCells()) else if (this->rangeFilterCollection()->hasActiveFilters() && this->wellCollection()->hasVisibleWellCells())
{ {
@@ -469,7 +469,8 @@ void RimEclipseView::createDisplayModel()
if (frameModels.size() > 1 && this->hasUserRequestedAnimation()) if (frameModels.size() > 1 && this->hasUserRequestedAnimation())
{ {
m_viewer->animationControl()->setCurrentFrame(m_currentTimeStep); m_viewer->animationControl()->setCurrentFrameOnly(m_currentTimeStep);
m_viewer->setCurrentFrame(m_currentTimeStep);
} }
else else
{ {
@@ -491,6 +492,34 @@ void RimEclipseView::updateCurrentTimeStep()
if (this->viewController() && this->viewController()->isVisibleCellsOveridden()) if (this->viewController() && this->viewController()->isVisibleCellsOveridden())
{ {
geometriesToRecolor.push_back(OVERRIDDEN_CELL_VISIBILITY); geometriesToRecolor.push_back(OVERRIDDEN_CELL_VISIBILITY);
#if 0 // Experimental
cvf::ref<cvf::ModelBasicList> frameParts = new cvf::ModelBasicList;
std::vector<size_t> gridIndices;
this->indicesToVisibleGrids(&gridIndices);
m_reservoirGridPartManager->appendStaticGeometryPartsToModel(frameParts.p(), OVERRIDDEN_CELL_VISIBILITY, gridIndices);
std::vector<RivCellSetEnum> faultGeometryTypesToAppend = visibleFaultGeometryTypes();
for (size_t i = 0; i < faultGeometryTypesToAppend.size(); i++)
{
m_reservoirGridPartManager->appendFaultsStaticGeometryPartsToModel(frameParts.p(), faultGeometryTypesToAppend[i]);
}
RivCellSetEnum faultLabelType = m_reservoirGridPartManager->geometryTypeForFaultLabels(faultGeometryTypesToAppend);
m_reservoirGridPartManager->appendFaultLabelsStaticGeometryPartsToModel(frameParts.p(), faultLabelType);
if (m_viewer)
{
cvf::Scene* frameScene = m_viewer->frame(m_currentTimeStep);
if (frameScene)
{
frameScene->removeAllModels();
frameScene->addModel(frameParts.p());
frameParts->updateBoundingBoxesRecursive();
}
}
#endif
} }
else if (this->propertyFilterCollection()->hasActiveFilters()) else if (this->propertyFilterCollection()->hasActiveFilters())
{ {
@@ -560,9 +589,9 @@ void RimEclipseView::updateCurrentTimeStep()
cvf::Scene* frameScene = m_viewer->frame(m_currentTimeStep); cvf::Scene* frameScene = m_viewer->frame(m_currentTimeStep);
if (frameScene) if (frameScene)
{ {
frameParts->updateBoundingBoxesRecursive();
frameScene->removeAllModels(); frameScene->removeAllModels();
frameScene->addModel(frameParts.p()); frameScene->addModel(frameParts.p());
frameParts->updateBoundingBoxesRecursive();
} }
} }

View File

@@ -242,7 +242,8 @@ void RimGeoMechView::createDisplayModel()
if (isTimeStepDependentDataVisible()) if (isTimeStepDependentDataVisible())
{ {
m_viewer->animationControl()->setCurrentFrame(m_currentTimeStep); m_viewer->animationControl()->setCurrentFrameOnly(m_currentTimeStep);
m_viewer->setCurrentFrame(m_currentTimeStep);
} }
else else
{ {