fbxskeleton.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_GEOMETRY_SKELETON_H_
00014 #define _FBXSDK_SCENE_GEOMETRY_SKELETON_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/core/base/fbxerror.h>
00019 
00020 #include <fbxsdk/scene/geometry/fbxnodeattribute.h>
00021 
00022 #include <fbxsdk/fbxsdk_nsbegin.h>
00023 
00024 class FbxManager;
00025 
00038 class FBXSDK_DLL FbxSkeleton : public FbxNodeAttribute
00039 {
00040     FBXSDK_OBJECT_DECLARE(FbxSkeleton,FbxNodeAttribute);
00041 
00042 public:
00044     virtual FbxNodeAttribute::EType GetAttributeType() const;
00045 
00047     void Reset();
00048 
00053 
00059     enum EType
00060     {
00061         eRoot,          
00062         eLimb,          
00063         eLimbNode,      
00064         eEffector       
00065     };    
00066 
00070     void SetSkeletonType(EType pSkeletonType);
00071 
00075     EType GetSkeletonType() const;
00076 
00082     bool GetSkeletonTypeIsSet() const;
00083 
00087     EType GetSkeletonTypeDefaultValue() const;
00088         
00092     double GetLimbLengthDefaultValue() const;
00093     
00097     double GetLimbNodeSizeDefaultValue() const;
00098 
00104     bool SetLimbNodeColor(const FbxColor& pColor);
00105     
00110     FbxColor GetLimbNodeColor() const;
00111 
00117     bool GetLimbNodeColorIsSet() const;
00118 
00122     FbxColor GetLimbNodeColorDefaultValue() const;
00123 
00129     bool IsSkeletonRoot() const;
00130 
00132 
00133 
00137     static const char*          sSize;
00138     static const char*          sLimbLength;
00139 
00144     static const FbxDouble      sDefaultSize;
00145     static const FbxDouble      sDefaultLimbLength;
00146 
00147 
00149     //
00150     // Properties
00151     //
00153     
00161     FbxPropertyT<FbxDouble>     Size;
00162 
00176     FbxPropertyT<FbxDouble>         LimbLength;
00177 
00179 //
00180 //  WARNING!
00181 //
00182 //  Anything beyond these lines may not be documented accurately and is 
00183 //  subject to change without notice.
00184 //
00186 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00187     virtual FbxObject& Copy(const FbxObject& pObject);
00188 
00189 protected:
00190     FbxSkeleton(FbxManager& pManager, char const* pName);
00191 
00192     virtual void Construct(const FbxSkeleton* pFrom);
00193     virtual bool ConstructProperties(bool pForceSet);
00194 
00195     void Reset( bool pResetProperties );
00196 
00197     virtual const char* GetTypeName() const;
00198     virtual FbxStringList GetTypeFlags() const;
00199 
00200     EType mSkeletonType;
00201 
00202     bool mLimbLengthIsSet;
00203     bool mLimbNodeSizeIsSet;
00204     bool mLimbNodeColorIsSet;
00205     bool mSkeletonTypeIsSet;
00206 
00207 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00208 };
00209 
00210 #include <fbxsdk/fbxsdk_nsend.h>
00211 
00212 #endif /* _FBXSDK_SCENE_GEOMETRY_SKELETON_H_ */