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 };
00416
00417 #endif // __XSIFCURVEKEY_H__