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