# SceneInfo.h

    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