DYTSrouce/src/workspace/ModelInfo.h
2025-11-02 00:02:20 +08:00

49 lines
1.8 KiB
C

#pragma once
#include <QString>
#include <QVector>
/**
* @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<ModelInfo> models; ///< All models in this category
};