00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _SCENEINFO_H 00015 #define _SCENEINFO_H 00016 00017 #include "Template.h" 00018 00024 class XSIEXPORT CSLSceneInfo 00025 : public CSLTemplate 00026 { 00027 // Methods 00028 public: 00029 00032 typedef enum ETimingType 00033 { 00034 SI_SECONDS, //*< Timing is in seconds */ 00035 SI_FRAMES //*< Timing is in frames */ 00036 }; 00037 00045 CSLSceneInfo 00046 ( 00047 CSLScene* in_pScene, 00048 CSLModel* in_pModel, 00049 CdotXSITemplate *in_pTemplate, 00050 ETimingType in_DefaultETimingType = SI_FRAMES 00051 ); 00052 00055 virtual ~CSLSceneInfo(); 00056 00060 void SetEnd( SI_Float in_nEnd ); 00061 00065 SI_Float GetEnd(); 00066 00070 void SetFrameRate( SI_Float in_fFrameRate ); 00071 00075 SI_Float GetFrameRate(); 00076 00080 void SetStart( SI_Float in_nStart ); 00081 00085 SI_Float GetStart(); 00086 00090 void SetTimingType( ETimingType in_Type ) ; 00091 00092 00096 ETimingType GetTimingType(); 00097 00101 virtual CSLTemplate::ETemplateType Type(); 00102 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00103 00104 CSLFloatProxy* GetStartProxy() { return &m_nStart;}; 00105 CSLFloatProxy* GetEndProxy() { return &m_nEnd;}; 00106 CSLFloatProxy* GetFrameRateProxy() { return &m_fFrameRate;}; 00107 CSLStrEnumProxy<ETimingType, SI_FRAMES>* GetTimingTypeProxy() { return &m_TimingType;}; 00108 00109 // Members 00110 private: 00111 CSLStrEnumProxy<ETimingType, SI_FRAMES> m_TimingType; 00112 CSLFloatProxy m_nStart; 00113 CSLFloatProxy m_nEnd; 00114 CSLFloatProxy m_fFrameRate; 00115 00116 // This member is here to allow future improvement of the class. 00117 SI_Void *m_pReserved; 00118 }; 00119 00120 #endif 00121