#1243 AppFwk : Added line width to mesh line effect

This commit is contained in:
Magne Sjaastad 2017-02-28 18:41:16 +01:00
parent f5edd780a5
commit 61f94d90d9
2 changed files with 37 additions and 13 deletions

View File

@ -36,27 +36,29 @@
#include "cafEffectGenerator.h" #include "cafEffectGenerator.h"
#include "cafEffectCache.h"
#include "cafUtils.h" #include "cafUtils.h"
#include "cvfRenderState_FF.h"
#include "cvfTextureImage.h"
#include "cvfTexture2D_FF.h"
#include "cvfShaderProgramGenerator.h"
#include "cvfShaderSourceProvider.h"
#include "cvfUniform.h"
#include "cvfShaderProgram.h"
#include "cvfMatrixState.h" #include "cvfMatrixState.h"
#include "cvfTexture.h" #include "cvfRenderState_FF.h"
#include "cvfSampler.h"
#include "cvfRenderStatePolygonOffset.h"
#include "cvfRenderStateBlending.h" #include "cvfRenderStateBlending.h"
#include "cvfRenderStateCullFace.h" #include "cvfRenderStateCullFace.h"
#include "cvfRenderStateTextureBindings.h"
#include "cvfRenderStatePolygonMode.h"
#include "cvfRenderStateDepth.h" #include "cvfRenderStateDepth.h"
#include "cvfRenderStateLine.h"
#include "cvfRenderStatePolygonMode.h"
#include "cvfRenderStatePolygonOffset.h"
#include "cvfRenderStateTextureBindings.h"
#include "cvfSampler.h"
#include "cvfShaderProgram.h"
#include "cvfShaderProgramGenerator.h"
#include "cvfShaderSourceProvider.h"
#include "cvfTexture.h"
#include "cvfTexture2D_FF.h"
#include "cvfTextureImage.h"
#include "cvfUniform.h"
#include <QtOpenGL/QGLFormat> #include <QtOpenGL/QGLFormat>
#include "cafEffectCache.h"
namespace caf { namespace caf {
@ -831,6 +833,15 @@ MeshEffectGenerator::MeshEffectGenerator(const cvf::Color3f& color)
{ {
m_color = color; m_color = color;
m_lineStipple = false; m_lineStipple = false;
m_lineWidth = cvf::UNDEFINED_FLOAT;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void MeshEffectGenerator::setLineWidth(float lineWidth)
{
m_lineWidth = lineWidth;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -854,6 +865,11 @@ void MeshEffectGenerator::updateForShaderBasedRendering(cvf::Effect* effect) con
// TODO: Use when VizFwk is updated // TODO: Use when VizFwk is updated
//eff->setRenderState(new cvf::RenderStateLineStipple_FF); //eff->setRenderState(new cvf::RenderStateLineStipple_FF);
} }
if (m_lineWidth < cvf::UNDEFINED_FLOAT)
{
eff->setRenderState(new cvf::RenderStateLine(3.0f));
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -894,6 +910,11 @@ bool MeshEffectGenerator::isEqual(const EffectGenerator* other) const
return false; return false;
} }
if (m_lineWidth != otherMesh->m_lineWidth)
{
return false;
}
return true; return true;
} }
@ -907,6 +928,7 @@ EffectGenerator* MeshEffectGenerator::copy() const
{ {
MeshEffectGenerator* effGen = new MeshEffectGenerator(m_color); MeshEffectGenerator* effGen = new MeshEffectGenerator(m_color);
effGen->setLineStipple(m_lineStipple); effGen->setLineStipple(m_lineStipple);
effGen->setLineWidth(m_lineWidth);
return effGen; return effGen;
} }

View File

@ -241,6 +241,7 @@ class MeshEffectGenerator : public EffectGenerator
public: public:
MeshEffectGenerator(const cvf::Color3f& color); MeshEffectGenerator(const cvf::Color3f& color);
void setLineStipple(bool enable) { m_lineStipple = enable; } void setLineStipple(bool enable) { m_lineStipple = enable; }
void setLineWidth(float lineWidth);
protected: protected:
virtual bool isEqual(const EffectGenerator* other) const; virtual bool isEqual(const EffectGenerator* other) const;
@ -252,6 +253,7 @@ protected:
private: private:
cvf::Color3f m_color; cvf::Color3f m_color;
bool m_lineStipple; bool m_lineStipple;
float m_lineWidth;
}; };