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_ */