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 _SCENEINFO_H 00013 #define _SCENEINFO_H 00014 00015 #include "Template.h" 00016 00019 class XSIEXPORT CSLSceneInfo 00020 : public CSLTemplate 00021 { 00022 // Methods 00023 public: 00024 00026 typedef enum ETimingType 00027 { 00028 SI_SECONDS, //*< Timing is in seconds */ 00029 SI_FRAMES //*< Timing is in frames */ 00030 }; 00031 00033 00039 CSLSceneInfo 00040 ( 00041 CSLScene* in_pScene, 00042 CSLModel* in_pModel, 00043 CdotXSITemplate *in_pTemplate, 00044 ETimingType in_DefaultETimingType = SI_FRAMES 00045 ); 00046 00048 virtual ~CSLSceneInfo(); 00049 00051 00054 void SetEnd( SI_Float in_nEnd ); 00055 00057 00060 SI_Float GetEnd(); 00061 00063 00066 void SetFrameRate( SI_Float in_fFrameRate ); 00067 00069 00072 SI_Float GetFrameRate(); 00073 00075 00078 void SetStart( SI_Float in_nStart ); 00079 00081 00084 SI_Float GetStart(); 00085 00087 00090 void SetTimingType( ETimingType in_Type ) ; 00091 00092 00094 00097 ETimingType GetTimingType(); 00098 00099 virtual CSLTemplate::ETemplateType Type(); 00100 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00101 00102 CSLFloatProxy* GetStartProxy() { return &m_nStart;}; 00103 CSLFloatProxy* GetEndProxy() { return &m_nEnd;}; 00104 CSLFloatProxy* GetFrameRateProxy() { return &m_fFrameRate;}; 00105 CSLStrEnumProxy<ETimingType, SI_FRAMES>* GetTimingTypeProxy() { return &m_TimingType;}; 00106 00107 // Members 00108 private: 00109 CSLStrEnumProxy<ETimingType, SI_FRAMES> m_TimingType; 00110 CSLFloatProxy m_nStart; 00111 CSLFloatProxy m_nEnd; 00112 CSLFloatProxy m_fFrameRate; 00113 00114 // This member is here to allow future improvement of the class. 00115 SI_Void *m_pReserved; 00116 }; 00117 00118 #endif 00119