Sync seismic section with well path changes. (#10090)

* Sync seismic section with well path changes.
* Make sure we pick seismic textures/coordinates that fits the z steps of the seismic data.
This commit is contained in:
jonjenssen
2023-04-14 10:49:05 +02:00
committed by GitHub
parent 7427e7b6e9
commit dc4d4022d2
4 changed files with 50 additions and 25 deletions

View File

@@ -26,6 +26,7 @@
#include "RimExtrudedCurveIntersection.h"
#include "RimPlotCurve.h"
#include "RimProject.h"
#include "RimSeismicSection.h"
#include "RimTools.h"
#include "RimWellPath.h"
#include "RimWellPathFracture.h"
@@ -81,29 +82,36 @@ void RimModeledWellPath::updateWellPathVisualization()
{
createWellPathGeometry();
std::vector<RimPlotCurve*> refferingCurves;
this->objectsWithReferringPtrFieldsOfType( refferingCurves );
std::vector<RimPlotCurve*> referringCurves;
objectsWithReferringPtrFieldsOfType( referringCurves );
for ( auto curve : refferingCurves )
for ( auto curve : referringCurves )
{
curve->loadDataAndUpdate( false );
}
for ( auto fracture : this->fractureCollection()->activeFractures() )
for ( auto fracture : fractureCollection()->activeFractures() )
{
fracture->loadDataAndUpdate();
}
std::vector<RimExtrudedCurveIntersection*> refferingIntersections;
this->objectsWithReferringPtrFieldsOfType( refferingIntersections );
std::vector<RimExtrudedCurveIntersection*> referringIntersections;
objectsWithReferringPtrFieldsOfType( referringIntersections );
for ( auto intersection : refferingIntersections )
for ( auto intersection : referringIntersections )
{
intersection->rebuildGeometryAndScheduleCreateDisplayModel();
}
std::vector<RimSeismicSection*> referringSeismic;
objectsWithReferringPtrFieldsOfType( referringSeismic );
for ( auto seisSec : referringSeismic )
{
seisSec->updateVisualization();
}
RimProject* proj;
this->firstAncestorOrThisOfTypeAsserted( proj );
firstAncestorOrThisOfTypeAsserted( proj );
proj->scheduleCreateDisplayModelAndRedrawAllViews();
}
@@ -197,16 +205,6 @@ void RimModeledWellPath::onGeometryDefinitionChanged( const caf::SignalEmitter*
updateGeometry( fullUpdate );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimModeledWellPath::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
{
// TODO remove if nothing happens here
RimWellPath::fieldChangedByUi( changedField, oldValue, newValue );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------