VariantParameter.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 _VARIANTPARAMETER_H
00013 #define _VARIANTPARAMETER_H
00014 
00015 #include "Template.h"
00016 
00017 class CSLXSICustomParamInfo;
00018 class CSLCOLLADAScene;
00019 
00023 class XSIEXPORT CSLVariantParameter : public CSLAnimatableType
00024 {
00025 public:
00030     CSLVariantParameter
00031     (
00032         CdotXSITemplate *in_pTemplate,
00033         SI_Int in_nValueIndex
00034     );
00035 
00037     virtual ~CSLVariantParameter();
00038 
00042     CSLAnimatableType::EElementType ValueType();
00043 
00044 
00045     SI_TinyVariant* GetValue();
00046 
00050     SI_Void SetValue( SI_TinyVariant* in_pNewVal );
00051 
00055     virtual CSLVariantParameter::EElementType Type(){ return CSLVariantParameter::SI_VARIANT_TYPE; }
00056 
00062     virtual CSLXSICustomParamInfo* CustomParamInfo(){ return (CSLXSICustomParamInfo *)NULL; }
00063 
00067     virtual SI_Float GetFloatValue();
00068 
00072     virtual SI_Void SetFloatValue(SI_Float in_fValue);
00073 };
00074 
00075 
00084 class XSIEXPORT CSLCustomParameter :
00085     public CSLVariantParameter
00086 {
00087 public:
00092     CSLCustomParameter
00093     (
00094         CdotXSITemplate *in_pTemplate,
00095         SI_Int in_nValueIndex
00096     );
00097 
00099     virtual ~CSLCustomParameter();
00100 
00102     // Custom parameter information
00104 
00108     CSLXSICustomParamInfo* CustomParamInfo();
00109 
00113     CSLXSICustomParamInfo* ConnectCustomParamInfo( CSLXSICustomParamInfo *in_pCustomParamInfo );
00114 
00115 private:
00116     CSLXSICustomParamInfo *m_pCustomParamInfo;
00117 };
00118 
00119 #endif