#1980 PLT Plot: Make cells available in .RFT reader

This commit is contained in:
Rebecca Cox
2017-10-10 11:11:34 +02:00
parent 09cf1aaf71
commit 2799d86c01
2 changed files with 37 additions and 4 deletions

View File

@@ -207,6 +207,35 @@ void RifReaderEclipseRft::values(const RifEclipseRftAddress& rftAddress, std::ve
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RifReaderEclipseRft::cellIndices(const RifEclipseRftAddress& rftAddress, std::vector<caf::VecIjk>* indices)
{
CVF_ASSERT(indices);
if (!m_ecl_rft_file)
{
open();
}
indices->clear();
int index = indexFromAddress(rftAddress);
if (index < 0) return;
ecl_rft_node_type* node = ecl_rft_file_iget_node(m_ecl_rft_file, index);
for (int cellIdx = 0; cellIdx < ecl_rft_node_get_size(node); cellIdx++)
{
int i, j, k;
ecl_rft_node_iget_ijk(node, cellIdx, &i, &j, &k);
caf::VecIjk index( (size_t)i, (size_t)j, (size_t)k );
indices->push_back(index);
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -24,11 +24,14 @@
#include <string>
#include <vector>
#include "cafVecIjk.h"
#include "cvfBase.h"
#include "cvfObject.h"
#include <QDateTime>
//==================================================================================================
//
//
@@ -39,8 +42,9 @@ public:
RifReaderEclipseRft(const std::string& fileName);
~RifReaderEclipseRft();
const std::vector<RifEclipseRftAddress>& eclipseRftAddresses();
void values(const RifEclipseRftAddress& rftAddress, std::vector<double>* values);
const std::vector<RifEclipseRftAddress>& eclipseRftAddresses();
void values(const RifEclipseRftAddress& rftAddress, std::vector<double>* values);
void cellIndices(const RifEclipseRftAddress& rftAddress, std::vector<caf::VecIjk>* indices);
std::vector<QDateTime> availableTimeSteps(const QString& wellName, const RifEclipseRftAddress::RftWellLogChannelName& wellLogChannelName);
std::vector<RifEclipseRftAddress::RftWellLogChannelName> availableWellLogChannels(const QString& wellName);
@@ -48,8 +52,8 @@ public:
bool wellHasRftData(QString wellName);
private:
void open();
int indexFromAddress(const RifEclipseRftAddress& rftAddress) const;
void open();
int indexFromAddress(const RifEclipseRftAddress& rftAddress) const;
private:
// Taken from ecl_rft_file.h and ecl_rft_node.h