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_CURVE_TOOLS_H_ 00015 #define _FCD_ANIMATION_CURVE_TOOLS_H_ 00016 00017 class FCDAnimationCurve; 00018 class FCDAnimationMultiCurve; 00019 00020 typedef fm::pvector<FCDAnimationCurve> FCDAnimationCurveList; 00021 typedef fm::pvector<const FCDAnimationCurve> FCDAnimationCurveConstList; 00022 typedef float (*FCDCollapsingFunction)(float* values, uint32 count); 00025 namespace FCDAnimationCurveTools 00026 { 00036 FCOLLADA_EXPORT FCDAnimationMultiCurve* MergeCurves(const FCDAnimationCurveConstList& toMerge, const FloatList& defaultValues); 00037 inline FCDAnimationMultiCurve* MergeCurves(const FCDAnimationCurveList& toMerge, const FloatList& defaultValues) { return MergeCurves(*(const FCDAnimationCurveConstList*) &toMerge, defaultValues); } 00045 FCOLLADA_EXPORT FCDAnimationCurve* Collapse(const FCDAnimationMultiCurve* curve, FCDCollapsingFunction collapse = NULL); 00046 00051 float TakeFirst(float* values, uint32 count); 00052 00057 float Average(float* values, uint32 count); 00058 }; 00059 00060 #endif // _FCD_ANIMATION_CURVE_TOOLS_H_ 00061