mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3638 2d Maps: Update info box when result and aggregation changes and change sampleSpacing to be relative
This commit is contained in:
parent
c67469b410
commit
e07f4ea37f
@ -155,6 +155,11 @@ void Rim2dEclipseView::updateCurrentTimeStep()
|
||||
m_grid2dProjectionPartMgr->appendProjectionToModel(grid2dProjectionModelBasicList.p(), transForm.p());
|
||||
grid2dProjectionModelBasicList->updateBoundingBoxesRecursive();
|
||||
frameScene->addModel(grid2dProjectionModelBasicList.p());
|
||||
|
||||
if (m_overlayInfoConfig->isActive())
|
||||
{
|
||||
m_overlayInfoConfig()->update3DInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -64,8 +64,8 @@ Rim2dGridProjection::Rim2dGridProjection()
|
||||
{
|
||||
CAF_PDM_InitObject("Rim2dGridProjection", ":/draw_style_meshlines_24x24.png", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_sampleSpacing, "SampleSpacing", -1.0, "Sample Spacing", "", "", "");
|
||||
m_sampleSpacing.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
|
||||
CAF_PDM_InitField(&m_relativeSampleSpacing, "SampleSpacing", 0.75, "Sample Spacing Factor", "", "", "");
|
||||
m_relativeSampleSpacing.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_resultAggregation, "ResultAggregation", "Result Aggregation", "", "", "");
|
||||
|
||||
@ -91,7 +91,7 @@ Rim2dGridProjection::~Rim2dGridProjection()
|
||||
cvf::BoundingBox Rim2dGridProjection::expandedBoundingBox() const
|
||||
{
|
||||
cvf::BoundingBox boundingBox = eclipseCase()->activeCellsBoundingBox();
|
||||
boundingBox.expand(m_sampleSpacing * 0.5);
|
||||
boundingBox.expand(sampleSpacing() * 0.5);
|
||||
return boundingBox;
|
||||
}
|
||||
|
||||
@ -100,8 +100,6 @@ cvf::BoundingBox Rim2dGridProjection::expandedBoundingBox() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim2dGridProjection::generateGridMapping()
|
||||
{
|
||||
updateDefaultSampleSpacingFromGrid();
|
||||
|
||||
calculateCellRangeVisibility();
|
||||
calculatePropertyFilterVisibility();
|
||||
|
||||
@ -347,7 +345,7 @@ double Rim2dGridProjection::sumAllValues() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double Rim2dGridProjection::sampleSpacing() const
|
||||
{
|
||||
return m_sampleSpacing;
|
||||
return m_relativeSampleSpacing * mainGrid()->characteristicIJCellSize();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -358,17 +356,6 @@ bool Rim2dGridProjection::showContourLines() const
|
||||
return m_showContourLines();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim2dGridProjection::updateDefaultSampleSpacingFromGrid()
|
||||
{
|
||||
if (m_sampleSpacing < 0.0)
|
||||
{
|
||||
m_sampleSpacing = mainGrid()->characteristicIJCellSize() * 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -590,8 +577,8 @@ cvf::Vec2ui Rim2dGridProjection::surfaceGridSize() const
|
||||
cvf::BoundingBox boundingBox = expandedBoundingBox();
|
||||
cvf::Vec3d gridExtent = boundingBox.extent();
|
||||
|
||||
uint projectionSizeX = static_cast<uint>(std::ceil(gridExtent.x() / m_sampleSpacing)) + 1u;
|
||||
uint projectionSizeY = static_cast<uint>(std::ceil(gridExtent.y() / m_sampleSpacing)) + 1u;
|
||||
uint projectionSizeX = static_cast<uint>(std::ceil(gridExtent.x() / sampleSpacing())) + 1u;
|
||||
uint projectionSizeY = static_cast<uint>(std::ceil(gridExtent.y() / sampleSpacing())) + 1u;
|
||||
|
||||
return cvf::Vec2ui(projectionSizeX, projectionSizeY);
|
||||
}
|
||||
@ -750,7 +737,7 @@ std::vector<std::pair<size_t, float>> Rim2dGridProjection::visibleCellsAndWeight
|
||||
cvf::BoundingBox gridBoundingBox = expandedBoundingBox();
|
||||
cvf::Vec3d top2dElementCentroid(globalPos2d, gridBoundingBox.max().z());
|
||||
cvf::Vec3d bottom2dElementCentroid(globalPos2d, gridBoundingBox.min().z());
|
||||
cvf::Vec3d planarDiagonalVector(0.5 * m_sampleSpacing, 0.5 * m_sampleSpacing, 0.0);
|
||||
cvf::Vec3d planarDiagonalVector(0.5 * sampleSpacing(), 0.5 * sampleSpacing(), 0.0);
|
||||
cvf::Vec3d topNECorner = top2dElementCentroid + planarDiagonalVector;
|
||||
cvf::Vec3d bottomSWCorner = bottom2dElementCentroid - planarDiagonalVector;
|
||||
|
||||
@ -1073,14 +1060,13 @@ void Rim2dGridProjection::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim2dGridProjection::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute)
|
||||
{
|
||||
if (&m_sampleSpacing == field)
|
||||
if (&m_relativeSampleSpacing == field)
|
||||
{
|
||||
caf::PdmUiDoubleSliderEditorAttribute* myAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>(attribute);
|
||||
if (myAttr)
|
||||
{
|
||||
double characteristicSize = mainGrid()->characteristicIJCellSize();
|
||||
myAttr->m_minimum = 0.3333 * characteristicSize;
|
||||
myAttr->m_maximum = 2.0 * characteristicSize;
|
||||
myAttr->m_minimum = 0.5;
|
||||
myAttr->m_maximum = 2.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -73,7 +73,6 @@ public:
|
||||
double sampleSpacing() const;
|
||||
bool showContourLines() const;
|
||||
|
||||
void updateDefaultSampleSpacingFromGrid();
|
||||
const std::vector<double>& aggregatedResults() const;
|
||||
bool isSummationResult() const;
|
||||
bool isColumnResult() const;
|
||||
@ -121,7 +120,7 @@ protected:
|
||||
void initAfterRead() override;
|
||||
|
||||
protected:
|
||||
caf::PdmField<double> m_sampleSpacing;
|
||||
caf::PdmField<double> m_relativeSampleSpacing;
|
||||
caf::PdmField<ResultAggregation> m_resultAggregation;
|
||||
caf::PdmField<bool> m_showContourLines;
|
||||
|
||||
|
@ -582,7 +582,7 @@ QString Rim3dOverlayInfoConfig::resultInfoText(const HistogramData& histData, Ri
|
||||
{
|
||||
QString propName = eclipseView->cellResult()->resultVariableUiShortName();
|
||||
infoText += QString("<b>Cell Property:</b> %1 ").arg(propName);
|
||||
infoText += QString("<br><b>Statistics:</b> ");
|
||||
infoText += QString("<br><b>Statistics:</b> Current Time Step and Visible Cells");
|
||||
infoText += QString("<table border=0 cellspacing=5 >"
|
||||
"<tr> <td>Min</td> <td>Mean</td> <td>Max</td> <td>Sum</td> </tr>"
|
||||
"<tr> <td>%1</td> <td> %2</td> <td> %3</td> <td> %4</td> </tr>"
|
||||
@ -814,26 +814,38 @@ void Rim3dOverlayInfoConfig::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
{
|
||||
caf::PdmUiGroup* visGroup = uiOrdering.addNewGroup("Visibility");
|
||||
|
||||
RimEclipseView * eclipseView = dynamic_cast<RimEclipseView*>(m_viewDef.p());
|
||||
Rim2dEclipseView* contourMap = dynamic_cast<Rim2dEclipseView*>(eclipseView);
|
||||
RimGeoMechView * geoMechView = dynamic_cast<RimGeoMechView*>(m_viewDef.p());
|
||||
|
||||
visGroup->add(&m_showAnimProgress);
|
||||
visGroup->add(&m_showCaseInfo);
|
||||
visGroup->add(&m_showResultInfo);
|
||||
RimGeoMechView * geoMechView = dynamic_cast<RimGeoMechView*>(m_viewDef.p());
|
||||
if (!geoMechView)
|
||||
if (!geoMechView && !contourMap)
|
||||
{
|
||||
visGroup->add(&m_showVolumeWeightedMean);
|
||||
}
|
||||
|
||||
visGroup->add(&m_showHistogram);
|
||||
|
||||
caf::PdmUiGroup* statGroup = uiOrdering.addNewGroup("Statistics Options");
|
||||
RimEclipseView * eclipseView = dynamic_cast<RimEclipseView*>(m_viewDef.p());
|
||||
|
||||
if (!eclipseView || !eclipseView->cellResult()->isFlowDiagOrInjectionFlooding())
|
||||
if (!contourMap)
|
||||
{
|
||||
statGroup->add(&m_statisticsTimeRange);
|
||||
visGroup->add(&m_showHistogram);
|
||||
}
|
||||
statGroup->add(&m_statisticsCellRange);
|
||||
|
||||
if (contourMap)
|
||||
{
|
||||
m_statisticsTimeRange = Rim3dOverlayInfoConfig::CURRENT_TIMESTEP;
|
||||
m_statisticsCellRange = Rim3dOverlayInfoConfig::VISIBLE_CELLS;
|
||||
}
|
||||
else
|
||||
{
|
||||
caf::PdmUiGroup* statGroup = uiOrdering.addNewGroup("Statistics Options");
|
||||
|
||||
if (!eclipseView || !eclipseView->cellResult()->isFlowDiagOrInjectionFlooding())
|
||||
{
|
||||
statGroup->add(&m_statisticsTimeRange);
|
||||
}
|
||||
statGroup->add(&m_statisticsCellRange);
|
||||
}
|
||||
uiOrdering.skipRemainingFields(true);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user