SceneInfo.h

Go to the documentation of this file.
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