Transform.h

00001 /******************************************************************************\
00002 *
00003 * File:          Transform.h
00004 * Creation date: January 15, 2002
00005 * Purpose:       Declaration of class 'Transform'
00006 *
00007 \******************************************************************************/
00008 #ifndef _TRANSFORM_H
00009 #define _TRANSFORM_H
00010 
00011 #include "Template.h"
00012 
00019 class XSIEXPORT CSLTransform
00020     : public CSLTemplate
00021 {
00022 public:
00023     CSLTransform(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00024     virtual ~CSLTransform();
00025 
00029     CSIBCMatrix4x4 GetMatrix();
00030 
00035     SI_Void SetMatrix(CSIBCMatrix4x4 &in_rValue);
00036 
00040     CSIBCVector3D GetEulerRotation();
00041 
00046     SI_Void SetEulerRotation(CSIBCVector3D &in_rValue);
00047 
00051     CSIBCVector3D GetScale();
00052 
00057     SI_Void SetScale(CSIBCVector3D &in_rValue);
00058 
00062     CSIBCVector3D GetTranslation();
00063 
00068     SI_Void SetTranslation(CSIBCVector3D &in_rValue);
00069 
00073     SI_Error ComputeLocalMatrix();
00074 
00078     SI_Error ComputeGlobalMatrix();
00079 
00083     CSIBCMatrix4x4 &GetGlobalMatrix();
00084 
00089     SI_Void SetGlobalMatrix(CSIBCMatrix4x4 &in_rValue);
00090 
00091     virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00092     virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00093     virtual ETemplateType Type();
00094 
00095 private:
00096     CSLVector3DProxy m_Scale;
00097     CSLVector3DProxy m_Rotation;
00098     CSLVector3DProxy m_Translation;
00099     CSIBCMatrix4x4 m_TransformMatrix;
00100     CSIBCMatrix4x4 m_GlobalMatrix;
00101 
00102     void *m_pReserved;  // reserved for future extension
00103 };
00104 
00105 #endif