mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-16 10:22:15 -05:00
Add basic support for calculating and showing seismic difference (#10377)
* Add basic support for calculating and showing seismic difference
This commit is contained in:
1 parent
91762aaeb1
commit
803b67506a
25 files changed
+1352
-243
No files matched your search
@@ -24,6 +24,7 @@
|
||||
#include "RimGridView.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimSeismicData.h"
|
||||
#include "RimSeismicDifferenceData.h"
|
||||
#include "RimSeismicSectionCollection.h"
|
||||
|
||||
#include <QFile>
|
||||
@@ -41,6 +42,9 @@ RimSeismicDataCollection::RimSeismicDataCollection()
|
||||
CAF_PDM_InitFieldNoDefault( &m_seismicData, "SeismicData", "Seismic Data" );
|
||||
m_seismicData.uiCapability()->setUiTreeHidden( true );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_differenceData, "DifferenceData", "Seismic Difference Data" );
|
||||
m_differenceData.uiCapability()->setUiTreeHidden( true );
|
||||
|
||||
setDeletable( false );
|
||||
}
|
||||
|
||||
@@ -54,7 +58,7 @@ RimSeismicDataCollection::~RimSeismicDataCollection()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSeismicData* RimSeismicDataCollection::importSeismicFromFile( const QString fileName )
|
||||
RimSeismicDataInterface* RimSeismicDataCollection::importSeismicFromFile( const QString fileName )
|
||||
{
|
||||
RimSeismicData* seisData = new RimSeismicData();
|
||||
seisData->setFileName( fileName );
|
||||
@@ -77,6 +81,14 @@ std::vector<RimSeismicData*> RimSeismicDataCollection::seismicData() const
|
||||
return m_seismicData.childrenByType();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSeismicDifferenceData*> RimSeismicDataCollection::differenceData() const
|
||||
{
|
||||
return m_differenceData.childrenByType();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -91,7 +103,7 @@ bool RimSeismicDataCollection::isEmpty()
|
||||
void RimSeismicDataCollection::onChildDeleted( caf::PdmChildArrayFieldHandle* childArray, std::vector<caf::PdmObjectHandle*>& referringObjects )
|
||||
{
|
||||
updateViews();
|
||||
if ( m_seismicData.size() == 0 ) updateTreeForAllViews();
|
||||
if ( ( m_seismicData.size() + m_differenceData.size() ) == 0 ) updateTreeForAllViews();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -125,3 +137,24 @@ void RimSeismicDataCollection::updateTreeForAllViews()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSeismicDataInterface* RimSeismicDataCollection::createDifferenceSeismicData( RimSeismicData* data1, RimSeismicData* data2 )
|
||||
{
|
||||
if ( ( data1 == nullptr ) || ( data2 == nullptr ) ) return nullptr;
|
||||
|
||||
if ( !data1->gridIsEqual( data2 ) ) return nullptr;
|
||||
|
||||
RimSeismicDifferenceData* retdata = new RimSeismicDifferenceData();
|
||||
retdata->setInputData( data1, data2 );
|
||||
retdata->setUserDescription( "Difference" );
|
||||
|
||||
m_differenceData.push_back( retdata );
|
||||
|
||||
updateAllRequiredEditors();
|
||||
if ( m_differenceData.size() == 1 ) updateTreeForAllViews();
|
||||
|
||||
return retdata;
|
||||
}
|
||||
Reference in new issue
Block a user