diff --git a/ApplicationCode/ModelVisualization/Riv3dWellLogPlanePartMgr.cpp b/ApplicationCode/ModelVisualization/Riv3dWellLogPlanePartMgr.cpp index eda868f180..9e47635edc 100644 --- a/ApplicationCode/ModelVisualization/Riv3dWellLogPlanePartMgr.cpp +++ b/ApplicationCode/ModelVisualization/Riv3dWellLogPlanePartMgr.cpp @@ -51,6 +51,8 @@ void Riv3dWellLogPlanePartMgr::append3dWellLogCurvesToModel(cvf::ModelBasicList* for (Rim3dWellLogCurve* rim3dWellLogCurve : rim3dWellLogCurves) { + if (!rim3dWellLogCurve->toggleState()) continue; + cvf::ref curveDrawable = m_3dWellLogCurveGeometryGenerator->createCurveLine(displayCoordTransform, rim3dWellLogCurve); caf::SurfaceEffectGenerator surfaceGen(cvf::Color4f(255, 0, 0, 0.5), caf::PO_1); diff --git a/ApplicationCode/ProjectDataModel/Rim3dWellLogCurve.cpp b/ApplicationCode/ProjectDataModel/Rim3dWellLogCurve.cpp index bb19b4f851..ab61bb41a5 100644 --- a/ApplicationCode/ProjectDataModel/Rim3dWellLogCurve.cpp +++ b/ApplicationCode/ProjectDataModel/Rim3dWellLogCurve.cpp @@ -118,6 +118,16 @@ Rim3dWellLogCurve::~Rim3dWellLogCurve() delete m_eclipseResultDefinition; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void Rim3dWellLogCurve::updateCurveIn3dView() +{ + RimProject* proj; + this->firstAncestorOrThisOfTypeAsserted(proj); + proj->createDisplayModelAndRedrawAllViews(); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -155,6 +165,14 @@ Rim3dWellLogCurve::DrawPlane Rim3dWellLogCurve::drawPlane() const return m_drawPlane(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool Rim3dWellLogCurve::toggleState() const +{ + return m_showCurve; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -230,7 +248,16 @@ caf::PdmFieldHandle* Rim3dWellLogCurve::objectToggleField() //-------------------------------------------------------------------------------------------------- void Rim3dWellLogCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) { - + RimProject* proj; + this->firstAncestorOrThisOfTypeAsserted(proj); + if (changedField == &m_showCurve) + { + proj->reloadCompletionTypeResultsInAllViews(); + } + else + { + proj->createDisplayModelAndRedrawAllViews(); + } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/Rim3dWellLogCurve.h b/ApplicationCode/ProjectDataModel/Rim3dWellLogCurve.h index 85c3957c22..0276569ed6 100644 --- a/ApplicationCode/ProjectDataModel/Rim3dWellLogCurve.h +++ b/ApplicationCode/ProjectDataModel/Rim3dWellLogCurve.h @@ -64,9 +64,12 @@ public: Rim3dWellLogCurve(); virtual ~Rim3dWellLogCurve(); + void updateCurveIn3dView(); + void setPropertiesFromView(Rim3dView* view); DrawPlane drawPlane() const; + bool toggleState() const; void resultValuesAndMds(std::vector* resultValues, std::vector* measuredDepthValues) const; diff --git a/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp b/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp index cab12ec2de..30e3821ca9 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp @@ -25,6 +25,8 @@ #include "RigEclipseCaseData.h" #include "RigFlowDiagResultAddress.h" +#include "Rim3dView.h" +#include "Rim3dWellLogCurve.h" #include "RimCellEdgeColors.h" #include "RimEclipseCase.h" #include "RimEclipseCellColors.h" @@ -33,12 +35,11 @@ #include "RimEclipseResultCase.h" #include "RimEclipseView.h" #include "RimFlowDiagSolution.h" +#include "RimGridTimeHistoryCurve.h" #include "RimIntersectionCollection.h" #include "RimPlotCurve.h" #include "RimReservoirCellResultsStorage.h" -#include "Rim3dView.h" #include "RimViewLinker.h" -#include "RimGridTimeHistoryCurve.h" #include "RimWellLogExtractionCurve.h" #include "cafPdmUiListEditor.h" @@ -336,6 +337,13 @@ void RimEclipseResultDefinition::updateAnyFieldHasChanged() { curve->updateConnectedEditors(); } + + Rim3dWellLogCurve* rim3dWellLogCurve = nullptr; + this->firstAncestorOrThisOfType(rim3dWellLogCurve); + if (rim3dWellLogCurve) + { + rim3dWellLogCurve->updateConnectedEditors(); + } } //-------------------------------------------------------------------------------------------------- @@ -434,6 +442,13 @@ void RimEclipseResultDefinition::loadDataAndUpdate() { curve->loadDataAndUpdate(true); } + + Rim3dWellLogCurve* rim3dWellLogCurve = nullptr; + this->firstAncestorOrThisOfType(rim3dWellLogCurve); + if (rim3dWellLogCurve) + { + rim3dWellLogCurve->updateCurveIn3dView(); + } } //--------------------------------------------------------------------------------------------------