M3Datei.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #pragma once
  2. #include "Array.h"
  3. namespace Framework
  4. {
  5. class Text;
  6. class Model3DData;
  7. // Verwaltet eine Datei, in der 3d Modelle abgespeichert wurden
  8. class M3Datei
  9. {
  10. private:
  11. Text pfad;
  12. RCArray< Text > *modelName;
  13. Array< __int64 > *modelPos;
  14. int ref;
  15. public:
  16. // Konstruktor
  17. __declspec( dllexport ) M3Datei();
  18. // Konstruktor
  19. // pfad: Der Pfad zur Datei
  20. __declspec( dllexport ) M3Datei( const char *pfad );
  21. // Konstruktor
  22. // pfad: Der Pfad zur Datei
  23. __declspec( dllexport ) M3Datei( Text *pfad );
  24. // Destruktor
  25. __declspec( dllexport ) ~M3Datei();
  26. // Setzt den Pfad zur Datei
  27. // pfad: Pfad zur Datei
  28. __declspec( dllexport ) void setPfad( const char *pfad );
  29. // Ließt grundlegende Informationen aus der Datei, die für ihre Verwendung benötigt werden
  30. __declspec( dllexport ) void leseDaten();
  31. // Speichert 3D Modell Daten in der Datei
  32. // zMdr: Ein Zeiger auf die zu speichernden Daten ohne erhöhtem Reference Counter
  33. // name: Der Name, unter dem die Daten in der Datei gespeichert werden sollen
  34. // return: 1, falls das Modell gespeichert wurde. 0, falls ein fehler beim speichern auftrat
  35. __declspec( dllexport ) bool saveModel( Model3DData *zMdr, Text *name );
  36. // Speichert 3D Modell Daten in der Datei
  37. // zMdr: Ein Zeiger auf die zu speichernden Daten ohne erhöhtem Reference Counter
  38. // name: Der Name, unter dem die Daten in der Datei gespeichert werden sollen
  39. // return: 1, falls das Modell gespeichert wurde. 0, falls ein fehler beim speichern auftrat
  40. __declspec( dllexport ) bool saveModel( Model3DData *zMdr, const char *name );
  41. // Löscht ein 3D Modell aus der Datei
  42. // name: Der Name des Modells
  43. // return: 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht gefunden wurde, oder ein fehler beim speichern auftrat
  44. __declspec( dllexport ) bool removeModel( Text *name );
  45. // Löscht ein 3D Modell aus der Datei
  46. // name: Der Name des Modells
  47. // return: 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht gefunden wurde, oder ein fehler beim speichern auftrat
  48. __declspec( dllexport ) bool removeModel( const char *name );
  49. // Lähd ein 3D Modell aus der Datei
  50. // name: Der name des zu ladenden Modells
  51. // return: Die geladenen Daten
  52. __declspec( dllexport ) Model3DData *ladeModel( Text *name ) const;
  53. // Lähd ein 3D Modell aus der Datei
  54. // name: Der name des zu ladenden Modells
  55. // return: Die geladenen Daten
  56. __declspec( dllexport ) Model3DData *ladeModel( const char *name ) const;
  57. // überprft, ob ein bestimmtes 3D Modell in der Datei existiert
  58. // name: Der Name des zu suchenden 3D Modells
  59. // return: 1, wenn das Modell gefunden wurde. 0 sonst
  60. __declspec( dllexport ) bool hatModel( const char *name ) const;
  61. // ügibt die Anzahl der gespeicherten Modelle zurück
  62. __declspec( dllexport ) int getModelAnzahl() const;
  63. // Gibt den Namen eines Bestimmten Modells zurück
  64. // i: Der Index des Modells
  65. // return: Ein Zeiger aud den Namen des Modells ohne erhöhten Reference Counter
  66. __declspec( dllexport ) Text *zModelName( int i ) const;
  67. // Erhöht den Reference Counting Zähler.
  68. // return: this.
  69. __declspec( dllexport ) M3Datei *getThis();
  70. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  71. // return: 0.
  72. __declspec( dllexport ) M3Datei *release();
  73. };
  74. }