Model.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. ref->writeBinaryXref(file);
  26. else
  27. write((unsigned int)0, file);
  28. // meshSkin
  29. // Write one unsigned char to indicate if this model has a skin
  30. if (meshSkin != NULL)
  31. {
  32. write((bool)true, file); // has a skin
  33. meshSkin->writeBinary(file);
  34. }
  35. else
  36. {
  37. write((bool)false, file); // doesn't have a skin
  38. }
  39. // materials[]
  40. writeBinaryObjects(materials, file);
  41. }
  42. void Model::writeText(FILE* file)
  43. {
  44. fprintElementStart(file);
  45. if (ref != NULL)
  46. {
  47. fprintfElement(file, "ref", ref->getId());
  48. }
  49. if (meshSkin != NULL)
  50. {
  51. meshSkin->writeText(file);
  52. }
  53. fprintElementEnd(file);
  54. }
  55. MeshSkin* Model::getSkin()
  56. {
  57. return meshSkin;
  58. }
  59. void Model::setMesh(Mesh* mesh)
  60. {
  61. ref = mesh;
  62. }
  63. void Model::setSkin(MeshSkin* skin)
  64. {
  65. meshSkin = skin;
  66. }
  67. }