fbxvertexcachedeformer.h 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 fbxvertexcachedeformer.h
  9. #ifndef _FBXSDK_SCENE_GEOMETRY_VERTEX_CACHE_DEFORMER_H_
  10. #define _FBXSDK_SCENE_GEOMETRY_VERTEX_CACHE_DEFORMER_H_
  11. #include <fbxsdk/fbxsdk_def.h>
  12. #include <fbxsdk/scene/geometry/fbxdeformer.h>
  13. #include <fbxsdk/scene/geometry/fbxcache.h>
  14. #include <fbxsdk/fbxsdk_nsbegin.h>
  15. /** \brief This class deforms control points of a geometry using control point positions
  16. * stored in the associated cache object.
  17. * \nosubgrouping
  18. */
  19. class FBXSDK_DLL FbxVertexCacheDeformer : public FbxDeformer
  20. {
  21. FBXSDK_OBJECT_DECLARE(FbxVertexCacheDeformer, FbxDeformer);
  22. public:
  23. //! Vertex cache deformer data type
  24. enum ECacheChannelType
  25. {
  26. ePositions, //!< This vertex cache deformer handles positions
  27. eNormals, //!< This vertex cache deformer handles normals
  28. eUVs, //!< This vertex cache deformer handles uvs
  29. eTangents, //!< This vertex cache deformer handles tangents
  30. eBinormals, //!< This vertex cache deformer handles binormals
  31. eUserDefined //!< This vertex cache deformer handles user specified data (the cache channel string can provide a hint)
  32. };
  33. /** Assign a cache object to be used by this deformer.
  34. * \param pCache The cache object. */
  35. void SetCache(FbxCache* pCache);
  36. /** Get the cache object used by this deformer.
  37. * \return A pointer to the cache object used by this deformer, or \c NULL if no cache object is assigned. */
  38. FbxCache* GetCache() const;
  39. //! Indicate if the deformer is active or not.
  40. FbxPropertyT<FbxBool> Active;
  41. //! The channel name used in the cache file
  42. FbxPropertyT<FbxString> Channel;
  43. //! The cache set used by this vertex cache deformer
  44. FbxPropertyT<FbxString> CacheSet;
  45. //! The vertex cache deformer type
  46. FbxPropertyT<ECacheChannelType> Type;
  47. /*****************************************************************************************************************************
  48. ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
  49. *****************************************************************************************************************************/
  50. #ifndef DOXYGEN_SHOULD_SKIP_THIS
  51. virtual FbxObject& Copy(const FbxObject& pObject);
  52. virtual EDeformerType GetDeformerType() const { return FbxDeformer::eVertexCache; }
  53. protected:
  54. virtual void ConstructProperties(bool pForceSet);
  55. virtual FbxStringList GetTypeFlags() const;
  56. #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
  57. };
  58. inline EFbxType FbxTypeOf(const FbxVertexCacheDeformer::ECacheChannelType&){ return eFbxEnum; }
  59. #include <fbxsdk/fbxsdk_nsend.h>
  60. #endif /* _FBXSDK_SCENE_GEOMETRY_VERTEX_CACHE_DEFORMER_H_ */