mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#5379 Surface : Update name from slice settings
This commit is contained in:
parent
5fcb42210c
commit
5d31912971
@ -52,7 +52,11 @@ void RicNewGridSurfaceFeature::onActionTriggered( bool isChecked )
|
||||
proj->updateConnectedEditors();
|
||||
}
|
||||
|
||||
RimSurface* lastCreatedOrUpdated = surfColl->addGridCaseSurface( nullptr );
|
||||
RimCase* sourceCase = nullptr;
|
||||
auto allCases = proj->allGridCases();
|
||||
if ( !allCases.empty() ) sourceCase = allCases.front();
|
||||
|
||||
RimSurface* lastCreatedOrUpdated = surfColl->addGridCaseSurface( sourceCase );
|
||||
|
||||
if ( lastCreatedOrUpdated )
|
||||
{
|
||||
|
@ -533,6 +533,19 @@ void RimProject::assignIdToEnsemble( RimSummaryCaseCollection* summaryCaseCollec
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimCase*> RimProject::allGridCases() const
|
||||
{
|
||||
std::vector<RimCase*> cases;
|
||||
|
||||
// TODO: Move code from allCases here
|
||||
allCases( cases );
|
||||
|
||||
return cases;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -626,7 +639,7 @@ void RimProject::assignCalculationIdToCalculation( RimSummaryCalculation* calcul
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
/// TODO: This function is deprecated, use allGridCases()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimProject::allCases( std::vector<RimCase*>& cases ) const
|
||||
{
|
||||
|
@ -127,7 +127,8 @@ public:
|
||||
void assignCaseIdToSummaryCase( RimSummaryCase* summaryCase );
|
||||
void assignIdToEnsemble( RimSummaryCaseCollection* summaryCaseCollection );
|
||||
|
||||
void allCases( std::vector<RimCase*>& cases ) const;
|
||||
std::vector<RimCase*> allGridCases() const;
|
||||
void allCases( std::vector<RimCase*>& cases ) const; // Deprecated, use allGridCases()
|
||||
|
||||
std::vector<RimSummaryCase*> allSummaryCases() const;
|
||||
std::vector<RimSummaryCaseCollection*> summaryGroups() const;
|
||||
|
@ -50,8 +50,8 @@ RimGridCaseSurface::RimGridCaseSurface()
|
||||
"",
|
||||
"" );
|
||||
|
||||
CAF_PDM_InitField( &m_sliceIndex, "SliceIndex", 1, "Slice Index", "", "", "" );
|
||||
m_sliceIndex.uiCapability()->setUiEditorTypeName( caf::PdmUiSliderEditor::uiEditorTypeName() );
|
||||
CAF_PDM_InitField( &m_oneBasedSliceIndex, "SliceIndex", 1, "Slice Index", "", "", "" );
|
||||
m_oneBasedSliceIndex.uiCapability()->setUiEditorTypeName( caf::PdmUiSliderEditor::uiEditorTypeName() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -69,6 +69,15 @@ void RimGridCaseSurface::setCase( RimCase* sourceCase )
|
||||
m_case = sourceCase;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGridCaseSurface::setSliceTypeAndOneBasedIndex( RiaDefines::GridCaseAxis sliceType, int oneBasedSliceIndex )
|
||||
{
|
||||
m_sliceDirection = sliceType;
|
||||
m_oneBasedSliceIndex = oneBasedSliceIndex;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -132,10 +141,11 @@ void RimGridCaseSurface::fieldChangedByUi( const caf::PdmFieldHandle* changedFie
|
||||
{
|
||||
RimSurface::fieldChangedByUi( changedField, oldValue, newValue );
|
||||
|
||||
if ( changedField == &m_case || changedField == &m_sliceDirection || changedField == &m_sliceIndex )
|
||||
if ( changedField == &m_case || changedField == &m_sliceDirection || changedField == &m_oneBasedSliceIndex )
|
||||
{
|
||||
clearNativeGridData();
|
||||
updateSurfaceDataFromGridCase();
|
||||
updateUserDescription();
|
||||
|
||||
RimSurfaceCollection* surfColl;
|
||||
this->firstAncestorOrThisOfTypeAsserted( surfColl );
|
||||
@ -174,7 +184,7 @@ void RimGridCaseSurface::extractDataFromGrid()
|
||||
{
|
||||
const RigMainGrid* grid = eclCase->mainGrid();
|
||||
|
||||
size_t zeroBasedLayerIndex = static_cast<size_t>( m_sliceIndex - 1 );
|
||||
size_t zeroBasedLayerIndex = static_cast<size_t>( m_oneBasedSliceIndex - 1 );
|
||||
for ( size_t i = 0; i < grid->cellCountI(); i++ )
|
||||
{
|
||||
for ( size_t j = 0; j < grid->cellCountJ(); j++ )
|
||||
@ -221,6 +231,36 @@ void RimGridCaseSurface::clearNativeGridData()
|
||||
m_tringleIndices.clear();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGridCaseSurface::updateUserDescription()
|
||||
{
|
||||
QString name;
|
||||
|
||||
auto dirValue = m_sliceDirection().value();
|
||||
switch ( dirValue )
|
||||
{
|
||||
case RiaDefines::GridCaseAxis::AXIS_I:
|
||||
name = "Surface I : %1";
|
||||
break;
|
||||
case RiaDefines::GridCaseAxis::AXIS_J:
|
||||
name = "Surface J : ";
|
||||
break;
|
||||
case RiaDefines::GridCaseAxis::AXIS_K:
|
||||
name = "Surface K : ";
|
||||
break;
|
||||
case RiaDefines::GridCaseAxis::UNDEFINED_AXIS:
|
||||
default:
|
||||
name = "Surface ";
|
||||
break;
|
||||
}
|
||||
|
||||
name += QString::number( m_oneBasedSliceIndex );
|
||||
|
||||
setUserDescription( name );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Returns false for fatal failure
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -35,8 +35,10 @@ public:
|
||||
~RimGridCaseSurface() override;
|
||||
|
||||
void setCase( RimCase* sourceCase );
|
||||
void setSliceTypeAndOneBasedIndex( RiaDefines::GridCaseAxis sliceType, int oneBasedSliceIndex );
|
||||
|
||||
bool onLoadData() override;
|
||||
void updateUserDescription();
|
||||
|
||||
protected:
|
||||
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,
|
||||
@ -56,7 +58,7 @@ private:
|
||||
private:
|
||||
caf::PdmPtrField<RimCase*> m_case;
|
||||
caf::PdmField<caf::AppEnum<RiaDefines::GridCaseAxis>> m_sliceDirection;
|
||||
caf::PdmField<int> m_sliceIndex;
|
||||
caf::PdmField<int> m_oneBasedSliceIndex;
|
||||
|
||||
std::vector<unsigned> m_tringleIndices;
|
||||
std::vector<cvf::Vec3d> m_vertices;
|
||||
|
@ -139,6 +139,12 @@ RimSurface* RimSurfaceCollection::addGridCaseSurface( RimCase* sourceCase )
|
||||
auto s = new RimGridCaseSurface;
|
||||
s->setCase( sourceCase );
|
||||
|
||||
int oneBasedSliceIndex = 1;
|
||||
auto sliceType = RiaDefines::GridCaseAxis::AXIS_K;
|
||||
|
||||
s->setSliceTypeAndOneBasedIndex( sliceType, oneBasedSliceIndex );
|
||||
s->updateUserDescription();
|
||||
|
||||
m_surfaces.push_back( s );
|
||||
|
||||
this->updateConnectedEditors();
|
||||
|
Loading…
Reference in New Issue
Block a user