XNSim/XNCore/XNModelManager.h

97 lines
2.8 KiB
C
Raw Permalink Normal View History

2025-04-28 12:25:20 +08:00
/**
* @file XNModelManager.h
* @author jinchao
* @brief
* @version 1.0
* @date 2024-11-06
*
* @copyright Copyright (c) 2024 XN
*
*/
#pragma once
#include "XNBaseFrameObject.h"
class XNModelObject;
2025-05-20 15:39:40 +08:00
XNCLASS_PTR_DECLARE(XNModelObject)
struct XNModelManagerPrivate;
2025-04-28 12:25:20 +08:00
/**
* @brief
* @details 仿IDID访问或控制该模型
*/
class XNModelManager : public XNBaseFrameObject
{
2025-05-20 15:39:40 +08:00
XN_METATYPE(XNModelManager, XNBaseFrameObject)
XN_DECLARE_PRIVATE(XNModelManager)
2025-04-28 12:25:20 +08:00
public:
/**
* @brief
*/
2025-05-20 15:39:40 +08:00
XNModelManager();
2025-04-28 12:25:20 +08:00
/**
* @brief
*/
virtual ~XNModelManager();
protected:
/**
* @brief
* @param p:
* @details
*/
2025-05-20 15:39:40 +08:00
XNModelManager(PrivateType *p);
2025-04-28 12:25:20 +08:00
2025-05-20 15:39:40 +08:00
public:
2025-04-28 12:25:20 +08:00
/**
* @brief
* @details
*/
2025-05-20 15:39:40 +08:00
virtual bool PrepareForExecute() override;
2025-04-28 12:25:20 +08:00
/**
* @brief
* @details
*/
2025-05-20 15:39:40 +08:00
virtual bool Initialize() override;
2025-04-28 12:25:20 +08:00
/**
* @brief
* @param modelPath: QString类型
* @param className: QString类型
* @param modelVersion: QString类型
* @param initialType: UINT32类型
* @param threadID: UINT32类型线ID
2025-04-28 12:25:20 +08:00
* @details
*/
void LoadModel(const std::string &modelPath, const std::string &className,
const std::string &modelVersion, const std::string &planeName,
uint32_t initialType, uint32_t threadID);
2025-04-28 12:25:20 +08:00
/**
* @brief
* @return UINT32: ID
* @details ID
*/
2025-05-20 15:39:40 +08:00
uint32_t RegisterModel();
2025-04-28 12:25:20 +08:00
/**
* @brief
* @param modelID: UINT32类型ID
* @return XNModelObjectPtr:
*/
2025-05-20 15:39:40 +08:00
XNModelObjectPtr GetModel(uint32_t modelID);
2025-04-28 12:25:20 +08:00
/**
* @brief
* @param ModelID: UINT32类型ID
* @param fun:
* @param freqGroup: UINT32类型0121/431/841/1651/32
* @param RunPos: UINT32类型<2^(freqGroup)
* @param RunPriorty: UINT32类型990
*/
2025-05-20 15:39:40 +08:00
void RegisterFunction(uint32_t id, XNCallBack fun, uint32_t threadID, uint32_t freqGroup,
uint32_t RunPos, uint32_t RunPriorty);
2025-04-28 12:25:20 +08:00
};