Model3DList.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. #include "Array.h"
  3. namespace Framework
  4. {
  5. class Model3DData; //! Model3D.h
  6. class Text; //! Text.h
  7. class Model3D; //! Model3D.h
  8. namespace Standart3DTypes
  9. {
  10. extern const char* cube; //! = "f_würfel"; Die Modeldaten eines Würfels
  11. //! der 100 * 100 * 100 groß ist
  12. extern const char* texturModel; //! = "f_würfel"; Die Modeldaten eines
  13. //! Würfels der 100 * 100 * 100 groß ist
  14. }; // namespace Standart3DTypes
  15. //! Verwaltet alle geladenen Modeldaten, so dass mehrere Zeichnungen die
  16. //! selben Daten benutzen können
  17. class Model3DList : public virtual ReferenceCounter
  18. {
  19. private:
  20. RCArray<Model3DData>* models;
  21. RCArray<Text>* names;
  22. public:
  23. //! Konstruktor
  24. DLLEXPORT Model3DList();
  25. //! Destruktor
  26. DLLEXPORT ~Model3DList();
  27. //! Fügt der Liste ein Model Hinzu
  28. //! \param mdl Das Model
  29. //! \param name Der name, unter dem das Model in der Liste gespeichert
  30. //! wird
  31. DLLEXPORT bool addModel(Model3DData* mdl, const char* name);
  32. //! Entfernt ein Model aus der Liste
  33. //! \param name Der Name des Models
  34. DLLEXPORT void removeModel(const char* name);
  35. //! Überprüft, ob unter einem bestimmten Namen ein Model abgespeichert
  36. //! wurde \param name Der Name \return true, wenn ein Model mit dem
  37. //! Namen existiert
  38. DLLEXPORT bool hatModel(const char* name) const;
  39. //! Gibt ein bestimmtes Model zurück
  40. //! \param name Der Name des Models
  41. DLLEXPORT Model3DData* getModel(const char* name) const;
  42. //! Gibt ein bestimmtes Model ohne erhöhten Reference Counter zurück
  43. //! \param name Der Name des Models
  44. DLLEXPORT Model3DData* zModel(const char* name) const;
  45. //! remove All models
  46. DLLEXPORT void removeAll();
  47. };
  48. } // namespace Framework