operation.h

Go to the documentation of this file.
00001 
00002 //**************************************************************************/
00003 // Copyright (c) 2008 Autodesk, Inc.
00004 // All rights reserved.
00005 //
00006 // Use of this software is subject to the terms of the Autodesk license
00007 // agreement provided at the time of installation or download, or which
00008 // otherwise accompanies this software in either electronic or hard copy form.
00009 //
00010 //**************************************************************************/
00011 // DESCRIPTION:
00012 // CREATED: October 2008
00013 //**************************************************************************/
00014 
00015 namespace mudbox {
00016 
00026 class MBDLL_DECL Operation : public Node
00027 {
00028     DECLARE_CLASS;
00029     Operation( void );
00030     virtual ~Operation( void );
00031 
00048     virtual bool ExecuteAndInvert( void );
00049 };
00050 
00051 
00055 class MBDLL_DECL DeleteGeometryOperation : public Operation
00056 {
00057     DECLARE_CLASS;
00058 public:
00059     virtual ~DeleteGeometryOperation();
00060 
00066     virtual void MarkForDeletion( 
00067         Geometry* pGeometry 
00068         );
00069 };
00070 
00075 class MBDLL_DECL ReplaceGeometryOperation : public Operation
00076 {
00077     DECLARE_CLASS;
00078 
00079 protected:
00080     ReplaceGeometryOperation();
00081 
00082 public:
00083     virtual ~ReplaceGeometryOperation();
00084 
00088     virtual void SetGeometries( 
00089         Geometry* pOriginal,    
00090         Geometry* pNew          
00091         );
00092 };
00093 
00099 class MBDLL_DECL TransferDetailOperation : public mudbox::Operation
00100 {
00101     DECLARE_CLASS;
00102 public:
00103 
00106     virtual void SetSourceGeometry( Geometry* pSource );
00107 
00109     virtual void SetTargetGeometry( Geometry* pTarget );
00110 
00113     virtual void SetSearchDistance( float f );
00114 
00117     virtual float SearchDistance() const;
00118 
00120     virtual void SetTransferOntoNewLayer( bool bNewLayer );
00121 
00123     virtual bool TransferOntoNewLayer() const;
00124 
00126     virtual void SetTransferSculptLayers( bool bTransfer );
00127 
00129     virtual bool TransferSculptLayers() const;
00130 
00132     virtual void SetTransferJointWeights( bool bTransfer );
00133 
00135     virtual bool TransferJointWeights() const;
00136 
00139     virtual void SetSelectDirtyRegions( bool bSelect );
00140 
00142     virtual bool SelectDirtyRegions() const;
00143 
00146     virtual void SetTestBothSides( bool bTest );
00147 
00149     virtual bool TestBothSides() const;
00150 
00153     virtual void SetSearchMethod( int iMethod );
00154     
00156     virtual int SearchMethod() const;
00157 
00160     virtual void SetTargetSubdivisionLevel( int iLevel );
00161 
00163     virtual int TargetSubdivisionLevel() const;
00164 
00166     virtual QWidget *CreatePropertiesWindow( 
00167         QWidget *pParent,  
00168         bool bMinimal = false   
00169         );
00170 };
00171 
00172 class MBDLL_DECL TopologyChange : public mudbox::Operation
00173 {
00174     DECLARE_CLASS;
00175 
00176 public:
00177     virtual void SetMesh( Mesh* pMesh );
00178     virtual void RemoveFace( unsigned int iFaceIndex );
00179     virtual void InsertVertex( const Vector& vPosition, unsigned int iVertexIndex = 0xffffffff );
00180     virtual void InsertTriangle( unsigned int iV1, 
00181                         unsigned int iV2, 
00182                         unsigned int iV3, 
00183                         bool bIsFake = false, 
00184                         unsigned int iUV1 = 0xffffffff, 
00185                         unsigned int iUV2 = 0xffffffff, 
00186                         unsigned int iUV3 = 0xffffffff, 
00187                         unsigned int iFaceIndex = 0xffffffff );
00188 };
00189 
00190 }; // end of namespace mudbox
00191