/********************************************************************** * @file PostGraphProperty.h * @brief 后处理属性类 * @author BaGuijun (baguijun@163.com) * @date 2024-09-09 *********************************************************************/ #ifndef _PostGraphProperty_H #define _PostGraphProperty_H #include #include "PostGraphAdaptorAPI.h" #include "FITK_Interface/FITKInterfaceCFDPost/FITKAbstractCFDPostData.h" #define SolidColor "Solid Color" namespace Interface { class FITKAbstractCFDPostData; class PostGraphObjectBase; enum class FITKPostDisplayType { Post_Point, //点 Post_Edge, //线 Post_Face, //面 Post_FaceWithEdge, //带线的面 }; /** * @brief 后处理属性类 * @author BaGuijun (baguijun@163.com) * @date 2024-09-09 */ class PostGraphAdaptorAPI PostGraphProperty : public QObject { Q_OBJECT; public: /** * @brief 构造函数 * @param[i] postData 后处理数据对象 * @author BaGuijun (baguijun@163.com) * @date 2024-09-09 */ PostGraphProperty(PostGraphObjectBase* postGraphObj, FITKAbstractCFDPostData* postData); /** * @brief 析构函数 * @return void * @author BaGuijun (baguijun@163.com) * @date 2024-09-09 */ ~PostGraphProperty(); /** * @brief 设置当前场变量 * @param[i] type 类型(1:点 2:单元) * @param[i] vaName 场变量名称 * @param[i] componentIndex * @return void * @author BaGuijun (baguijun@163.com) * @date 2024-09-09 */ void setCurrentField(FITKPostFieldType type, QString fieldName, int componentIndex = -1); /** * @brief 获取当前场信息 * @param[o] type 类型(1:点 2:单元) * @param[o] filedName 场名称 * @param[o] componentIndex 索引 * @author BaGuijun (baguijun@163.com) * @date 2024-09-10 */ void getCurrentField(FITKPostFieldType& type, QString& filedName, int& componentIndex); /** * @brief 设置显示类型 * @param[i] type 显示类型 * @author BaGuijun (baguijun@163.com) * @date 2024-09-10 */ void setCurrentDisplayType(FITKPostDisplayType type); /** * @brief 获取当前显示类型 * @return FITKPostDisplayType 显示类型 * @author BaGuijun (baguijun@163.com) * @date 2024-09-10 */ FITKPostDisplayType getCurrentDisplayType(); /** * @brief 显示/隐藏标量界面 * 与setScalarBarWidgetIsShow接口不同的是,调用该接口不会更改属性类中ScalarBarWidget是否显示的标签 * 只会显示/隐藏ScalarBarWidget * @author BaGuijun (baguijun@163.com) * @date 2024-09-11 */ void hideScalarBarWidget(); void showScalarBarWidget(); /** * @brief 是否显示标量界面(会记录标签) * @param[i] isShow 是否显示 * @author BaGuijun (baguijun@163.com) * @date 2024-09-11 */ void setScalarBarWidgetIsShow(bool isShow); /** * @brief 获取标量界面是否显示(返回的是实际的ScalarBarWidget显示状态) * @return bool 是否显示 * @author BaGuijun (baguijun@163.com) * @date 2024-09-11 */ bool getScalarBarWidgetOnOrOff(); /** * @brief 获取标量界面是否显示(返回的是标签,而不是实际的ScalarBarWidget显示状态) * @return bool 是否显示 * @author BaGuijun (baguijun@163.com) * @date 2024-09-11 */ bool getScalarBarWidgetIsShow(); /** * @brief 设置不透明度 * @author BaGuijun (baguijun@163.com) * @date 2024-09-13 */ void setOpacity(double opacity); /** * @brief 获取不透明度 * @return double 不透明度 * @author BaGuijun (baguijun@163.com) * @date 2024-09-13 */ double getOpacity(); private: /** * @brief 后处理渲染数据 * @author BaGuijun (baguijun@163.com) * @date 2024-09-12 */ PostGraphObjectBase* _postGraphObj = nullptr; /** * @brief 后处理数据 * @author BaGuijun (baguijun@163.com) * @date 2024-09-09 */ FITKAbstractCFDPostData* _postData = nullptr; FITKPostDisplayType _displayType = FITKPostDisplayType::Post_Face; FITKPostFieldType _fieldType = FITKPostFieldType::Post_None; /** * @brief 当前场名称 * @author BaGuijun (baguijun@163.com) * @date 2024-09-10 */ QString _fieldName = SolidColor; int _componentIndex = -1; /** * @brief 是否显示标量值界面 * @author BaGuijun (baguijun@163.com) * @date 2024-09-11 */ bool _isShowScalarBar = true; }; } #endif