00001 //*************************************************************************************** 00002 // 00003 // File supervisor: Crosswalk team 00004 // 00005 // Copyright 2008 Autodesk, Inc. All rights reserved. 00006 // Use of this software is subject to the terms of the Autodesk license agreement 00007 // provided at the time of installation or download, or which otherwise accompanies 00008 // this software in either electronic or hard copy form. 00009 // 00010 //*************************************************************************************** 00011 00012 #ifndef _TRANSFORM_H 00013 #define _TRANSFORM_H 00014 00015 #include "Template.h" 00016 00022 class XSIEXPORT CSLTransform 00023 : public CSLTemplate 00024 { 00025 public: 00026 CSLTransform(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00027 virtual ~CSLTransform(); 00028 00032 CSIBCMatrix4x4 GetMatrix(); 00033 00038 SI_Void SetMatrix(CSIBCMatrix4x4 &in_rValue); 00039 00043 CSIBCVector3D GetEulerRotation(); 00044 00049 SI_Void SetEulerRotation(CSIBCVector3D &in_rValue); 00050 00054 CSIBCVector3D GetScale(); 00055 00060 SI_Void SetScale(CSIBCVector3D &in_rValue); 00061 00065 CSIBCVector3D GetTranslation(); 00066 00071 SI_Void SetTranslation(CSIBCVector3D &in_rValue); 00072 00076 SI_Error ComputeLocalMatrix(); 00077 00081 SI_Error ComputeGlobalMatrix(); 00082 00086 CSIBCMatrix4x4 &GetGlobalMatrix(); 00087 00092 SI_Void SetGlobalMatrix(CSIBCMatrix4x4 &in_rValue); 00093 00094 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00095 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName); 00096 virtual ETemplateType Type(); 00097 00098 private: 00099 CSLVector3DProxy m_Scale; 00100 CSLVector3DProxy m_Rotation; 00101 CSLVector3DProxy m_Translation; 00102 CSIBCMatrix4x4 m_TransformMatrix; 00103 CSIBCMatrix4x4 m_GlobalMatrix; 00104 00105 void *m_pReserved; // reserved for future extension 00106 }; 00107 00108 #endif