fbxsdk/scene/geometry/fbxlimitsutilities.h Source File
 
 
 
fbxsdk/scene/geometry/fbxlimitsutilities.h
Go to the documentation of this file.
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_ */