xsi_fcurvekey.h
Go to the documentation of this file.
00001 //*****************************************************************************
00011 //*****************************************************************************
00012 
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016 
00017 #ifndef __XSIFCURVEKEY_H__
00018 #define __XSIFCURVEKEY_H__
00019 
00020 #include <xsi_siobject.h>
00021 #include <xsi_value.h>
00022 #include <xsi_time.h>
00023 
00024 namespace XSI {
00025 
00026 class CFCurveKeyRefArray;
00027 
00028 //*****************************************************************************
00069 //*****************************************************************************
00070 
00071 class SICPPSDKDECL FCurveKey : public SIObject
00072 {
00073 public:
00075     FCurveKey();
00076 
00078     ~FCurveKey();
00079 
00083     FCurveKey(const CRef& in_ref);
00084 
00088     FCurveKey(const FCurveKey& in_obj);
00089 
00094     bool IsA( siClassID in_ClassID) const;
00095 
00099     siClassID GetClassID() const;
00100 
00106     FCurveKey& operator=(const FCurveKey& in_obj);
00107 
00113     FCurveKey& operator=(const CRef& in_ref);
00114 
00118     CValue::DataType            GetValueType() const;
00119 
00123     CValue                      GetValue(void) const;
00124 
00130     CStatus                     PutValue(const CValue& in_value);
00131 
00135     CTime                       GetTime(void) const;
00136 
00142     CStatus                     PutTime(const CTime& in_time);
00143 
00147     bool                        GetLocked(void) const;
00148 
00154     CStatus                     PutLocked(bool in_bFlag);
00155 
00160     bool                        GetSelected(void) const;
00161 
00165     CValue                      GetLeft() const;
00166 
00172     CStatus                     PutLeft(const CValue& in_value);
00173 
00177     CValue                      GetRight(void) const;
00178 
00184     CStatus                     PutRight(const CValue& in_value);
00185 
00189     double                      GetLeftTanY(void) const;
00190 
00196     CStatus                     PutLeftTanY(double in_value);
00197 
00201     double                      GetRightTanY(void) const;
00202 
00208     CStatus                     PutRightTanY(double in_value);
00209 
00213     CTime                       GetLeftTanX(void) const;
00214 
00220     CStatus                     PutLeftTanX(const CTime& in_value);
00221 
00225     CTime                       GetRightTanX(void) const;
00226 
00232     CStatus                     PutRightTanX(const CTime& in_value);
00233 
00238     siFCurveKeyInterpolation    GetInterpolation(void) const;
00239 
00246     CStatus                     PutInterpolation(siFCurveKeyInterpolation in_value);
00247 
00252     bool GetConstraint(siFCurveKeyConstraint in_eKC) const;
00253 
00260     CStatus PutConstraint(siFCurveKeyConstraint in_eKC, bool in_bSet );
00261 
00269     CStatus Set( const CTime& in_frame, const CValue& in_value, bool in_overridekeylock=false );
00270 
00275     LONG GetIndex(void) const;
00276 
00277 private:
00278     FCurveKey * operator&() const;
00279     FCurveKey * operator&();
00280     friend void * FCurveKeyPtr(const FCurveKey &);
00281 };
00282 
00283 //*****************************************************************************
00319 //*****************************************************************************
00320 class SICPPSDKDECL CFCurveKeyRefArray : public CRefArray
00321 {
00322 public:
00323 
00325     CFCurveKeyRefArray();
00326 
00330     CFCurveKeyRefArray( const CFCurveKeyRefArray& );
00331 
00333     ~CFCurveKeyRefArray();
00334 
00340     CFCurveKeyRefArray& operator=( const CFCurveKeyRefArray& in_refArray );
00341 
00346     CFCurveKeyRefArray& operator+=( const CFCurveKeyRefArray& in_refArray );
00347 
00354     virtual void Add( const CRef& in_item );
00355 
00364     void AddItems( const CFCurveKeyRefArray& in_keys );
00365 
00370     void RemoveAt( LONG in_index );
00371 
00377     CTime GetMinKeyFrame(void) const;
00378 
00384     CTime GetMidKeyFrame(void) const;
00385 
00391     CTime GetMaxKeyFrame(void) const;
00392 
00398     CValue GetMinKeyValue(void) const;
00399 
00405     CValue GetMidKeyValue(void) const;
00406 
00412     CValue GetMaxKeyValue(void) const;
00413 };
00414 
00415 }; // namespace XSI
00416 
00417 #endif // __XSIFCURVEKEY_H__