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/GraphModelProvider.h

204 lines
7.3 KiB
C

/*****************************************************************//**
* @file GraphModelProvider.h
* @brief
*
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-06-12
*********************************************************************/
#ifndef __GRAPHMODELPROVIDER_H__
#define __GRAPHMODELPROVIDER_H__
#include "GraphProviderBase.h"
#include "GraphDataProviderAPI.h"
#include <QHash>
// 前置声明
namespace GraphData
{
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-06-12
*/
class GRAPHDATAPROVIDERAPI GraphModelProvider : public GraphProviderBase
{
Q_OBJECT
// 友元,防止外部手动创建或析构。
friend class GraphProviderManager;
public:
/**
* @brief
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-06-12
*/
QList<Exchange::FITKFluidVTKGraphObject3D*> getCurrentGraphObjs() override;
/**
* @brief []
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-06-12
*/
QString getClassName() override;
/**
* @brief ID
* @param dataObjIdID
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-06-12
*/
Exchange::FITKFluidVTKGraphObject3D* getModelGraphObject(int dataObjId);
/**
* @brief
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-30
*/
QList<Exchange::FITKFluidVTKGraphObject3D*> getAllModelGraphObjects();
/**
* @brief ID
* @param dataObjIdID
* @return ID
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-24
*/
Exchange::FITKFluidVTKGraphObject3D* getBoundMeshGraphObject(int dataObjId);
/**
* @brief ID
* @param dataObjIdID
* @return ID
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-24
*/
QList<Exchange::FITKFluidVTKGraphObject3D*> getFuildBoundMeshGraphObjects(int dataObjId);
/**
* @brief
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-08-02
*/
QList<Exchange::FITKFluidVTKGraphObject3D*> getAllMeshGraphObjects();
/**
* @brief ID
* @param dataObjIdID
* @return ID
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-25
*/
Exchange::FITKFluidVTKGraphObject3D* getRegionMeshGraphObject(int dataObjId);
/**
* @brief ID
* @param dataObjIdID
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-23
*/
Exchange::FITKFluidVTKGraphObject3D* getCurrentGraphObjByDataId(int dataObjId);
/**
* @brief ID
* @param dataObjIdID
* @param info[]
* @return ID
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-06-12
*/
bool updateObjById(int dataObjId, QVariant info = QVariant());
/**
* @brief
* @param dataObjIdID-1[]
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-19
*/
void setVertPickable(int dataObjId = -1);
/**
* @brief 线
* @param dataObjIdID-1[]
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-19
*/
void setEdgePickable(int dataObjId = -1);
/**
* @brief
* @param dataObjIdID-1[]
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-19
*/
void setFacePickable(int dataObjId = -1);
/**
* @brief
* @param dataObjIdID-1[]
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-19
*/
void setSolidPickable(int dataObjId = -1);
/**
* @brief
* @param dataObjIdID-1[]
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-19
*/
void setNonePickable(int dataObjId = -1);
private:
/**
* @brief
* @param graphWidget
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-06-12
*/
GraphModelProvider(Comp::FITKGraph3DWindowVTK* graphWidget);
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-06-12
*/
~GraphModelProvider();
private:
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-06-12
*/
QHash<int, Exchange::FITKFluidVTKGraphObject3D*> m_modelObjHash;
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-24
*/
QHash<int, Exchange::FITKFluidVTKGraphObject3D*> m_boundMeshObjHash;
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-07-25
*/
QHash<int, Exchange::FITKFluidVTKGraphObject3D*> m_regionMeshObjHash;
};
} // namespace GraphData
#endif // __GRAPHMODELPROVIDER_H__