|
|
/**
|
|
|
* @brief 流体后处理结果分析抽象类
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-06
|
|
|
*/
|
|
|
#ifndef __FITKINTERFACESTRUPOSTVTK_H_ABS_
|
|
|
#define __FITKINTERFACESTRUPOSTVTK_H_ABS_
|
|
|
|
|
|
#include "FITKInterfaceCFDPostAPI.h"
|
|
|
#include "FITKCFDPostEnum.h"
|
|
|
|
|
|
#include "FITK_Kernel/FITKCore/FITKAbstractNDataObject.h"
|
|
|
#include "FITK_Kernel/FITKCore/FITKVarientParams.h"
|
|
|
#include "FITK_Kernel/FITKCore/FITKCoreMacros.h"
|
|
|
|
|
|
class vtkMapper;
|
|
|
class vtkDataSet;
|
|
|
class vtkTextProperty;
|
|
|
class vtkScalarBarWidget;
|
|
|
class vtkLookupTable;
|
|
|
class vtkAssembly;
|
|
|
class vtkActor;
|
|
|
class vtkRenderWindowInteractor;
|
|
|
class vtkAlgorithmOutput;
|
|
|
|
|
|
namespace Interface
|
|
|
{
|
|
|
/**
|
|
|
* @brief 流体后处理结果分析抽象类
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-06
|
|
|
*/
|
|
|
class FITKInterfaceCFDPostAPI FITKAbstractCFDPostData : public Core::FITKAbstractNDataObject, public Core::FITKVarientParams
|
|
|
{
|
|
|
FITKCLASS(Interface, FITKAbstractCFDPostData);
|
|
|
public:
|
|
|
/**
|
|
|
* @brief 构造函数
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-06
|
|
|
*/
|
|
|
explicit FITKAbstractCFDPostData();
|
|
|
/**
|
|
|
* @brief 析构函数
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-06
|
|
|
*/
|
|
|
virtual ~FITKAbstractCFDPostData();
|
|
|
/**
|
|
|
* @brief 获取后处理数据类型
|
|
|
* @return FITKPostDataType 后处理数据类型
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-14
|
|
|
*/
|
|
|
virtual FITKPostDataType getPostDataType() = 0;
|
|
|
/**
|
|
|
* @brief 更新
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-06
|
|
|
*/
|
|
|
virtual void update();
|
|
|
/**
|
|
|
* @brief 获取所有的mapper
|
|
|
* @return QList<vtkDataSetMapper*> 所有的mapper
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-14
|
|
|
*/
|
|
|
QList<vtkMapper*> getMappers();
|
|
|
/**
|
|
|
* @brief 获取数据
|
|
|
* @return vtkDataSet* 数据
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-07
|
|
|
*/
|
|
|
virtual vtkDataSet* getOutput();
|
|
|
/**
|
|
|
* @brief 获取数据
|
|
|
* @return vtkAlgorithmOutput* 算法
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-14
|
|
|
*/
|
|
|
virtual vtkAlgorithmOutput* getOutputPort();
|
|
|
/**
|
|
|
* @brief 获取父对象id
|
|
|
* @return int 父对象id
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-07
|
|
|
*/
|
|
|
virtual int getCFDPostParentID();
|
|
|
/**
|
|
|
* @brief 设置操作器
|
|
|
* @param[i] interactor 操作器
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-18
|
|
|
*/
|
|
|
virtual void setInteractor(vtkRenderWindowInteractor* interactor);
|
|
|
/**
|
|
|
* @brief 设置标量界面交互器
|
|
|
* @param[i] interactor 交互器
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-11
|
|
|
*/
|
|
|
void setScalarBarWidgetInteractor(vtkRenderWindowInteractor* interactor);
|
|
|
/**
|
|
|
* @brief 获取点数据名称
|
|
|
* @return QStringList 点数据名称
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-11
|
|
|
*/
|
|
|
QStringList getPointDataArray();
|
|
|
/**
|
|
|
* @brief 获取单元数据名称
|
|
|
* @return QStringList 单元数据名称
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-11
|
|
|
*/
|
|
|
QStringList getCellDataArray();
|
|
|
/**
|
|
|
* @brief 获取变量类型
|
|
|
* @param[i] fieldType 点/单元
|
|
|
* @param[i] fieldName 变量名称
|
|
|
* @return VariabelType 变量类型(标量、矢量、张量)
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-11
|
|
|
*/
|
|
|
FITKPostVariableType getVariableType(FITKPostFieldType fieldType, QString fieldName);
|
|
|
/**
|
|
|
* @brief 获取变量数量
|
|
|
* @param[i] fieldType 点/单元
|
|
|
* @param[i] fieldName 变量名称
|
|
|
* @return int 变量数量
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-11
|
|
|
*/
|
|
|
int getVariableComponentCount(FITKPostFieldType fieldType, QString fieldName);
|
|
|
/**
|
|
|
* @brief 获取标量值界面
|
|
|
* @return vtkScalarBarWidget* 标量值界面
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-11
|
|
|
*/
|
|
|
vtkScalarBarWidget* getScalarBarWidget();
|
|
|
/**
|
|
|
* @brief 获取色带数量
|
|
|
* @return int 色带数量
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-12
|
|
|
*/
|
|
|
int getScalaraBarColorNum();
|
|
|
/**
|
|
|
* @brief 设置色带数量
|
|
|
* @param[i] count 色带数量
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-12
|
|
|
*/
|
|
|
void setScalarBarColorNum(int count);
|
|
|
/**
|
|
|
* @brief 获取场量范围
|
|
|
* @param[o] range 范围
|
|
|
* @param[i] type 类型(点、单元)
|
|
|
* @param[i] fieldName 名称(场量名称)
|
|
|
* @param[i] componentIndex 索引
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-12
|
|
|
*/
|
|
|
void getRange(double* range, FITKPostFieldType type, QString fieldName, int componentIndex = -1);
|
|
|
/**
|
|
|
* @brief 获取极值
|
|
|
* @param[0] range 数据[2](Min、Max)
|
|
|
* @param[0] point 数据[6](MinX、MaxX、MinY、MaxY、MinZ、MaxZ)
|
|
|
* @param[i] type 场量类型
|
|
|
* @param[i] fieldName 场量名称
|
|
|
* @param[i] componentIndex 索引
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-10-12
|
|
|
*/
|
|
|
void getExtremum(double* range, double* point, FITKPostFieldType type, QString fieldName, int componentIndex = -1);
|
|
|
/**
|
|
|
* @brief 设置色带范围
|
|
|
* @param[i] minRange 最小值
|
|
|
* @param[i] maxRange 最大值
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-12
|
|
|
*/
|
|
|
void setScalarRange(double minRange, double maxRange);
|
|
|
/**
|
|
|
* @brief 设置颜色范围
|
|
|
* @param[i] maxColor 最大颜色值(红色0-1)
|
|
|
* @param[i] buleColro 最小颜色值(蓝色0-1)
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-12
|
|
|
*/
|
|
|
void setHueRange(double maxColor, double minColor);
|
|
|
/**
|
|
|
* @brief 获取颜色范围
|
|
|
* @return double* 颜色范围
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-12
|
|
|
*/
|
|
|
void getHueRange(double* range);
|
|
|
/**
|
|
|
* @brief 获取点数量
|
|
|
* @return int 点数量
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-13
|
|
|
*/
|
|
|
int getPointNumber();
|
|
|
/**
|
|
|
* @brief 获取单元数量
|
|
|
* @return int 单元数量
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-13
|
|
|
*/
|
|
|
int getCellNumber();
|
|
|
/**
|
|
|
* @brief 获取网格类型
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-13
|
|
|
*/
|
|
|
FITKPostGridType getGridType();
|
|
|
/**
|
|
|
* @brief 获取范围
|
|
|
* @param[o] bounds 范围[6]
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-18
|
|
|
*/
|
|
|
void getBounds(double* bounds);
|
|
|
/**
|
|
|
* @brief 获取中心点
|
|
|
* @param[o] origin 中心[3]
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-10-08
|
|
|
*/
|
|
|
void getOrigin(double* origin);
|
|
|
protected:
|
|
|
/**
|
|
|
* @brief vtkMapper
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-11
|
|
|
*/
|
|
|
QList<vtkMapper*> _mappers = {};
|
|
|
/**
|
|
|
* @brief 文本属性
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-11
|
|
|
*/
|
|
|
vtkTextProperty* _textProperty = nullptr;
|
|
|
/**
|
|
|
* @brief 标量界面
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-11
|
|
|
*/
|
|
|
vtkScalarBarWidget* _scalarBarWidget = nullptr;
|
|
|
/**
|
|
|
* @brief 映射器对象用来映射标量的对象
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-10-08
|
|
|
*/
|
|
|
vtkLookupTable* _lookUpTable = nullptr;
|
|
|
/**
|
|
|
* @brief 默认ScalarBarWidget色带数量
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-12
|
|
|
*/
|
|
|
const int _defaultScalarBarNum = 5;
|
|
|
/**
|
|
|
* @brief 默认颜色范围
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-12
|
|
|
*/
|
|
|
const QPair<double, double> _defaultHue = { 0.67,0.0 };
|
|
|
/**
|
|
|
* @brief 父对象id
|
|
|
* @author BaGuijun (baguijun@163.com)
|
|
|
* @date 2024-09-12
|
|
|
*/
|
|
|
int _CFDPostParentID = -1;
|
|
|
};
|
|
|
}
|
|
|
#endif
|