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_SCENE_GEOMETRY_SKELETON_H_ 00014 #define _FBXSDK_SCENE_GEOMETRY_SKELETON_H_ 00015 00016 #include <fbxsdk/fbxsdk_def.h> 00017 00018 #include <fbxsdk/scene/geometry/fbxnodeattribute.h> 00019 00020 #include <fbxsdk/fbxsdk_nsbegin.h> 00021 00034 class FBXSDK_DLL FbxSkeleton : public FbxNodeAttribute 00035 { 00036 FBXSDK_OBJECT_DECLARE(FbxSkeleton,FbxNodeAttribute); 00037 00038 public: 00040 virtual FbxNodeAttribute::EType GetAttributeType() const; 00041 00043 void Reset(); 00044 00049 00055 enum EType 00056 { 00057 eRoot, 00058 eLimb, 00059 eLimbNode, 00060 eEffector 00061 }; 00062 00066 void SetSkeletonType(EType pSkeletonType); 00067 00071 EType GetSkeletonType() const; 00072 00078 bool GetSkeletonTypeIsSet() const; 00079 00083 EType GetSkeletonTypeDefaultValue() const; 00084 00088 double GetLimbLengthDefaultValue() const; 00089 00093 double GetLimbNodeSizeDefaultValue() const; 00094 00100 bool SetLimbNodeColor(const FbxColor& pColor); 00101 00106 FbxColor GetLimbNodeColor() const; 00107 00113 bool GetLimbNodeColorIsSet() const; 00114 00118 FbxColor GetLimbNodeColorDefaultValue() const; 00119 00125 bool IsSkeletonRoot() const; 00126 00128 00129 00133 static const char* sSize; 00134 static const char* sLimbLength; 00135 00140 static const FbxDouble sDefaultSize; 00141 static const FbxDouble sDefaultLimbLength; 00142 00143 00145 // 00146 // Properties 00147 // 00149 00157 FbxPropertyT<FbxDouble> Size; 00158 00172 FbxPropertyT<FbxDouble> LimbLength; 00173 00174 /***************************************************************************************************************************** 00175 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! ** 00176 *****************************************************************************************************************************/ 00177 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00178 virtual FbxObject& Copy(const FbxObject& pObject); 00179 00180 protected: 00181 virtual void Construct(const FbxSkeleton* pFrom); 00182 virtual void ConstructProperties(bool pForceSet); 00183 00184 void Reset( bool pResetProperties ); 00185 00186 virtual const char* GetTypeName() const; 00187 virtual FbxStringList GetTypeFlags() const; 00188 00189 EType mSkeletonType; 00190 00191 bool mLimbLengthIsSet; 00192 bool mLimbNodeSizeIsSet; 00193 bool mLimbNodeColorIsSet; 00194 bool mSkeletonTypeIsSet; 00195 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/ 00196 }; 00197 00198 #include <fbxsdk/fbxsdk_nsend.h> 00199 00200 #endif /* _FBXSDK_SCENE_GEOMETRY_SKELETON_H_ */