2025-11-01 10:08:02 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QString>
|
|
|
|
|
#include <QVector>
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Model information structure
|
|
|
|
|
*
|
|
|
|
|
* Contains all information for a single preset model, including name, display name,
|
2025-11-01 16:02:20 +00:00
|
|
|
* description, mesh file path, icon path, enabled status, and entity registration info.
|
2025-11-01 10:08:02 +00:00
|
|
|
*/
|
|
|
|
|
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
|
2025-11-01 16:02:20 +00:00
|
|
|
bool useLabel;
|
2025-11-01 10:08:02 +00:00
|
|
|
bool enabled; ///< Whether this model is enabled
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Default constructor
|
|
|
|
|
* Model is enabled by default
|
|
|
|
|
*/
|
2025-11-01 16:02:20 +00:00
|
|
|
ModelInfo() : useLabel(true), enabled(true) {}
|
2025-11-01 10:08:02 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Constructor with parameters
|
|
|
|
|
*/
|
|
|
|
|
ModelInfo(const QString& name, const QString& displayName, const QString& description,
|
2025-11-01 16:02:20 +00:00
|
|
|
const QString& meshFile, const QString& icon, bool enabled = true,
|
|
|
|
|
const QString& entityType = "", const QString& entityClass = "",
|
|
|
|
|
const QStringList& requiredComponents = QStringList())
|
2025-11-01 10:08:02 +00:00
|
|
|
: name(name), displayName(displayName), description(description),
|
2025-11-01 16:02:20 +00:00
|
|
|
meshFile(meshFile), icon(icon), useLabel(true), enabled(enabled) {}
|
2025-11-01 10:08:02 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @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<ModelInfo> models; ///< All models in this category
|
|
|
|
|
};
|