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:
@@ -52,7 +52,11 @@ void RicNewGridSurfaceFeature::onActionTriggered( bool isChecked )
|
|||||||
proj->updateConnectedEditors();
|
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 )
|
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
|
void RimProject::allCases( std::vector<RimCase*>& cases ) const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -127,7 +127,8 @@ public:
|
|||||||
void assignCaseIdToSummaryCase( RimSummaryCase* summaryCase );
|
void assignCaseIdToSummaryCase( RimSummaryCase* summaryCase );
|
||||||
void assignIdToEnsemble( RimSummaryCaseCollection* summaryCaseCollection );
|
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<RimSummaryCase*> allSummaryCases() const;
|
||||||
std::vector<RimSummaryCaseCollection*> summaryGroups() const;
|
std::vector<RimSummaryCaseCollection*> summaryGroups() const;
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ RimGridCaseSurface::RimGridCaseSurface()
|
|||||||
"",
|
"",
|
||||||
"" );
|
"" );
|
||||||
|
|
||||||
CAF_PDM_InitField( &m_sliceIndex, "SliceIndex", 1, "Slice Index", "", "", "" );
|
CAF_PDM_InitField( &m_oneBasedSliceIndex, "SliceIndex", 1, "Slice Index", "", "", "" );
|
||||||
m_sliceIndex.uiCapability()->setUiEditorTypeName( caf::PdmUiSliderEditor::uiEditorTypeName() );
|
m_oneBasedSliceIndex.uiCapability()->setUiEditorTypeName( caf::PdmUiSliderEditor::uiEditorTypeName() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -69,6 +69,15 @@ void RimGridCaseSurface::setCase( RimCase* sourceCase )
|
|||||||
m_case = 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 );
|
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();
|
clearNativeGridData();
|
||||||
updateSurfaceDataFromGridCase();
|
updateSurfaceDataFromGridCase();
|
||||||
|
updateUserDescription();
|
||||||
|
|
||||||
RimSurfaceCollection* surfColl;
|
RimSurfaceCollection* surfColl;
|
||||||
this->firstAncestorOrThisOfTypeAsserted( surfColl );
|
this->firstAncestorOrThisOfTypeAsserted( surfColl );
|
||||||
@@ -174,7 +184,7 @@ void RimGridCaseSurface::extractDataFromGrid()
|
|||||||
{
|
{
|
||||||
const RigMainGrid* grid = eclCase->mainGrid();
|
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 i = 0; i < grid->cellCountI(); i++ )
|
||||||
{
|
{
|
||||||
for ( size_t j = 0; j < grid->cellCountJ(); j++ )
|
for ( size_t j = 0; j < grid->cellCountJ(); j++ )
|
||||||
@@ -221,6 +231,36 @@ void RimGridCaseSurface::clearNativeGridData()
|
|||||||
m_tringleIndices.clear();
|
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
|
/// Returns false for fatal failure
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -35,8 +35,10 @@ public:
|
|||||||
~RimGridCaseSurface() override;
|
~RimGridCaseSurface() override;
|
||||||
|
|
||||||
void setCase( RimCase* sourceCase );
|
void setCase( RimCase* sourceCase );
|
||||||
|
void setSliceTypeAndOneBasedIndex( RiaDefines::GridCaseAxis sliceType, int oneBasedSliceIndex );
|
||||||
|
|
||||||
bool onLoadData() override;
|
bool onLoadData() override;
|
||||||
|
void updateUserDescription();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,
|
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,
|
||||||
@@ -56,7 +58,7 @@ private:
|
|||||||
private:
|
private:
|
||||||
caf::PdmPtrField<RimCase*> m_case;
|
caf::PdmPtrField<RimCase*> m_case;
|
||||||
caf::PdmField<caf::AppEnum<RiaDefines::GridCaseAxis>> m_sliceDirection;
|
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<unsigned> m_tringleIndices;
|
||||||
std::vector<cvf::Vec3d> m_vertices;
|
std::vector<cvf::Vec3d> m_vertices;
|
||||||
|
|||||||
@@ -139,6 +139,12 @@ RimSurface* RimSurfaceCollection::addGridCaseSurface( RimCase* sourceCase )
|
|||||||
auto s = new RimGridCaseSurface;
|
auto s = new RimGridCaseSurface;
|
||||||
s->setCase( sourceCase );
|
s->setCase( sourceCase );
|
||||||
|
|
||||||
|
int oneBasedSliceIndex = 1;
|
||||||
|
auto sliceType = RiaDefines::GridCaseAxis::AXIS_K;
|
||||||
|
|
||||||
|
s->setSliceTypeAndOneBasedIndex( sliceType, oneBasedSliceIndex );
|
||||||
|
s->updateUserDescription();
|
||||||
|
|
||||||
m_surfaces.push_back( s );
|
m_surfaces.push_back( s );
|
||||||
|
|
||||||
this->updateConnectedEditors();
|
this->updateConnectedEditors();
|
||||||
|
|||||||
Reference in New Issue
Block a user