Define result address for to be used for non visible cells

Display a data source selection dialog to specify the result address to be used for cell values outside the visible cells.
This commit is contained in:
Magne Sjaastad
2024-01-16 13:39:26 +01:00
parent 35cc2127f2
commit a9598fbe0e
2 changed files with 163 additions and 28 deletions

View File

@@ -22,7 +22,9 @@
#include "RimGridCalculationVariable.h"
#include "RimUserDefinedCalculation.h"
#include "cafPdmChildField.h"
#include "cafSignal.h"
#include "cvfArray.h"
#include <optional>
@@ -30,6 +32,7 @@
class RimEclipseCase;
class RimGridView;
class RigEclipseResultAddress;
class RimEclipseResultAddress;
//==================================================================================================
///
@@ -80,11 +83,19 @@ protected:
std::vector<double> getDataForVariable( RimGridCalculationVariable* variable,
size_t tsId,
RiaDefines::PorosityModelType porosityModel,
RimEclipseCase* destinationCase,
bool useDataFromDestinationCase ) const;
RimEclipseCase* sourceCase,
RimEclipseCase* destinationCase ) const;
std::vector<double> getDataForResult( const QString& resultName,
const RiaDefines::ResultCatType resultCategoryType,
size_t tsId,
RiaDefines::PorosityModelType porosityModel,
RimEclipseCase* sourceCase,
RimEclipseCase* destinationCase ) const;
void filterResults( RimGridView* cellFilterView,
const std::vector<std::vector<double>>& values,
size_t timeStep,
RimGridCalculation::DefaultValueType defaultValueType,
double defaultValue,
std::vector<double>& resultValues,
@@ -106,9 +117,13 @@ protected:
using DefaultValueConfig = std::pair<RimGridCalculation::DefaultValueType, double>;
DefaultValueConfig defaultValueConfiguration() const;
QString nonVisibleResultAddressText() const;
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
void initAfterRead() override;
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
private:
void onVariableUpdated( const SignalEmitter* emitter );
@@ -125,5 +140,7 @@ private:
caf::PdmField<std::vector<int>> m_selectedTimeSteps;
caf::PdmField<int> m_defaultPropertyVariableIndex;
caf::PdmProxyValueField<QString> m_nonVisibleResultText;
caf::PdmChildField<RimEclipseResultAddress*> m_nonVisibleResultAddress;
caf::PdmField<bool> m_editNonVisibleResultAddress;
};