#include "TextureSwapperViewportFilter.h"
#define _USE_MATH_DEFINES
#include <cmath>
using namespace mudbox;
IMPLEMENT_VCLASS( TextureSwapperViewPortFilter, ViewPortFilter, "Texture Swapper Viewport Filter", 1 );
MB_PLUGIN( "Texture Swapper Filter", "Texture Swapper Viewport Filter", "Autodesk", "http://www.mudbox3d.com", 0 );
void TextureSwapperViewPortFilter::OnNodeEvent( const Attribute&, NodeEventType eType ) {
if(eType == etValueChanged) {
Kernel()->Redraw();
}
}
TextureSwapperViewPortFilter::TextureSwapperViewPortFilter() :
m_aTextureID(this, "Texture")
{
m_aTextureID.AddItem("Color");
m_aTextureID.AddItem("Depth");
m_aTextureID.AddItem("Position");
m_aTextureID.AddItem("Normal");
m_aTextureID.SetValue(0);
m_pResultTexture = 0;
}
TextureSwapperViewPortFilter::~TextureSwapperViewPortFilter()
{
if (m_pResultTexture)
{
delete m_pResultTexture;
}
}
void TextureSwapperViewPortFilter::Process( ViewPortState &s )
{
switch (m_aTextureID.Value())
{
default:
case 0:
break;
case 1:
s.m_pColor = s.m_pDepth;
break;
case 2:
s.m_pColor = s.m_pPosition;
break;
case 3:
s.m_pColor = s.m_pNormal;
break;
}
};