Model3DList.h 1.8 KB

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