Go to the
documentation of this file.
00001
00004 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXNODELIMITS_H
00005 #define FBXFILESDK_KFBXPLUGINS_KFBXNODELIMITS_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/fbxfilesdk_def.h>
00042
00043 #include <fbxfilesdk/kfbxmath/kfbxvector4.h>
00044
00045 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00046
00047 class KFbxNode;
00048 class KMBLimit;
00049
00053 typedef enum
00054 {
00055 eTRANSLATION,
00056 eROTATION,
00057 eSCALE,
00058 } ELimitedProperty;
00059
00073 class KFBX_DLL KFbxLimits
00074 {
00075 public:
00078 KFbxLimits();
00079
00081 virtual ~KFbxLimits();
00082
00083 KFbxLimits(const KFbxLimits & other);
00084
00090 void SetLimitMinActive(const bool pXActive, const bool pYActive, const bool pZActive);
00091
00097 void GetLimitMinActive(bool& pXActive, bool& pYActive, bool& pZActive) const;
00098
00104 void SetLimitMaxActive(const bool pXActive, const bool pYActive, const bool pZActive);
00105
00111 void GetLimitMaxActive(bool& pXActive, bool& pYActive, bool& pZActive) const;
00112
00116 bool GetLimitSomethingActive() const;
00117
00121 void SetLimitMin(const KFbxVector4& pMin);
00122
00126 KFbxVector4 GetLimitMin() const;
00127
00131 void SetLimitMax(const KFbxVector4& pMax);
00132
00136 KFbxVector4 GetLimitMax() const;
00137
00141 KFbxLimits& operator=(const KFbxLimits& pFbxLimit);
00142
00143 void Apply(KFbxVector4& pOut, KFbxVector4& pIn);
00144
00145 private:
00146 KMBLimit* mLimit;
00147
00148 friend class KFbxNodeLimits;
00149 };
00150
00174 class KFBX_DLL KFbxNodeLimits
00175 {
00176 public:
00180 KFbxNodeLimits(KFbxNode *pLimitedNode);
00181
00186 KFbxNode* GetLimitedNode();
00187
00196 void SetTranslationLimitActive(bool pActive);
00197
00202 bool GetTranslationLimitActive() const;
00203
00205 KFbxLimits mTranslationLimits;
00207
00216 void SetRotationLimitActive(bool pActive);
00217
00222 bool GetRotationLimitActive()const;
00223
00225 KFbxLimits mRotationLimits;
00227
00236 void SetScalingLimitActive(bool pActive);
00237
00242 bool GetScalingLimitActive() const;
00243
00245 KFbxLimits mScalingLimits;
00247
00248 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00249 KFbxNodeLimits& operator=(KFbxNodeLimits const& pNodeLimits);
00250 inline KMBLimit* GetRLimit() { return mRotationLimits.mLimit; }
00251
00252 private:
00254 KFbxNode* mLimitedNode;
00255 friend class KFbxNode;
00256 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00257 };
00258
00259 typedef KFbxLimits* HKFbxLimits;
00260
00261 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00262
00263 #endif // FBXFILESDK_KFBXPLUGINS_KFBXNODELIMITS_H
00264