mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Fixed transparency for ternary well cells
This commit is contained in:
parent
a71c6009e2
commit
877dc0dc58
@ -33,7 +33,7 @@ TEST(TernaryScalarMapperTest, BasicFunctions)
|
|||||||
cvf::ref<RivTernaryScalarMapper> scalarMapper = new RivTernaryScalarMapper(cvf::Color3f::GRAY);
|
cvf::ref<RivTernaryScalarMapper> scalarMapper = new RivTernaryScalarMapper(cvf::Color3f::GRAY);
|
||||||
|
|
||||||
cvf::ref<cvf::TextureImage> texImage = new cvf::TextureImage;
|
cvf::ref<cvf::TextureImage> texImage = new cvf::TextureImage;
|
||||||
scalarMapper->updateTexture(texImage.p());
|
scalarMapper->updateTexture(texImage.p(), 1.0);
|
||||||
|
|
||||||
QImage img = cvfqt::Utils::toQImage(*(texImage.p()));
|
QImage img = cvfqt::Utils::toQImage(*(texImage.p()));
|
||||||
|
|
||||||
|
@ -28,19 +28,9 @@ RivTernaryScalarMapper::RivTernaryScalarMapper(const cvf::Color3f& undefScalarCo
|
|||||||
: m_undefScalarColor(undefScalarColor),
|
: m_undefScalarColor(undefScalarColor),
|
||||||
m_textureSize(128, 256)
|
m_textureSize(128, 256)
|
||||||
{
|
{
|
||||||
m_opacityLevel = 1.0;
|
|
||||||
|
|
||||||
setTernaryRanges(0.0, 1.0, 0.0, 1.0);
|
setTernaryRanges(0.0, 1.0, 0.0, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RivTernaryScalarMapper::setOpacityLevel(float opacityLevel)
|
|
||||||
{
|
|
||||||
m_opacityLevel = opacityLevel;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -77,7 +67,7 @@ cvf::Vec2f RivTernaryScalarMapper::mapToTextureCoord(double soil, double sgas, b
|
|||||||
/// A *********** B
|
/// A *********** B
|
||||||
/// SWAT SOIL
|
/// SWAT SOIL
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool RivTernaryScalarMapper::updateTexture(cvf::TextureImage* image) const
|
bool RivTernaryScalarMapper::updateTexture(cvf::TextureImage* image, float opacityLevel) const
|
||||||
{
|
{
|
||||||
CVF_ASSERT(image);
|
CVF_ASSERT(image);
|
||||||
image->allocate(m_textureSize.x(), m_textureSize.y());
|
image->allocate(m_textureSize.x(), m_textureSize.y());
|
||||||
@ -112,7 +102,7 @@ bool RivTernaryScalarMapper::updateTexture(cvf::TextureImage* image) const
|
|||||||
image->setPixel(xPos, yPos, clr);
|
image->setPixel(xPos, yPos, clr);
|
||||||
|
|
||||||
// Set opacity
|
// Set opacity
|
||||||
const cvf::Color4ub clrOpacity(rByteCol, gByteCol, bByteCol, static_cast<cvf::ubyte>(255 * m_opacityLevel));
|
const cvf::Color4ub clrOpacity(rByteCol, gByteCol, bByteCol, static_cast<cvf::ubyte>(255 * opacityLevel));
|
||||||
image->setPixel(xPos, yPos + halfTextureHeight, clrOpacity);
|
image->setPixel(xPos, yPos + halfTextureHeight, clrOpacity);
|
||||||
|
|
||||||
soil_green += xStride;
|
soil_green += xStride;
|
||||||
|
@ -36,16 +36,13 @@ class RivTernaryScalarMapper : public cvf::Object
|
|||||||
public:
|
public:
|
||||||
RivTernaryScalarMapper(const cvf::Color3f& undefScalarColor);
|
RivTernaryScalarMapper(const cvf::Color3f& undefScalarColor);
|
||||||
|
|
||||||
void setOpacityLevel(float opacityLevel);
|
|
||||||
|
|
||||||
void setTernaryRanges(double soilLower, double soilUpper, double sgasLower, double sgasUpper);
|
void setTernaryRanges(double soilLower, double soilUpper, double sgasLower, double sgasUpper);
|
||||||
|
|
||||||
cvf::Vec2f mapToTextureCoord(double soil, double sgas, bool isTransparent) const;
|
cvf::Vec2f mapToTextureCoord(double soil, double sgas, bool isTransparent) const;
|
||||||
bool updateTexture(cvf::TextureImage* image) const;
|
bool updateTexture(cvf::TextureImage* image, float opacityLevel) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
cvf::Color3f m_undefScalarColor;
|
cvf::Color3f m_undefScalarColor;
|
||||||
float m_opacityLevel;
|
|
||||||
cvf::Vec2ui m_textureSize;
|
cvf::Vec2ui m_textureSize;
|
||||||
|
|
||||||
double m_rangeMaxSoil;
|
double m_rangeMaxSoil;
|
||||||
|
@ -74,7 +74,7 @@ void RivTernaryScalarMapperEffectGenerator::updateForShaderBasedRendering(cvf::E
|
|||||||
// Result mapping texture
|
// Result mapping texture
|
||||||
|
|
||||||
m_textureImage = new cvf::TextureImage();
|
m_textureImage = new cvf::TextureImage();
|
||||||
m_scalarMapper->updateTexture(m_textureImage.p());
|
m_scalarMapper->updateTexture(m_textureImage.p(), m_opacityLevel);
|
||||||
|
|
||||||
cvf::ref<cvf::Texture> texture = new cvf::Texture(m_textureImage.p());
|
cvf::ref<cvf::Texture> texture = new cvf::Texture(m_textureImage.p());
|
||||||
cvf::ref<cvf::Sampler> sampler = new cvf::Sampler;
|
cvf::ref<cvf::Sampler> sampler = new cvf::Sampler;
|
||||||
@ -108,7 +108,7 @@ void RivTernaryScalarMapperEffectGenerator::updateForFixedFunctionRendering(cvf:
|
|||||||
// Result mapping texture
|
// Result mapping texture
|
||||||
|
|
||||||
m_textureImage = new cvf::TextureImage;
|
m_textureImage = new cvf::TextureImage;
|
||||||
m_scalarMapper->updateTexture(m_textureImage.p());
|
m_scalarMapper->updateTexture(m_textureImage.p(), m_opacityLevel);
|
||||||
|
|
||||||
cvf::ref<cvf::Texture2D_FF> texture = new cvf::Texture2D_FF(m_textureImage.p());
|
cvf::ref<cvf::Texture2D_FF> texture = new cvf::Texture2D_FF(m_textureImage.p());
|
||||||
texture->setWrapMode(cvf::Texture2D_FF::CLAMP);
|
texture->setWrapMode(cvf::Texture2D_FF::CLAMP);
|
||||||
@ -191,7 +191,7 @@ bool RivTernaryScalarMapperEffectGenerator::isEqual(const EffectGenerator* other
|
|||||||
&& m_enableDepthWrite == otherTextureResultEffect->m_enableDepthWrite)
|
&& m_enableDepthWrite == otherTextureResultEffect->m_enableDepthWrite)
|
||||||
{
|
{
|
||||||
cvf::ref<cvf::TextureImage> texImg2 = new cvf::TextureImage;
|
cvf::ref<cvf::TextureImage> texImg2 = new cvf::TextureImage;
|
||||||
otherTextureResultEffect->m_scalarMapper->updateTexture(texImg2.p());
|
otherTextureResultEffect->m_scalarMapper->updateTexture(texImg2.p(), m_opacityLevel);
|
||||||
|
|
||||||
return RivTernaryScalarMapperEffectGenerator::isImagesEqual(m_textureImage.p(), texImg2.p());
|
return RivTernaryScalarMapperEffectGenerator::isImagesEqual(m_textureImage.p(), texImg2.p());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user