00001
00004 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXLIMITSUTILITIES_H
00005 #define FBXFILESDK_KFBXPLUGINS_KFBXLIMITSUTILITIES_H
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #include <fbxfilesdk/components/kbaselib/kaydaradef_h.h>
00042 #include <fbxfilesdk/components/kbaselib/kaydara.h>
00043
00044 #include <fbxfilesdk/kfbxmath/kfbxvector4.h>
00045 #include <fbxfilesdk/kfbxplugins/kfbxnodelimits.h>
00046 #include <fbxfilesdk/kfbxplugins/kfbxnode.h>
00047
00048 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00049
00050 class KFBX_DLL KFbxLimitsUtilities
00051 {
00052 public:
00053 typedef enum
00054 {
00055 eT,
00056 eR,
00057 eS,
00058 } ELimitType;
00059
00060 typedef enum
00061 {
00062 eROTATION_TYPE_QUATERNION,
00063 eROTATION_TYPE_EULER,
00064 } ERotationType ;
00065
00066 typedef enum
00067 {
00068 eROTATION_CLAMP_TYPE_RECTANGULAR,
00069 eROTATION_CLAMP_TYPE_ELIPSOID,
00070 } ERotationClampType ;
00071
00072
00073 KFbxLimitsUtilities(KFbxNodeLimits* pLimits);
00074 KFbxNodeLimits* mLimits;
00075
00076 void SetAuto(ELimitType pType, bool pAuto);
00077 bool GetAuto(ELimitType pType);
00078
00079 void SetEnable(ELimitType pType, bool pEnable);
00080 bool GetEnable(ELimitType pType);
00081
00082 void SetDefault(ELimitType pType, KFbxVector4 pDefault);
00083 KFbxVector4 GetDefault(ELimitType pType);
00084
00085 void SetMin(ELimitType pType, KFbxVector4 pMin);
00086 KFbxVector4 GetMin(ELimitType pType);
00087
00088 void SetMax(ELimitType pType, KFbxVector4 pMax);
00089 KFbxVector4 GetMax(ELimitType pType);
00090
00091 void SetRotationType(ERotationType pType);
00092 ERotationType GetRotationType();
00093
00094 void SetRotationClampType(ERotationClampType pType);
00095 ERotationClampType GetRotationClampType();
00096
00097 void SetRotationAxis(KFbxVector4 pRotationAxis);
00098 KFbxVector4 GetRotationAxis();
00099
00100 void SetAxisLength(double pLength);
00101 double GetAxisLength();
00102
00103 void UpdateAutomatic(KFbxNode* pNode);
00104 KFbxVector4 GetEndPointTranslation(KFbxNode* pNode);
00105 KFbxVector4 GetEndSite(KFbxNode* pNode);
00106
00107 double mAxisLength;
00108 };
00109
00110
00111 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00112
00113 #endif // FBXFILESDK_KFBXPLUGINS_KFBXLIMITSUTILITIES_H
00114