layer.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 
00020 class MBDLL_DECL Layer : virtual public TreeNode
00021 {
00022     DECLARE_CLASS;
00023 
00024 public:
00026     virtual float Transparency( void ) const;
00027     
00029     virtual void SetTransparency(
00030         float fTransparency     
00031         );
00032 
00034     virtual Layer *Children( void ) const;
00035     
00037     virtual Layer *Next( void ) const;
00038     
00040     virtual Layer *Prev( void ) const;
00041     
00043     virtual class LayerContainer *Container( void ) const;
00044 };
00045 
00047 class MBDLL_DECL LayerContainer : virtual public TreeNode
00048 {
00049     DECLARE_CLASS;
00050 
00051 public:
00053     virtual unsigned int LayerCount( void ) const;
00054     
00056     virtual class Layer *Layer(
00057         unsigned int iLayerIndex    
00058         ) const;
00059         
00061     virtual unsigned int LayerIndex(
00062         const class Layer *pLayer           
00063         ) const;
00064     
00066     virtual void UnlinkLayer(
00067         class Layer *pLayer     
00068         );
00069     
00071     virtual void AddLayer(
00072         class Layer *pLayer     
00073         );
00074     
00076     virtual class Layer *CreateLayer( void );
00077     
00079     virtual class Layer *ActiveLayer( void ) const;
00080     
00082     virtual void SetActiveLayer(
00083         class Layer *pLayer     
00084         );
00085         
00087     virtual void MoveLayer(
00088         class Layer *pLayer,    
00089         class Layer *pWhere,    
00090         bool bBefore            
00091         );
00092     
00094     virtual void ReparentLayer(
00095         class Layer *pLayer,    
00096         class Layer *pParent    
00097         );
00098     
00100     virtual class Layer *BaseLayer( void ) const;
00101 
00103     virtual void Serialize(
00104         Stream &s       
00105         );
00106 };
00107 
00121 class MBDLL_DECL LayerMeshData : public TreeNode
00122 {
00123     DECLARE_CLASS;
00124 public:
00126     virtual void SetName(
00127         const QString &sName        
00128         );
00129 
00131     virtual QString Name( void ) const;
00132     
00134     virtual bool Visible() const;
00135 
00137     virtual void SetVisible( bool bVisible );
00138 
00140     virtual mudbox::Mesh* Mesh() const;
00141 
00143     virtual void SetTransparency(
00144         float fTransparency     
00145         );
00146 
00148     virtual float Transparency( void ) const;
00149 
00157     virtual unsigned int LayerVertexIndex (
00158         unsigned int iVertexIndex,  
00159         bool bCreate = true     
00160         );
00161     
00167     virtual void SetVertexCount(
00168         unsigned int iVertexCount   
00169         );
00170     
00173     virtual unsigned int VertexCount() const;
00174 
00177     virtual unsigned int MeshVertexIndex( 
00178         unsigned int iLayerVertexIndex  
00179         ) const;
00180 
00182     virtual void SetVertexData( 
00183         unsigned int iVertexLayerIndex, 
00184         unsigned int iGlobalVertexIndex, 
00185         float fMask  
00186         );
00187         
00189     virtual Vector SetVertexDelta( 
00190         unsigned int iVertexLayerIndex, 
00191         unsigned int iGlobalVertexIndex, 
00192         const Vector &vDelta, 
00193         bool bUpdate = true 
00194     );
00195         
00197     virtual void SetVertexMask(
00198         unsigned int iVertexLayerIndex, 
00199         float fMask                     
00200         );
00201         
00203     virtual float VertexMask(
00204         unsigned int iVertexLayerIndex 
00205         );
00206         
00208     virtual Vector VertexDelta(
00209         unsigned int iVertexLayerIndex 
00210         );
00211 
00216     virtual bool FinishChanges();
00217 
00218     virtual void Transform( const Matrix &mMatrix );
00219 };
00220 
00221 }; // end of namespace mudbox