M3Datei.h 3.8 KB

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