00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _TRANSFORM_H 00015 #define _TRANSFORM_H 00016 00017 #include "Template.h" 00018 00026 class XSIEXPORT CSLTransform 00027 : public CSLTemplate 00028 { 00029 public: 00030 CSLTransform(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00031 virtual ~CSLTransform(); 00032 00036 CSIBCMatrix4x4 GetMatrix(); 00037 00041 SI_Void SetMatrix(CSIBCMatrix4x4 &in_rValue); 00042 00046 CSIBCVector3D GetEulerRotation(); 00047 00051 SI_Void SetEulerRotation(CSIBCVector3D &in_rValue); 00052 00056 CSIBCVector3D GetScale(); 00057 00061 SI_Void SetScale(CSIBCVector3D &in_rValue); 00062 00066 CSIBCVector3D GetTranslation(); 00067 00071 SI_Void SetTranslation(CSIBCVector3D &in_rValue); 00072 00076 SI_Error ComputeLocalMatrix(); 00077 00081 SI_Error ComputeGlobalMatrix(); 00082 00086 CSIBCMatrix4x4 &GetGlobalMatrix(); 00087 00091 SI_Void SetGlobalMatrix(CSIBCMatrix4x4 &in_rValue); 00092 00093 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00094 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName); 00095 00099 virtual ETemplateType Type(); 00100 00101 private: 00102 CSLVector3DProxy m_Scale; 00103 CSLVector3DProxy m_Rotation; 00104 CSLVector3DProxy m_Translation; 00105 CSIBCMatrix4x4 m_TransformMatrix; 00106 CSIBCMatrix4x4 m_GlobalMatrix; 00107 00108 void *m_pReserved; // reserved for future extension 00109 }; 00110 00111 #endif