mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#8044 StimPlan model: Set Extraction Depth Boundaries relative to Anchor position
This commit is contained in:
parent
0f87c9760d
commit
9cec017895
@ -157,11 +157,19 @@ RimStimPlanModel::RimStimPlanModel()
|
||||
CAF_PDM_InitScriptableField( &m_MD, "MeasuredDepth", 0.0, "Measured Depth", "", "", "" );
|
||||
m_MD.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_extractionDepthTop, "ExtractionDepthTop", -1.0, "Top", "", "", "" );
|
||||
m_extractionDepthTop.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleValueEditor::uiEditorTypeName() );
|
||||
CAF_PDM_InitScriptableField( &m_extractionOffsetTop, "ExtractionOffsetTop", -1.0, "Top Offset", "", "", "" );
|
||||
m_extractionOffsetTop.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleValueEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_extractionDepthBottom, "ExtractionDepthBottom", -1.0, "Bottom", "", "", "" );
|
||||
CAF_PDM_InitScriptableField( &m_extractionOffsetBottom, "ExtractionOffsetBottom", -1.0, "Bottom Offset", "", "", "" );
|
||||
m_extractionOffsetBottom.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleValueEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_extractionDepthTop, "ExtractionDepthTop", -1.0, "Depth", "", "", "" );
|
||||
m_extractionDepthTop.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleValueEditor::uiEditorTypeName() );
|
||||
m_extractionDepthTop.uiCapability()->setUiReadOnly( true );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_extractionDepthBottom, "ExtractionDepthBottom", -1.0, "Depth", "", "", "" );
|
||||
m_extractionDepthBottom.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleValueEditor::uiEditorTypeName() );
|
||||
m_extractionDepthBottom.uiCapability()->setUiReadOnly( true );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_extractionType,
|
||||
"ExtractionType",
|
||||
@ -314,11 +322,17 @@ void RimStimPlanModel::fieldChangedByUi( const caf::PdmFieldHandle* changedField
|
||||
updatePositionFromMeasuredDepth();
|
||||
}
|
||||
|
||||
if ( changedField == &m_extractionOffsetTop || changedField == &m_extractionOffsetBottom )
|
||||
{
|
||||
updateExtractionDepthBoundaries();
|
||||
}
|
||||
|
||||
if ( changedField == &m_MD || changedField == &m_extractionType || changedField == &m_boundingBoxVertical ||
|
||||
changedField == &m_boundingBoxHorizontal || changedField == &m_fractureOrientation ||
|
||||
changedField == &m_autoComputeBarrier || changedField == &m_azimuthAngle ||
|
||||
changedField == &m_showOnlyBarrierFault || changedField == &m_eclipseCase ||
|
||||
changedField == &m_extractionDepthTop || changedField == &m_extractionDepthBottom )
|
||||
changedField == &m_extractionDepthTop || changedField == &m_extractionDepthBottom ||
|
||||
changedField == &m_extractionOffsetTop || changedField == &m_extractionOffsetBottom )
|
||||
{
|
||||
updateThicknessDirection();
|
||||
updateBarrierProperties();
|
||||
@ -582,8 +596,13 @@ void RimStimPlanModel::updateExtractionDepthBoundaries()
|
||||
if ( eclipseCaseData )
|
||||
{
|
||||
const cvf::BoundingBox& boundingBox = eclipseCaseData->mainGrid()->boundingBox();
|
||||
m_extractionDepthTop = -boundingBox.max().z();
|
||||
m_extractionDepthBottom = -boundingBox.min().z();
|
||||
|
||||
double depth = -m_anchorPosition().z();
|
||||
if ( m_extractionOffsetTop() < 0.0 ) m_extractionOffsetTop = boundingBox.extent().z();
|
||||
if ( m_extractionOffsetBottom() < 0.0 ) m_extractionOffsetBottom = boundingBox.extent().z();
|
||||
|
||||
m_extractionDepthTop = std::max( depth - m_extractionOffsetTop, -boundingBox.max().z() );
|
||||
m_extractionDepthBottom = std::min( depth + m_extractionOffsetBottom, -boundingBox.min().z() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -815,8 +834,11 @@ void RimStimPlanModel::defineUiOrdering( QString uiConfigName, caf::PdmUiOrderin
|
||||
uiOrdering.add( &m_thicknessDirection );
|
||||
|
||||
caf::PdmUiOrdering* extractionBoundariesGroup = uiOrdering.addNewGroup( "Extraction Depth Boundaries" );
|
||||
extractionBoundariesGroup->add( &m_extractionDepthTop );
|
||||
extractionBoundariesGroup->add( &m_extractionDepthBottom );
|
||||
extractionBoundariesGroup->add( &m_extractionOffsetTop, caf::PdmUiOrdering::LayoutOptions( true, 3, 1 ) );
|
||||
extractionBoundariesGroup->add( &m_extractionDepthTop, { false, 2, 1 } );
|
||||
|
||||
extractionBoundariesGroup->add( &m_extractionOffsetBottom, caf::PdmUiOrdering::LayoutOptions( true, 3, 1 ) );
|
||||
extractionBoundariesGroup->add( &m_extractionDepthBottom, { false, 2, 1 } );
|
||||
|
||||
caf::PdmUiOrdering* boundingBoxGroup = uiOrdering.addNewGroup( "Bounding Box" );
|
||||
boundingBoxGroup->add( &m_boundingBoxHorizontal );
|
||||
@ -931,6 +953,7 @@ void RimStimPlanModel::resetAnchorPositionAndThicknessDirection()
|
||||
{
|
||||
// Always recompute thickness direction as MD in project file might have been changed
|
||||
updatePositionFromMeasuredDepth();
|
||||
updateExtractionDepthBoundaries();
|
||||
updateThicknessDirection();
|
||||
updateBarrierProperties();
|
||||
}
|
||||
@ -1287,6 +1310,7 @@ void RimStimPlanModel::setMD( double md )
|
||||
{
|
||||
m_MD = md;
|
||||
updatePositionFromMeasuredDepth();
|
||||
updateExtractionDepthBoundaries();
|
||||
updateThicknessDirection();
|
||||
updateBarrierProperties();
|
||||
}
|
||||
@ -1298,6 +1322,7 @@ void RimStimPlanModel::setEclipseCaseAndTimeStep( RimEclipseCase* eclipseCase, i
|
||||
{
|
||||
setEclipseCase( eclipseCase );
|
||||
setTimeStep( timeStep );
|
||||
updateExtractionDepthBoundaries();
|
||||
updateThicknessDirection();
|
||||
updateBarrierProperties();
|
||||
updateViewsAndPlots();
|
||||
|
@ -229,6 +229,8 @@ protected:
|
||||
caf::PdmPtrField<RimEclipseCase*> m_initialPressureEclipseCase;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_staticEclipseCase;
|
||||
caf::PdmField<caf::AppEnum<ExtractionType>> m_extractionType;
|
||||
caf::PdmField<double> m_extractionOffsetTop;
|
||||
caf::PdmField<double> m_extractionOffsetBottom;
|
||||
caf::PdmField<double> m_extractionDepthTop;
|
||||
caf::PdmField<double> m_extractionDepthBottom;
|
||||
caf::PdmField<cvf::Vec3d> m_anchorPosition;
|
||||
|
Loading…
Reference in New Issue
Block a user