FBX Shared.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /******************************************************************************/
  2. #define FBX_LINK_NONE 0
  3. #define FBX_LINK_LIB 1
  4. #define FBX_LINK_DLL 2
  5. #ifndef FBX_LINK_TYPE
  6. #if WINDOWS
  7. #define FBX_LINK_TYPE FBX_LINK_DLL
  8. #elif MAC || LINUX
  9. #define FBX_LINK_TYPE FBX_LINK_LIB
  10. #else
  11. #define FBX_LINK_TYPE FBX_LINK_NONE
  12. #endif
  13. #endif
  14. /******************************************************************************/
  15. #ifndef _FBX_H
  16. #define _FBX_H
  17. #define FBX_MESH 0x01
  18. #define FBX_SKEL 0x02
  19. #define FBX_ANIM 0x04
  20. #define FBX_MTRL 0x08
  21. #define FBX_PMI 0x10
  22. #define FBX_BONE_NAMES 0x20
  23. #define FBX_ALL_NODES_AS_BONES 0x40
  24. inline Bool SaveFBXData(File &f, C Mesh &mesh, C Skeleton &skeleton, C MemPtr<XAnimation> &animations, C MemPtr<XMaterial> &materials, C MemPtr<Int> &part_material_index, C MemPtr<Str> &bone_names)
  25. {
  26. f.cmpUIntV(0);
  27. mesh .save (f);
  28. skeleton .save (f);
  29. animations .save (f);
  30. materials .save (f);
  31. bone_names .save (f);
  32. part_material_index.saveRaw(f);
  33. return f.ok();
  34. }
  35. inline Bool LoadFBXData(File &f, Mesh &mesh, Skeleton &skeleton, MemPtr<XAnimation> animations, MemPtr<XMaterial> materials, MemPtr<Int> part_material_index, MemPtr<Str> bone_names)
  36. {
  37. switch(f.decUIntV())
  38. {
  39. case 0:
  40. {
  41. if(mesh .load (f))
  42. if(skeleton .load (f))
  43. if(animations .load (f))
  44. if(materials .load (f))
  45. if(bone_names .load (f))
  46. if(part_material_index.loadRaw(f))
  47. if(f.ok())return true;
  48. }break;
  49. }
  50. return false;
  51. }
  52. #endif
  53. /******************************************************************************/