You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/GraphDataProvider/GraphMarkProvider.h

97 lines
2.9 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*****************************************************************//**
* @file GraphMarkProvider.h
* @brief 三维模型可视化数据管理。
*
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-26
*********************************************************************/
#ifndef __GRAPHMARKPROVIDER_H__
#define __GRAPHMARKPROVIDER_H__
#include "GraphProviderBase.h"
#include "GraphDataProviderAPI.h"
#include <QHash>
// 前置声明
namespace GraphData
{
/**
* @brief 三维可视化数据分类管理类。
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-26
*/
class GRAPHDATAPROVIDERAPI GraphMarkProvider : public GraphProviderBase
{
Q_OBJECT
// 友元,防止外部手动创建或析构。
friend class GraphProviderManager;
public:
/**
* @brief 获取当前算例已实例化的可视化对象。
* @return 可视化对象列表。
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-26
*/
QList<Exchange::FITKFluidVTKGraphObject3D*> getCurrentGraphObjs() override;
/**
* @brief 获取类名。[重写]
* @return 类名
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-26
*/
QString getClassName() override;
/**
* @brief 根据数据类型获取可视化对象。(没有则创建)
* @param type数据对象类型
* @return 可视化对象
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-26
*/
Exchange::FITKFluidVTKGraphObject3D* getGraphObjectByType(int type);
/**
* @brief 根据数据ID获取全部材料点可视化对象。没有则创建
* @param dataObjId数据ID
* @return 可视化对象
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-30
*/
Exchange::FITKFluidVTKGraphObject3D* getMaterialPointsGraphObject();
private:
/**
* @brief 构造函数。
* @param graphWidget可视化窗口
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-26
*/
GraphMarkProvider(Comp::FITKGraph3DWindowVTK* graphWidget);
/**
* @brief 析构函数。
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-26
*/
~GraphMarkProvider();
private:
/**
* @brief 临时标识符可视化对象字典。(键为数据类型)
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-26
*/
QHash<int, Exchange::FITKFluidVTKGraphObject3D*> m_tempTypeObjHash;
};
} // namespace GraphData
#endif // __GRAPHMARKPROVIDER_H__