fbxlimitsutilities.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /****************************************************************************************
  2. Copyright (C) 2015 Autodesk, Inc.
  3. All rights reserved.
  4. Use of this software is subject to the terms of the Autodesk license agreement
  5. provided at the time of installation or download, or which otherwise accompanies
  6. this software in either electronic or hard copy form.
  7. ****************************************************************************************/
  8. //! \file fbxlimitsutilities.h
  9. #ifndef _FBXSDK_SCENE_GEOMETRY_LIMIT_UTILS_H_
  10. #define _FBXSDK_SCENE_GEOMETRY_LIMIT_UTILS_H_
  11. #include <fbxsdk/fbxsdk_def.h>
  12. #include <fbxsdk/core/math/fbxvector4.h>
  13. #include <fbxsdk/core/math/fbxtransforms.h>
  14. #include <fbxsdk/scene/geometry/fbxnode.h>
  15. #include <fbxsdk/fbxsdk_nsbegin.h>
  16. /** \brief This class represent a utility of limits for transforms.
  17. * \nosubgrouping
  18. */
  19. class FBXSDK_DLL FbxLimitsUtilities
  20. {
  21. public:
  22. /** \enum EType Limit Type.
  23. * - \e eTranslation Translation type
  24. * - \e eRotation Rotation type
  25. * - \e eScaling Scale type
  26. */
  27. enum EType
  28. {
  29. eTranslation,
  30. eRotation,
  31. eScaling
  32. };
  33. /** \enum ERotationType Rotation type.
  34. * - \e eQuaternion Quaternion rotation type
  35. * - \e eEuler Euler rotation type
  36. */
  37. enum ERotationType
  38. {
  39. eQuaternion,
  40. eEuler
  41. };
  42. /** \enum ERotationClampType Rotation clamp type.
  43. * - \e eRectangular Rectangular clamp type
  44. * - \e eEllipsoid Ellipsoid clamp type
  45. */
  46. enum ERotationClampType
  47. {
  48. eRectangular,
  49. eEllipsoid
  50. };
  51. FbxLimitsUtilities(FbxNode* pNode);
  52. /**
  53. * \name Getter/Setter functions
  54. */
  55. //@{
  56. void SetAuto(EType pType, bool pAuto);
  57. bool GetAuto(EType pType) const;
  58. void SetEnable(EType pType, bool pEnable);
  59. bool GetEnable(EType pType) const;
  60. void SetDefault(EType pType, FbxVector4 pDefault);
  61. FbxVector4 GetDefault(EType pType) const;
  62. void SetMin(EType pType, FbxVector4 pMin);
  63. FbxVector4 GetMin(EType pType) const;
  64. void SetMax(EType pType, FbxVector4 pMax);
  65. FbxVector4 GetMax(EType pType) const;
  66. void SetRotationType(ERotationType pType);
  67. ERotationType GetRotationType() const;
  68. ERotationClampType GetRotationClampType() const;
  69. void SetRotationAxis(FbxVector4 pRotationAxis);
  70. FbxVector4 GetRotationAxis() const;
  71. void SetAxisLength(double pLength);
  72. double GetAxisLength() const;
  73. void UpdateAutomatic(FbxNode* pNode);
  74. FbxVector4 GetEndPointTranslation(FbxNode* pNode) const;
  75. FbxVector4 GetEndSite(FbxNode* pNode) const;
  76. //@}
  77. FbxNode* mNode;
  78. double mAxisLength;
  79. };
  80. #include <fbxsdk/fbxsdk_nsend.h>
  81. #endif /* _FBXSDK_SCENE_GEOMETRY_LIMIT_UTILS_H_ */