#pragma once #include "Array.h" namespace Framework { class Model3DData; //! Model3D.h class Text; //! Text.h class Model3D; //! Model3D.h namespace Standart3DTypes { extern const char* cube; //! = "f_würfel"; Die Modeldaten eines Würfels der 100 * 100 * 100 groß ist extern const char* texturModel; //! = "f_würfel"; Die Modeldaten eines Würfels der 100 * 100 * 100 groß ist }; //! Verwaltet alle geladenen Modeldaten, so dass mehrere Zeichnungen die selben Daten benutzen können class Model3DList : public virtual ReferenceCounter { private: RCArray< Model3DData >* models; RCArray< Text >* names; public: //! Konstruktor DLLEXPORT Model3DList(); //! Destruktor DLLEXPORT ~Model3DList(); //! Fügt der Liste ein Model Hinzu //! \param mdl Das Model //! \param name Der name, unter dem das Model in der Liste gespeichert wird DLLEXPORT bool addModel( Model3DData* mdl, const char* name ); //! Entfernt ein Model aus der Liste //! \param name Der Name des Models DLLEXPORT void removeModel( const char* name ); //! Überprüft, ob unter einem bestimmten Namen ein Model abgespeichert wurde //! \param name Der Name //! \return true, wenn ein Model mit dem Namen existiert DLLEXPORT bool hatModel( const char* name ) const; //! Gibt ein bestimmtes Model zurück //! \param name Der Name des Models DLLEXPORT Model3DData* getModel( const char* name ) const; //! Gibt ein bestimmtes Model ohne erhöhten Reference Counter zurück //! \param name Der Name des Models DLLEXPORT Model3DData* zModel( const char* name ) const; //! remove All models DLLEXPORT void removeAll(); }; }