diff --git a/ApplicationCode/ModelVisualization/Riv2dGridProjectionPartMgr.cpp b/ApplicationCode/ModelVisualization/Riv2dGridProjectionPartMgr.cpp index 11dcca0ea6..c182ff3584 100644 --- a/ApplicationCode/ModelVisualization/Riv2dGridProjectionPartMgr.cpp +++ b/ApplicationCode/ModelVisualization/Riv2dGridProjectionPartMgr.cpp @@ -46,22 +46,25 @@ void Riv2dGridProjectionPartMgr::appendProjectionToModel(cvf::ModelBasicList* mo model->addPart(part.p()); } - std::vector> contourDrawables = createContourPolygons(displayCoordTransform); - for (cvf::ref contourDrawable : contourDrawables) + if (m_2dGridProjection->showContourLines()) { - if (contourDrawable.notNull() && contourDrawable->boundingBox().isValid()) + std::vector> contourDrawables = createContourPolygons(displayCoordTransform); + for (cvf::ref contourDrawable : contourDrawables) { - caf::MeshEffectGenerator meshEffectGen(cvf::Color3::BLACK); - meshEffectGen.setLineWidth(1.0f); - meshEffectGen.createAndConfigurePolygonOffsetRenderState(caf::PO_2); - cvf::ref effect = meshEffectGen.generateCachedEffect(); + if (contourDrawable.notNull() && contourDrawable->boundingBox().isValid()) + { + caf::MeshEffectGenerator meshEffectGen(cvf::Color3::BLACK); + meshEffectGen.setLineWidth(1.0f); + meshEffectGen.createAndConfigurePolygonOffsetRenderState(caf::PO_2); + cvf::ref effect = meshEffectGen.generateCachedEffect(); - cvf::ref part = new cvf::Part; - part->setDrawable(contourDrawable.p()); - part->setEffect(effect.p()); - part->setSourceInfo(new RivMeshLinesSourceInfo(m_2dGridProjection.p())); + cvf::ref part = new cvf::Part; + part->setDrawable(contourDrawable.p()); + part->setEffect(effect.p()); + part->setSourceInfo(new RivMeshLinesSourceInfo(m_2dGridProjection.p())); - model->addPart(part.p()); + model->addPart(part.p()); + } } } } diff --git a/ApplicationCode/ProjectDataModel/Rim2dGridProjection.cpp b/ApplicationCode/ProjectDataModel/Rim2dGridProjection.cpp index e93b141bc1..66fed7ad26 100644 --- a/ApplicationCode/ProjectDataModel/Rim2dGridProjection.cpp +++ b/ApplicationCode/ProjectDataModel/Rim2dGridProjection.cpp @@ -68,6 +68,8 @@ Rim2dGridProjection::Rim2dGridProjection() CAF_PDM_InitFieldNoDefault(&m_resultAggregation, "ResultAggregation", "Result Aggregation", "", "", ""); + CAF_PDM_InitField(&m_showContourLines, "ContourLines", true, "Show Contour Lines", "", "", ""); + setName("2d Grid Projection"); nameField()->uiCapability()->setUiReadOnly(true); @@ -297,6 +299,14 @@ double Rim2dGridProjection::sampleSpacing() const return m_sampleSpacing; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool Rim2dGridProjection::showContourLines() const +{ + return m_showContourLines(); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -882,20 +892,18 @@ RigMainGrid* Rim2dGridProjection::mainGrid() const //-------------------------------------------------------------------------------------------------- void Rim2dGridProjection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) { - if (changedField == &m_isChecked || changedField == &m_sampleSpacing || changedField == &m_resultAggregation) - { - RimEclipseView* view = nullptr; - this->firstAncestorOrThisOfTypeAsserted(view); - view->updateConnectedEditors(); - - RimProject* proj; - view->firstAncestorOrThisOfTypeAsserted(proj); - proj->scheduleCreateDisplayModelAndRedrawAllViews(); - } if (changedField == &m_resultAggregation) { legendConfig()->disableAllTimeStepsRange(isSummationResult()); } + + RimEclipseView* view = nullptr; + this->firstAncestorOrThisOfTypeAsserted(view); + view->updateConnectedEditors(); + + RimProject* proj; + view->firstAncestorOrThisOfTypeAsserted(proj); + proj->scheduleCreateDisplayModelAndRedrawAllViews(); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/Rim2dGridProjection.h b/ApplicationCode/ProjectDataModel/Rim2dGridProjection.h index 7d3470bd16..121f473471 100644 --- a/ApplicationCode/ProjectDataModel/Rim2dGridProjection.h +++ b/ApplicationCode/ProjectDataModel/Rim2dGridProjection.h @@ -69,6 +69,8 @@ public: double maxValue() const; double minValue() const; double sampleSpacing() const; + bool showContourLines() const; + void updateDefaultSampleSpacingFromGrid(); const std::vector& aggregatedResults() const; bool isSummationResult() const; @@ -111,6 +113,8 @@ protected: protected: caf::PdmField m_sampleSpacing; caf::PdmField m_resultAggregation; + caf::PdmField m_showContourLines; + std::map> m_cellGridIdxVisibilityMap; std::vector m_aggregatedResults;