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