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;
84 virtual unsigned int SourceCount(
void )
const;
88 virtual void SetSourceCount(
unsigned int iMeshCount );
93 virtual unsigned int SamplerCount(
void )
const;
95 virtual class Sampler *SamplerByIndex(
int iIndex )
const;
97 virtual class Sampler *SamplerByName(
const QString &sSamplerName )
const;
101 virtual class Sampler *SamplerByClassName(
const QString &sClassName,
int iIndex = 0 );
104 virtual unsigned int LocationCount(
void )
const;
111 virtual bool SourceSmoothing(
void )
const;
113 virtual bool TargetUVSmoothing(
void )
const;
115 virtual bool TargetSmoothing(
void )
const;
117 virtual void SetSmoothing(
bool bTargetSmoothing,
bool bSourceSmoothing,
bool bTargetUVSmoothing =
false );
119 virtual bool SourceCreases(
void )
const;
121 virtual void SetSourceCreases(
bool bOn );
123 virtual bool AddProgress(
int iProgress );
126 virtual void SetMapWidth(
int iWidth );
128 virtual void SetMapHeight(
int iHeight );
137 virtual void RequestTangents(
void );
148 virtual void SetLocatorType(
const mudbox::ClassDesc *pLocatorType,
int iIndex = 0 );
151 virtual bool Execute(
152 bool bInterface =
true
155 virtual bool SilentMode(
void )
const;
158 virtual void ValidityChanged(
void );
161 static bool DeveloperMode(
void );
179 Data(
void) { m_valid =
false; };
214 Locator( Mapper *pMapper = 0 ) : m_pMapper( pMapper ) {};
225 virtual QWidget *UserInterface(
void );
228 virtual bool IsValid(
void );
258 bool bSmoothing =
true,
259 bool bUVSmoothing =
true,
260 bool bDefaultToLowest =
true,
261 bool bShowLevels =
true
265 bool bSmoothing =
true
269 QWidget *CreateLocatorWidget(
void );
273 QWidget *CreateLayoutWidget(
void );
276 QWidget *CreateOutputWidget(
void );
280 virtual void Initialize(
void );
281 virtual QWidget *RootWidget(
void );
282 virtual void UpdateValues(
void );
291 void OnAddSelectedAsTarget(
void );
292 void OnAddAllAsTarget(
void );
293 void OnRemoveTarget(
void );
294 void OnTargetItemClicked(
int row,
int column );
295 void OnSourceItemClicked(
int row,
int column );
296 void OnSmoothTargetChanged(
void );
297 void OnSmoothTargetUVChanged(
void );
298 void OnPreserveCreasesAndHardEdgesChanged(
void );
299 void OnSmoothSourceChanged(
void );
300 void OnAddSelectedAsSource(
void );
301 void OnAddAllAsSource(
void );
302 void OnRemoveSource(
void );
303 void OnTargetReordered(
int,
int,
int );
304 void OnMapTypeChanged(
const QString & );
338 Layout(
void ) : m_pMapExtractor( NULL ) {};
350 void BeginSection(
void );
352 void EndSection(
void );
354 virtual void CleanUp(
void );
358 virtual unsigned int Prepare(
void );
363 virtual QWidget *UserInterface(
void );
364 MapExtractor *Extractor(
void )
const {
return m_pMapExtractor; };
419 DataInfo() : m_eNormalization( eNormNone ), m_fLowerBound( 0 ), m_fUpperBound( 1 ), m_iChannelCount( 3 ), m_ePrecision( ePrecFloat ) {};
420 Normalization m_eNormalization;
424 Precision m_ePrecision;
425 QString m_sMaterialChannelName;
436 virtual int Prepare(
void );
438 virtual void CleanUp(
void );
444 virtual SamplerUI *UserInterface(
void );
452 virtual unsigned int ConfigurationCount(
void )
const;
454 virtual void SetConfiguration(
unsigned int iConfiguration );
457 virtual bool IsValid(
void );
465 virtual Data DefaultData(
void )
const;
468 virtual struct DataInfo DataInfo( void ) const;
471 virtual void AddGate(
Gate *pGate );
473 virtual void RemoveAllGates(
void );
478 void SetEnabled(
bool bOn );
480 bool IsEnabled(
void )
const {
return m_bEnabled; };
482 MapExtractor *Extractor(
void )
const {
return m_pMapExtractor; };
517 int m_aLayoutData[16];
534 TargetLocation(
void ) : m_fDiameter( 1.0
f ), m_iReferenceFaceIndex( 0xffffffff ), m_fReferenceFaceU(0), m_fReferenceFaceV(0), m_iIndex(0xffffffff), m_iFlags( 0 ) {};
536 SurfacePoint( pMesh, iVertexIndex, iFaceIndex ), m_fDiameter( 1.0
f ), m_iReferenceFaceIndex( 0xffffffff ),
537 m_fReferenceFaceU(0), m_fReferenceFaceV(0), m_iIndex(0xffffffff), m_iFlags( 0 ) {};
542 unsigned int iFaceIndex,
545 float fDiameter = 1.0
f
552 unsigned int iFaceIndex,
556 float fDiameter = 1.0
f
564 unsigned int iFaceIndex,
566 float fDiameter = 1.0
f
576 bool RefineFaceIndex(
void );
577 float RefineFaceCoordinates(
const mudbox::SurfaceSmoother *pSS,
float fTargetU,
float fTargetV,
unsigned int iSteps );
590 Utilizer(
void ) : m_pSampler( 0 ) {};
592 virtual QString MapTypeName(
void )
const;
596 virtual bool IsValid(
void );
598 virtual void CleanUp(
void );
601 virtual void Prepare(
Layout *pLayout,
class Sampler *pSampler );
605 virtual void StoreData(
611 virtual QWidget *UserInterface(
void );
615 virtual Layout *CreateLayout(
void );
631 virtual void Prepare(
void );
632 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.