DYTSrouce/src/workspace/ModelInfo.h

49 lines
1.8 KiB
C
Raw Normal View History

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
};