#pragma once #include #include /** * @brief Model information structure * * Contains all information for a single preset model, including name, display name, * description, mesh file path, icon path, enabled status, and entity registration info. */ struct ModelInfo { QString name; ///< Model name (unique identifier) QString displayName; ///< Display name (for UI display) QString description; ///< Model description QString meshFile; ///< 3D mesh file path QString icon; ///< Icon file path bool useLabel; bool enabled; ///< Whether this model is enabled /** * @brief Default constructor * Model is enabled by default */ ModelInfo() : useLabel(true), enabled(true) {} /** * @brief Constructor with parameters */ ModelInfo(const QString& name, const QString& displayName, const QString& description, const QString& meshFile, const QString& icon, bool enabled = true, const QString& entityType = "", const QString& entityClass = "", const QStringList& requiredComponents = QStringList()) : name(name), displayName(displayName), description(description), meshFile(meshFile), icon(icon), useLabel(true), enabled(enabled) {} }; /** * @brief Model category structure * * Contains information for a model category, such as ships, satellites, missiles, jammers, etc. * Each category contains multiple specific models. */ struct ModelCategory { QString name; ///< Category name (unique identifier) QString displayName; ///< Display name (for UI display) QString icon; ///< Category icon path QVector models; ///< All models in this category };