mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
wip import pvd
This commit is contained in:
@@ -45,7 +45,7 @@ void RicImportSurfacesFeature::onActionTriggered( bool isChecked )
|
|||||||
QStringList fileNames = RiuFileDialogTools::getOpenFileNames( Riu3DMainWindowTools::mainWindowWidget(),
|
QStringList fileNames = RiuFileDialogTools::getOpenFileNames( Riu3DMainWindowTools::mainWindowWidget(),
|
||||||
"Import Surfaces",
|
"Import Surfaces",
|
||||||
defaultDir,
|
defaultDir,
|
||||||
"Surface files (*.ptl *.ts *.dat *.vtu *.xyz);;All Files (*.*)" );
|
"Surface files (*.ptl *.ts *.dat *.vtu *.pvd *.xyz);;All Files (*.*)" );
|
||||||
|
|
||||||
if ( fileNames.isEmpty() ) return;
|
if ( fileNames.isEmpty() ) return;
|
||||||
|
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ std::vector<RifVtkSurfaceImporter::PvdDataset> parsePvdDatasets( const std::stri
|
|||||||
double timestep = std::stod( timestepStr );
|
double timestep = std::stod( timestepStr );
|
||||||
std::string fullPath = std::filesystem::absolute( std::filesystem::path( baseDir ) / file ).string();
|
std::string fullPath = std::filesystem::absolute( std::filesystem::path( baseDir ) / file ).string();
|
||||||
|
|
||||||
datasets.push_back( { timestep, fullPath, {} } );
|
datasets.push_back( { timestep, fullPath } );
|
||||||
}
|
}
|
||||||
|
|
||||||
datasetElem = datasetElem->NextSiblingElement( "DataSet" );
|
datasetElem = datasetElem->NextSiblingElement( "DataSet" );
|
||||||
|
|||||||
@@ -41,9 +41,8 @@ namespace RifVtkSurfaceImporter
|
|||||||
|
|
||||||
struct PvdDataset
|
struct PvdDataset
|
||||||
{
|
{
|
||||||
double timestep;
|
double timestep;
|
||||||
std::string filename;
|
std::string filename;
|
||||||
std::map<std::string, std::vector<float>> properties;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
bool importFromFile( std::string filename, RigGocadData* gocadData );
|
bool importFromFile( std::string filename, RigGocadData* gocadData );
|
||||||
|
|||||||
@@ -119,6 +119,12 @@ void RimFractureSurface::fieldChangedByUi( const caf::PdmFieldHandle* changedFie
|
|||||||
bool RimFractureSurface::updateSurfaceData()
|
bool RimFractureSurface::updateSurfaceData()
|
||||||
{
|
{
|
||||||
bool result = true;
|
bool result = true;
|
||||||
|
|
||||||
|
if ( m_surfacePerTimeStep.empty() )
|
||||||
|
{
|
||||||
|
loadDataFromFile();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if ( m_vertices.empty() )
|
if ( m_vertices.empty() )
|
||||||
{
|
{
|
||||||
@@ -157,6 +163,9 @@ bool RimFractureSurface::updateSurfaceData()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimFractureSurface::clearCachedNativeData()
|
void RimFractureSurface::clearCachedNativeData()
|
||||||
{
|
{
|
||||||
|
m_secondsSinceSimulationStart.clear();
|
||||||
|
m_surfacePerTimeStep.clear();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
m_vertices.clear();
|
m_vertices.clear();
|
||||||
m_tringleIndices.clear();
|
m_tringleIndices.clear();
|
||||||
@@ -168,6 +177,18 @@ void RimFractureSurface::clearCachedNativeData()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool RimFractureSurface::loadDataFromFile()
|
bool RimFractureSurface::loadDataFromFile()
|
||||||
{
|
{
|
||||||
|
auto surfaceInfo = RifVtkSurfaceImporter::parsePvdDatasets( m_surfaceDefinitionFilePath().path().toStdString() );
|
||||||
|
|
||||||
|
for ( const auto& s : surfaceInfo )
|
||||||
|
{
|
||||||
|
RigGocadData gocadData;
|
||||||
|
if ( RifVtkSurfaceImporter::importFromFile( s.filename, &gocadData ) )
|
||||||
|
{
|
||||||
|
m_secondsSinceSimulationStart.push_back( s.timestep );
|
||||||
|
m_surfacePerTimeStep.push_back( gocadData );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -20,6 +20,11 @@
|
|||||||
|
|
||||||
#include "RimSurface.h"
|
#include "RimSurface.h"
|
||||||
|
|
||||||
|
#include "cafPdmChildArrayField.h"
|
||||||
|
|
||||||
|
class RimFileSurface;
|
||||||
|
class RigGocadData;
|
||||||
|
|
||||||
class RimFractureSurface : public RimSurface
|
class RimFractureSurface : public RimSurface
|
||||||
{
|
{
|
||||||
CAF_PDM_HEADER_INIT;
|
CAF_PDM_HEADER_INIT;
|
||||||
@@ -45,4 +50,7 @@ private:
|
|||||||
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
||||||
|
|
||||||
caf::PdmField<caf::FilePath> m_surfaceDefinitionFilePath;
|
caf::PdmField<caf::FilePath> m_surfaceDefinitionFilePath;
|
||||||
|
|
||||||
|
std::vector<size_t> m_secondsSinceSimulationStart;
|
||||||
|
std::vector<RigGocadData> m_surfacePerTimeStep;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
#include "cafPdmFieldScriptingCapability.h"
|
#include "cafPdmFieldScriptingCapability.h"
|
||||||
#include "cafPdmObjectScriptingCapability.h"
|
#include "cafPdmObjectScriptingCapability.h"
|
||||||
|
|
||||||
|
#include "RimFractureSurface.h"
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
|
||||||
@@ -142,14 +143,26 @@ RimSurface* RimSurfaceCollection::importSurfacesFromFiles( const QStringList& fi
|
|||||||
|
|
||||||
for ( const QString& newFileName : fileNames )
|
for ( const QString& newFileName : fileNames )
|
||||||
{
|
{
|
||||||
RimFileSurface* newSurface = new RimFileSurface;
|
RimSurface* newSurface = nullptr;
|
||||||
|
|
||||||
|
if ( newFileName.endsWith( ".pvd" ) )
|
||||||
|
{
|
||||||
|
RimFractureSurface* fractureSurface = new RimFractureSurface;
|
||||||
|
fractureSurface->setSurfaceFilePath( newFileName );
|
||||||
|
|
||||||
|
newSurface = fractureSurface;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RimFileSurface* fileSurface = new RimFileSurface;
|
||||||
|
|
||||||
|
fileSurface->setSurfaceFilePath( newFileName );
|
||||||
|
newSurface = fileSurface;
|
||||||
|
}
|
||||||
|
|
||||||
auto newColor = RiaColorTables::categoryPaletteColors().cycledColor3f( existingSurfCount + newSurfCount );
|
auto newColor = RiaColorTables::categoryPaletteColors().cycledColor3f( existingSurfCount + newSurfCount );
|
||||||
|
|
||||||
newSurface->setSurfaceFilePath( newFileName );
|
|
||||||
newSurface->setUserDescription( QFileInfo( newFileName ).fileName() );
|
|
||||||
|
|
||||||
newSurface->setColor( newColor );
|
newSurface->setColor( newColor );
|
||||||
|
newSurface->setUserDescription( QFileInfo( newFileName ).fileName() );
|
||||||
|
|
||||||
if ( !newSurface->onLoadData() )
|
if ( !newSurface->onLoadData() )
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user