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__