Model3DList.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. #include "Array.h"
  3. #include "Critical.h"
  4. namespace Framework
  5. {
  6. class Model3DData; //! Model3D.h
  7. class Text; //! Text.h
  8. class Model3D; //! Model3D.h
  9. namespace Standart3DTypes
  10. {
  11. extern const char *cube; //! = "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. static int id;
  18. static Critical cs;
  19. RCArray< Model3DData > *models;
  20. RCArray< Text > *names;
  21. public:
  22. //! Konstruktor
  23. Model3DList();
  24. //! Destruktor
  25. ~Model3DList();
  26. //! Fügt der Liste ein Model Hinzu
  27. //! \param mdl Das Model
  28. //! \param name Der name, unter dem das Model in der Liste gespeichert wird
  29. bool addModel( Model3DData *mdl, const char *name );
  30. //! Entfernt ein Model aus der Liste
  31. //! \param name Der Name des Models
  32. void removeModel( const char *name );
  33. //! Überprüft, ob unter einem bestimmten Namen ein Model abgespeichert wurde
  34. //! \param name Der Name
  35. //! \return true, wenn ein Model mit dem Namen existiert
  36. bool hatModel( const char *name ) const;
  37. //! Gibt ein bestimmtes Model zurück
  38. //! \param name Der Name des Models
  39. Model3DData *getModel( const char *name ) const;
  40. //! Gibt ein bestimmtes Model ohne erhöhten Reference Counter zurück
  41. //! \param name Der Name des Models
  42. Model3DData *zModel( const char *name ) const;
  43. //! Initialisiert statische private member. Wird vom Framework automatisch aufgerufen.
  44. static void init();
  45. //! Löscht statische private member. Wird vom Framework automatisch aufgerufen.
  46. static void destroy();
  47. };
  48. }