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.
219 lines
6.8 KiB
C++
219 lines
6.8 KiB
C++
/**
|
|
*
|
|
* @file FITKMeshGenInterface.h
|
|
* @brief 网格生成接口类
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-17
|
|
*
|
|
*/
|
|
#ifndef _FITKMESHGEN_INTERFACE_H___
|
|
#define _FITKMESHGEN_INTERFACE_H___
|
|
|
|
#include "FITKInterfaceMeshGenAPI.h"
|
|
#include "FITK_Kernel/FITKCore/FITKCoreMacros.h"
|
|
#include <QMutex>
|
|
#include <QObject>
|
|
|
|
namespace Interface
|
|
{
|
|
//前置声明
|
|
class FITKGlobalMeshSizeInfo;
|
|
class FITKRegionMeshSizeManager;
|
|
class FITKAbstractMeshSizeInfoGenerator;
|
|
class FITKAbstractGeometryMeshSizeGenerator;
|
|
class FITKAbstractMesherDriver;
|
|
class FITKAbstractMeshProcessor;
|
|
class FITKGeometryMeshSizeManager;
|
|
class FITKZonePointManager;
|
|
class FITKRegionGeometryRefineManager;
|
|
|
|
class FITKMeshGenInterfaceDeleator;
|
|
/**
|
|
* @brief 网格生成接口类
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
class FITKInterfaceMeshGenAPI FITKMeshGenInterface : public QObject
|
|
{
|
|
friend FITKMeshGenInterfaceDeleator;
|
|
//声明为单例
|
|
DeclSingleton(FITKMeshGenInterface);
|
|
public:
|
|
/**
|
|
* @brief 获取全局网格尺寸信息
|
|
* @return FITKGlobalMeshSizeInfo*
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
FITKGlobalMeshSizeInfo* getGlobalMeshSizeInfo();
|
|
|
|
/**
|
|
* @brief 注册网格尺寸生成器
|
|
* @param genator
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
void regMeshSizeGenerator(FITKAbstractMeshSizeInfoGenerator* genator);
|
|
/**
|
|
* @brief 获取网格尺寸生成器
|
|
* @return FITKAbstractGeometryMeshSizeGenerator*
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
FITKAbstractMeshSizeInfoGenerator* getMeshSizeGenerator();
|
|
/**
|
|
* @brief 注册几何网格尺寸生成器
|
|
* @param genator FITKAbstractMeshSizeInfoGenerator*
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
void regGeometryMeshSizeGenerator(FITKAbstractGeometryMeshSizeGenerator* genator);
|
|
/**
|
|
* @brief 获取几何网格尺寸生成器
|
|
* @return FITKAbstractGeometryMeshSizeGenerator*
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
FITKAbstractGeometryMeshSizeGenerator* getGeometryMeshSizeGenerator();
|
|
/**
|
|
* @brief 注册网格生成驱动器
|
|
* @param driver
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
void regMesherDriver(FITKAbstractMesherDriver* driver);
|
|
/**
|
|
* @brief 获取网格生成驱动器
|
|
* @return FITKAbstractMesherDriver*
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
FITKAbstractMesherDriver* getMesherDriver();
|
|
/**
|
|
* @brief 注册网格处理器
|
|
* @param p
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
void regMeshProcessor(FITKAbstractMeshProcessor* p );
|
|
/**
|
|
* @brief 获取网格处理器
|
|
* @return FITKAbstractMeshProcessor*
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
FITKAbstractMeshProcessor* getMeshProcessor();
|
|
|
|
/**
|
|
* @brief 获取区域网格尺寸管理器
|
|
* @return FITKRegionMeshSizeManager*
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
FITKRegionMeshSizeManager* getRegionMeshSizeMgr();
|
|
/**
|
|
* @brief 获取几何网格区域尺寸管理器
|
|
* @return FITKGeometryMeshSizeManager*
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
FITKGeometryMeshSizeManager* getGeometryMeshSizeManager();
|
|
|
|
/**
|
|
* @brief 获取网格区域材料点
|
|
* @return FITKAbstractGeometryMeshSizeGenerator*
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-26
|
|
*/
|
|
FITKZonePointManager* getZonePointManager();
|
|
/**
|
|
* @brief 获取几何区域优化管理器
|
|
* @return FITKRegionGeometryRefineManager*
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
* @date 2024-09-02
|
|
*/
|
|
FITKRegionGeometryRefineManager* getRegionGeometryRefineManager();
|
|
private:
|
|
/**
|
|
* @brief 初始化
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
void initialize();
|
|
/**
|
|
* @brief 析构
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
void finalize();
|
|
private:
|
|
/**
|
|
* @brief 网格尺寸生成器
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
FITKAbstractMeshSizeInfoGenerator* _meshSizeGenor{};
|
|
/**
|
|
* @brief 几何网格尺寸生成器
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
FITKAbstractGeometryMeshSizeGenerator* _geoMeshSizeGenor{};
|
|
/**
|
|
* @brief 网格尺寸生成驱动器
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
FITKAbstractMesherDriver* _mesherDriver{};
|
|
/**
|
|
* @brief 网格文件处理器
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
FITKAbstractMeshProcessor* _meshProcessor{};
|
|
/**
|
|
* @brief 全局网格尺寸信息
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
FITKGlobalMeshSizeInfo* _globalSize{};
|
|
/**
|
|
* @brief 区域网格尺寸管理器
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-12
|
|
*/
|
|
FITKRegionMeshSizeManager* _regionMeshMgr{};
|
|
/**
|
|
* @brief 几何网格区域尺寸管理器
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
FITKGeometryMeshSizeManager* _geoMeshSizeMgr{};
|
|
/**
|
|
* @brief 网格区域分点生成器
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-26
|
|
*/
|
|
FITKZonePointManager* _zonePointsManager{};
|
|
/**
|
|
* @brief 几何区域优化管理器
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
* @date 2024-09-02
|
|
*/
|
|
FITKRegionGeometryRefineManager* _regionGeoRefineMgr{};
|
|
};
|
|
|
|
|
|
class FITKMeshGenInterfaceDeleator
|
|
{
|
|
public:
|
|
explicit FITKMeshGenInterfaceDeleator() = default;
|
|
virtual ~FITKMeshGenInterfaceDeleator();
|
|
|
|
};
|
|
}
|
|
|
|
|
|
#endif
|
|
|