FCurve.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 _FCURVE_H
00013 #define _FCURVE_H
00014 
00015 #include "BaseFCurve.h"
00016 #include "SL_Enum.h"
00017 
00018 extern XSIEXPORT CEnumDictionary<CSLTemplate::EFCurveType, CSLTemplate::SI_INTENSITY> g_FCurveTypeDictionary;
00019 
00020 XSIEXPORT   CEnumDictionary<CSLTemplate::EFCurveType, CSLTemplate::SI_INTENSITY>* GetFCurveEnumDictionary();
00021 
00025 class XSIEXPORT CSLFCurve
00026     : public CSLBaseFCurve
00027 {
00028 public:
00029     typedef CSLStrEnumProxy<EFCurveType, SI_INTENSITY> EFCurveTypeProxy;
00030 
00039     CSLFCurve
00040     (
00041         CSLScene* in_pScene,
00042         CSLModel *in_pModel,
00043         CdotXSITemplate* in_pTemplate,
00044         EFCurveType in_Type,
00045         EFCurveInterpolationType in_InterpolationType
00046     );
00047 
00050     virtual ~CSLFCurve();
00051 
00055     CSLModel* Reference();
00056 
00060     EFCurveType GetFCurveType();
00061 
00065     const SI_Char* GetFCurveTypeAsString();
00066 
00071     virtual SI_Error Synchronize();
00072 
00076     virtual ETemplateType Type();
00077 
00078 private:
00079    EFCurveType m_FCurveType;
00080 
00081     void *m_pReserved;  // reserved for future extension
00082 };
00083 
00084 #endif