#3687 Fix view updates if creating a brand new contour map, not based on existing view

This commit is contained in:
Gaute Lindkvist 2018-11-14 12:53:44 +01:00
parent 387741d0c1
commit c99fb71c36
4 changed files with 19 additions and 7 deletions

View File

@ -179,11 +179,7 @@ RimContourMapView* RicNewContourMapViewFeature::create2dContourMap(RimEclipseCas
if (RiaApplication::instance()->preferences()->loadAndShowSoil) if (RiaApplication::instance()->preferences()->loadAndShowSoil)
{ {
contourMap->cellResult()->setResultVariable("SOIL"); contourMap->cellResult()->setResultVariable("SOIL");
} }
contourMap->hasUserRequestedAnimation = true;
contourMap->setBackgroundColor(cvf::Color3f(1.0f, 1.0f, 0.98f));
contourMap->initAfterReadRecursively();
} }
caf::PdmDocument::updateUiIconStateRecursively(contourMap); caf::PdmDocument::updateUiIconStateRecursively(contourMap);
@ -192,5 +188,9 @@ RimContourMapView* RicNewContourMapViewFeature::create2dContourMap(RimEclipseCas
contourMap->setName(QString("Contour Map %1").arg(i + 1)); contourMap->setName(QString("Contour Map %1").arg(i + 1));
eclipseCase->contourMapCollection()->push_back(contourMap); eclipseCase->contourMapCollection()->push_back(contourMap);
contourMap->hasUserRequestedAnimation = true;
contourMap->setBackgroundColor(cvf::Color3f(1.0f, 1.0f, 0.98f));
contourMap->initAfterReadRecursively();
return contourMap; return contourMap;
} }

View File

@ -195,7 +195,9 @@ void RimContourMapProjection::generateVertices(cvf::Vec3fArray* vertices, const
RimContourMapProjection::ContourPolygons RimContourMapProjection::generateContourPolygons(const caf::DisplayCoordTransform* displayCoordTransform) RimContourMapProjection::ContourPolygons RimContourMapProjection::generateContourPolygons(const caf::DisplayCoordTransform* displayCoordTransform)
{ {
std::vector<cvf::ref<cvf::Vec3fArray>> contourPolygons; std::vector<cvf::ref<cvf::Vec3fArray>> contourPolygons;
if (minValue() != std::numeric_limits<double>::infinity() && maxValue() != -std::numeric_limits<double>::infinity()) if (minValue() != std::numeric_limits<double>::infinity() &&
maxValue() != -std::numeric_limits<double>::infinity() &&
std::fabs(maxValue() - minValue()) > 1.0e-8)
{ {
cvf::BoundingBox boundingBox = expandedBoundingBox(); cvf::BoundingBox boundingBox = expandedBoundingBox();
@ -446,6 +448,10 @@ double RimContourMapProjection::value(uint i, uint j) const
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimContourMapProjection::calculateValue(uint i, uint j) const double RimContourMapProjection::calculateValue(uint i, uint j) const
{ {
if (!isColumnResult() && view()->cellResult()->scalarResultIndex() == cvf::UNDEFINED_SIZE_T)
{
return 0.0; // Special case of NONE-result. Show 0 all over to ensure we see something.
}
const std::vector<std::pair<size_t, double>>& matchingCells = cellsAtPos2d(i, j); const std::vector<std::pair<size_t, double>>& matchingCells = cellsAtPos2d(i, j);
if (!matchingCells.empty()) if (!matchingCells.empty())
{ {

View File

@ -140,6 +140,13 @@ void RimContourMapView::initAfterRead()
void RimContourMapView::createDisplayModel() void RimContourMapView::createDisplayModel()
{ {
RimEclipseView::createDisplayModel(); RimEclipseView::createDisplayModel();
if (!isTimeStepDependentDataVisible())
{
// RimEclipseView::createDisplayModel() will not draw anything in this case. Draw something anyway.
m_viewer->setCurrentFrame(m_currentTimeStep);
}
if (this->viewer()->mainCamera()->viewMatrix() == defaultViewMatrix) if (this->viewer()->mainCamera()->viewMatrix() == defaultViewMatrix)
{ {

View File

@ -50,7 +50,6 @@ protected:
caf::PdmFieldHandle* userDescriptionField() override; caf::PdmFieldHandle* userDescriptionField() override;
virtual std::set<RivCellSetEnum> allVisibleFaultGeometryTypes() const override; virtual std::set<RivCellSetEnum> allVisibleFaultGeometryTypes() const override;
private: private: