mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
6593 Fracture Model: Show barrier fault name and distance in 3d.
This commit is contained in:
parent
b233c331cf
commit
fde2c5e4af
@ -49,6 +49,7 @@
|
||||
#include "RimOilField.h"
|
||||
#include "RimPolylineTarget.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimTextAnnotation.h"
|
||||
#include "RimTools.h"
|
||||
#include "RimUserDefinedPolylinesAnnotation.h"
|
||||
#include "RimWellPath.h"
|
||||
@ -191,6 +192,12 @@ RimFractureModel::RimFractureModel()
|
||||
m_barrierFaultName.uiCapability()->setUiReadOnly( true );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_barrierAnnotation, "BarrierAnnotation", "Barrier Annotation", "", "", "" );
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_barrierTextAnnotation,
|
||||
"BarrierTextAnnotation",
|
||||
"Barrier Text Annotation",
|
||||
"",
|
||||
"",
|
||||
"" );
|
||||
|
||||
setDeletable( true );
|
||||
}
|
||||
@ -624,8 +631,11 @@ void RimFractureModel::updateDistanceToBarrierAndDip()
|
||||
.arg( shortestDistance )
|
||||
.arg( barrierDip )
|
||||
.arg( foundFault->name() ) );
|
||||
QString barrierText =
|
||||
QString( "Barrier Fault: %1\nDistance: %2m" ).arg( foundFault->name() ).arg( shortestDistance );
|
||||
|
||||
clearBarrierAnnotation();
|
||||
addBarrierAnnotation( position, barrierPosition );
|
||||
addBarrierAnnotation( position, barrierPosition, barrierText );
|
||||
|
||||
m_hasBarrier = true;
|
||||
m_barrierDip = barrierDip;
|
||||
@ -695,16 +705,29 @@ void RimFractureModel::clearBarrierAnnotation()
|
||||
delete existingAnnotation;
|
||||
m_barrierAnnotation = nullptr;
|
||||
}
|
||||
|
||||
auto existingTextAnnotation = m_barrierTextAnnotation.value();
|
||||
if ( existingTextAnnotation )
|
||||
{
|
||||
delete existingTextAnnotation;
|
||||
m_barrierTextAnnotation = nullptr;
|
||||
}
|
||||
|
||||
RimAnnotationCollectionBase* coll = annotationCollection();
|
||||
coll->onAnnotationDeleted();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureModel::addBarrierAnnotation( const cvf::Vec3d& startPosition, const cvf::Vec3d& endPosition )
|
||||
void RimFractureModel::addBarrierAnnotation( const cvf::Vec3d& startPosition,
|
||||
const cvf::Vec3d& endPosition,
|
||||
const QString& text )
|
||||
{
|
||||
RimAnnotationCollection* coll = annotationCollection();
|
||||
RimAnnotationCollectionBase* coll = annotationCollection();
|
||||
if ( !coll ) return;
|
||||
|
||||
{
|
||||
auto newAnnotation = new RimUserDefinedPolylinesAnnotation();
|
||||
|
||||
RimPolylineTarget* startTarget = new RimPolylineTarget();
|
||||
@ -716,8 +739,19 @@ void RimFractureModel::addBarrierAnnotation( const cvf::Vec3d& startPosition, co
|
||||
newAnnotation->insertTarget( nullptr, endTarget );
|
||||
|
||||
m_barrierAnnotation = newAnnotation;
|
||||
dynamic_cast<RimAnnotationCollection*>( coll )->addAnnotation( newAnnotation );
|
||||
}
|
||||
|
||||
{
|
||||
auto newAnnotation = new RimTextAnnotation();
|
||||
newAnnotation->setText( text );
|
||||
newAnnotation->setLabelPoint( endPosition );
|
||||
newAnnotation->setAnchorPoint( endPosition );
|
||||
|
||||
m_barrierTextAnnotation = newAnnotation;
|
||||
coll->addAnnotation( newAnnotation );
|
||||
}
|
||||
|
||||
coll->scheduleRedrawOfRelevantViews();
|
||||
coll->updateConnectedEditors();
|
||||
}
|
||||
@ -725,7 +759,7 @@ void RimFractureModel::addBarrierAnnotation( const cvf::Vec3d& startPosition, co
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimAnnotationCollection* RimFractureModel::annotationCollection()
|
||||
RimAnnotationCollectionBase* RimFractureModel::annotationCollection()
|
||||
{
|
||||
const auto project = RimProject::current();
|
||||
auto oilField = project->activeOilField();
|
||||
@ -739,6 +773,7 @@ void RimFractureModel::defineUiOrdering( QString uiConfigName, caf::PdmUiOrderin
|
||||
{
|
||||
m_thicknessDirectionWellPath.uiCapability()->setUiHidden( true );
|
||||
m_barrierAnnotation.uiCapability()->setUiHidden( true );
|
||||
m_barrierTextAnnotation.uiCapability()->setUiHidden( true );
|
||||
m_azimuthAngle.uiCapability()->setUiHidden( m_fractureOrientation() != RimFractureModel::FractureOrientation::AZIMUTH );
|
||||
|
||||
uiOrdering.add( nameField(), caf::PdmUiOrdering::LayoutOptions( true, 3, 1 ) );
|
||||
|
@ -18,7 +18,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "RiaEclipseUnitTools.h"
|
||||
#include "RiaFractureModelDefines.h"
|
||||
|
||||
#include "RimCheckableNamedObject.h"
|
||||
@ -36,10 +35,11 @@ class RimWellPath;
|
||||
class RimModeledWellPath;
|
||||
class RimElasticProperties;
|
||||
class RigEclipseCaseData;
|
||||
class RimAnnotationCollection;
|
||||
class RimAnnotationCollectionBase;
|
||||
class RimUserDefinedPolylinesAnnotation;
|
||||
class RimFaciesProperties;
|
||||
class RimFractureModelTemplate;
|
||||
class RimTextAnnotation;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@ -166,9 +166,9 @@ private:
|
||||
static RimEclipseCase* getEclipseCase();
|
||||
|
||||
void updateBarrierProperties();
|
||||
void addBarrierAnnotation( const cvf::Vec3d& startPosition, const cvf::Vec3d& endPosition );
|
||||
void addBarrierAnnotation( const cvf::Vec3d& startPosition, const cvf::Vec3d& endPosition, const QString& barrierText );
|
||||
void clearBarrierAnnotation();
|
||||
RimAnnotationCollection* annotationCollection();
|
||||
RimAnnotationCollectionBase* annotationCollection();
|
||||
|
||||
static std::vector<WellPathCellIntersectionInfo> generateBarrierIntersections( RigEclipseCaseData* eclipseCaseData,
|
||||
const cvf::Vec3d& position,
|
||||
@ -212,6 +212,7 @@ protected:
|
||||
caf::PdmField<double> m_barrierDip;
|
||||
caf::PdmField<int> m_wellPenetrationLayer;
|
||||
caf::PdmPtrField<RimUserDefinedPolylinesAnnotation*> m_barrierAnnotation;
|
||||
caf::PdmPtrField<RimTextAnnotation*> m_barrierTextAnnotation;
|
||||
caf::PdmField<QString> m_barrierFaultName;
|
||||
caf::PdmField<bool> m_showOnlyBarrierFault;
|
||||
caf::PdmField<bool> m_showAllFaults;
|
||||
|
Loading…
Reference in New Issue
Block a user