mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#9671 summary calculations for summary items
* Summary Calculation: use shorter name in title * Sort summary addresses to group calculated results last. * Summary Calculation: add option to distribute calculation to other items. * Add support for summary calculation for RimGridSummaryCase. * Use short name for calculations in plot titles. * Update ensembles in Data Sources when calculation is added. * Summary Calculation: allow drag-and-drop of ensembles * Summary Plot: fix axis range aggregation for calculated ensemble addresses. --------- Co-authored-by: Kristian Bendiksen <kristian.bendiksen@gmail.com>
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "RiaStdStringTools.h"
|
||||
|
||||
#include "RifEclEclipseSummary.h"
|
||||
#include "RiuSummaryQuantityNameInfoProvider.h"
|
||||
|
||||
#include <QStringList>
|
||||
@@ -100,12 +101,10 @@ RifEclipseSummaryAddress::RifEclipseSummaryAddress( SummaryVarCategory
|
||||
case SUMMARY_AQUIFER:
|
||||
m_aquiferNumber = RiaStdStringTools::toInt( identifiers[INPUT_AQUIFER_NUMBER] );
|
||||
break;
|
||||
case SUMMARY_CALCULATED:
|
||||
m_id = RiaStdStringTools::toInt( identifiers[INPUT_ID] );
|
||||
break;
|
||||
}
|
||||
|
||||
m_vectorName = identifiers[INPUT_VECTOR_NAME];
|
||||
m_id = RiaStdStringTools::toInt( identifiers[INPUT_ID] );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -206,57 +205,12 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::fromEclipseTextAddress( const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::fieldAddress( const std::string& vectorName )
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::fieldAddress( const std::string& vectorName, int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_FIELD;
|
||||
addr.m_vectorName = vectorName;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::aquiferAddress( const std::string& vectorName, int aquiferNumber )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_AQUIFER;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_aquiferNumber = aquiferNumber;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::networkAddress( const std::string& vectorName )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_NETWORK;
|
||||
addr.m_vectorName = vectorName;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::miscAddress( const std::string& vectorName )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_MISC;
|
||||
addr.m_vectorName = vectorName;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::regionAddress( const std::string& vectorName, int regionNumber )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_REGION;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_regionNumber = regionNumber;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
@@ -264,37 +218,96 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::regionAddress( const std::str
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress
|
||||
RifEclipseSummaryAddress::regionToRegionAddress( const std::string& vectorName, int regionNumber, int region2Number )
|
||||
RifEclipseSummaryAddress::aquiferAddress( const std::string& vectorName, int aquiferNumber, int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_AQUIFER;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_aquiferNumber = aquiferNumber;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::networkAddress( const std::string& vectorName, int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_NETWORK;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::miscAddress( const std::string& vectorName, int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_MISC;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress
|
||||
RifEclipseSummaryAddress::regionAddress( const std::string& vectorName, int regionNumber, int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_REGION;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_regionNumber = regionNumber;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::regionToRegionAddress( const std::string& vectorName,
|
||||
int regionNumber,
|
||||
int region2Number,
|
||||
int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_REGION_2_REGION;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_regionNumber = regionNumber;
|
||||
addr.m_regionNumber2 = region2Number;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::groupAddress( const std::string& vectorName, const std::string& groupName )
|
||||
RifEclipseSummaryAddress
|
||||
RifEclipseSummaryAddress::groupAddress( const std::string& vectorName, const std::string& groupName, int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_GROUP;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_groupName = groupName;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::wellAddress( const std::string& vectorName, const std::string& wellName )
|
||||
RifEclipseSummaryAddress
|
||||
RifEclipseSummaryAddress::wellAddress( const std::string& vectorName, const std::string& wellName, int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_WELL;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_wellName = wellName;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
@@ -305,7 +318,8 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::wellCompletionAddress( const
|
||||
const std::string& wellName,
|
||||
int i,
|
||||
int j,
|
||||
int k )
|
||||
int k,
|
||||
int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_WELL_COMPLETION;
|
||||
@@ -314,6 +328,7 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::wellCompletionAddress( const
|
||||
addr.m_cellI = i;
|
||||
addr.m_cellJ = j;
|
||||
addr.m_cellK = k;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
@@ -322,13 +337,15 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::wellCompletionAddress( const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::wellLgrAddress( const std::string& vectorName,
|
||||
const std::string& lgrName,
|
||||
const std::string& wellName )
|
||||
const std::string& wellName,
|
||||
int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_WELL_LGR;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_lgrName = lgrName;
|
||||
addr.m_wellName = wellName;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
@@ -340,7 +357,8 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::wellCompletionLgrAddress( con
|
||||
const std::string& wellName,
|
||||
int i,
|
||||
int j,
|
||||
int k )
|
||||
int k,
|
||||
int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_WELL_COMPLETION_LGR;
|
||||
@@ -350,6 +368,7 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::wellCompletionLgrAddress( con
|
||||
addr.m_cellI = i;
|
||||
addr.m_cellJ = j;
|
||||
addr.m_cellK = k;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
@@ -358,27 +377,15 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::wellCompletionLgrAddress( con
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::wellSegmentAddress( const std::string& vectorName,
|
||||
const std::string& wellName,
|
||||
int segmentNumber )
|
||||
int segmentNumber,
|
||||
int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_WELL_SEGMENT;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_wellName = wellName;
|
||||
addr.m_wellSegmentNumber = segmentNumber;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::blockAddress( const std::string& vectorName, int i, int j, int k )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_BLOCK;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_cellI = i;
|
||||
addr.m_cellJ = j;
|
||||
addr.m_cellK = k;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
@@ -386,7 +393,27 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::blockAddress( const std::stri
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress
|
||||
RifEclipseSummaryAddress::blockLgrAddress( const std::string& vectorName, const std::string& lgrName, int i, int j, int k )
|
||||
RifEclipseSummaryAddress::blockAddress( const std::string& vectorName, int i, int j, int k, int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_BLOCK;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_cellI = i;
|
||||
addr.m_cellJ = j;
|
||||
addr.m_cellK = k;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::blockLgrAddress( const std::string& vectorName,
|
||||
const std::string& lgrName,
|
||||
int i,
|
||||
int j,
|
||||
int k,
|
||||
int calculationId )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_BLOCK_LGR;
|
||||
@@ -395,18 +422,7 @@ RifEclipseSummaryAddress
|
||||
addr.m_cellI = i;
|
||||
addr.m_cellJ = j;
|
||||
addr.m_cellK = k;
|
||||
return addr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifEclipseSummaryAddress::calculatedAddress( const std::string& vectorName, int id )
|
||||
{
|
||||
RifEclipseSummaryAddress addr;
|
||||
addr.m_variableCategory = SUMMARY_CALCULATED;
|
||||
addr.m_vectorName = vectorName;
|
||||
addr.m_id = id;
|
||||
addr.m_id = calculationId;
|
||||
return addr;
|
||||
}
|
||||
|
||||
@@ -585,11 +601,6 @@ std::string RifEclipseSummaryAddress::itemUiText() const
|
||||
text += std::to_string( this->aquiferNumber() );
|
||||
}
|
||||
break;
|
||||
case SUMMARY_CALCULATED:
|
||||
{
|
||||
text += std::to_string( this->id() );
|
||||
}
|
||||
break;
|
||||
case SUMMARY_IMPORTED:
|
||||
{
|
||||
text += this->vectorName();
|
||||
@@ -1014,6 +1025,14 @@ std::pair<int16_t, int16_t> RifEclipseSummaryAddress::regionToRegionPairFromUiTe
|
||||
RiaStdStringTools::toInt16( r2r[1].trimmed().toStdString() ) );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifEclipseSummaryAddress::isCalculated() const
|
||||
{
|
||||
return m_id != -1;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -55,7 +55,6 @@ public:
|
||||
SUMMARY_WELL_SEGMENT,
|
||||
SUMMARY_BLOCK,
|
||||
SUMMARY_BLOCK_LGR,
|
||||
SUMMARY_CALCULATED,
|
||||
SUMMARY_IMPORTED,
|
||||
SUMMARY_ENSEMBLE_STATISTICS
|
||||
};
|
||||
@@ -99,31 +98,48 @@ public:
|
||||
static RifEclipseSummaryAddress fromEclipseTextAddress( const std::string& textAddress );
|
||||
static RifEclipseSummaryAddress fromEclipseTextAddressParseErrorTokens( const std::string& textAddress );
|
||||
|
||||
static RifEclipseSummaryAddress fieldAddress( const std::string& vectorName );
|
||||
static RifEclipseSummaryAddress aquiferAddress( const std::string& vectorName, int aquiferNumber );
|
||||
static RifEclipseSummaryAddress networkAddress( const std::string& vectorName );
|
||||
static RifEclipseSummaryAddress miscAddress( const std::string& vectorName );
|
||||
static RifEclipseSummaryAddress regionAddress( const std::string& vectorName, int regionNumber );
|
||||
static RifEclipseSummaryAddress fieldAddress( const std::string& vectorName, int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress
|
||||
regionToRegionAddress( const std::string& vectorName, int regionNumber, int region2Number );
|
||||
static RifEclipseSummaryAddress groupAddress( const std::string& vectorName, const std::string& groupName );
|
||||
static RifEclipseSummaryAddress wellAddress( const std::string& vectorName, const std::string& wellName );
|
||||
aquiferAddress( const std::string& vectorName, int aquiferNumber, int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress networkAddress( const std::string& vectorName, int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress miscAddress( const std::string& vectorName, int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress regionAddress( const std::string& vectorName, int regionNumber, int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress
|
||||
wellCompletionAddress( const std::string& vectorName, const std::string& wellName, int i, int j, int k );
|
||||
regionToRegionAddress( const std::string& vectorName, int regionNumber, int region2Number, int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress
|
||||
wellLgrAddress( const std::string& vectorName, const std::string& lgrName, const std::string& wellName );
|
||||
groupAddress( const std::string& vectorName, const std::string& groupName, int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress
|
||||
wellAddress( const std::string& vectorName, const std::string& wellName, int calculationId = -1 );
|
||||
|
||||
static RifEclipseSummaryAddress wellCompletionAddress( const std::string& vectorName,
|
||||
const std::string& wellName,
|
||||
int i,
|
||||
int j,
|
||||
int k,
|
||||
int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress wellLgrAddress( const std::string& vectorName,
|
||||
const std::string& lgrName,
|
||||
const std::string& wellName,
|
||||
int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress wellCompletionLgrAddress( const std::string& vectorName,
|
||||
const std::string& lgrName,
|
||||
const std::string& wellName,
|
||||
int i,
|
||||
int j,
|
||||
int k );
|
||||
int k,
|
||||
int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress wellSegmentAddress( const std::string& vectorName,
|
||||
const std::string& wellName,
|
||||
int segmentNumber,
|
||||
int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress
|
||||
wellSegmentAddress( const std::string& vectorName, const std::string& wellName, int segmentNumber );
|
||||
static RifEclipseSummaryAddress blockAddress( const std::string& vectorName, int i, int j, int k );
|
||||
static RifEclipseSummaryAddress
|
||||
blockLgrAddress( const std::string& vectorName, const std::string& lgrName, int i, int j, int k );
|
||||
static RifEclipseSummaryAddress calculatedAddress( const std::string& vectorName, int id );
|
||||
blockAddress( const std::string& vectorName, int i, int j, int k, int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress blockLgrAddress( const std::string& vectorName,
|
||||
const std::string& lgrName,
|
||||
int i,
|
||||
int j,
|
||||
int k,
|
||||
int calculationId = -1 );
|
||||
static RifEclipseSummaryAddress importedAddress( const std::string& vectorName );
|
||||
static RifEclipseSummaryAddress ensembleStatisticsAddress( const std::string& vectorName,
|
||||
const std::string& datavectorName );
|
||||
@@ -167,6 +183,7 @@ public:
|
||||
void setWellName( const std::string& wellName ) { m_wellName = wellName; }
|
||||
void setGroupName( const std::string& groupName ) { m_groupName = groupName; }
|
||||
void setRegion( int region ) { m_regionNumber = (int16_t)region; }
|
||||
void setRegion2( int region2 ) { m_regionNumber2 = (int16_t)region2; }
|
||||
void setAquiferNumber( int aquiferNumber ) { m_aquiferNumber = (int16_t)aquiferNumber; }
|
||||
void setCellIjk( const std::string& uiText );
|
||||
void setWellSegmentNumber( int segment ) { m_wellSegmentNumber = (int16_t)segment; }
|
||||
@@ -182,13 +199,16 @@ public:
|
||||
|
||||
auto operator<=>( const RifEclipseSummaryAddress& rhs ) const = default;
|
||||
|
||||
bool isCalculated() const;
|
||||
|
||||
std::string formatUiTextRegionToRegion() const;
|
||||
static std::pair<int16_t, int16_t> regionToRegionPairFromUiText( const std::string& s );
|
||||
|
||||
private:
|
||||
static RifEclipseSummaryAddress fromTokens( const std::vector<std::string>& tokens );
|
||||
|
||||
bool isValidEclipseCategory() const;
|
||||
static std::tuple<int32_t, int32_t, int32_t> ijkTupleFromUiText( const std::string& s );
|
||||
std::string formatUiTextRegionToRegion() const;
|
||||
std::pair<int16_t, int16_t> regionToRegionPairFromUiText( const std::string& s );
|
||||
|
||||
private:
|
||||
// The ordering the variables are defined in defines how the objects get sorted. Members defined first will be
|
||||
|
||||
@@ -277,8 +277,6 @@ RifEclipseSummaryAddress RifEclipseUserDataKeywordTools::makeAndFillAddress( con
|
||||
RifEclipseUserDataKeywordTools::extractThreeInts( &cellI, &cellJ, &cellK, columnHeaderText[1] );
|
||||
}
|
||||
break;
|
||||
case RifEclipseSummaryAddress::SUMMARY_CALCULATED:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RifMultipleSummaryReaders.h"
|
||||
#include "RimCalculatedSummaryCurveReader.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
@@ -104,8 +105,12 @@ void RifMultipleSummaryReaders::rebuildMetaData()
|
||||
m_allErrorAddresses.clear();
|
||||
m_allResultAddresses.clear();
|
||||
|
||||
for ( const auto& reader : m_readers )
|
||||
for ( auto& reader : m_readers )
|
||||
{
|
||||
// TODO: hack. Find a better way to rebuild calculated summary meta data.
|
||||
auto calcReader = dynamic_cast<RifCalculatedSummaryCurveReader*>( reader.p() );
|
||||
if ( calcReader ) calcReader->buildMetaData();
|
||||
|
||||
{
|
||||
auto resultAddresses = reader->allResultAddresses();
|
||||
m_allResultAddresses.insert( resultAddresses.begin(), resultAddresses.end() );
|
||||
|
||||
Reference in New Issue
Block a user