XNSim/XNCore_Win/XNModelManager/XNModelManager.h

99 lines
2.9 KiB
C
Raw Normal View History

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