UVGeneratorInterface.h

Go to the documentation of this file.
00001 #ifndef __UVGENERATORINTERFACE_H
00002 #define __UVGENERATORINTERFACE_H
00003 
00004 #if defined(JAMBUILD)
00005 #include <Mudbox/mudbox.h>
00006 #else
00007 #include "../../include/Mudbox/mudbox.h"
00008 #endif
00009 
00010 #include "UVMeshGrid.h"
00011 
00012 #ifndef COMPILING_UVLESSPAINTING_DLL
00013 #define UGDLL MUDBOX_DLLIMPORT
00014 #else
00015 #define UGDLL MUDBOX_DLLEXPORT
00016 #endif
00017 
00031 class UGDLL UVGeneratorNode : public mudbox::TreeNode
00032 {
00033     DECLARE_CLASS;
00034 
00036     struct DimData4
00037     {
00038         unsigned int m_iData[4];
00039         unsigned int& operator[] (int i) { return m_iData[i]; };
00040     };
00041 
00042     struct DimData2
00043     {
00044         unsigned int m_iData[2];
00045         unsigned int& operator[] (int i) { return m_iData[i]; };
00046     };
00047 
00048 
00052     virtual DimData4 FaceSize( unsigned int iFaceIndex ) const;
00053 
00060     virtual DimData4 FaceSizeExponent( unsigned int iFaceIndex ) const;
00061 
00067     virtual void SetFaceSize( unsigned int iFaceIndex, unsigned int iWidth, unsigned int iHeight );
00068 
00071     virtual char FaceOrientation( unsigned int iFaceIndex ) const;
00072 
00082     virtual DimData2 FaceUVPosition( unsigned int iFaceIndex ) const;
00083 
00087     virtual DimData2 FaceUVSize( unsigned int iFaceIndex ) const;
00088 
00091     virtual DimData2 FaceUVArea( unsigned int iFaceIndex ) const;
00092 
00094     virtual unsigned int UVTileSize() const;
00095 
00097     virtual void SetUVTileSize( unsigned int iSize );
00098 
00099 
00102     virtual void GenerateUVs( 
00103         bool bTransferPaintLayers = true, 
00104         mudbox::Vector vUVOffset = mudbox::Vector(), 
00105         int iTileCount = -1 
00106         );
00107 
00108     virtual Mesh *getMesh();
00109 };
00110 
00124 class UGDLL PtexPainting : public mudbox::TreeNode
00125 {
00126 public:
00127     Q_DECLARE_TR_FUNCTIONS(PtexPainting);
00128     DECLARE_CLASS;
00129 
00131     static void Setup( QVector<mudbox::Mesh *> pMeshes, bool bTransferPaintLayers = true );
00132 };
00133 
00134 #endif