ModelInfo.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "ModelInfo.h"
  2. #include <Textur.h>
  3. #include "Globals.h"
  4. using namespace Framework;
  5. ModelInfo::ModelInfo(Framework::StreamReader* reader)
  6. {
  7. char len;
  8. reader->lese(&len, 1);
  9. char* path = new char[len + 1];
  10. reader->lese(path, len);
  11. path[len] = 0;
  12. modelPath = path;
  13. delete[] path;
  14. short count;
  15. reader->lese((char*)&count, 2);
  16. for (int i = 0; i < count; i++)
  17. {
  18. reader->lese(&len, 1);
  19. path = new char[len + 1];
  20. reader->lese(path, len);
  21. path[len] = 0;
  22. texturPaths.add(new Text(path));
  23. delete[] path;
  24. }
  25. reader->lese((char*)&transparent, 1);
  26. }
  27. Framework::Model3DData* ModelInfo::getModel() const
  28. {
  29. return uiFactory.initParam.bildschirm->zGraphicsApi()->getModel(modelPath);
  30. }
  31. Framework::Model3DTextur* ModelInfo::getTexture() const
  32. {
  33. Model3DTextur* textur = new Model3DTextur();
  34. int index = 0;
  35. for (Text* texturPath : texturPaths)
  36. {
  37. Textur* tex
  38. = uiFactory.initParam.bildschirm->zGraphicsApi()->createOrGetTextur(
  39. texturPath->getText(), 0);
  40. textur->setPolygonTextur(index++, tex);
  41. }
  42. return textur;
  43. }
  44. bool ModelInfo::isTransparent() const
  45. {
  46. return transparent;
  47. }