From 139590760fd0b6236c978d950c1f243121cd67d0 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Wed, 22 Feb 2017 15:32:19 +0100 Subject: [PATCH] #1240 Added checbox to StimPlan Colors --- .../RivWellFracturePartMgr.cpp | 16 +++++++++--- .../ProjectDataModel/RimEclipseView.cpp | 2 +- .../ProjectDataModel/RimStimPlanColors.cpp | 25 ++++++++++++++++--- .../ProjectDataModel/RimStimPlanColors.h | 23 +++++++++-------- 4 files changed, 47 insertions(+), 19 deletions(-) diff --git a/ApplicationCode/ModelVisualization/RivWellFracturePartMgr.cpp b/ApplicationCode/ModelVisualization/RivWellFracturePartMgr.cpp index bf023c99c1..92fea1a2f1 100644 --- a/ApplicationCode/ModelVisualization/RivWellFracturePartMgr.cpp +++ b/ApplicationCode/ModelVisualization/RivWellFracturePartMgr.cpp @@ -119,7 +119,11 @@ void RivWellFracturePartMgr::updatePartGeometryTexture(caf::DisplayCoordTransfor if (activeView) { stimPlanColors = activeView->stimPlanColors; - legendConfig = stimPlanColors->activeLegend(); + + if (stimPlanColors->isChecked()) + { + legendConfig = stimPlanColors->activeLegend(); + } } // Note : If no legend is found, draw geo using a single color @@ -152,6 +156,7 @@ void RivWellFracturePartMgr::updatePartGeometryTexture(caf::DisplayCoordTransfor m_part = new cvf::Part; m_part->setDrawable(geo.p()); + float opacityLevel = activeView->stimPlanColors->opacityLevel(); if (legendConfig) { cvf::ScalarMapper* scalarMapper = legendConfig->scalarMapper(); @@ -182,7 +187,6 @@ void RivWellFracturePartMgr::updatePartGeometryTexture(caf::DisplayCoordTransfor caf::ScalarMapperEffectGenerator effGen(scalarMapper, caf::PO_NEG_LARGE); - float opacityLevel = activeView->stimPlanColors->opacityLevel(); effGen.setOpacityLevel(opacityLevel); if (activeView && activeView->isLightingDisabled()) @@ -190,7 +194,6 @@ void RivWellFracturePartMgr::updatePartGeometryTexture(caf::DisplayCoordTransfor effGen.disableLighting(true); } - m_part->setPriority(RivPartPriority::PartType::Transparent); cvf::ref eff = effGen.generateCachedEffect(); @@ -198,10 +201,15 @@ void RivWellFracturePartMgr::updatePartGeometryTexture(caf::DisplayCoordTransfor } else { - caf::SurfaceEffectGenerator surfaceGen(cvf::Color4f(cvf::Color3f(cvf::Color3::BROWN)), caf::PO_1); + cvf::Color4f fractureColor = cvf::Color4f(cvf::Color3f(cvf::Color3::BROWN)); + fractureColor.a() = opacityLevel; + + caf::SurfaceEffectGenerator surfaceGen(fractureColor, caf::PO_1); cvf::ref eff = surfaceGen.generateCachedEffect(); m_part->setEffect(eff.p()); } + + m_part->setPriority(RivPartPriority::PartType::Transparent); } } diff --git a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp index 47d4bdc92b..a6e63a9794 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp @@ -1009,7 +1009,7 @@ void RimEclipseView::updateLegends() { stimPlanColors->updateLegendData(); - if (stimPlanLegend->legend()) + if (stimPlanColors()->isChecked() && stimPlanLegend->legend()) { m_viewer->addColorLegendToBottomLeftCorner(stimPlanLegend->legend()); } diff --git a/ApplicationCode/ProjectDataModel/RimStimPlanColors.cpp b/ApplicationCode/ProjectDataModel/RimStimPlanColors.cpp index db3e0f17d8..e82761ffe7 100644 --- a/ApplicationCode/ProjectDataModel/RimStimPlanColors.cpp +++ b/ApplicationCode/ProjectDataModel/RimStimPlanColors.cpp @@ -42,12 +42,13 @@ RimStimPlanColors::RimStimPlanColors() { CAF_PDM_InitObject("StimPlan Colors", ":/draw_style_faults_24x24.png", "", ""); - CAF_PDM_InitField(&m_resultNameAndUnit, "ResultName", QString(""), "Result Variable", "", "", ""); - CAF_PDM_InitField(&opacityLevel, "opacityLevel", 0.2f, "Transparency", "", "", ""); - + CAF_PDM_InitField(&m_resultNameAndUnit, "ResultName", QString(""), "Result Variable", "", "", ""); + CAF_PDM_InitField(&m_opacityLevel, "opacityLevel", 0.2f, "Transparency", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_legendConfigurations, "LegendConfigurations", "", "", "", ""); m_legendConfigurations.uiCapability()->setUiTreeHidden(true); + + m_name = "StimPlan Colors"; } //-------------------------------------------------------------------------------------------------- @@ -194,6 +195,14 @@ QString RimStimPlanColors::unit() const return RimStimPlanColors::toUnit(m_resultNameAndUnit()); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +float RimStimPlanColors::opacityLevel() const +{ + return m_opacityLevel(); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -281,3 +290,13 @@ void RimStimPlanColors::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrder uiTreeOrdering.setForgetRemainingFields(true); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimStimPlanColors::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) +{ + uiOrdering.add(&m_resultNameAndUnit); + uiOrdering.add(&m_opacityLevel); + uiOrdering.setForgetRemainingFields(true); +} + diff --git a/ApplicationCode/ProjectDataModel/RimStimPlanColors.h b/ApplicationCode/ProjectDataModel/RimStimPlanColors.h index cd26b80460..f7f991b623 100644 --- a/ApplicationCode/ProjectDataModel/RimStimPlanColors.h +++ b/ApplicationCode/ProjectDataModel/RimStimPlanColors.h @@ -18,10 +18,11 @@ #pragma once +#include "RimCheckableNamedObject.h" + #include "cafAppEnum.h" #include "cafPdmChildField.h" #include "cafPdmField.h" -#include "cafPdmObject.h" #include "cafPdmChildArrayField.h" namespace caf { @@ -35,7 +36,7 @@ class RimFractureTemplateCollection; /// /// //================================================================================================== -class RimStimPlanColors : public caf::PdmObject +class RimStimPlanColors : public RimCheckableNamedObject { CAF_PDM_HEADER_INIT; @@ -43,22 +44,21 @@ public: RimStimPlanColors(); virtual ~RimStimPlanColors(); - RimLegendConfig* activeLegend() const; - - QString resultName() const; - QString unit() const; + RimLegendConfig* activeLegend() const; + QString resultName() const; + QString unit() const; + float opacityLevel() const; - void loadDataAndUpdate(); - void updateLegendData(); - - caf::PdmField opacityLevel; - + void loadDataAndUpdate(); + void updateLegendData(); protected: virtual QList calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) override; virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override; virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override; + virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; + private: RimFractureTemplateCollection* fractureTemplateCollection() const; static QString toString(const std::pair& resultNameAndUnit); @@ -67,6 +67,7 @@ private: static QString toUnit(const QString& resultNameAndUnit); private: + caf::PdmField m_opacityLevel; caf::PdmField m_resultNameAndUnit; caf::PdmChildArrayField m_legendConfigurations; };