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());
|
m_grid2dProjectionPartMgr->appendProjectionToModel(grid2dProjectionModelBasicList.p(), transForm.p());
|
||||||
grid2dProjectionModelBasicList->updateBoundingBoxesRecursive();
|
grid2dProjectionModelBasicList->updateBoundingBoxesRecursive();
|
||||||
frameScene->addModel(grid2dProjectionModelBasicList.p());
|
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_InitObject("Rim2dGridProjection", ":/draw_style_meshlines_24x24.png", "", "");
|
||||||
|
|
||||||
CAF_PDM_InitField(&m_sampleSpacing, "SampleSpacing", -1.0, "Sample Spacing", "", "", "");
|
CAF_PDM_InitField(&m_relativeSampleSpacing, "SampleSpacing", 0.75, "Sample Spacing Factor", "", "", "");
|
||||||
m_sampleSpacing.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
|
m_relativeSampleSpacing.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_resultAggregation, "ResultAggregation", "Result Aggregation", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_resultAggregation, "ResultAggregation", "Result Aggregation", "", "", "");
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ Rim2dGridProjection::~Rim2dGridProjection()
|
|||||||
cvf::BoundingBox Rim2dGridProjection::expandedBoundingBox() const
|
cvf::BoundingBox Rim2dGridProjection::expandedBoundingBox() const
|
||||||
{
|
{
|
||||||
cvf::BoundingBox boundingBox = eclipseCase()->activeCellsBoundingBox();
|
cvf::BoundingBox boundingBox = eclipseCase()->activeCellsBoundingBox();
|
||||||
boundingBox.expand(m_sampleSpacing * 0.5);
|
boundingBox.expand(sampleSpacing() * 0.5);
|
||||||
return boundingBox;
|
return boundingBox;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,8 +100,6 @@ cvf::BoundingBox Rim2dGridProjection::expandedBoundingBox() const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void Rim2dGridProjection::generateGridMapping()
|
void Rim2dGridProjection::generateGridMapping()
|
||||||
{
|
{
|
||||||
updateDefaultSampleSpacingFromGrid();
|
|
||||||
|
|
||||||
calculateCellRangeVisibility();
|
calculateCellRangeVisibility();
|
||||||
calculatePropertyFilterVisibility();
|
calculatePropertyFilterVisibility();
|
||||||
|
|
||||||
@ -347,7 +345,7 @@ double Rim2dGridProjection::sumAllValues() const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
double Rim2dGridProjection::sampleSpacing() const
|
double Rim2dGridProjection::sampleSpacing() const
|
||||||
{
|
{
|
||||||
return m_sampleSpacing;
|
return m_relativeSampleSpacing * mainGrid()->characteristicIJCellSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -358,17 +356,6 @@ bool Rim2dGridProjection::showContourLines() const
|
|||||||
return m_showContourLines();
|
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::BoundingBox boundingBox = expandedBoundingBox();
|
||||||
cvf::Vec3d gridExtent = boundingBox.extent();
|
cvf::Vec3d gridExtent = boundingBox.extent();
|
||||||
|
|
||||||
uint projectionSizeX = static_cast<uint>(std::ceil(gridExtent.x() / m_sampleSpacing)) + 1u;
|
uint projectionSizeX = static_cast<uint>(std::ceil(gridExtent.x() / sampleSpacing())) + 1u;
|
||||||
uint projectionSizeY = static_cast<uint>(std::ceil(gridExtent.y() / m_sampleSpacing)) + 1u;
|
uint projectionSizeY = static_cast<uint>(std::ceil(gridExtent.y() / sampleSpacing())) + 1u;
|
||||||
|
|
||||||
return cvf::Vec2ui(projectionSizeX, projectionSizeY);
|
return cvf::Vec2ui(projectionSizeX, projectionSizeY);
|
||||||
}
|
}
|
||||||
@ -750,7 +737,7 @@ std::vector<std::pair<size_t, float>> Rim2dGridProjection::visibleCellsAndWeight
|
|||||||
cvf::BoundingBox gridBoundingBox = expandedBoundingBox();
|
cvf::BoundingBox gridBoundingBox = expandedBoundingBox();
|
||||||
cvf::Vec3d top2dElementCentroid(globalPos2d, gridBoundingBox.max().z());
|
cvf::Vec3d top2dElementCentroid(globalPos2d, gridBoundingBox.max().z());
|
||||||
cvf::Vec3d bottom2dElementCentroid(globalPos2d, gridBoundingBox.min().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 topNECorner = top2dElementCentroid + planarDiagonalVector;
|
||||||
cvf::Vec3d bottomSWCorner = bottom2dElementCentroid - 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)
|
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);
|
caf::PdmUiDoubleSliderEditorAttribute* myAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>(attribute);
|
||||||
if (myAttr)
|
if (myAttr)
|
||||||
{
|
{
|
||||||
double characteristicSize = mainGrid()->characteristicIJCellSize();
|
myAttr->m_minimum = 0.5;
|
||||||
myAttr->m_minimum = 0.3333 * characteristicSize;
|
myAttr->m_maximum = 2.0;
|
||||||
myAttr->m_maximum = 2.0 * characteristicSize;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,7 +73,6 @@ public:
|
|||||||
double sampleSpacing() const;
|
double sampleSpacing() const;
|
||||||
bool showContourLines() const;
|
bool showContourLines() const;
|
||||||
|
|
||||||
void updateDefaultSampleSpacingFromGrid();
|
|
||||||
const std::vector<double>& aggregatedResults() const;
|
const std::vector<double>& aggregatedResults() const;
|
||||||
bool isSummationResult() const;
|
bool isSummationResult() const;
|
||||||
bool isColumnResult() const;
|
bool isColumnResult() const;
|
||||||
@ -121,7 +120,7 @@ protected:
|
|||||||
void initAfterRead() override;
|
void initAfterRead() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
caf::PdmField<double> m_sampleSpacing;
|
caf::PdmField<double> m_relativeSampleSpacing;
|
||||||
caf::PdmField<ResultAggregation> m_resultAggregation;
|
caf::PdmField<ResultAggregation> m_resultAggregation;
|
||||||
caf::PdmField<bool> m_showContourLines;
|
caf::PdmField<bool> m_showContourLines;
|
||||||
|
|
||||||
|
@ -582,7 +582,7 @@ QString Rim3dOverlayInfoConfig::resultInfoText(const HistogramData& histData, Ri
|
|||||||
{
|
{
|
||||||
QString propName = eclipseView->cellResult()->resultVariableUiShortName();
|
QString propName = eclipseView->cellResult()->resultVariableUiShortName();
|
||||||
infoText += QString("<b>Cell Property:</b> %1 ").arg(propName);
|
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 >"
|
infoText += QString("<table border=0 cellspacing=5 >"
|
||||||
"<tr> <td>Min</td> <td>Mean</td> <td>Max</td> <td>Sum</td> </tr>"
|
"<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>"
|
"<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");
|
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_showAnimProgress);
|
||||||
visGroup->add(&m_showCaseInfo);
|
visGroup->add(&m_showCaseInfo);
|
||||||
visGroup->add(&m_showResultInfo);
|
visGroup->add(&m_showResultInfo);
|
||||||
RimGeoMechView * geoMechView = dynamic_cast<RimGeoMechView*>(m_viewDef.p());
|
if (!geoMechView && !contourMap)
|
||||||
if (!geoMechView)
|
|
||||||
{
|
{
|
||||||
visGroup->add(&m_showVolumeWeightedMean);
|
visGroup->add(&m_showVolumeWeightedMean);
|
||||||
}
|
}
|
||||||
|
|
||||||
visGroup->add(&m_showHistogram);
|
if (!contourMap)
|
||||||
|
|
||||||
caf::PdmUiGroup* statGroup = uiOrdering.addNewGroup("Statistics Options");
|
|
||||||
RimEclipseView * eclipseView = dynamic_cast<RimEclipseView*>(m_viewDef.p());
|
|
||||||
|
|
||||||
if (!eclipseView || !eclipseView->cellResult()->isFlowDiagOrInjectionFlooding())
|
|
||||||
{
|
{
|
||||||
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);
|
uiOrdering.skipRemainingFields(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user