1 #ifndef __MAPEXTRACTORINTERFACE_H
2 #define __MAPEXTRACTORINTERFACE_H
4 #include <QtGui/QComboBox>
9 #include "../../include/Mudbox/mudbox.h"
12 class TextureExtractionDialog;
18 #ifndef COMPILING_MAPEXTRACTOR_DLL
19 #define MEDLL MUDBOX_DLLIMPORT
21 #define MEDLL MUDBOX_DLLEXPORT
69 virtual void SetTargetCount(
unsigned int iTargetCount );
71 virtual void SetTargetMesh(
72 unsigned int iTargetIndex,
77 virtual unsigned int TargetCount(
void )
const;
81 virtual unsigned int CurrentTarget(
void )
const;
85 virtual bool IsCurrentTargetAClone(
void )
const;
88 virtual unsigned int SourceCount(
void )
const;
92 virtual void SetSourceCount(
unsigned int iMeshCount );
97 virtual unsigned int SamplerCount(
void )
const;
99 virtual class Sampler *SamplerByIndex(
int iIndex )
const;
101 virtual class Sampler *SamplerByName(
const QString &sSamplerName )
const;
105 virtual class Sampler *SamplerByClassName(
const QString &sClassName,
int iIndex = 0 );
108 virtual unsigned int LocationCount(
void )
const;
115 virtual bool SourceSmoothing(
void )
const;
117 virtual bool TargetUVSmoothing(
void )
const;
119 virtual bool TargetSmoothing(
void )
const;
121 virtual void SetSmoothing(
bool bTargetSmoothing,
bool bSourceSmoothing,
bool bTargetUVSmoothing =
false );
123 virtual bool SourceCreases(
void )
const;
125 virtual void SetSourceCreases(
bool bOn );
127 virtual bool AddProgress(
int iProgress );
130 virtual void SetMapWidth(
int iWidth );
132 virtual void SetMapHeight(
int iHeight );
141 virtual void RequestTangents(
void );
143 virtual bool AreTangentsNeeded(
void )
const;
155 virtual void SetLocatorType(
const mudbox::ClassDesc *pLocatorType,
int iIndex = 0 );
158 virtual bool Execute(
159 bool bInterface =
true
162 virtual bool SilentMode(
void )
const;
165 virtual void ValidityChanged(
void );
168 static bool DeveloperMode(
void );
186 Data(
void) { m_valid =
false; };
221 Locator( Mapper *pMapper = 0 ) : m_pMapper( pMapper ) {};
232 virtual QWidget *UserInterface(
void );
235 virtual bool IsValid(
void );
265 bool bSmoothing =
true,
266 bool bUVSmoothing =
true,
267 bool bDefaultToLowest =
true,
268 bool bShowLevels =
true
272 bool bSmoothing =
true
276 QWidget *CreateLocatorWidget(
void );
280 QWidget *CreateLayoutWidget(
void );
283 QWidget *CreateOutputWidget(
void );
287 virtual void Initialize(
void );
288 virtual QWidget *RootWidget(
void );
289 virtual void UpdateValues(
void );
298 void OnAddSelectedAsTarget(
void );
299 void OnAddAllAsTarget(
void );
300 void OnRemoveTarget(
void );
301 void OnTargetItemClicked(
int row,
int column );
302 void OnSourceItemClicked(
int row,
int column );
303 void OnSmoothTargetChanged(
void );
304 void OnSmoothTargetUVChanged(
void );
305 void OnPreserveCreasesAndHardEdgesChanged(
void );
306 void OnSmoothSourceChanged(
void );
307 void OnAddSelectedAsSource(
void );
308 void OnAddAllAsSource(
void );
309 void OnRemoveSource(
void );
310 void OnTargetReordered(
int,
int,
int );
311 void OnMapTypeChanged(
const QString & );
345 Layout(
void ) : m_pMapExtractor( NULL ) {};
357 void BeginSection(
void );
359 void EndSection(
void );
361 virtual void CleanUp(
void );
365 virtual unsigned int Prepare(
void );
370 virtual QWidget *UserInterface(
void );
371 MapExtractor *Extractor(
void )
const {
return m_pMapExtractor; };
426 DataInfo() : m_eNormalization( eNormNone ), m_fLowerBound( 0 ), m_fUpperBound( 1 ), m_iChannelCount( 3 ), m_ePrecision( ePrecFloat ) {};
427 Normalization m_eNormalization;
431 Precision m_ePrecision;
432 QString m_sMaterialChannelName;
443 virtual int Prepare(
void );
445 virtual void CleanUp(
void );
451 virtual SamplerUI *UserInterface(
void );
459 virtual unsigned int ConfigurationCount(
void )
const;
461 virtual void SetConfiguration(
unsigned int iConfiguration );
464 virtual bool IsValid(
void );
472 virtual Data DefaultData(
void )
const;
475 virtual struct DataInfo DataInfo( void ) const;
478 virtual void AddGate(
Gate *pGate );
480 virtual void RemoveAllGates(
void );
485 void SetEnabled(
bool bOn );
487 bool IsEnabled(
void )
const {
return m_bEnabled; };
489 MapExtractor *Extractor(
void )
const {
return m_pMapExtractor; };
524 int m_aLayoutData[16];
541 TargetLocation(
void ) : m_fDiameter( 1.0
f ), m_iReferenceFaceIndex( 0xffffffff ), m_fReferenceFaceU(0), m_fReferenceFaceV(0), m_iIndex(0xffffffff), m_iFlags( 0 ) {};
543 SurfacePoint( pMesh, iVertexIndex, iFaceIndex ), m_fDiameter( 1.0
f ), m_iReferenceFaceIndex( 0xffffffff ),
544 m_fReferenceFaceU(0), m_fReferenceFaceV(0), m_iIndex(0xffffffff), m_iFlags( 0 ) {};
549 unsigned int iFaceIndex,
552 float fDiameter = 1.0
f
559 unsigned int iFaceIndex,
563 float fDiameter = 1.0
f
571 unsigned int iFaceIndex,
573 float fDiameter = 1.0
f
584 bool RefineFaceIndex(
void );
585 float RefineFaceCoordinates(
const mudbox::SurfaceSmoother *pSS,
float fTargetU,
float fTargetV,
unsigned int iSteps );
598 Utilizer(
void ) : m_pSampler( 0 ) {};
600 virtual QString MapTypeName(
void )
const;
604 virtual bool IsValid(
void );
606 virtual void CleanUp(
void );
609 virtual void Prepare(
Layout *pLayout,
class Sampler *pSampler );
613 virtual void StoreData(
619 virtual QWidget *UserInterface(
void );
623 virtual Layout *CreateLayout(
void );
639 virtual void Prepare(
void );
640 virtual void CleanUp(
void );
GLdouble GLdouble GLdouble r
Represents a 3D vector or point with S23E8 floating point elements.
A Mesh is a collection of vertices organized into faces, and optional Texture Coordinate information...
This is a container class for simple textures.
This is the base class for anything which is an element of a list with a fixed order and a transparen...
Represents a local coordinate basis comprising three axes that define a coordinate system...
Describes a location somewhere on the surface of a Mesh.
This is the base class for most classes in the Mudbox SDK.
The Quaternion class is used to represent rotations in most cases.
float m_fW
Content of the quaternion represented by four scalar values.
Represents a color with four components: red, green, blue, alpha.
GLenum GLenum GLvoid * row
This class represents a 4x4 transformation matrix.
GLdouble GLdouble GLdouble GLdouble q
This structure represents and describes a class.
TangentGenerator is a class that defines the tangent space used by Mesh objects.
A four dimensionsional vector (X, Y, Z, and W)
GLenum GLenum GLvoid GLvoid * column
This class is the base of all node types that can be structured in a hierarchy.
virtual void Initialize(void)
Represents one level of subdivision details in a geometry.
Streams are used to read information from a file, or to write it to a file.
#define DECLARE_CLASS
This macro should be used in declaration of classes which are inherited from the Node class (or any d...
This is an interface for a SurfaceSmoother object, which is responsible to provide information about ...
Represents a 3D vector or point with S56E11 floating point elements.