mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2543 Tensor vectors: Use tensor value, not length, for color mapping
This commit is contained in:
parent
2ac9aba485
commit
82a394d588
@ -156,24 +156,24 @@ void RivTensorResultPartMgr::appendDynamicGeometryPartsToModel(cvf::ModelBasicLi
|
|||||||
if (isDrawable(result1, m_rimReservoirView->tensorResults()->showPrincipal1()))
|
if (isDrawable(result1, m_rimReservoirView->tensorResults()->showPrincipal1()))
|
||||||
{
|
{
|
||||||
tensorVisualizations.push_back(TensorVisualization(
|
tensorVisualizations.push_back(TensorVisualization(
|
||||||
cvf::Vec3f(displayCoord), result1, faceNormal, isPressure(elmPrincipals[0][elmIdx]), 1));
|
cvf::Vec3f(displayCoord), result1, faceNormal, isPressure(elmPrincipals[0][elmIdx]), 1, elmPrincipals[0][elmIdx]));
|
||||||
tensorVisualizations.push_back(TensorVisualization(
|
tensorVisualizations.push_back(TensorVisualization(
|
||||||
cvf::Vec3f(displayCoord), -result1, faceNormal, isPressure(elmPrincipals[0][elmIdx]), 1));
|
cvf::Vec3f(displayCoord), -result1, faceNormal, isPressure(elmPrincipals[0][elmIdx]), 1, elmPrincipals[0][elmIdx]));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isDrawable(result2, m_rimReservoirView->tensorResults()->showPrincipal2()))
|
if (isDrawable(result2, m_rimReservoirView->tensorResults()->showPrincipal2()))
|
||||||
{
|
{
|
||||||
tensorVisualizations.push_back(TensorVisualization(
|
tensorVisualizations.push_back(TensorVisualization(
|
||||||
cvf::Vec3f(displayCoord), result2, faceNormal, isPressure(elmPrincipals[1][elmIdx]), 2));
|
cvf::Vec3f(displayCoord), result2, faceNormal, isPressure(elmPrincipals[1][elmIdx]), 2, elmPrincipals[1][elmIdx]));
|
||||||
tensorVisualizations.push_back(TensorVisualization(
|
tensorVisualizations.push_back(TensorVisualization(
|
||||||
cvf::Vec3f(displayCoord), -result2, faceNormal, isPressure(elmPrincipals[1][elmIdx]), 2));
|
cvf::Vec3f(displayCoord), -result2, faceNormal, isPressure(elmPrincipals[1][elmIdx]), 2, elmPrincipals[1][elmIdx]));
|
||||||
}
|
}
|
||||||
if (isDrawable(result3, m_rimReservoirView->tensorResults()->showPrincipal3()))
|
if (isDrawable(result3, m_rimReservoirView->tensorResults()->showPrincipal3()))
|
||||||
{
|
{
|
||||||
tensorVisualizations.push_back(TensorVisualization(
|
tensorVisualizations.push_back(TensorVisualization(
|
||||||
cvf::Vec3f(displayCoord), result3, faceNormal, isPressure(elmPrincipals[2][elmIdx]), 3));
|
cvf::Vec3f(displayCoord), result3, faceNormal, isPressure(elmPrincipals[2][elmIdx]), 3, elmPrincipals[2][elmIdx]));
|
||||||
tensorVisualizations.push_back(TensorVisualization(
|
tensorVisualizations.push_back(TensorVisualization(
|
||||||
cvf::Vec3f(displayCoord), -result3, faceNormal, isPressure(elmPrincipals[2][elmIdx]), 3));
|
cvf::Vec3f(displayCoord), -result3, faceNormal, isPressure(elmPrincipals[2][elmIdx]), 3, elmPrincipals[2][elmIdx]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -438,11 +438,9 @@ void RivTensorResultPartMgr::createResultColorTextureCoords(cvf::Vec2fArray*
|
|||||||
|
|
||||||
for (auto tensor : tensorVisualizations)
|
for (auto tensor : tensorVisualizations)
|
||||||
{
|
{
|
||||||
int sign = tensor.isPressure ? 1 : -1;
|
|
||||||
|
|
||||||
for (size_t vxIdx = 0; vxIdx < 5; ++vxIdx)
|
for (size_t vxIdx = 0; vxIdx < 5; ++vxIdx)
|
||||||
{
|
{
|
||||||
cvf::Vec2f texCoord = mapper->mapToTextureCoord(sign * tensor.result.length());
|
cvf::Vec2f texCoord = mapper->mapToTextureCoord(tensor.principalValue);
|
||||||
textureCoords->add(texCoord);
|
textureCoords->add(texCoord);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,18 +56,20 @@ public:
|
|||||||
private:
|
private:
|
||||||
struct TensorVisualization
|
struct TensorVisualization
|
||||||
{
|
{
|
||||||
TensorVisualization(cvf::Vec3f vertex, cvf::Vec3f result, cvf::Vec3f faceNormal, bool isPressure, size_t princial)
|
TensorVisualization(cvf::Vec3f vertex, cvf::Vec3f result, cvf::Vec3f faceNormal, bool isPressure, size_t princial, float principalValue)
|
||||||
: vertex(vertex)
|
: vertex(vertex)
|
||||||
, result(result)
|
, result(result)
|
||||||
, faceNormal(faceNormal)
|
, faceNormal(faceNormal)
|
||||||
, isPressure(isPressure)
|
, isPressure(isPressure)
|
||||||
, princial(princial){};
|
, princial(princial)
|
||||||
|
, principalValue(principalValue) {};
|
||||||
|
|
||||||
cvf::Vec3f vertex;
|
cvf::Vec3f vertex;
|
||||||
cvf::Vec3f result;
|
cvf::Vec3f result;
|
||||||
cvf::Vec3f faceNormal;
|
cvf::Vec3f faceNormal;
|
||||||
bool isPressure;
|
bool isPressure;
|
||||||
size_t princial;
|
size_t princial;
|
||||||
|
float principalValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -301,7 +301,10 @@ void RimGeoMechView::updateCurrentTimeStep()
|
|||||||
m_tensorPartMgr->appendDynamicGeometryPartsToModel(frameParts.p(), m_currentTimeStep);
|
m_tensorPartMgr->appendDynamicGeometryPartsToModel(frameParts.p(), m_currentTimeStep);
|
||||||
frameParts->updateBoundingBoxesRecursive();
|
frameParts->updateBoundingBoxesRecursive();
|
||||||
|
|
||||||
frameScene->addModel(frameParts.p());
|
if (frameParts->partCount() != 0)
|
||||||
|
{
|
||||||
|
frameScene->addModel(frameParts.p());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user