mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2530 Mohr circle: Fix crash when selected cell has no value
This commit is contained in:
@@ -79,12 +79,12 @@ RiuMohrsCirclePlot::~RiuMohrsCirclePlot()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMohrsCirclePlot::setPrincipals(double p1, double p2, double p3)
|
||||
{
|
||||
CVF_ASSERT(p1 > p2);
|
||||
CVF_ASSERT(p2 > p3);
|
||||
|
||||
m_principal1 = p1;
|
||||
m_principal2 = p2;
|
||||
m_principal3 = p3;
|
||||
if (isValidPrincipals(p1, p2, p3))
|
||||
{
|
||||
m_principal1 = p1;
|
||||
m_principal2 = p2;
|
||||
m_principal3 = p3;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -92,6 +92,12 @@ void RiuMohrsCirclePlot::setPrincipals(double p1, double p2, double p3)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMohrsCirclePlot::setPrincipalsAndRedrawPlot(double p1, double p2, double p3)
|
||||
{
|
||||
if (!isValidPrincipals(p1, p2, p3))
|
||||
{
|
||||
clearPlot();
|
||||
return;
|
||||
}
|
||||
|
||||
setPrincipals(p1, p2, p3);
|
||||
|
||||
redrawEnvelope();
|
||||
@@ -475,3 +481,29 @@ void RiuMohrsCirclePlot::replotAndScaleAxis()
|
||||
m_rescaler->rescale();
|
||||
this->plotLayout()->setAlignCanvasToScales(true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiuMohrsCirclePlot::isValidPrincipals(double p1, double p2, double p3)
|
||||
{
|
||||
//Inf
|
||||
if (p1 == HUGE_VAL || p2 == HUGE_VAL || p3 == HUGE_VAL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//Nan
|
||||
if ((p1 != p1) || (p2 != p2) || p3 != p3)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//Principal rules:
|
||||
if ((p1 < p2) || (p2 < p3))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -83,6 +83,8 @@ private:
|
||||
|
||||
void replotAndScaleAxis();
|
||||
|
||||
static bool isValidPrincipals(double p1, double p2, double p3);
|
||||
|
||||
private:
|
||||
double m_principal1;
|
||||
double m_principal2;
|
||||
|
||||
Reference in New Issue
Block a user