mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2344 Tensor vectors: Avoid creating vectors of Infinity result values
This commit is contained in:
@@ -214,41 +214,44 @@ void RivTensorResultPartMgr::appendDynamicGeometryPartsToModel(cvf::ModelBasicLi
|
||||
result3.set(elmPrincipalDirections[elmIdx][2] * arrowConstantScaling);
|
||||
}
|
||||
|
||||
if (m_rimReservoirView->tensorResults()->showPrincipal1())
|
||||
if (isValid(result1) && m_rimReservoirView->tensorResults()->showPrincipal1())
|
||||
{
|
||||
if (cvf::Math::abs(elmPrincipals[0][elmIdx]) > m_rimReservoirView->tensorResults()->threshold())
|
||||
if (result1.length() > m_rimReservoirView->tensorResults()->threshold())
|
||||
{
|
||||
bool isPressure = true;
|
||||
if (elmPrincipals[0][elmIdx] < 0)
|
||||
{
|
||||
isPressure = false;
|
||||
}
|
||||
|
||||
tensorVisualizations.push_back(TensorVisualization(cvf::Vec3f(displayCoord), result1, color1, isPressure));
|
||||
tensorVisualizations.push_back(TensorVisualization(cvf::Vec3f(displayCoord), -result1, color1, isPressure));
|
||||
}
|
||||
}
|
||||
if (m_rimReservoirView->tensorResults()->showPrincipal2())
|
||||
if (isValid(result2) && m_rimReservoirView->tensorResults()->showPrincipal2())
|
||||
{
|
||||
bool isPressure = true;
|
||||
if (elmPrincipals[1][elmIdx] < 0)
|
||||
{
|
||||
isPressure = false;
|
||||
}
|
||||
if (cvf::Math::abs(elmPrincipals[1][elmIdx]) > m_rimReservoirView->tensorResults()->threshold())
|
||||
if (result2.length() > m_rimReservoirView->tensorResults()->threshold())
|
||||
{
|
||||
bool isPressure = true;
|
||||
if (elmPrincipals[1][elmIdx] < 0)
|
||||
{
|
||||
isPressure = false;
|
||||
}
|
||||
|
||||
tensorVisualizations.push_back(TensorVisualization(cvf::Vec3f(displayCoord), result2, color2, isPressure));
|
||||
tensorVisualizations.push_back(TensorVisualization(cvf::Vec3f(displayCoord), -result2, color2, isPressure));
|
||||
}
|
||||
}
|
||||
if (m_rimReservoirView->tensorResults()->showPrincipal3())
|
||||
if (isValid(result3) && m_rimReservoirView->tensorResults()->showPrincipal3())
|
||||
{
|
||||
bool isPressure = true;
|
||||
if (elmPrincipals[2][elmIdx] < 0)
|
||||
{
|
||||
isPressure = false;
|
||||
}
|
||||
if (cvf::Math::abs(elmPrincipals[2][elmIdx]) > m_rimReservoirView->tensorResults()->threshold())
|
||||
if (result3.length() > m_rimReservoirView->tensorResults()->threshold())
|
||||
{
|
||||
bool isPressure = true;
|
||||
if (elmPrincipals[2][elmIdx] < 0)
|
||||
{
|
||||
isPressure = false;
|
||||
}
|
||||
|
||||
tensorVisualizations.push_back(TensorVisualization(cvf::Vec3f(displayCoord), result3, color3, isPressure));
|
||||
tensorVisualizations.push_back(TensorVisualization(cvf::Vec3f(displayCoord), -result3, color3, isPressure));
|
||||
}
|
||||
@@ -357,3 +360,26 @@ bool RivTensorResultPartMgr::isTensorAddress(RigFemResultAddress address)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RivTensorResultPartMgr::isValid(cvf::Vec3f resultVector)
|
||||
{
|
||||
if ( resultVector.x() == HUGE_VAL
|
||||
|| resultVector.y() == HUGE_VAL
|
||||
|| resultVector.z() == HUGE_VAL
|
||||
|| resultVector.x() == -HUGE_VAL
|
||||
|| resultVector.y() == -HUGE_VAL
|
||||
|| resultVector.z() == -HUGE_VAL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (resultVector.length() == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@ private:
|
||||
cvf::ref<cvf::Part> createPart(std::vector<TensorVisualization>& tensorVisualizations) const;
|
||||
|
||||
static bool isTensorAddress(RigFemResultAddress address);
|
||||
static bool isValid(cvf::Vec3f resultVector);
|
||||
|
||||
private:
|
||||
caf::PdmPointer<RimGeoMechView> m_rimReservoirView;
|
||||
|
||||
Reference in New Issue
Block a user