Model3DList.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. const static char *würfel = "f_würfel";
  11. };
  12. // Verwaltet alle geladenen Modeldaten, so dass mehrere Zeichnungen die selben Daten benutzen können
  13. class Model3DList
  14. {
  15. private:
  16. static int id;
  17. static CRITICAL_SECTION cs;
  18. RCArray< Model3DData > *models;
  19. RCArray< Text > *names;
  20. int ref;
  21. public:
  22. // Konstruktor
  23. Model3DList();
  24. // Destruktor
  25. ~Model3DList();
  26. // Fügt der Liste ein Model Hinzu
  27. // mdl: Das Model
  28. // 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. // name: Der Name des Models
  32. void löscheModel( const char *name );
  33. // Überprüft, ob unter einem bestimmten Namen ein Model abgespeichert wurde
  34. // 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. // 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. // name: Der Name des Models
  42. Model3DData *zModel( const char *name ) const;
  43. // Erhöht den Reference Counting Zähler.
  44. // return: this.
  45. Model3DList *getThis();
  46. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  47. // return: 0.
  48. Model3DList *release();
  49. // Initialisiert statische private member. Wird vom Framework automatisch aufgerufen.
  50. static void init();
  51. // Löscht statische private member. Wird vom Framework automatisch aufgerufen.
  52. static void destroy();
  53. };
  54. }