TextureSwapperViewportFilter/TextureSwapperViewportFilter.cpp

//**************************************************************************/
// Copyright (c) 2008 Autodesk, Inc.
// All rights reserved.
//
// Use of this software is subject to the terms of the Autodesk license
// agreement provided at the time of installation or download, or which
// otherwise accompanies this software in either electronic or hard copy form.
//
//**************************************************************************/
// DESCRIPTION:
// CREATED: October 2008
//**************************************************************************/

#include "TextureSwapperViewportFilter.h"

#define _USE_MATH_DEFINES
#include <cmath>

using namespace mudbox;

// Filter plugin macros
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;
    }
/*
    switch (s.m_pColor->Format())
    {
    case Image::e16depth:
    case Image::e24depth:
    case Image::e32depth:
        ConvertTexture(&m_pResultTexture, s.m_pColor);
        s.m_pColor = m_pResultTexture;
        break;

    default:
        break;
    }*/
};