transformation.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 
00022 class MBDLL_DECL GroupNode : virtual public TreeNode
00023 {
00024     DECLARE_CLASS;
00025 
00026 public:
00030     class Transformation *Transformation( void ) const;
00031 };
00032 
00043 class MBDLL_DECL Transformation : virtual public GroupNode
00044 {
00045     DECLARE_CLASS;
00046 
00047 public:
00055     virtual Vector TransformToWorld(
00056         const Vector &vL,   
00057         float fW = 1.0f     
00058         );
00059 
00067     virtual Vector TransformToLocal(
00068         const Vector &vW,   
00069         float fW = 1.0f     
00070         );
00071 
00074     virtual Matrix LocalToWorldMatrix( void );
00075 
00078     virtual Matrix WorldToLocalMatrix( void );
00079 
00082     virtual void SetLocalToWorldMatrix(
00083         const Matrix &mMatrix   
00084         );
00085 
00089     virtual Vector Rotation( void ) const;
00090 
00093     virtual void SetRotation(
00094         const Vector &vYawPitchRoll 
00095         );
00096 
00099     virtual void SetRotation(
00100         const Matrix &mRotation 
00101         );
00102 
00105     virtual void AddRotation(
00106         const Vector &vYawPitchRoll,    
00107         bool bAfter = false             
00108         );
00109 
00112     virtual void AddRotation(
00113         const Vector &vAxis,        
00114         float fAngle                
00115         );
00116 
00120     virtual Vector Position( void ) const;
00121 
00123     virtual void SetPosition(
00124         const Vector &vVector   
00125         );
00126 
00128     virtual Vector Scale( void ) const;
00129 
00131     virtual void SetScale(
00132         const Vector &vScale    
00133         );
00134 
00136     virtual Vector Pivot( void ) const;
00137 
00139     virtual void SetPivot( const Vector &vNewPivot );   
00140 };
00141 
00152 class MBDLL_DECL TransformationPalette : virtual public TreeNode
00153 {
00154 
00155     DECLARE_CLASS;
00156 
00157 public:
00160     virtual int TransformationCount( void ) const;
00161 
00163     enum TransformationType
00164     {
00165         eMatrix,
00166         eDualQuaternion
00167     };
00168 
00172     virtual TransformationType Type( void ) const;
00173 
00175     virtual Matrix AsMatrix( 
00176         int iIndex 
00177         ) const;
00178 
00180     virtual DualQuaternion AsDualQuaternion( 
00181         int iIndex 
00182         ) const;
00183 
00186     virtual void SetupVertexProcessing( void ) const;
00187 
00189     virtual void RestoreVertexProcessing( void ) const;
00190 };
00191 
00192 }; // end of namespace mudbox