00001 /**************************************************************************************** 00002 00003 Copyright (C) 2012 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_SCENE_ANIMATION_LAYER_H_ 00014 #define _FBXSDK_SCENE_ANIMATION_LAYER_H_ 00015 00016 #include <fbxsdk/fbxsdk_def.h> 00017 00018 #include <fbxsdk/scene/fbxcollection.h> 00019 00020 #include <fbxsdk/fbxsdk_nsbegin.h> 00021 00022 class FbxAnimCurveNode; 00023 00030 class FBXSDK_DLL FbxAnimLayer : public FbxCollection 00031 { 00032 FBXSDK_OBJECT_DECLARE(FbxAnimLayer, FbxCollection); 00033 00034 public: 00036 // 00037 // Properties 00038 // 00040 00047 FbxPropertyT<FbxDouble> Weight; 00048 00054 FbxPropertyT<FbxBool> Mute; 00055 00062 FbxPropertyT<FbxBool> Solo; 00063 00070 FbxPropertyT<FbxBool> Lock; 00071 00079 FbxPropertyT<FbxDouble3> Color; 00080 00087 FbxPropertyT<FbxEnum> BlendMode; 00088 00096 FbxPropertyT<FbxEnum> RotationAccumulationMode; 00097 00105 FbxPropertyT<FbxEnum> ScaleAccumulationMode; 00106 00108 void Reset(); 00109 00119 00125 void SetBlendModeBypass(EFbxType pType, bool pState); 00126 00131 bool GetBlendModeBypass(EFbxType pType); 00132 00134 00135 00138 enum EBlendMode 00139 { 00140 eBlendAdditive, 00141 eBlendOverride, 00142 eBlendOverridePassthrough 00149 }; 00150 00153 enum ERotationAccumulationMode 00154 { 00155 eRotationByLayer, 00156 eRotationByChannel 00157 }; 00158 00161 enum EScaleAccumulationMode 00162 { 00163 eScaleMultiply, 00164 eScaleAdditive 00165 }; 00166 00179 FbxAnimCurveNode* CreateCurveNode(FbxProperty& pProperty); 00181 00182 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00183 00184 // WARNING! 00185 // Anything beyond these lines may not be documented accurately and is 00186 // subject to change without notice. 00188 protected: 00189 FbxAnimLayer(FbxManager& pManager, char const* pName, FbxError* pError=0); 00190 00191 virtual FbxAnimLayer* GetAnimLayer(); 00192 00193 private: 00194 bool ConstructProperties(bool pForceSet); 00195 00196 FbxPropertyT<FbxULongLong> mBlendModeBypass; 00197 00198 mutable FbxError* mError; 00199 00200 friend class FbxObject; 00201 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 00202 }; 00203 00204 #include <fbxsdk/fbxsdk_nsend.h> 00205 00206 #endif /* _FBXSDK_SCENE_ANIMATION_LAYER_H_ */