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_LIMIT_UTILS_H_ 00014 #define _FBXSDK_SCENE_GEOMETRY_LIMIT_UTILS_H_ 00015 00016 #include <fbxsdk/fbxsdk_def.h> 00017 00018 #include <fbxsdk/core/math/fbxvector4.h> 00019 #include <fbxsdk/core/math/fbxtransforms.h> 00020 #include <fbxsdk/scene/geometry/fbxnode.h> 00021 00022 #include <fbxsdk/fbxsdk_nsbegin.h> 00023 00027 class FBXSDK_DLL FbxLimitsUtilities 00028 { 00029 public: 00035 enum EType 00036 { 00037 eTranslation, 00038 eRotation, 00039 eScaling 00040 }; 00041 00046 enum ERotationType 00047 { 00048 eQuaternion, 00049 eEuler 00050 }; 00051 00056 enum ERotationClampType 00057 { 00058 eRectangular, 00059 eEllipsoid 00060 }; 00061 00062 00063 FbxLimitsUtilities(FbxNode* pNode); 00064 00069 void SetAuto(EType pType, bool pAuto); 00070 bool GetAuto(EType pType) const; 00071 00072 void SetEnable(EType pType, bool pEnable); 00073 bool GetEnable(EType pType) const; 00074 00075 void SetDefault(EType pType, FbxVector4 pDefault); 00076 FbxVector4 GetDefault(EType pType) const; 00077 00078 void SetMin(EType pType, FbxVector4 pMin); 00079 FbxVector4 GetMin(EType pType) const; 00080 00081 void SetMax(EType pType, FbxVector4 pMax); 00082 FbxVector4 GetMax(EType pType) const; 00083 00084 void SetRotationType(ERotationType pType); 00085 ERotationType GetRotationType() const; 00086 00087 ERotationClampType GetRotationClampType() const; 00088 00089 void SetRotationAxis(FbxVector4 pRotationAxis); 00090 FbxVector4 GetRotationAxis() const; 00091 00092 void SetAxisLength(double pLength); 00093 double GetAxisLength() const; 00094 00095 void UpdateAutomatic(FbxNode* pNode); 00096 FbxVector4 GetEndPointTranslation(FbxNode* pNode) const; 00097 FbxVector4 GetEndSite(FbxNode* pNode) const; 00099 00100 FbxNode* mNode; 00101 double mAxisLength; 00102 }; 00103 00104 #include <fbxsdk/fbxsdk_nsend.h> 00105 00106 #endif /* _FBXSDK_SCENE_GEOMETRY_LIMIT_UTILS_H_ */