xsi_fcurvekey.h Source File
 
 
 
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__