Model.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "Model.h"
  2. namespace gameplay
  3. {
  4. Model::Model(void) :
  5. _ref(NULL),
  6. _meshSkin(NULL)
  7. {
  8. }
  9. Model::~Model(void)
  10. {
  11. }
  12. unsigned int Model::getTypeId(void) const
  13. {
  14. return MODEL_ID;
  15. }
  16. const char* Model::getElementName(void) const
  17. {
  18. return "Model";
  19. }
  20. void Model::writeBinary(FILE* file)
  21. {
  22. Object::writeBinary(file);
  23. // xref:Mesh
  24. if (_ref != NULL)
  25. {
  26. _ref->writeBinaryXref(file);
  27. }
  28. else
  29. {
  30. write((unsigned int)0, file);
  31. }
  32. // _meshSkin
  33. // Write one unsigned char to indicate if this model has a skin
  34. if (_meshSkin != NULL)
  35. {
  36. write((bool)true, file); // has a skin
  37. _meshSkin->writeBinary(file);
  38. }
  39. else
  40. {
  41. write((bool)false, file); // doesn't have a skin
  42. }
  43. // materials[]
  44. writeBinaryObjects(_materials, file);
  45. }
  46. void Model::writeText(FILE* file)
  47. {
  48. fprintElementStart(file);
  49. if (_ref != NULL)
  50. {
  51. fprintfElement(file, "ref", _ref->getId());
  52. }
  53. if (_meshSkin != NULL)
  54. {
  55. _meshSkin->writeText(file);
  56. }
  57. fprintElementEnd(file);
  58. }
  59. MeshSkin* Model::getSkin()
  60. {
  61. return _meshSkin;
  62. }
  63. void Model::setMesh(Mesh* mesh)
  64. {
  65. _ref = mesh;
  66. }
  67. void Model::setSkin(MeshSkin* skin)
  68. {
  69. _meshSkin = skin;
  70. }
  71. }