fbxanimlayer.h

Go to the documentation of this file.
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_ */