00001 /* 00002 Copyright (C) 2005-2007 Feeling Software Inc. 00003 Portions of the code are: 00004 Copyright (C) 2005-2007 Sony Computer Entertainment America 00005 00006 MIT License: http://www.opensource.org/licenses/mit-license.php 00007 */ 00008 00014 #ifndef _FCD_ANIMATION_KEY_H_ 00015 #define _FCD_ANIMATION_KEY_H_ 00016 00026 class FCDAnimationKey 00027 { 00028 public: 00031 float input; 00032 00034 float output; 00035 00038 uint32 interpolation; 00039 }; 00040 00048 class FCDAnimationKeyBezier : public FCDAnimationKey 00049 { 00050 public: 00051 FMVector2 inTangent; 00052 FMVector2 outTangent; 00053 }; 00054 00062 class FCDAnimationKeyTCB : public FCDAnimationKey 00063 { 00064 public: 00065 float tension; 00066 float continuity; 00067 float bias; 00069 float easeIn; 00070 float easeOut; 00071 }; 00072 00078 class FCDAnimationMKey 00079 { 00080 private: 00081 uint32 dimension; 00082 00083 public: 00088 FCDAnimationMKey(uint32 dimension); 00089 00091 virtual ~FCDAnimationMKey(); 00092 00095 uint32 GetDimension() const { return dimension; }; 00096 00099 float input; 00100 00103 uint32 interpolation; 00104 00106 float* output; 00107 }; 00108 00113 class FCDAnimationMKeyBezier : public FCDAnimationMKey 00114 { 00115 public: 00119 FCDAnimationMKeyBezier(uint32 dimension); 00120 00122 virtual ~FCDAnimationMKeyBezier(); 00123 00124 FMVector2* inTangent; 00125 FMVector2* outTangent; 00126 }; 00127 00132 class FCDAnimationMKeyTCB : public FCDAnimationMKey 00133 { 00134 public: 00138 FCDAnimationMKeyTCB(uint32 dimension); 00139 00141 virtual ~FCDAnimationMKeyTCB(); 00142 00143 float* tension; 00144 float* continuity; 00145 float* bias; 00147 float* easeIn; 00148 float* easeOut; 00149 }; 00150 00151 #endif // _FCD_ANIMATION_KEY_H_ 00152