00001 /**************************************************************************************** 00002 00003 Copyright (C) 2013 Autodesk, Inc. 00004 All rights reserved. 00005 00006 Use of this software is subject to the terms of the Autodesk license agreement 00007 provided at the time of installation or download, or which otherwise accompanies 00008 this software in either electronic or hard copy form. 00009 00010 ****************************************************************************************/ 00011 00013 #ifndef _FBXSDK_FILEIO_COLLADA_ANIMATION_ELEMENT_H_ 00014 #define _FBXSDK_FILEIO_COLLADA_ANIMATION_ELEMENT_H_ 00015 00016 #include <fbxsdk.h> 00017 00018 #include <fbxsdk/fileio/collada/fbxcolladaelement.h> 00019 00020 #include <map> 00021 00022 #include <fbxsdk/fbxsdk_nsbegin.h> 00023 00026 class AnimationElement : public ElementBase 00027 { 00028 public: 00029 typedef ElementBase base_type; 00030 00031 AnimationElement(); 00032 virtual ~AnimationElement(); 00033 00037 int GetChannelCount() const; 00038 00042 void FromCOLLADA(xmlNode * pElement, const SourceElementMapType & pSourceElements); 00043 00049 void FromFBX(const FbxAnimCurve * pCurve, double pUnitConversion = 1.0); 00050 00056 void ToFBX(FbxAnimCurve * pFBXCurve, int pChannelIndex, 00057 double pUnitConversion = 1.0) const; 00058 00063 void ToFBX(FbxNode * pFBXNode, FbxAnimLayer * pAnimLayer, 00064 double pUnitConversion = 1.0) const; 00065 00071 void ToCOLLADA(xmlNode * pAnimationLibrary, const char * pNodeID, 00072 const char * pAttributeSID); 00073 00074 private: 00075 int mKeyCount; 00076 double * mInputArray; 00077 double * mOutputArray; 00078 int mOutputStride; 00079 FbxString * mInterpolationArray; 00080 int mInterpolationStride; 00081 double * mInTangentArray; 00082 int mInTangentStride; 00083 double * mOutTangentArray; 00084 int mOutTangentStride; 00085 }; 00086 00087 #include <fbxsdk/fbxsdk_nsend.h> 00088 00089 #endif /* _FBXSDK_FILEIO_COLLADA_ANIMATION_ELEMENT_H_ */