fbxnodeattribute.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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 fbxnodeattribute.h
  9. #ifndef _FBXSDK_SCENE_GEOMETRY_NODE_ATTRIBUTE_H_
  10. #define _FBXSDK_SCENE_GEOMETRY_NODE_ATTRIBUTE_H_
  11. #include <fbxsdk/fbxsdk_def.h>
  12. #include <fbxsdk/core/fbxobject.h>
  13. #include <fbxsdk/fbxsdk_nsbegin.h>
  14. class FbxNode;
  15. /** \brief This class is the base class to all types of node attributes.
  16. * \nosubgrouping
  17. * A node attribute is the content of a node. A \c NULL node attribute is set
  18. * by calling function FbxNode::SetNodeAttribute() with a \c NULL pointer.
  19. */
  20. class FBXSDK_DLL FbxNodeAttribute : public FbxObject
  21. {
  22. FBXSDK_OBJECT_DECLARE(FbxNodeAttribute, FbxObject);
  23. public:
  24. //! Property Names
  25. static const char* sColor;
  26. //! Property Default Values
  27. static const FbxDouble3 sDefaultColor;
  28. /** This property handles the color.
  29. *
  30. * Default value is (0.8, 0.8, 0.8)
  31. */
  32. FbxPropertyT<FbxDouble3> Color;
  33. /** \enum EType Node attribute types.
  34. * - \e eUnknown
  35. * - \e eNull
  36. * - \e eMarker
  37. * - \e eSkeleton
  38. * - \e eMesh
  39. * - \e eNurbs
  40. * - \e ePatch
  41. * - \e eCamera
  42. * - \e eCameraStereo,
  43. * - \e eCameraSwitcher
  44. * - \e eLight
  45. * - \e eOpticalReference
  46. * - \e eOpticalMarker
  47. * - \e eNurbsCurve
  48. * - \e eTrimNurbsSurface
  49. * - \e eBoundary
  50. * - \e eNurbsSurface
  51. * - \e eShape
  52. * - \e eLODGroup
  53. * - \e eSubDiv
  54. * - \e eCachedEffect
  55. * - \e eLine
  56. */
  57. enum EType
  58. {
  59. eUnknown,
  60. eNull,
  61. eMarker,
  62. eSkeleton,
  63. eMesh,
  64. eNurbs,
  65. ePatch,
  66. eCamera,
  67. eCameraStereo,
  68. eCameraSwitcher,
  69. eLight,
  70. eOpticalReference,
  71. eOpticalMarker,
  72. eNurbsCurve,
  73. eTrimNurbsSurface,
  74. eBoundary,
  75. eNurbsSurface,
  76. eShape,
  77. eLODGroup,
  78. eSubDiv,
  79. eCachedEffect,
  80. eLine
  81. };
  82. /** Return the type of node attribute.
  83. * This class is pure virtual.
  84. */
  85. virtual FbxNodeAttribute::EType GetAttributeType() const;
  86. /** Return the node count using this attribute.
  87. * \return The count of nodes with this attribute set.
  88. */
  89. int GetNodeCount() const;
  90. /** Return the node this attribute is set to.
  91. * \param pIndex The index of the node to retrieve
  92. * \return Pointer to the node, or \c NULL if the current attribute is not set to a node.
  93. */
  94. FbxNode* GetNode(int pIndex=0) const;
  95. /*****************************************************************************************************************************
  96. ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
  97. *****************************************************************************************************************************/
  98. #ifndef DOXYGEN_SHOULD_SKIP_THIS
  99. protected:
  100. virtual void ConstructProperties(bool pForceSet);
  101. #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
  102. };
  103. #include <fbxsdk/fbxsdk_nsend.h>
  104. #endif /* _FBXSDK_SCENE_GEOMETRY_NODE_ATTRIBUTE_H_ */