#13258 Add support for more surface file type in Import ensemble surface

This commit is contained in:
Kristian Bendiksen authored and Magne Sjaastad committed 2025-12-06 12:55:38 +01:00
1 parent 53bb11b7f3
commit 4f5d7b65a5
7 files changed
+72 -54

No files matched your search

@@ -67,6 +67,14 @@ RimEnsembleSurface::RimEnsembleSurface()
///
//--------------------------------------------------------------------------------------------------
void RimEnsembleSurface::addFileSurface( RimFileSurface* fileSurface )
{
addSurface( fileSurface );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsembleSurface::addSurface( RimSurface* surface )
{
if ( !sourceFileSurfaceCollection() )
{
@@ -75,7 +83,7 @@ void RimEnsembleSurface::addFileSurface( RimFileSurface* fileSurface )
addSubCollection( coll );
}
sourceFileSurfaceCollection()->addSurface( fileSurface );
sourceFileSurfaceCollection()->addSurface( surface );
}
//--------------------------------------------------------------------------------------------------
@@ -45,6 +45,7 @@ public:
RimEnsembleSurface();
void addFileSurface( RimFileSurface* fileSurface );
void addSurface( RimSurface* surface );
void loadDataAndUpdate();
const RigSurface* statisticsSurface() const;
@@ -132,6 +132,37 @@ std::vector<RimEnsembleSurface*> RimSurfaceCollection::ensembleSurfaces() const
return descendantsIncludingThisOfType<RimEnsembleSurface>();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSurface* RimSurfaceCollection::createSurfaceFromFile( const QString& fileName )
{
RimSurface* newSurface = nullptr;
auto extension = QFileInfo( fileName ).suffix().toLower();
if ( extension == "pvd" )
{
RimFractureSurface* fractureSurface = new RimFractureSurface;
fractureSurface->setSurfaceFilePath( fileName );
newSurface = fractureSurface;
}
else if ( extension == "irap" || extension == "gri" )
{
auto regularFileSurface = new RimRegularFileSurface;
regularFileSurface->setFilePath( fileName );
newSurface = regularFileSurface;
}
else
{
RimFileSurface* fileSurface = new RimFileSurface;
fileSurface->setSurfaceFilePath( fileName );
newSurface = fileSurface;
}
return newSurface;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -145,31 +176,7 @@ RimSurface* RimSurfaceCollection::importSurfacesFromFiles( const QStringList& fi
for ( const QString& newFileName : fileNames )
{
RimSurface* newSurface = nullptr;
auto extension = QFileInfo( newFileName ).suffix().toLower();
if ( extension == "pvd" )
{
RimFractureSurface* fractureSurface = new RimFractureSurface;
fractureSurface->setSurfaceFilePath( newFileName );
newSurface = fractureSurface;
}
else if ( extension == "irap" || extension == "gri" )
{
auto regularFileSurface = new RimRegularFileSurface;
regularFileSurface->setFilePath( newFileName );
newSurface = regularFileSurface;
}
else
{
RimFileSurface* fileSurface = new RimFileSurface;
fileSurface->setSurfaceFilePath( newFileName );
newSurface = fileSurface;
}
RimSurface* newSurface = createSurfaceFromFile( newFileName );
auto newColor = RiaColorTables::categoryPaletteColors().cycledColor3f( existingSurfCount + newSurfCount );
newSurface->setColor( newColor );
@@ -45,6 +45,8 @@ public:
RimSurface* copySurfaces( std::vector<RimSurface*> surfaces );
RimSurface* addSurfacesAtIndex( int index, std::vector<RimSurface*> surfaces );
static RimSurface* createSurfaceFromFile( const QString& fileName );
void addSubCollection( RimSurfaceCollection* collection );
RimSurfaceCollection* getSubCollection( const QString& name ) const;
void deleteSubCollection( const QString& name );