#5379 Surface : Update name from slice settings

This commit is contained in:
Magne Sjaastad
2020-04-30 20:51:25 +02:00
parent 5fcb42210c
commit 5d31912971
6 changed files with 74 additions and 8 deletions

View File

@@ -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
//--------------------------------------------------------------------------------------------------

View File

@@ -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;

View File

@@ -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();