mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3864 Update and clamp valve positions to perforation interval when perforation interval changes.
This commit is contained in:
@@ -67,6 +67,21 @@ RimMultipleValveLocations::RimMultipleValveLocations()
|
||||
m_locationOfValves.uiCapability()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimMultipleValveLocations::perforationIntervalUpdated()
|
||||
{
|
||||
double existingRangeStart = m_rangeStart();
|
||||
double existingRangeEnd = m_rangeEnd();
|
||||
m_rangeStart = cvf::Math::clamp(m_rangeStart(), perforationStartMD(), perforationEndMD());
|
||||
m_rangeEnd = cvf::Math::clamp(m_rangeEnd(), perforationStartMD(), perforationEndMD());
|
||||
if (existingRangeStart != m_rangeStart() || existingRangeEnd != m_rangeEnd())
|
||||
{
|
||||
computeRangesAndLocations();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -295,8 +310,8 @@ void RimMultipleValveLocations::fieldChangedByUi(const caf::PdmFieldHandle* chan
|
||||
changedField == &m_rangeValveSpacing)
|
||||
{
|
||||
recomputeLocations = true;
|
||||
m_rangeStart = cvf::Math::clamp(m_rangeStart(), rangeMin(), rangeMax());
|
||||
m_rangeEnd = cvf::Math::clamp(m_rangeEnd(), rangeMin(), rangeMax());
|
||||
m_rangeStart = cvf::Math::clamp(m_rangeStart(), perforationStartMD(), perforationEndMD());
|
||||
m_rangeEnd = cvf::Math::clamp(m_rangeEnd(), perforationStartMD(), perforationEndMD());
|
||||
}
|
||||
|
||||
if (changedField == &m_rangeValveSpacing)
|
||||
@@ -376,7 +391,7 @@ double RimMultipleValveLocations::minimumSpacingMeters() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RimMultipleValveLocations::rangeMin() const
|
||||
double RimMultipleValveLocations::perforationStartMD() const
|
||||
{
|
||||
const RimPerforationInterval* perfInterval = nullptr;
|
||||
this->firstAncestorOrThisOfType(perfInterval);
|
||||
@@ -391,7 +406,7 @@ double RimMultipleValveLocations::rangeMin() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RimMultipleValveLocations::rangeMax() const
|
||||
double RimMultipleValveLocations::perforationEndMD() const
|
||||
{
|
||||
const RimPerforationInterval* perfInterval = nullptr;
|
||||
this->firstAncestorOrThisOfType(perfInterval);
|
||||
|
||||
Reference in New Issue
Block a user