1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #pragma once
- #include "Array.h"
- #include "ReferenceCounter.h"
- namespace Framework
- {
- class Text;
- class Model3DData;
- class Bone;
- class Datei;
- class GraphicsApi;
- //! Verwaltet eine Datei, in der 3d Modelle abgespeichert wurden
- class M3Datei : public virtual ReferenceCounter
- {
- private:
- Text pfad;
- RCArray<Text>* modelName;
- Array<__int64>* modelPos;
- void saveKnochen(Bone* k, Datei* zDat);
- Bone* readKnochen(Datei* zDat) const;
- public:
- //! Konstruktor
- DLLEXPORT M3Datei();
- //! Konstruktor
- //! \param pfad Der Pfad zur Datei
- DLLEXPORT M3Datei(const char* pfad);
- //! Konstruktor
- //! \param pfad Der Pfad zur Datei
- DLLEXPORT M3Datei(Text* pfad);
- //! Destruktor
- DLLEXPORT ~M3Datei();
- //! Setzt den Pfad zur Datei
- //! \param pfad Pfad zur Datei
- DLLEXPORT void setPfad(const char* pfad);
- //! Ließt grundlegende Informationen aus der Datei, die für ihre
- //! Verwendung benötigt werden
- DLLEXPORT void leseDaten();
- //! Speichert 3D Modell Daten in der Datei
- //! \param zMdr Ein Zeiger auf die zu speichernden Daten ohne erhöhtem
- //! Reference Counter \param name Der Name, unter dem die Daten in der
- //! Datei gespeichert werden sollen \return 1, falls das Modell
- //! gespeichert wurde. 0, falls ein fehler beim speichern auftrat
- DLLEXPORT bool saveModel(Model3DData* zMdr, Text* name);
- //! Speichert 3D Modell Daten in der Datei
- //! \param zMdr Ein Zeiger auf die zu speichernden Daten ohne erhöhtem
- //! Reference Counter \param name Der Name, unter dem die Daten in der
- //! Datei gespeichert werden sollen \return 1, falls das Modell
- //! gespeichert wurde. 0, falls ein fehler beim speichern auftrat
- DLLEXPORT bool saveModel(Model3DData* zMdr, const char* name);
- //! Löscht ein 3D Modell aus der Datei
- //! \param name Der Name des Modells
- //! \return 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht
- //! gefunden wurde, oder ein fehler beim speichern auftrat
- DLLEXPORT bool removeModel(Text* name);
- //! Löscht ein 3D Modell aus der Datei
- //! \param name Der Name des Modells
- //! \return 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht
- //! gefunden wurde, oder ein fehler beim speichern auftrat
- DLLEXPORT bool removeModel(const char* name);
- //! Lähd ein 3D Modell aus der Datei
- //! \param name Der name des zu ladenden Modells
- //! \return Die geladenen Daten
- DLLEXPORT Model3DData* ladeModel(
- Text* name, GraphicsApi* zApi, Text* uniqueName) const;
- //! Lähd ein 3D Modell aus der Datei
- //! \param name Der name des zu ladenden Modells
- //! \return Die geladenen Daten
- DLLEXPORT Model3DData* ladeModel(
- const char* name, GraphicsApi* zApi, const char* uniqueName) const;
- //! überprft, ob ein bestimmtes 3D Modell in der Datei existiert
- //! \param name Der Name des zu suchenden 3D Modells
- //! \return 1, wenn das Modell gefunden wurde. 0 sonst
- DLLEXPORT bool hatModel(const char* name) const;
- //! ügibt die Anzahl der gespeicherten Modelle zurück
- DLLEXPORT int getModelAnzahl() const;
- //! Gibt den Namen eines Bestimmten Modells zurück
- //! \param i Der Index des Modells
- //! \return Ein Zeiger aud den Namen des Modells ohne erhöhten Reference
- //! Counter
- DLLEXPORT Text* zModelName(int i) const;
- };
- } // namespace Framework
|