From af3201d08f8cc6d71379fd2c1101a2dc044c7225 Mon Sep 17 00:00:00 2001 From: tianzhen Date: Tue, 31 Dec 2024 15:24:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FlowApp/CommandLineHandler.cpp | 21 ++ FlowApp/CommandLineHandler.h | 47 ++++ FlowApp/ComponentFactory.cpp | 55 ++++ FlowApp/ComponentFactory.h | 40 +++ FlowApp/Create_X64_Project.bat | 9 + FlowApp/FlowAPPSettings.cpp | 25 ++ FlowApp/FlowAPPSettings.h | 45 +++ FlowApp/FlowApp.pri | 31 ++ FlowApp/FlowApp.pro | 137 +++++++++ FlowApp/FlowApp.vcxproj | 198 +++++++++++++ FlowApp/FlowApp.vcxproj.filters | 105 +++++++ FlowApp/FlowApp.vcxproj.user | 4 + FlowApp/FlowApp_resource.rc | 37 +++ FlowApp/GlobalDataFactory.cpp | 32 +++ FlowApp/GlobalDataFactory.h | 56 ++++ FlowApp/MainWindowGenerator.cpp | 15 + FlowApp/MainWindowGenerator.h | 42 +++ FlowApp/PreWindowInitializer.cpp | 467 +++++++++++++++++++++++++++++++ FlowApp/PreWindowInitializer.h | 240 ++++++++++++++++ FlowApp/SignalProcessor.cpp | 8 + FlowApp/SignalProcessor.h | 24 ++ FlowApp/SystemChecker.cpp | 13 + FlowApp/SystemChecker.h | 46 +++ FlowApp/WorkBenchHandler.cpp | 72 +++++ FlowApp/WorkBenchHandler.h | 71 +++++ FlowApp/icon.ico | Bin 0 -> 6775 bytes FlowApp/main.cpp | 64 +++++ FlowApp/vtk.pri | 411 +++++++++++++++++++++++++++ 28 files changed, 2315 insertions(+) create mode 100644 FlowApp/CommandLineHandler.cpp create mode 100644 FlowApp/CommandLineHandler.h create mode 100644 FlowApp/ComponentFactory.cpp create mode 100644 FlowApp/ComponentFactory.h create mode 100644 FlowApp/Create_X64_Project.bat create mode 100644 FlowApp/FlowAPPSettings.cpp create mode 100644 FlowApp/FlowAPPSettings.h create mode 100644 FlowApp/FlowApp.pri create mode 100644 FlowApp/FlowApp.pro create mode 100644 FlowApp/FlowApp.vcxproj create mode 100644 FlowApp/FlowApp.vcxproj.filters create mode 100644 FlowApp/FlowApp.vcxproj.user create mode 100644 FlowApp/FlowApp_resource.rc create mode 100644 FlowApp/GlobalDataFactory.cpp create mode 100644 FlowApp/GlobalDataFactory.h create mode 100644 FlowApp/MainWindowGenerator.cpp create mode 100644 FlowApp/MainWindowGenerator.h create mode 100644 FlowApp/PreWindowInitializer.cpp create mode 100644 FlowApp/PreWindowInitializer.h create mode 100644 FlowApp/SignalProcessor.cpp create mode 100644 FlowApp/SignalProcessor.h create mode 100644 FlowApp/SystemChecker.cpp create mode 100644 FlowApp/SystemChecker.h create mode 100644 FlowApp/WorkBenchHandler.cpp create mode 100644 FlowApp/WorkBenchHandler.h create mode 100644 FlowApp/icon.ico create mode 100644 FlowApp/main.cpp create mode 100644 FlowApp/vtk.pri diff --git a/FlowApp/CommandLineHandler.cpp b/FlowApp/CommandLineHandler.cpp new file mode 100644 index 0000000..625ec9d --- /dev/null +++ b/FlowApp/CommandLineHandler.cpp @@ -0,0 +1,21 @@ +#include "CommandLineHandler.h" +#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h" +#include "FITK_Kernel/FITKCore/FITKActionOperator.h" +#include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h" +#include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h" +#include "FITK_Kernel/FITKAppFramework/FITKRunTimeSetting.h" + +void CommandLineHandler::exec() +{ +/* //查找参数 + int index = _args.indexOf("-i"); + if (index >= 0) + //-i 后面的参数为文件名 + this->importINP(index + 1); + + index = _args.indexOf("-ribbon"); + if(index >=0 ) + FITKAPP->getGlobalData()->getRunTimeSetting()->setValue("Ribbon", true); +*/ +} + diff --git a/FlowApp/CommandLineHandler.h b/FlowApp/CommandLineHandler.h new file mode 100644 index 0000000..933da3e --- /dev/null +++ b/FlowApp/CommandLineHandler.h @@ -0,0 +1,47 @@ +/** + * + * @file ComamdLineHandler.h + * @brief 命令行处理器 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2024-04-06 + * + */ +#ifndef __COMMANDLINEHANDLER_H__ +#define __COMMANDLINEHANDLER_H__ + +#include "FITK_Kernel/FITKAppFramework/FITKCommandLineHandler.h" + +/** + * @brief 自定义命令行处理器 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2024-04-06 + */ +class CommandLineHandler : public AppFrame::FITKCommandLineHandler +{ +public: + /** + * @brief Construct a new Command Line Handler object + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2024-04-06 + */ + explicit CommandLineHandler() = default; + /** + * @brief Destroy the Command Line Handler object + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2024-04-06 + */ + virtual ~CommandLineHandler() = default; + /** + * @brief 执行命令行 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2024-04-06 + */ + void exec() override; + +private: + +}; + + +#endif + diff --git a/FlowApp/ComponentFactory.cpp b/FlowApp/ComponentFactory.cpp new file mode 100644 index 0000000..7da3c05 --- /dev/null +++ b/FlowApp/ComponentFactory.cpp @@ -0,0 +1,55 @@ +/** + * @file ComponentFactory.cpp + * @brief 组件工厂 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ +#include "ComponentFactory.h" +#include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h" +#include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h" +#include "FITK_Component/FITKCompMessageWidget/FITKConsoleComponent.h" +#include "FITK_Component/FITKRenderWindowVTK/FITKGraph3DWindowInterface.h" +#include "FITK_Component/FITKGeoCompOCC/FITKGeoCompOCCInterface.h" +#include "FITK_Component/FITKMeshGenOF/FITKMeshGenOFInterface.h" +#include "FITK_Interface/FITKInterfaceFlowOF/FITKFlowPhysicsHandlerFactory.h" +#include "FITK_Component/FITKFlowOFIOHDF5/FITKFlowOFIOHDF5Interface.h" +#include "FITK_Component/FITKOFDictWriter/FITKOFDictWriterIO.h" +#include "FITK_Component/FITKOFMeshIO/FITKOFMeshReader.h" +#include "FITK_Component/FITKCGNSIO/FITKCGNSIOInterface.h" +#include "OperatorsModel/OpersModelInterface.h" +#include "OperatorsGUI/OpersGUIInterface.h" +#include "PreWindowInitializer.h" + +QList ComponentFactory::createComponents() +{ + // 自定义组件列表 + QList componentList; + // 消息窗口组件 + componentList << new Comp::ConsoleComponent(FITKAPP->getGlobalData()->getMainWindow()); + // 3D图形窗口组件 + auto compVTKrender = new Comp::FITKGraph3DWindowInterface; + componentList << compVTKrender; + //occ 建模 + componentList << new OCC::FITKGeoCompOCCInterface; + //OF网格划分 + componentList << new OF::FITKMeshGenOFInterface; + // 模型数据控制器组件 + componentList << new OperModel::OpersModelInterface; + // 界面控制器组件 + componentList << new GUIOper::OperatorsGUIInterface; + // 字典文件写出组件 + componentList << new IO::FITKOFDictWriterIO; + // OpenFOAM网格读取组件 + componentList << new IO::FITKOFMeshReader; + // 物理场数据工厂组件 + componentList << new Interface::FITKFlowPhysicsHandlerFactory; + // hdf5接口组件 + componentList << new IO::FITKFlowOFIOHDF5Interface; + // CGNS接口组件 + componentList << new IO::FITKCGNSIOInterface; + + // VTK窗口初始化器 + compVTKrender->addInitializer(1, new PreWindowInitializer); + + return componentList; +} diff --git a/FlowApp/ComponentFactory.h b/FlowApp/ComponentFactory.h new file mode 100644 index 0000000..cd12061 --- /dev/null +++ b/FlowApp/ComponentFactory.h @@ -0,0 +1,40 @@ +/** + * @file ComponentFactory.h + * @brief 组件工厂 + * @author YanZhiHui(chanyuantiandao@126.com) + * @date 2024-04-19 + */ +#ifndef __COMPONENTFACTORY__ +#define __COMPONENTFACTORY__ + +#include "FITK_Kernel/FITKAppFramework/FITKComponentFactory.h" + /** + * @brief 组件工厂类 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ +class ComponentFactory : public AppFrame::FITKComponentFactory +{ +public: + /** + * @brief 构造函数(默认实现) + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ + ComponentFactory() = default; + /** + * @brief 析构函数(默认实现) + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ + ~ComponentFactory() = default; + /** + * @brief 虚函数重写,创建自己的component + * @return QList + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2024-03-04 + */ + QList createComponents() override; +}; + +#endif // !__COMPONENTFACTORY__ diff --git a/FlowApp/Create_X64_Project.bat b/FlowApp/Create_X64_Project.bat new file mode 100644 index 0000000..a2c6ad0 --- /dev/null +++ b/FlowApp/Create_X64_Project.bat @@ -0,0 +1,9 @@ + +call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 10.0.17763.0 + +SET "PATH=C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin\;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64;%PATH%" + +qmake -r -tp vc FlowApp.pro + + +pause diff --git a/FlowApp/FlowAPPSettings.cpp b/FlowApp/FlowAPPSettings.cpp new file mode 100644 index 0000000..d10941d --- /dev/null +++ b/FlowApp/FlowAPPSettings.cpp @@ -0,0 +1,25 @@ +#include "FlowAPPSettings.h" +#include +#include + +void FlowAPPSettings::read() +{ + //读入文件 + QString file = _appDir + "/FlowAPP.ini"; + QFile f(file); + //文件不存在则创建 + if (!f.exists()) + { + if (f.open(QFile::WriteOnly)) + { + //创建文件 + f.write(""); + f.close(); + } + } + //读取文件 + _settings = new QSettings(file, QSettings::IniFormat); +} + + + diff --git a/FlowApp/FlowAPPSettings.h b/FlowApp/FlowAPPSettings.h new file mode 100644 index 0000000..af632ac --- /dev/null +++ b/FlowApp/FlowAPPSettings.h @@ -0,0 +1,45 @@ +/** + * + * @file FlowAPPSettings.h + * @brief 软件设置 + * @author BaGuijun (baguijun@163.com) + * @date 2024-04-06 + * + */ +#ifndef __STRUCTURAL_SETTINGS_H__ +#define __STRUCTURAL_SETTINGS_H__ + +#include "FITK_Kernel/FITKAppFramework/FITKAppSettings.h" + +/** + * @brief 软件设置 + * @author BaGuijun (baguijun@163.com) + * @date 2024-04-06 + */ +class FlowAPPSettings : public AppFrame::FITKAppSettings +{ +public: + /** + * @brief Construct a new Structural Settings object + * @author BaGuijun (baguijun@163.com) + * @date 2024-04-06 + */ + explicit FlowAPPSettings() = default; + /** + * @brief Destroy the Structural Settings object + * @author BaGuijun (baguijun@163.com) + * @date 2024-04-06 + */ + virtual ~FlowAPPSettings() = default; + /** + * @brief 读取ini文件 + * @author BaGuijun (baguijun@163.com) + * @date 2024-04-06 + */ + void read() override; + + +}; + + +#endif diff --git a/FlowApp/FlowApp.pri b/FlowApp/FlowApp.pri new file mode 100644 index 0000000..dbd0562 --- /dev/null +++ b/FlowApp/FlowApp.pri @@ -0,0 +1,31 @@ +HEADERS += \ + $$PWD/MainWindowGenerator.h \ + $$PWD/GlobalDataFactory.h \ + $$PWD/ComponentFactory.h \ + $$PWD/CommandLineHandler.h \ + $$PWD/PreWindowInitializer.h \ + $$PWD/SignalProcessor.h \ + $$PWD/FlowAPPSettings.h \ + $$PWD/WorkBenchHandler.h \ + $$PWD/SystemChecker.h \ + +SOURCES += \ + $$PWD/main.cpp \ + $$PWD/MainWindowGenerator.cpp \ + $$PWD/GlobalDataFactory.cpp \ + $$PWD/ComponentFactory.cpp \ + $$PWD/CommandLineHandler.cpp \ + $$PWD/PreWindowInitializer.cpp \ + $$PWD/SignalProcessor.cpp \ + $$PWD/FlowAPPSettings.cpp \ + $$PWD/WorkBenchHandler.cpp \ + $$PWD/SystemChecker.cpp \ + +FORMS += \ +# $$PWD/PluginManageDialog.ui \ + + +#RESOURCES += ../qrc/qianfan.qrc + +#RC_FILE += ../qrc/qianfan.rc +RC_ICONS = icon.ico diff --git a/FlowApp/FlowApp.pro b/FlowApp/FlowApp.pro new file mode 100644 index 0000000..5e7144a --- /dev/null +++ b/FlowApp/FlowApp.pro @@ -0,0 +1,137 @@ +TEMPLATE = app +CONFIG += c++11 +CONFIG += qt +TARGET = FlowApp +QT += core widgets gui + +unix:!mac{ QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN/\'" } + +include(./vtk.pri) +include(./FlowApp.pri) + +win32{ + + INCLUDEPATH += ./ \ + ../ \ + ../../ \ + + Release:CONFIG += console + Release:DESTDIR = ../output/bin + Release:MOC_DIR = ../generate/FlowApp/release/moc + Release:RCC_DIR = ../generate/FlowApp/release/rcc + Release:UI_DIR = ../generate/FlowApp/release/qui + Release:OBJECTS_DIR = ../generate/FlowApp/release/obj + Release:LIBS += \ + -L../output/bin \ + -lFITKAppFramework \ + -lFITKCore \ + -lFITKCompMessageWidget \ + -lFITKRenderWindowVTK \ + -lFITKInterfaceFlowOF \ +# -lFITKInterfaceFlowPHengLEI \ + -lFITKInterfaceModel \ + -lFITKInterfaceMesh \ + -lFITKInterfaceGeometry \ + -lFITKInterfaceCFDPost \ + -lFITKGeoCompOCC \ + -lFITKMeshGenOF \ + -lOperatorsModel \ + -lOperatorsGUI \ + -lGUIFrame \ + -lGUIWidget \ + -lFITKWidget \ + -lFITKOFDictWriter \ + -lFITKOFMeshIO \ + -lFITKFlowOFIOHDF5 \ + -lFITKCGNSIO \ + -lCFDStructMain \ + -lFITKInterfaceCFDPost + + Debug:CONFIG += console + Debug:DESTDIR = ../output/bin_d + Debug:MOC_DIR = ../generate/FlowApp/debug/moc + Debug:RCC_DIR = ../generate/FlowApp/debug/rcc + Debug:UI_DIR = ../generate/FlowApp/debug/qui + Debug:OBJECTS_DIR = ../generate/FlowApp/debug/obj + Debug:LIBS += \ + -L../output/bin_d \ + -lFITKAppFramework \ + -lFITKCore \ + -lFITKCompMessageWidget \ + -lFITKRenderWindowVTK \ + -lFITKInterfaceFlowOF \ +# -lFITKInterfaceFlowPHengLEI \ + -lFITKInterfaceModel \ + -lFITKInterfaceGeometry \ + -lFITKInterfaceCFDPost \ + -lFITKGeoCompOCC \ + -lFITKMeshGenOF \ + -lOperatorsModel \ + -lFITKInterfaceMesh \ + -lOperatorsGUI \ + -lGUIFrame \ + -lGUIWidget \ + -lFITKWidget \ + -lFITKOFDictWriter \ + -lFITKOFMeshIO \ + -lFITKFlowOFIOHDF5 \ + -lFITKCGNSIO \ + -lCFDStructMain \ + -lGUIFrame \ + -lFITKInterfaceCFDPost + + +Debug:LIBS += -L$$PWD/../Tools/Win64/SARibbon/libd/ \ + -lSARibbonBard \ + +Release:LIBS += -L$$PWD/../Tools/Win64/SARibbon/lib/ \ + -lSARibbonBar \ + + message("Windows FlowApp generated") +} + +unix{ + + INCLUDEPATH += ./ \ + ../ \ + ../../ \ + + CONFIG += console + CONFIG += plugin + DESTDIR = ../output/bin + MOC_DIR = ../generate/FlowApp/release/moc + UI_DIR = ../generate/FlowApp/release/qui + RCC_DIR = ../generate/FlowApp/release/rcc + OBJECTS_DIR = ../generate/FlowApp/release/obj + LIBS += \ + -L../output/bin \ + -lFITKAppFramework \ + -lFITKCore \ + -lFITKCompMessageWidget \ + -lFITKRenderWindowVTK \ + -lFITKInterfaceFlowOF \ +# -lFITKFITKInterfaceFlowPHengLEI \ + -lFITKInterfaceModel \ + -lFITKInterfaceMesh \ + -lFITKInterfaceGeometry \ + -lFITKGeoCompOCC \ + -lFITKMeshGenOF \ + -lOperatorsModel \ + -lOperatorsGUI \ + -lOperatorsInterface \ + -lGUIFrame \ + -lGUIWidget \ + -lFITKWidget \ + -L$$PWD/../Tools/Linux64/SARibbon/lib/ \ + -lSARibbonBar \ + -lFITKOFDictWriter \ + -lFITKOFMeshIO \ + -lFITKFlowOFIOHDF5 \ + -lFITKCGNSIO \ + + message("Linux FlowApp generated") +} + + + + diff --git a/FlowApp/FlowApp.vcxproj b/FlowApp/FlowApp.vcxproj new file mode 100644 index 0000000..f7926d0 --- /dev/null +++ b/FlowApp/FlowApp.vcxproj @@ -0,0 +1,198 @@ + + + + + Release + x64 + + + Debug + x64 + + + + {62070125-C17B-3711-8F4B-712A2622FE87} + FlowApp + QtVS_v304 + 10.0.17763.0 + 10.0.17763.0 + $(MSBuildProjectDirectory)\QtMsBuild + + + v141 + ..\output\bin\ + false + NotSet + Application + ..\generate\FlowApp\release\obj\ + FlowApp + + + v141 + ..\output\bin_d\ + false + NotSet + Application + ..\generate\FlowApp\debug\obj\ + FlowApp + + + + + + + + + + ..\output\bin_d\..\generate\FlowApp\debug\obj\FlowApptrue..\output\bin\..\generate\FlowApp\release\obj\FlowApptruefalseQT 5.14.2core;gui;widgetsQT 5.14.2core;gui;widgets + + + + GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\Tools\Win64\VTK\include\vtk-9.0;..;..\..;..\generate\FlowApp\release\moc;/include;%(AdditionalIncludeDirectories) + -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions) + ..\generate\FlowApp\release\obj\ + false + None + 4577;4467;%(DisableSpecificWarnings) + Sync + ..\generate\FlowApp\release\obj\ + MaxSpeed + _CONSOLE;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) + false + + MultiThreadedDLL + true + true + Level3 + true + + ..\Tools\Win64\VTK\lib\vtkChartsCore-9.0.lib;..\Tools\Win64\VTK\lib\vtkCommonColor-9.0.lib;..\Tools\Win64\VTK\lib\vtkCommonComputationalGeometry-9.0.lib;..\Tools\Win64\VTK\lib\vtkCommonCore-9.0.lib;..\Tools\Win64\VTK\lib\vtkCommonDataModel-9.0.lib;..\Tools\Win64\VTK\lib\vtkCommonExecutionModel-9.0.lib;..\Tools\Win64\VTK\lib\vtkCommonMath-9.0.lib;..\Tools\Win64\VTK\lib\vtkCommonMisc-9.0.lib;..\Tools\Win64\VTK\lib\vtkCommonSystem-9.0.lib;..\Tools\Win64\VTK\lib\vtkCommonTransforms-9.0.lib;..\Tools\Win64\VTK\lib\vtkDICOMParser-9.0.lib;..\Tools\Win64\VTK\lib\vtkDomainsChemistry-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersAMR-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersCore-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersExtraction-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersFlowPaths-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersGeneral-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersGeneric-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersGeometry-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersHybrid-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersHyperTree-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersImaging-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersModeling-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersParallel-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersParallelImaging-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersPoints-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersProgrammable-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersSMP-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersSelection-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersSources-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersStatistics-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersTexture-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersTopology-9.0.lib;..\Tools\Win64\VTK\lib\vtkFiltersVerdict-9.0.lib;..\Tools\Win64\VTK\lib\vtkGUISupportQt-9.0.lib;..\Tools\Win64\VTK\lib\vtkGUISupportQtSQL-9.0.lib;..\Tools\Win64\VTK\lib\vtkGeovisCore-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOAMR-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOAsynchronous-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOCityGML-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOCore-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOEnSight-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOExodus-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOExport-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOExportGL2PS-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOExportPDF-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOGeometry-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOImage-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOImport-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOInfovis-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOLSDyna-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOLegacy-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOMINC-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOMotionFX-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOMovie-9.0.lib;..\Tools\Win64\VTK\lib\vtkIONetCDF-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOOggTheora-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOPLY-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOParallel-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOParallelXML-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOSQL-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOSegY-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOTecplotTable-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOVeraOut-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOVideo-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOXML-9.0.lib;..\Tools\Win64\VTK\lib\vtkIOXMLParser-9.0.lib;..\Tools\Win64\VTK\lib\vtkImagingColor-9.0.lib;..\Tools\Win64\VTK\lib\vtkImagingCore-9.0.lib;..\Tools\Win64\VTK\lib\vtkImagingFourier-9.0.lib;..\Tools\Win64\VTK\lib\vtkImagingGeneral-9.0.lib;..\Tools\Win64\VTK\lib\vtkImagingHybrid-9.0.lib;..\Tools\Win64\VTK\lib\vtkImagingMath-9.0.lib;..\Tools\Win64\VTK\lib\vtkImagingMorphological-9.0.lib;..\Tools\Win64\VTK\lib\vtkImagingSources-9.0.lib;..\Tools\Win64\VTK\lib\vtkImagingStatistics-9.0.lib;..\Tools\Win64\VTK\lib\vtkImagingStencil-9.0.lib;..\Tools\Win64\VTK\lib\vtkInfovisCore-9.0.lib;..\Tools\Win64\VTK\lib\vtkInfovisLayout-9.0.lib;..\Tools\Win64\VTK\lib\vtkInteractionImage-9.0.lib;..\Tools\Win64\VTK\lib\vtkInteractionStyle-9.0.lib;..\Tools\Win64\VTK\lib\vtkInteractionWidgets-9.0.lib;..\Tools\Win64\VTK\lib\vtkParallelCore-9.0.lib;..\Tools\Win64\VTK\lib\vtkParallelDIY-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingAnnotation-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingContext2D-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingCore-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingFreeType-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingGL2PSOpenGL2-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingImage-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingLOD-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingLabel-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingOpenGL2-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingQt-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingSceneGraph-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingUI-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingVolume-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingVolumeOpenGL2-9.0.lib;..\Tools\Win64\VTK\lib\vtkRenderingVtkJS-9.0.lib;..\Tools\Win64\VTK\lib\vtkTestingRendering-9.0.lib;..\Tools\Win64\VTK\lib\vtkViewsContext2D-9.0.lib;..\Tools\Win64\VTK\lib\vtkViewsCore-9.0.lib;..\Tools\Win64\VTK\lib\vtkViewsInfovis-9.0.lib;..\Tools\Win64\VTK\lib\vtkViewsQt-9.0.lib;..\Tools\Win64\VTK\lib\vtkWrappingTools-9.0.lib;..\Tools\Win64\VTK\lib\vtkdoubleconversion-9.0.lib;..\Tools\Win64\VTK\lib\vtkexodusII-9.0.lib;..\Tools\Win64\VTK\lib\vtkexpat-9.0.lib;..\Tools\Win64\VTK\lib\vtkfreetype-9.0.lib;..\Tools\Win64\VTK\lib\vtkgl2ps-9.0.lib;..\Tools\Win64\VTK\lib\vtkglew-9.0.lib;..\Tools\Win64\VTK\lib\vtkhdf5-9.0.lib;..\Tools\Win64\VTK\lib\vtkhdf5_hl-9.0.lib;..\Tools\Win64\VTK\lib\vtkjpeg-9.0.lib;..\Tools\Win64\VTK\lib\vtkjsoncpp-9.0.lib;..\Tools\Win64\VTK\lib\vtklibharu-9.0.lib;..\Tools\Win64\VTK\lib\vtklibproj-9.0.lib;..\Tools\Win64\VTK\lib\vtklibxml2-9.0.lib;..\Tools\Win64\VTK\lib\vtkloguru-9.0.lib;..\Tools\Win64\VTK\lib\vtklz4-9.0.lib;..\Tools\Win64\VTK\lib\vtklzma-9.0.lib;..\Tools\Win64\VTK\lib\vtkmetaio-9.0.lib;..\Tools\Win64\VTK\lib\vtknetcdf-9.0.lib;..\Tools\Win64\VTK\lib\vtkogg-9.0.lib;..\Tools\Win64\VTK\lib\vtkpng-9.0.lib;..\Tools\Win64\VTK\lib\vtkpugixml-9.0.lib;..\Tools\Win64\VTK\lib\vtksqlite-9.0.lib;..\Tools\Win64\VTK\lib\vtksys-9.0.lib;..\Tools\Win64\VTK\lib\vtktheora-9.0.lib;..\Tools\Win64\VTK\lib\vtktiff-9.0.lib;..\Tools\Win64\VTK\lib\vtkverdict-9.0.lib;..\Tools\Win64\VTK\lib\vtkzlib-9.0.lib;FITKAppFramework.lib;FITKCore.lib;FITKCompMessageWidget.lib;FITKRenderWindowVTK.lib;FITKInterfaceFlowOF.lib;FITKInterfaceModel.lib;FITKInterfaceMesh.lib;FITKInterfaceGeometry.lib;FITKGeoCompOCC.lib;FITKMeshGenOF.lib;OperatorsModel.lib;OperatorsGUI.lib;GUIFrame.lib;GUIWidget.lib;FITKWidget.lib;FITKOFDictWriter.lib;FITKOFMeshIO.lib;FITKFlowOFIOHDF5.lib;FITKCGNSIO.lib;CFDStructMain.lib;FITKInterfaceCFDPost.lib;E:\Ugit\AppFlow\Tools\Win64\SARibbon\lib\SARibbonBar.lib;%(AdditionalDependencies) + ..\Tools\Win64\VTK\lib;..\output\bin;E:\Ugit\AppFlow\Tools\Win64\SARibbon\lib;%(AdditionalLibraryDirectories) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + false + true + false + true + $(OutDir)\FlowApp.exe + true + Console + true + + + Unsigned + None + 0 + + + _CONSOLE;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) + + msvcE:/Ugit/AppFlow/generate/FlowApp/$(Configuration)/moc/moc_predefs.hMoc'ing %(Identity)...output..\generate\FlowApp\$(Configuration)\mocmoc_%(Filename).cpp + + + GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\Tools\Win64\VTK\include\vtk-9.0;..;..\..;..\generate\FlowApp\debug\moc;/include;%(AdditionalIncludeDirectories) + -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions) + ..\generate\FlowApp\debug\obj\ + false + ProgramDatabase + 4577;4467;%(DisableSpecificWarnings) + Sync + ..\generate\FlowApp\debug\obj\ + Disabled + _CONSOLE;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;%(PreprocessorDefinitions) + false + MultiThreadedDebugDLL + true + true + Level3 + true + + ..\Tools\Win64\VTK\libd\vtkChartsCore-9.0d.lib;..\Tools\Win64\VTK\libd\vtkCommonColor-9.0d.lib;..\Tools\Win64\VTK\libd\vtkCommonComputationalGeometry-9.0d.lib;..\Tools\Win64\VTK\libd\vtkCommonCore-9.0d.lib;..\Tools\Win64\VTK\libd\vtkCommonDataModel-9.0d.lib;..\Tools\Win64\VTK\libd\vtkCommonExecutionModel-9.0d.lib;..\Tools\Win64\VTK\libd\vtkCommonMath-9.0d.lib;..\Tools\Win64\VTK\libd\vtkCommonMisc-9.0d.lib;..\Tools\Win64\VTK\libd\vtkCommonSystem-9.0d.lib;..\Tools\Win64\VTK\libd\vtkCommonTransforms-9.0d.lib;..\Tools\Win64\VTK\libd\vtkDICOMParser-9.0d.lib;..\Tools\Win64\VTK\libd\vtkDomainsChemistry-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersAMR-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersCore-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersExtraction-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersFlowPaths-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersGeneral-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersGeneric-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersGeometry-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersHybrid-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersHyperTree-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersImaging-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersModeling-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersParallel-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersParallelImaging-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersPoints-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersProgrammable-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersSMP-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersSelection-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersSources-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersStatistics-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersTexture-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersTopology-9.0d.lib;..\Tools\Win64\VTK\libd\vtkFiltersVerdict-9.0d.lib;..\Tools\Win64\VTK\libd\vtkGUISupportQt-9.0d.lib;..\Tools\Win64\VTK\libd\vtkGUISupportQtSQL-9.0d.lib;..\Tools\Win64\VTK\libd\vtkGeovisCore-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOAMR-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOAsynchronous-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOCityGML-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOCore-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOEnSight-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOExodus-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOExport-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOExportGL2PS-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOExportPDF-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOGeometry-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOImage-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOImport-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOInfovis-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOLSDyna-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOLegacy-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOMINC-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOMotionFX-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOMovie-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIONetCDF-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOOggTheora-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOPLY-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOParallel-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOParallelXML-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOSQL-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOSegY-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOTecplotTable-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOVeraOut-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOVideo-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOXML-9.0d.lib;..\Tools\Win64\VTK\libd\vtkIOXMLParser-9.0d.lib;..\Tools\Win64\VTK\libd\vtkImagingColor-9.0d.lib;..\Tools\Win64\VTK\libd\vtkImagingCore-9.0d.lib;..\Tools\Win64\VTK\libd\vtkImagingFourier-9.0d.lib;..\Tools\Win64\VTK\libd\vtkImagingGeneral-9.0d.lib;..\Tools\Win64\VTK\libd\vtkImagingHybrid-9.0d.lib;..\Tools\Win64\VTK\libd\vtkImagingMath-9.0d.lib;..\Tools\Win64\VTK\libd\vtkImagingMorphological-9.0d.lib;..\Tools\Win64\VTK\libd\vtkImagingSources-9.0d.lib;..\Tools\Win64\VTK\libd\vtkImagingStatistics-9.0d.lib;..\Tools\Win64\VTK\libd\vtkImagingStencil-9.0d.lib;..\Tools\Win64\VTK\libd\vtkInfovisCore-9.0d.lib;..\Tools\Win64\VTK\libd\vtkInfovisLayout-9.0d.lib;..\Tools\Win64\VTK\libd\vtkInteractionImage-9.0d.lib;..\Tools\Win64\VTK\libd\vtkInteractionStyle-9.0d.lib;..\Tools\Win64\VTK\libd\vtkInteractionWidgets-9.0d.lib;..\Tools\Win64\VTK\libd\vtkParallelCore-9.0d.lib;..\Tools\Win64\VTK\libd\vtkParallelDIY-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingAnnotation-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingContext2D-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingCore-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingFreeType-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingGL2PSOpenGL2-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingImage-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingLOD-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingLabel-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingOpenGL2-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingQt-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingSceneGraph-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingUI-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingVolume-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingVolumeOpenGL2-9.0d.lib;..\Tools\Win64\VTK\libd\vtkRenderingVtkJS-9.0d.lib;..\Tools\Win64\VTK\libd\vtkTestingRendering-9.0d.lib;..\Tools\Win64\VTK\libd\vtkViewsContext2D-9.0d.lib;..\Tools\Win64\VTK\libd\vtkViewsCore-9.0d.lib;..\Tools\Win64\VTK\libd\vtkViewsInfovis-9.0d.lib;..\Tools\Win64\VTK\libd\vtkViewsQt-9.0d.lib;..\Tools\Win64\VTK\libd\vtkWrappingTools-9.0d.lib;..\Tools\Win64\VTK\libd\vtkdoubleconversion-9.0d.lib;..\Tools\Win64\VTK\libd\vtkexodusII-9.0d.lib;..\Tools\Win64\VTK\libd\vtkexpat-9.0d.lib;..\Tools\Win64\VTK\libd\vtkfreetype-9.0d.lib;..\Tools\Win64\VTK\libd\vtkgl2ps-9.0d.lib;..\Tools\Win64\VTK\libd\vtkglew-9.0d.lib;..\Tools\Win64\VTK\libd\vtkhdf5-9.0d.lib;..\Tools\Win64\VTK\libd\vtkhdf5_hl-9.0d.lib;..\Tools\Win64\VTK\libd\vtkjpeg-9.0d.lib;..\Tools\Win64\VTK\libd\vtkjsoncpp-9.0d.lib;..\Tools\Win64\VTK\libd\vtklibharu-9.0d.lib;..\Tools\Win64\VTK\libd\vtklibproj-9.0d.lib;..\Tools\Win64\VTK\libd\vtklibxml2-9.0d.lib;..\Tools\Win64\VTK\libd\vtkloguru-9.0d.lib;..\Tools\Win64\VTK\libd\vtklz4-9.0d.lib;..\Tools\Win64\VTK\libd\vtklzma-9.0d.lib;..\Tools\Win64\VTK\libd\vtkmetaio-9.0d.lib;..\Tools\Win64\VTK\libd\vtknetcdf-9.0d.lib;..\Tools\Win64\VTK\libd\vtkogg-9.0d.lib;..\Tools\Win64\VTK\libd\vtkpng-9.0d.lib;..\Tools\Win64\VTK\libd\vtkpugixml-9.0d.lib;..\Tools\Win64\VTK\libd\vtksqlite-9.0d.lib;..\Tools\Win64\VTK\libd\vtksys-9.0d.lib;..\Tools\Win64\VTK\libd\vtktheora-9.0d.lib;..\Tools\Win64\VTK\libd\vtktiff-9.0d.lib;..\Tools\Win64\VTK\libd\vtkverdict-9.0d.lib;..\Tools\Win64\VTK\libd\vtkzlib-9.0d.lib;..\output\bin_d\FITKAppFramework.lib;..\output\bin_d\FITKCore.lib;..\output\bin_d\FITKCompMessageWidget.lib;..\output\bin_d\FITKRenderWindowVTK.lib;..\output\bin_d\FITKInterfaceFlowOF.lib;..\output\bin_d\FITKInterfaceModel.lib;..\output\bin_d\FITKInterfaceGeometry.lib;..\output\bin_d\FITKGeoCompOCC.lib;..\output\bin_d\FITKMeshGenOF.lib;..\output\bin_d\OperatorsModel.lib;..\output\bin_d\FITKInterfaceMesh.lib;..\output\bin_d\OperatorsGUI.lib;..\output\bin_d\GUIWidget.lib;..\output\bin_d\FITKWidget.lib;..\output\bin_d\FITKOFDictWriter.lib;..\output\bin_d\FITKOFMeshIO.lib;..\output\bin_d\FITKFlowOFIOHDF5.lib;..\output\bin_d\FITKCGNSIO.lib;..\output\bin_d\CFDStructMain.lib;..\output\bin_d\GUIFrame.lib;..\output\bin_d\FITKInterfaceCFDPost.lib;E:\Ugit\AppFlow\Tools\Win64\SARibbon\libd\SARibbonBard.lib;%(AdditionalDependencies) + ..\Tools\Win64\VTK\libd;..\output\bin_d;E:\Ugit\AppFlow\Tools\Win64\SARibbon\libd;%(AdditionalLibraryDirectories) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + true + true + $(OutDir)\FlowApp.exe + true + Console + true + + + Unsigned + None + 0 + + + _CONSOLE;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;_DEBUG;%(PreprocessorDefinitions) + + msvcE:/Ugit/AppFlow/generate/FlowApp/$(Configuration)/moc/moc_predefs.hMoc'ing %(Identity)...output..\generate\FlowApp\$(Configuration)\mocmoc_%(Filename).cpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Document + true + $(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs) + cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >..\generate\FlowApp\debug\moc\moc_predefs.h + Generate moc_predefs.h + ..\generate\FlowApp\debug\moc\moc_predefs.h;%(Outputs) + + + Document + $(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs) + cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >..\generate\FlowApp\release\moc\moc_predefs.h + Generate moc_predefs.h + ..\generate\FlowApp\release\moc\moc_predefs.h;%(Outputs) + true + + + + + + + + \ No newline at end of file diff --git a/FlowApp/FlowApp.vcxproj.filters b/FlowApp/FlowApp.vcxproj.filters new file mode 100644 index 0000000..313fdd0 --- /dev/null +++ b/FlowApp/FlowApp.vcxproj.filters @@ -0,0 +1,105 @@ + + + + + {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} + cpp;c;cxx;moc;h;def;odl;idl;res; + + + {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} + cpp;c;cxx;moc;h;def;odl;idl;res; + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + + + + + Generated Files + + + Generated Files + + + + + + \ No newline at end of file diff --git a/FlowApp/FlowApp.vcxproj.user b/FlowApp/FlowApp.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/FlowApp/FlowApp.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/FlowApp/FlowApp_resource.rc b/FlowApp/FlowApp_resource.rc new file mode 100644 index 0000000..71df600 --- /dev/null +++ b/FlowApp/FlowApp_resource.rc @@ -0,0 +1,37 @@ +#include + +IDI_ICON1 ICON DISCARDABLE "E:\\Ugit\\AppFlow\\FlowApp\\icon.ico" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 0,0,0,0 + PRODUCTVERSION 0,0,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0x0L + BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "\0" + VALUE "FileVersion", "0.0.0.0\0" + VALUE "LegalCopyright", "\0" + VALUE "OriginalFilename", "FlowApp.exe\0" + VALUE "ProductName", "FlowApp\0" + VALUE "ProductVersion", "0.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1200 + END + END +/* End of Version info */ + diff --git a/FlowApp/GlobalDataFactory.cpp b/FlowApp/GlobalDataFactory.cpp new file mode 100644 index 0000000..1fed34c --- /dev/null +++ b/FlowApp/GlobalDataFactory.cpp @@ -0,0 +1,32 @@ +#include "GlobalDataFactory.h" +#include "FITK_Interface/FITKInterfaceFlowOF/FITKOFGeometryData.h" +#include "FITK_Interface/FITKInterfaceFlowOF/FITKOFPhysicsData.h" +#include "CFDPost/CFDPostFITK_Interface/FITKInterfaceCFDPost/FITKCFDPostData.h" +// #include "CFDPost/CFDPostFITK_Interface/FITKInterfaceCFDPost/FITKCFDPostData.h" +#include "FITK_Interface/FITKInterfaceMesh/FITKUnstructuredFluidMeshVTK.h" + + +Core::FITKAbstractDataObject* GlobalDataFactory::createMeshData() { + return new Interface::FITKUnstructuredFluidMeshVTK; +} + +Core::FITKAbstractDataObject* GlobalDataFactory::createGeoData() { + // 创建几何数据 + return new Interface::FITKOFGeometryData; +} + +Core::FITKAbstractDataObject* GlobalDataFactory::createPhysicsData() { + // 创建算例求解的物理场数据 + return new Interface::FITKOFPhysicsData; +} + +Core::FITKAbstractDataObject* GlobalDataFactory::createPostData() { + // 创建后处理数据 + return new Interface::FITKCFDPostData; + // return nullptr; +} + +QHash GlobalDataFactory::createOtherData() { + // 不创建其他数据 + return QHash(); +} diff --git a/FlowApp/GlobalDataFactory.h b/FlowApp/GlobalDataFactory.h new file mode 100644 index 0000000..87dd983 --- /dev/null +++ b/FlowApp/GlobalDataFactory.h @@ -0,0 +1,56 @@ +/** + * @file GlobalDataFactory.h + * @brief 全局数据工厂 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 13:59 + */ +#ifndef __GLOBALDATAFACTORY__ +#define __GLOBALDATAFACTORY__ + +#include "FITK_Kernel/FITKAppFramework/FITKAbstractGlobalDataFactory.h" +/** + * @brief 全局数据工厂类 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ +class GlobalDataFactory : public AppFrame::FITKAbstractGlobalDataFactory +{ +private: + /** + * @brief 测试的函数 + * @return Core::FITKAbstractDataObject* + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2024-03-02 + */ + virtual Core::FITKAbstractDataObject *createMeshData() override; + /** + * @brief 创建几何数据 + * @return 几何数据对象 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ + virtual Core::FITKAbstractDataObject *createGeoData() override; + /** + * @brief 创建物理场数据 + * @return 物理场数据 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ + virtual Core::FITKAbstractDataObject *createPhysicsData() override; + /** + * @brief 创建后处理数据 + * @return 后处理场数据 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ + virtual Core::FITKAbstractDataObject *createPostData() override; + /** + * @brief 创建其他数据 + * @return 其他数据 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ + virtual QHash createOtherData() override; +}; + +#endif diff --git a/FlowApp/MainWindowGenerator.cpp b/FlowApp/MainWindowGenerator.cpp new file mode 100644 index 0000000..e8aae85 --- /dev/null +++ b/FlowApp/MainWindowGenerator.cpp @@ -0,0 +1,15 @@ +#include "MainWindowGenerator.h" +#include "GUIFrame/MainWindow.h" +#include "CFDStruct/CFDStructMain/CFDStructMainWindow.h" +#include "CFDApplication/CFDApplicationMain/CFDApplicationMainWindow.h" + +MainWindowGenerator::MainWindowGenerator() { + // this->setStyle("://Structural.qss"); + // this->showMaximize(false); +} + +QWidget* MainWindowGenerator::genMainWindow() { +// return new GUI::MainWindow; + return new GUI::CFDStructMainWindow; + // return new GUI::CFDApplicationMainWindow; +} diff --git a/FlowApp/MainWindowGenerator.h b/FlowApp/MainWindowGenerator.h new file mode 100644 index 0000000..5119696 --- /dev/null +++ b/FlowApp/MainWindowGenerator.h @@ -0,0 +1,42 @@ +/** + * @file MainWindowGenerator.h + * @brief 主窗口生成器类 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ +#ifndef __MAINWINDOWGENERATOR__ +#define __MAINWINDOWGENERATOR__ + +#include "FITK_Kernel/FITKAppFramework/FITKAbstractMainWinGenerator.h" + +/** + * @brief 主窗口生成器类 + * @note 该类继承自`AppFrame::FITKAbstractMainwindowGenerator`,负责生成应用程序的主窗口。 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ +class MainWindowGenerator : public AppFrame::FITKAbstractMainwindowGenerator +{ +public: + /** + * @brief 构造函数 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ + MainWindowGenerator(); + /** + * @brief 析构函数(默认实现) + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ + ~MainWindowGenerator() = default; + /** + * @brief 必须重写的方法,用于生成主窗口实例 + * @return 生成的QWidget*类型的主窗口指针 + * @author YanZhiHui (chanyuantiandao@126.com) + * @date 2024-04-19 + */ + QWidget *genMainWindow() override; +}; + +#endif // !__MAINWINDOWGENERATOR__ \ No newline at end of file diff --git a/FlowApp/PreWindowInitializer.cpp b/FlowApp/PreWindowInitializer.cpp new file mode 100644 index 0000000..b1c5c5b --- /dev/null +++ b/FlowApp/PreWindowInitializer.cpp @@ -0,0 +1,467 @@ +#include "PreWindowInitializer.h" + +// VTK +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "FITK_Component/FITKRenderWindowVTK/FITKGraphAreaPicker.h" +#include "FITK_Kernel/FITKAppFramework/FITKKeyMouseStates.h" + +// App +#include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h" +#include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h" +#include "FITK_Kernel/FITKAppFramework/FITKComponents.h" +#include "FITK_Kernel/FITKAppFramework/FITKComponentInterface.h" + +// Operator +#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h" +#include "OperatorsInterface/GraphInteractionOperator.h" +#include "OperatorsInterface/GraphEventOperator.h" + +// Render +#include "FITK_Component/FITKRenderWindowVTK/FITKGraph3DWindowVTK.h" +#include "FITK_Component/FITKRenderWindowVTK/FITKGraphRender.h" + +// GUI +#include "GUIFrame/MainWindow.h" +#include "GUIFrame/RenderWidget.h" +#include "FITK_Component/FITKWidget/FITKMdiArea.h" +#include "GUIWidget/GUIPickInfo.h" + +PreWindowInitializer::PreWindowInitializer() +{ + // 初始化渲染层数。 + this->setLayerCount(3); + + //背景颜色 + //QColor top = QColor::fromRgb(27, 45, 70); + //QColor buttom = QColor::fromRgb(160, 174, 195); + //this->setValue(BackGroundColorTop, top); + //this->setValue(BackGroundColorButtom, buttom); +} + +Comp::FITKGraphInteractionStyle* PreWindowInitializer::getStyle() +{ + return PreWindowInteractionStyle::New(); +} + +PreWindowInteractionStyle* PreWindowInteractionStyle::New() +{ + return new PreWindowInteractionStyle; +} + +PreWindowInteractionStyle::PreWindowInteractionStyle() +{ + // 初始化定时器属性。 + m_timerForPrePick.setInterval(200); + m_timerForPrePick.setSingleShot(true); + + connect(&m_timerForPrePick, &QTimer::timeout, this, &PreWindowInteractionStyle::slot_prePick); + + // 初始化操作器。 + //@{ + auto operatorRepo = Core::FITKOperatorRepo::getInstance(); + m_operPreview = operatorRepo->getOperatorT("GraphPickPreview"); + m_operPick = operatorRepo->getOperatorT("GraphPick"); + m_operGraph = operatorRepo->getOperatorT("GraphPreprocess"); + //@} +} + +void PreWindowInteractionStyle::OnLeftButtonDown() +{ + // TEST. + //@{ + //GUI::GUIPickInfoStru info = GUI::GUIPickInfo::GetPickInfo(); + //info._pickObjType = GUI::GUIPickInfo::PickObjType::POBJVert; + //info._pickMethod = GUI::GUIPickInfo::PickMethod::PMSingle; + //GUI::GUIPickInfo::SetPickInfo(info); + //@} + + // TEST2. + //@{ + // GUI::MainTreeEnum::MainTree_MeshPoint = 9 + //GraphOperParam param; + //param.HighlightMode = HighlightLevel::AdvHighlight; + //param.AdvHighlightIndice = QVector{ 1 }; + //param.Visibility = true; + //m_operGraph->updateGraphByType(9, param); + //@} + + this->Interactor->GetEventPosition(m_leftButtonDowmPos); + + if (m_areaPick != nullptr) + { + m_areaPick->setLeftButtonDownPos(m_leftButtonDowmPos); + m_areaPick->enable(true); + } +} + +void PreWindowInteractionStyle::OnLeftButtonUp() +{ + vtkInteractorStyleRubberBandPick::OnLeftButtonUp(); + this->Interactor->GetEventPosition(m_leftButtonUpPos); + + // 只有在逐个选择模式下支持框选。 + bool canAreaPick = GUI::GUIPickInfo::GetPickInfo()._pickMethod == GUI::GUIPickInfo::PickMethod::PMIndividually; + + if (m_areaPick != nullptr && isMouseMoved()) + { + if (m_areaPick->isEnable() && canAreaPick) + m_areaPick->pick(); + m_areaPick->enable(false); + } + else + { + pick(); + } + + AppFrame::FITKComponentInterface* fcInterface + = FITKAPP->getComponents()->getComponentByName("Graph3DWindowVTK"); + if (fcInterface) + { + CallBackFuns fun = fcInterface->getCallBackFuns(1); + if (fun != nullptr) + fun(nullptr); + } +} + +void PreWindowInteractionStyle::OnMiddleButtonDown() +{ + this->Interactor->GetEventPosition(m_leftButtonDowmPos); + + if (FITKAPP->getGlobalData()->getKeyMouseStates()->keyPressed(Qt::Key_Shift)) + vtkInteractorStyleRubberBandPick::OnMiddleButtonDown(); + else + vtkInteractorStyleRubberBandPick::OnLeftButtonDown(); +} + +void PreWindowInteractionStyle::OnMiddleButtonUp() +{ + this->Interactor->GetEventPosition(m_leftButtonDowmPos); + + vtkInteractorStyleRubberBandPick::OnLeftButtonUp(); + vtkInteractorStyleRubberBandPick::OnMiddleButtonUp(); + if (m_areaPick != nullptr) + { + m_areaPick->enable(false); + } +} + +void PreWindowInteractionStyle::OnMouseMove() +{ + if (m_timerForPrePick.isActive()) + { + m_timerForPrePick.stop(); + } + + m_timerForPrePick.start(); + + this->Interactor->GetEventPosition(m_leftButtonUpPos); + + vtkInteractorStyleRubberBandPick::OnMouseMove(); + bool isMoved = this->isMouseMoved(); + const bool lbd = FITKAPP->getGlobalData()->getKeyMouseStates()->mousePressed(Qt::LeftButton); + + // 非单独拾取,且非算法拾取或非拾取状态时可绘制橡皮筋。 + bool needDrawRect = (GUI::GUIPickInfo::GetPickInfo()._pickMethod == GUI::GUIPickInfo::PickMethod::PMIndividually || + GUI::GUIPickInfo::GetPickInfo()._pickMethod == GUI::GUIPickInfo::PickMethod::PMNone); + + if (lbd && isMoved && needDrawRect) + { + m_areaPick->drawRectangle(); + return; + } +} + +void PreWindowInteractionStyle::OnMouseWheelForward() +{ + this->FindPokedRenderer( + this->Interactor->GetEventPosition()[0], this->Interactor->GetEventPosition()[1]); + if (this->CurrentRenderer == nullptr) + { + return; + } + + this->GrabFocus(this->EventCallbackCommand); + this->StartDolly(); + // double factor = this->MotionFactor * -0.2 * this->MouseWheelMotionFactor; + this->Dolly(0.98); // pow(1.1, factor) + this->EndDolly(); + this->ReleaseFocus(); +} + +void PreWindowInteractionStyle::OnMouseWheelBackward() +{ + this->FindPokedRenderer( + this->Interactor->GetEventPosition()[0], this->Interactor->GetEventPosition()[1]); + if (this->CurrentRenderer == nullptr) + { + return; + } + + this->GrabFocus(this->EventCallbackCommand); + this->StartDolly(); + // double factor = this->MotionFactor * 0.2 * this->MouseWheelMotionFactor; + this->Dolly(1.05); // pow(1.1, factor) + this->EndDolly(); + this->ReleaseFocus(); +} + +void PreWindowInteractionStyle::OnRightButtonDown() +{ + this->Interactor->GetEventPosition(m_leftButtonDowmPos); +} + +void PreWindowInteractionStyle::OnRightButtonUp() +{ + this->Interactor->GetEventPosition(m_leftButtonUpPos); +} + +void PreWindowInteractionStyle::areaPick(int* startPos, int* endPos) +{ + // 获取当前三维窗口。 + Comp::FITKGraph3DWindowVTK* graphWindow = getCurrentGraphWindow(); + if (!graphWindow || !m_operPick) + { + return; + } + + // 所有渲染层均执行一次框选并获取拾取演员。 + //@{ + QList actors; + vtkSmartPointer areaPicker = vtkSmartPointer::New(); + + for (int i = 0; i < graphWindow->getRenderCount(); i++) + { + vtkRenderer* renderer = graphWindow->getRenderer(i)->getRenderer(); + areaPicker->AreaPick(startPos[0], startPos[1], endPos[0], endPos[1], renderer); + vtkProp3DCollection* props = areaPicker->GetProp3Ds(); + props->InitTraversal(); + + const int nActors = props->GetNumberOfItems(); + for (vtkIdType i = 0; i < nActors; i++) + { + vtkProp3D* prop = props->GetNextProp3D(); + vtkActor* actor = vtkActor::SafeDownCast(prop); + if (actor) + { + actors.append(actor); + } + } + } + //@} + + // 没有拾取到,且不是Shift与Ctrl拾取模式则清除拾取。 + AppFrame::FITKKeyMouseStates* settings = FITKGLODATA->getKeyMouseStates(); + bool shiftOrCtrlPick = (settings->keyPressed(Qt::Key_Shift) && !settings->keyPressed(Qt::Key_Control)) + || (!settings->keyPressed(Qt::Key_Shift) && settings->keyPressed(Qt::Key_Control)); + if (actors.isEmpty() && !shiftOrCtrlPick) + { + m_operPick->clear(graphWindow); + return; + } + + vtkPlanes* cutPlane = areaPicker->GetFrustum(); + + // 操作器执行高亮。 + m_operPick->picked(graphWindow, actors, cutPlane); +} + +void PreWindowInteractionStyle::pick(bool isPreview) +{ + if (!m_operPreview || !m_operPick) + { + return; + } + + // 获取当前鼠标位置进行拾取。 + vtkRenderWindowInteractor* interactor = this->GetInteractor(); + if (!interactor) + { + return; + } + + Comp::FITKGraph3DWindowVTK* graphWindow = getCurrentGraphWindow(); + if (!graphWindow) + { + return; + } + + int* pos = interactor->GetEventPosition(); + + // 获取当前拾取类型。 + GUI::GUIPickInfo::PickObjType type = GUI::GUIPickInfo::GetPickInfo()._pickObjType; + switch (type) + { + case GUI::GUIPickInfo::POBJVert: + case GUI::GUIPickInfo::POBJEdge: + case GUI::GUIPickInfo::POBJFace: + case GUI::GUIPickInfo::POBJSolid: + pickCell(graphWindow, pos, isPreview); + break; + default: + return; + } +} + +void PreWindowInteractionStyle::pickPoint(Comp::FITKGraph3DWindowVTK* graphWindow, int* pos, bool isPreview, double tol) +{ + // 节点拾取器。 + vtkSmartPointer picker = vtkSmartPointer::New(); + vtkSmartPointer pickerProp = vtkSmartPointer::New(); + + picker->SetTolerance(tol); + + // 优先拾取最后一层,反向遍历。 + for (int i = graphWindow->getRenderCount() - 1; i >= 0; i--) + { + vtkRenderer* renderer = graphWindow->getRenderer(i)->getRenderer(); + + int ret = picker->Pick(pos[0], pos[1], 0, renderer); + + // 是否拾取到对象。 + if (!ret) + { + continue; + } + + // 获取拾取节点索引。 + vtkActor* actor = picker->GetActor(); + int index = picker->GetPointId(); + if (index < 0) + { + continue; + } + + double* pickedWorldPos = picker->GetPickPosition(); + + if (isPreview) + { + m_operPreview->picked(graphWindow, actor, index, pickedWorldPos); + } + else + { + m_operPick->picked(graphWindow, actor, index, pickedWorldPos); + } + + return; + } + + // 没有拾取到则清除拾取。 + if (isPreview) + { + m_operPreview->clear(graphWindow); + } + else + { + // 没有拾取到,且不是Shift与Ctrl拾取模式则清除拾取。 + AppFrame::FITKKeyMouseStates* settings = FITKGLODATA->getKeyMouseStates(); + bool shiftOrCtrlPick = (settings->keyPressed(Qt::Key_Shift) && !settings->keyPressed(Qt::Key_Control)) + || (!settings->keyPressed(Qt::Key_Shift) && settings->keyPressed(Qt::Key_Control)); + if (!shiftOrCtrlPick) + { + m_operPick->clear(graphWindow); + } + } +} + +void PreWindowInteractionStyle::pickCell(Comp::FITKGraph3DWindowVTK* graphWindow, int* pos, bool isPreview, double tol) +{ + // 单元拾取器。 + vtkSmartPointer picker = vtkSmartPointer::New(); + + picker->SetTolerance(tol); + + // 优先拾取最后一层,反向遍历。 + for (int i = graphWindow->getRenderCount() - 1; i >= 0 ; i--) + { + vtkRenderer* renderer = graphWindow->getRenderer(i)->getRenderer(); + + // 优先进行参考点标签与符号拾取。 + int ret = picker->Pick(pos[0], pos[1], 0, renderer); + + // 是否拾取到对象。 + if (!ret) + { + continue; + } + + // 获取拾取单元索引。 + vtkActor* actor = picker->GetActor(); + int index = picker->GetCellId(); + if (index < 0) + { + continue; + } + + double* pickedWorldPos = picker->GetPickPosition(); + + if (isPreview) + { + m_operPreview->picked(graphWindow, actor, index, pickedWorldPos); + } + else + { + m_operPick->picked(graphWindow, actor, index, pickedWorldPos); + } + + return; + } + + // 没有拾取到则清除拾取。 + if (isPreview) + { + m_operPreview->clear(graphWindow); + } + else + { + // 没有拾取到,且不是Shift与Ctrl拾取模式则清除拾取。 + AppFrame::FITKKeyMouseStates* settings = FITKGLODATA->getKeyMouseStates(); + bool shiftOrCtrlPick = (settings->keyPressed(Qt::Key_Shift) && !settings->keyPressed(Qt::Key_Control)) + || (!settings->keyPressed(Qt::Key_Shift) && settings->keyPressed(Qt::Key_Control)); + if (!shiftOrCtrlPick) + { + m_operPick->clear(graphWindow); + } + } +} + +void PreWindowInteractionStyle::slot_prePick() +{ + // 预选高亮。 + pick(true); +} + +Comp::FITKGraph3DWindowVTK* PreWindowInteractionStyle::getCurrentGraphWindow() +{ + GUI::MainWindow* mainWindow = FITKAPP->getGlobalData()->getMainWindowT(); + if (mainWindow == nullptr) return nullptr; + + // 获取可视化区。 + GUI::RenderWidget* renderWidget = mainWindow->getRenderWidget(); + if (!renderWidget) + { + return nullptr; + } + + Comp::FITKMdiArea* mdiArea = renderWidget->getMdiArea(); + if (!mdiArea) + { + return nullptr; + } + + // 获取当前窗口,尝试转换为三维窗口。 + QWidget* w = mdiArea->getCurrentWidget(); + Comp::FITKGraph3DWindowVTK* graphWindow = dynamic_cast(w); + return graphWindow; +} \ No newline at end of file diff --git a/FlowApp/PreWindowInitializer.h b/FlowApp/PreWindowInitializer.h new file mode 100644 index 0000000..338ad97 --- /dev/null +++ b/FlowApp/PreWindowInitializer.h @@ -0,0 +1,240 @@ +/*****************************************************************//** + * @file PreWindowInitializer.h + * @brief 前处理窗口初始化。 + * + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + *********************************************************************/ + +#ifndef __PRE_WIDOWINIINTIALIZER_H___ +#define __PRE_WIDOWINIINTIALIZER_H___ + +#include "FITK_Component/FITKRenderWindowVTK/FITKGraph3DWindowInterface.h" +#include "FITK_Component/FITKRenderWindowVTK/FITKGraphInteractionStyle.h" + +#include + +// 前置声明 +class vtkRenderer; +class vtkRenderWindow; + +namespace EventOper +{ + class GraphInteractionOperator; + class GraphEventOperator; +}; + +namespace Comp +{ + class FITKGraph3DWindowVTK; +}; + +/** + * @brief 前处理窗口初始化。 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ +class PreWindowInitializer : public Comp::Graph3DWindowInitializer +{ +public: + /** + * @brief 构造函数。 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + explicit PreWindowInitializer(); + + /** + * @brief 析构函数。 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + virtual ~PreWindowInitializer() = default; + + /** + * @brief 获取交互方式。[重写] + * @return 交互器交互方式 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + virtual Comp::FITKGraphInteractionStyle* getStyle() override; + +protected: + +private: + +}; + + +class PreWindowInteractionStyle : public Comp::FITKGraphInteractionStyle +{ + Q_OBJECT +public: + /** + * @brief 创建实例。[静态] + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + static PreWindowInteractionStyle* New(); + + vtkTypeMacro(PreWindowInteractionStyle,FITKGraphInteractionStyle); + +private: + /** + * @brief 鼠标左键按下事件响应 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2023-07-25 + */ + virtual void OnLeftButtonDown() override; + + /** + * @brief 鼠标左键抬起事件响应 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2023-11-04 + */ + virtual void OnLeftButtonUp() override; + /** + * @brief 鼠标中键按下事件响应 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2023-07-25 + */ + virtual void OnMiddleButtonDown() override; + /** + * @brief 鼠标中键抬起事件响应 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2023-11-04 + */ + virtual void OnMiddleButtonUp() override; + /** + * @brief 鼠标移动事件 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2023-11-03 + */ + virtual void OnMouseMove() override; + + /** + * @brief 鼠标滑轮事件 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2023-11-04 + */ + void OnMouseWheelForward() override; + /** + * @brief 鼠标滑轮事件 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2023-11-04 + */ + void OnMouseWheelBackward() override; + /** + * @brief 鼠标中键点击事件 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2023-11-04 + */ + void OnRightButtonDown() override; + /** + * @brief 鼠标中键释放事件 + * @author LiBaojun (libaojunqd@foxmail.com) + * @date 2023-11-04 + */ + void OnRightButtonUp() override; + + /** + * @brief 框选。 + * @param startPos:鼠标起始坐标 + * @param endPos:鼠标结束坐标 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-18 + */ + void areaPick(int* startPos, int* endPos) override; + +private: + /** + * @brief 构造函数。 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + PreWindowInteractionStyle(); + + /** + * @brief 析构函数。 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + ~PreWindowInteractionStyle() = default; + + /** + * @brief 获取当前三维窗口 + * @return 三维窗口 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + Comp::FITKGraph3DWindowVTK* getCurrentGraphWindow(); + + /** + * @brief 在当前鼠标位置执行一次点击拾取操作。 + * @param isPreview:是否为预选[缺省] + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + void pick(bool isPreview = false); + + /** + * @brief 在当前鼠标位置执行一次点击拾取节点操作。(预留) + * @param graphWindow:可视化窗口 + * @param pos:拾取位置 + * @param isPreview:是否为预选 + * @param tol:拾取精度容差[缺省] + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + void pickPoint(Comp::FITKGraph3DWindowVTK* graphWindow, int* pos, bool isPreview, double tol = 0.005); + + /** + * @brief 在当前鼠标位置执行一次点击拾取单元操作。(点、线、面、体拾取均使用此方法) + * @param graphWindow:可视化窗口 + * @param pos:拾取位置 + * @param isPreview:是否为预选 + * @param tol:拾取精度容差[缺省] + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + void pickCell(Comp::FITKGraph3DWindowVTK* graphWindow, int* pos, bool isPreview, double tol = 0.003); + +private slots: + /** + * @brief 槽函数 - 预选高亮定时器槽函数,执行预选高亮。 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + void slot_prePick(); + +private: + /** + * @brief 预选高亮定时器,悬浮200ms后显示预选拾取对象。 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + QTimer m_timerForPrePick; + + /** + * @brief 预选高亮可视化操作器。 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + EventOper::GraphInteractionOperator* m_operPreview{ nullptr }; + + /** + * @brief 高亮可视化操作器。 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + EventOper::GraphInteractionOperator* m_operPick{ nullptr }; + + /** + * @brief 前处理可视化操作器。 + * @author ChengHaotian (yeguangbaozi@foxmail.com) + * @date 2024-04-17 + */ + EventOper::GraphEventOperator* m_operGraph{ nullptr }; + +}; +#endif \ No newline at end of file diff --git a/FlowApp/SignalProcessor.cpp b/FlowApp/SignalProcessor.cpp new file mode 100644 index 0000000..bc23060 --- /dev/null +++ b/FlowApp/SignalProcessor.cpp @@ -0,0 +1,8 @@ +#include "SignalProcessor.h" +#include "FITK_Kernel/FITKAppFramework/FITKMessage.h" + +void SignalProcessor::on_sendProgramDriverMessageSig(AppFrame::FITKAbstractProgramerDriver* driver, int messageType, const QString& message) +{ + AppFrame::FITKMessageInfo(message); +} + diff --git a/FlowApp/SignalProcessor.h b/FlowApp/SignalProcessor.h new file mode 100644 index 0000000..cec7f44 --- /dev/null +++ b/FlowApp/SignalProcessor.h @@ -0,0 +1,24 @@ +#ifndef _SIGNAL_PROCESSOR_H___ +#define _SIGNAL_PROCESSOR_H___ + +#include + +namespace AppFrame +{ + class FITKAbstractProgramerDriver; +} + +class SignalProcessor : public QObject +{ + Q_OBJECT +public: + explicit SignalProcessor() = default; + virtual ~SignalProcessor() = default; + + +protected slots: + void on_sendProgramDriverMessageSig(AppFrame::FITKAbstractProgramerDriver* driver, int messageType, const QString& message); + +}; + +#endif diff --git a/FlowApp/SystemChecker.cpp b/FlowApp/SystemChecker.cpp new file mode 100644 index 0000000..fab3d4d --- /dev/null +++ b/FlowApp/SystemChecker.cpp @@ -0,0 +1,13 @@ +#include "SystemChecker.h" +#include + +QStringList SystemChecker::check() +{ + QStringList s; + //线程数检查,最小是4 + const int nThread = QThread::idealThreadCount(); + if (nThread < 4) + s << QString("CPU thread count is %1, at least 4 !").arg(nThread); + return s; +} + diff --git a/FlowApp/SystemChecker.h b/FlowApp/SystemChecker.h new file mode 100644 index 0000000..b5c7dd4 --- /dev/null +++ b/FlowApp/SystemChecker.h @@ -0,0 +1,46 @@ +/** + * + * @file SystemChecker.h + * @brief 系统检查器 + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-09-18 + * + */ +#ifndef _SYSTEM_CHECKER____H___ +#define _SYSTEM_CHECKER____H___ + + +#include "FITK_Kernel/FITKAppFramework/FITKAbstractSysChecker.h" + +/** + * @brief 系统检查器 + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-09-18 + */ +class SystemChecker : public AppFrame::FITKAbstractSysChecker +{ +public: + /** + * @brief Construct a new System Checker object + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-09-18 + */ + explicit SystemChecker() = default; + /** + * @brief Destroy the System Checker object + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-09-18 + */ + virtual ~SystemChecker() = default; + /** + * @brief 进行检查,返回错误信息 + * @return QStringList 错误信息 + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-09-18 + */ + virtual QStringList check() override; + +}; + + +#endif diff --git a/FlowApp/WorkBenchHandler.cpp b/FlowApp/WorkBenchHandler.cpp new file mode 100644 index 0000000..09cab05 --- /dev/null +++ b/FlowApp/WorkBenchHandler.cpp @@ -0,0 +1,72 @@ +#include "WorkBenchHandler.h" +#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h" +#include "FITK_Kernel/FITKCore/FITKActionOperator.h" +#include "FITK_Kernel/FITKCore/FITKDirFileTools.h" +#include "FITK_Kernel/FITKCore/FITKThreadPool.h" + +void FlowAppWorkBenchHandler::execHandler() +{ + //文件数量 + const int n = this->getInputFilesCount(); + for (int i = 0; igetInputFileInfo(i); + if (finfo._suffix.toLower() == "brep" || finfo._suffix.toLower() == "step") + { + //导入文件 + this->importGeoFile(QString("%1/%2").arg(finfo._path).arg(finfo._name)); + } + else if (finfo._suffix.toLower() == "hdf5" && this->isProjectFileMode()) + { + this->openProjectFile(QString("%1/%2").arg(finfo._path).arg(finfo._name)); + } + + } + +} + +void FlowAppWorkBenchHandler::execOutput() +{ + AppFrame::FITKWorkBenchHandler::execOutput(); + this->saveProjectFile(); + +} + +void FlowAppWorkBenchHandler::importGeoFile(const QString & fileName) +{ + //获取操作器 + Core::FITKActionOperator* oper = FITKOPERREPO->getOperatorT("actionImportGeometry"); + if (oper == nullptr) return; + oper->setArgs("FileName", fileName); + oper->setArgs("SenderName", "actionImportGeometry"); + //执行操作 + oper->execProfession(); +} + +void FlowAppWorkBenchHandler::openProjectFile(const QString & fileName) +{ + //获取操作器 + Core::FITKActionOperator* oper = FITKOPERREPO->getOperatorT("actionOpen"); + if (oper == nullptr) return; + oper->setArgs("FileName", fileName); + //执行操作 + oper->execProfession(); +} + +void FlowAppWorkBenchHandler::saveProjectFile() +{ + QString path = this->getOutputPath(); + QString pfile = path + "/AppFlowOFSys.hdf5"; + //创建空的文件 + if (!Core::CreateFile(pfile)) return; + + //执行写出 + auto oper = FITKOPERREPO->getOperatorT("actionSave"); + if (oper == nullptr) return; + oper->setArgs("FileName", pfile); + oper->execProfession(); + //线程池等待 + Core::FITKThreadPool::getInstance()->wait(); +} + diff --git a/FlowApp/WorkBenchHandler.h b/FlowApp/WorkBenchHandler.h new file mode 100644 index 0000000..9dfca63 --- /dev/null +++ b/FlowApp/WorkBenchHandler.h @@ -0,0 +1,71 @@ +/** + * + * @file WorkBenchHandler.h + * @brief 工作台处理类 + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-08-26 + * + */ +#ifndef _FLOWAPP_WORKBENCH_HANDLER_H___ +#define _FLOWAPP_WORKBENCH_HANDLER_H___ + +#include +#include "FITK_Kernel/FITKAppFramework/FITKWorkBenchHandler.h" + +/** + * @brief 工作台命令行处理器 + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-08-26 + */ +class FlowAppWorkBenchHandler : public AppFrame::FITKWorkBenchHandler +{ +public: + /** + * @brief Construct a new Flow App Work Bench Handler object + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-08-26 + */ + explicit FlowAppWorkBenchHandler() = default; + /** + * @brief Destroy the Flow App Work Bench Handler object + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-08-26 + */ + virtual ~FlowAppWorkBenchHandler() = default; + /** + * @brief 处理命令行 + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-08-26 + */ + virtual void execHandler() override; + /** + * @brief 程序结束写出文件 + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-08-27 + */ + virtual void execOutput() override; +private: + /** + * @brief 导入几何文件 + * @param[i] fileName 文件名称 + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-08-26 + */ + void importGeoFile(const QString & fileName); + /** + * @brief 打开工程文件 + * @param[i] fileName 文件名称 + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-08-26 + */ + void openProjectFile(const QString & fileName); + /** + * @brief 保存工程文件 + * @author libaojun (libaojunqd@foxmail.com) + * @date 2024-08-26 + */ + void saveProjectFile(); +}; + + +#endif diff --git a/FlowApp/icon.ico b/FlowApp/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a9bffe244cf0d3a42be74c3e9cbeea5e4874fbc4 GIT binary patch literal 6775 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 UuPLkGYa!sK+C9}mjJe +#endif // Q_WIN +/** + * @brief 程序的主入口函数 + * @param argc 命令行参数个数 + * @param argv 命令行参数值数组 + * @return int 程序执行的返回状态 + * @author YanZhiHui(chanyuantiandao@126.com) + * @date 2024-04-19 + */ +int main(int argc, char *argv[]) +{ +#ifdef Q_OS_WIN + //这个是Windows平台用来获取屏幕宽度的代码,必须在QApplication实例化之前使用 + //因为在qApplication实例初始化之前,QGuiApplication::screens();无法使用。 + //qreal cx = GetSystemMetrics(SM_CXSCREEN); + //qreal scale = cx / 1920; + //qputenv("QT_SCALE_FACTOR", QString::number(scale).toLatin1()); +#endif // Q_WIN + //控制图片缩放质量 + QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + // 初始化应用框架 + AppFrame::FITKApplication app(argc, argv); +#ifdef Q_OS_LINUX + qputenv("PYTHONHOME", app.applicationDirPath().toUtf8() + "/../Python37"); + QStringList pythonPaths; + pythonPaths << app.applicationDirPath() + "/../Python37/bin"; + pythonPaths << app.applicationDirPath() + "/../Python37/lib"; + pythonPaths << app.applicationDirPath() + "/../Python37/lib/python3.7"; + pythonPaths << app.applicationDirPath() + "/../Python37/lib/python3.7/site-packages"; + pythonPaths << app.applicationDirPath() + "/../Python37/lib/python3.7/lib-dynload"; + qputenv("PYTHONPATH", pythonPaths.join(":").toUtf8()); +#endif + app.checkSystem(new SystemChecker); + // 注册程序的主要组件和设置 + app.regMainWindowGenerator(new MainWindowGenerator); // 注册主窗口生成器 + app.regGlobalDataFactory(new GlobalDataFactory); // 注册全局数据工厂 + app.regComponentsFactory(new ComponentFactory); // 注册组件工厂 + app.regAppSettings(new FlowAPPSettings); // 注册应用结构设置 + app.regCommandLineHandler(new CommandLineHandler); // 注册命令行处理 + app.addGolbalSignalProcesser(new SignalProcessor); // 信号处理器 + app.regWorkBenchHandler(new FlowAppWorkBenchHandler); //workbench处理 + /* + app.regAppSettings(new StructuralSettings); // 注册应用结构设置 + // 注册全局信号处理器 + app.addGolbalSignalProcesser(new ThreadTaskProcessHandler); + //注册自定义事件处理 + app.addEventFilter(new MouseKeyEventFilter);*/ + // 运行应用程序的消息循环 + return app.exec(); +} + diff --git a/FlowApp/vtk.pri b/FlowApp/vtk.pri new file mode 100644 index 0000000..a76c101 --- /dev/null +++ b/FlowApp/vtk.pri @@ -0,0 +1,411 @@ +win32{ + +INCLUDEPATH += ../Tools/Win64/VTK/include/vtk-9.0/ \ + + +Debug:LIBS += -L../Tools/Win64/VTK/libd/ \ + -lvtkChartsCore-9.0d \ + -lvtkCommonColor-9.0d \ + -lvtkCommonComputationalGeometry-9.0d \ + -lvtkCommonCore-9.0d \ + -lvtkCommonDataModel-9.0d \ + -lvtkCommonExecutionModel-9.0d \ + -lvtkCommonMath-9.0d \ + -lvtkCommonMisc-9.0d \ + -lvtkCommonSystem-9.0d \ + -lvtkCommonTransforms-9.0d \ + -lvtkDICOMParser-9.0d \ + -lvtkDomainsChemistry-9.0d \ + -lvtkFiltersAMR-9.0d \ + -lvtkFiltersCore-9.0d \ + -lvtkFiltersExtraction-9.0d \ + -lvtkFiltersFlowPaths-9.0d \ + -lvtkFiltersGeneral-9.0d \ + -lvtkFiltersGeneric-9.0d \ + -lvtkFiltersGeometry-9.0d \ + -lvtkFiltersHybrid-9.0d \ + -lvtkFiltersHyperTree-9.0d \ + -lvtkFiltersImaging-9.0d \ + -lvtkFiltersModeling-9.0d \ + -lvtkFiltersParallel-9.0d \ + -lvtkFiltersParallelImaging-9.0d \ + -lvtkFiltersPoints-9.0d \ + -lvtkFiltersProgrammable-9.0d \ + -lvtkFiltersSMP-9.0d \ + -lvtkFiltersSelection-9.0d \ + -lvtkFiltersSources-9.0d \ + -lvtkFiltersStatistics-9.0d \ + -lvtkFiltersTexture-9.0d \ + -lvtkFiltersTopology-9.0d \ + -lvtkFiltersVerdict-9.0d \ + -lvtkGUISupportQt-9.0d \ + -lvtkGUISupportQtSQL-9.0d \ + -lvtkGeovisCore-9.0d \ + -lvtkIOAMR-9.0d \ + -lvtkIOAsynchronous-9.0d \ + -lvtkIOCityGML-9.0d \ + -lvtkIOCore-9.0d \ + -lvtkIOEnSight-9.0d \ + -lvtkIOExodus-9.0d \ + -lvtkIOExport-9.0d \ + -lvtkIOExportGL2PS-9.0d \ + -lvtkIOExportPDF-9.0d \ + -lvtkIOGeometry-9.0d \ + -lvtkIOImage-9.0d \ + -lvtkIOImport-9.0d \ + -lvtkIOInfovis-9.0d \ + -lvtkIOLSDyna-9.0d \ + -lvtkIOLegacy-9.0d \ + -lvtkIOMINC-9.0d \ + -lvtkIOMotionFX-9.0d \ + -lvtkIOMovie-9.0d \ + -lvtkIONetCDF-9.0d \ + -lvtkIOOggTheora-9.0d \ + -lvtkIOPLY-9.0d \ + -lvtkIOParallel-9.0d \ + -lvtkIOParallelXML-9.0d \ + -lvtkIOSQL-9.0d \ + -lvtkIOSegY-9.0d \ + -lvtkIOTecplotTable-9.0d \ + -lvtkIOVeraOut-9.0d \ + -lvtkIOVideo-9.0d \ + -lvtkIOXML-9.0d \ + -lvtkIOXMLParser-9.0d \ + -lvtkImagingColor-9.0d \ + -lvtkImagingCore-9.0d \ + -lvtkImagingFourier-9.0d \ + -lvtkImagingGeneral-9.0d \ + -lvtkImagingHybrid-9.0d \ + -lvtkImagingMath-9.0d \ + -lvtkImagingMorphological-9.0d \ + -lvtkImagingSources-9.0d \ + -lvtkImagingStatistics-9.0d \ + -lvtkImagingStencil-9.0d \ + -lvtkInfovisCore-9.0d \ + -lvtkInfovisLayout-9.0d \ + -lvtkInteractionImage-9.0d \ + -lvtkInteractionStyle-9.0d \ + -lvtkInteractionWidgets-9.0d \ + -lvtkParallelCore-9.0d \ + -lvtkParallelDIY-9.0d \ + -lvtkRenderingAnnotation-9.0d \ + -lvtkRenderingContext2D-9.0d \ + -lvtkRenderingCore-9.0d \ + -lvtkRenderingFreeType-9.0d \ + -lvtkRenderingGL2PSOpenGL2-9.0d \ + -lvtkRenderingImage-9.0d \ + -lvtkRenderingLOD-9.0d \ + -lvtkRenderingLabel-9.0d \ + -lvtkRenderingOpenGL2-9.0d \ + -lvtkRenderingQt-9.0d \ + -lvtkRenderingSceneGraph-9.0d \ + -lvtkRenderingUI-9.0d \ + -lvtkRenderingVolume-9.0d \ + -lvtkRenderingVolumeOpenGL2-9.0d \ + -lvtkRenderingVtkJS-9.0d \ + -lvtkTestingRendering-9.0d \ + -lvtkViewsContext2D-9.0d \ + -lvtkViewsCore-9.0d \ + -lvtkViewsInfovis-9.0d \ + -lvtkViewsQt-9.0d \ + -lvtkWrappingTools-9.0d \ + -lvtkdoubleconversion-9.0d \ + -lvtkexodusII-9.0d \ + -lvtkexpat-9.0d \ + -lvtkfreetype-9.0d \ + -lvtkgl2ps-9.0d \ + -lvtkglew-9.0d \ + -lvtkhdf5-9.0d \ + -lvtkhdf5_hl-9.0d \ + -lvtkjpeg-9.0d \ + -lvtkjsoncpp-9.0d \ + -lvtklibharu-9.0d \ + -lvtklibproj-9.0d \ + -lvtklibxml2-9.0d \ + -lvtkloguru-9.0d \ + -lvtklz4-9.0d \ + -lvtklzma-9.0d \ + -lvtkmetaio-9.0d \ + -lvtknetcdf-9.0d \ + -lvtkogg-9.0d \ + -lvtkpng-9.0d \ + -lvtkpugixml-9.0d \ + -lvtksqlite-9.0d \ + -lvtksys-9.0d \ + -lvtktheora-9.0d \ + -lvtktiff-9.0d \ + -lvtkverdict-9.0d \ + -lvtkzlib-9.0d \ + +Release:LIBS += -L../Tools/Win64/VTK/lib/ \ + -lvtkChartsCore-9.0 \ + -lvtkCommonColor-9.0 \ + -lvtkCommonComputationalGeometry-9.0 \ + -lvtkCommonCore-9.0 \ + -lvtkCommonDataModel-9.0 \ + -lvtkCommonExecutionModel-9.0 \ + -lvtkCommonMath-9.0 \ + -lvtkCommonMisc-9.0 \ + -lvtkCommonSystem-9.0 \ + -lvtkCommonTransforms-9.0 \ + -lvtkDICOMParser-9.0 \ + -lvtkDomainsChemistry-9.0 \ + -lvtkFiltersAMR-9.0 \ + -lvtkFiltersCore-9.0 \ + -lvtkFiltersExtraction-9.0 \ + -lvtkFiltersFlowPaths-9.0 \ + -lvtkFiltersGeneral-9.0 \ + -lvtkFiltersGeneric-9.0 \ + -lvtkFiltersGeometry-9.0 \ + -lvtkFiltersHybrid-9.0 \ + -lvtkFiltersHyperTree-9.0 \ + -lvtkFiltersImaging-9.0 \ + -lvtkFiltersModeling-9.0 \ + -lvtkFiltersParallel-9.0 \ + -lvtkFiltersParallelImaging-9.0 \ + -lvtkFiltersPoints-9.0 \ + -lvtkFiltersProgrammable-9.0 \ + -lvtkFiltersSMP-9.0 \ + -lvtkFiltersSelection-9.0 \ + -lvtkFiltersSources-9.0 \ + -lvtkFiltersStatistics-9.0 \ + -lvtkFiltersTexture-9.0 \ + -lvtkFiltersTopology-9.0 \ + -lvtkFiltersVerdict-9.0 \ + -lvtkGUISupportQt-9.0 \ + -lvtkGUISupportQtSQL-9.0 \ + -lvtkGeovisCore-9.0 \ + -lvtkIOAMR-9.0 \ + -lvtkIOAsynchronous-9.0 \ + -lvtkIOCityGML-9.0 \ + -lvtkIOCore-9.0 \ + -lvtkIOEnSight-9.0 \ + -lvtkIOExodus-9.0 \ + -lvtkIOExport-9.0 \ + -lvtkIOExportGL2PS-9.0 \ + -lvtkIOExportPDF-9.0 \ + -lvtkIOGeometry-9.0 \ + -lvtkIOImage-9.0 \ + -lvtkIOImport-9.0 \ + -lvtkIOInfovis-9.0 \ + -lvtkIOLSDyna-9.0 \ + -lvtkIOLegacy-9.0 \ + -lvtkIOMINC-9.0 \ + -lvtkIOMotionFX-9.0 \ + -lvtkIOMovie-9.0 \ + -lvtkIONetCDF-9.0 \ + -lvtkIOOggTheora-9.0 \ + -lvtkIOPLY-9.0 \ + -lvtkIOParallel-9.0 \ + -lvtkIOParallelXML-9.0 \ + -lvtkIOSQL-9.0 \ + -lvtkIOSegY-9.0 \ + -lvtkIOTecplotTable-9.0 \ + -lvtkIOVeraOut-9.0 \ + -lvtkIOVideo-9.0 \ + -lvtkIOXML-9.0 \ + -lvtkIOXMLParser-9.0 \ + -lvtkImagingColor-9.0 \ + -lvtkImagingCore-9.0 \ + -lvtkImagingFourier-9.0 \ + -lvtkImagingGeneral-9.0 \ + -lvtkImagingHybrid-9.0 \ + -lvtkImagingMath-9.0 \ + -lvtkImagingMorphological-9.0 \ + -lvtkImagingSources-9.0 \ + -lvtkImagingStatistics-9.0 \ + -lvtkImagingStencil-9.0 \ + -lvtkInfovisCore-9.0 \ + -lvtkInfovisLayout-9.0 \ + -lvtkInteractionImage-9.0 \ + -lvtkInteractionStyle-9.0 \ + -lvtkInteractionWidgets-9.0 \ + -lvtkParallelCore-9.0 \ + -lvtkParallelDIY-9.0 \ + -lvtkRenderingAnnotation-9.0 \ + -lvtkRenderingContext2D-9.0 \ + -lvtkRenderingCore-9.0 \ + -lvtkRenderingFreeType-9.0 \ + -lvtkRenderingGL2PSOpenGL2-9.0 \ + -lvtkRenderingImage-9.0 \ + -lvtkRenderingLOD-9.0 \ + -lvtkRenderingLabel-9.0 \ + -lvtkRenderingOpenGL2-9.0 \ + -lvtkRenderingQt-9.0 \ + -lvtkRenderingSceneGraph-9.0 \ + -lvtkRenderingUI-9.0 \ + -lvtkRenderingVolume-9.0 \ + -lvtkRenderingVolumeOpenGL2-9.0 \ + -lvtkRenderingVtkJS-9.0 \ + -lvtkTestingRendering-9.0 \ + -lvtkViewsContext2D-9.0 \ + -lvtkViewsCore-9.0 \ + -lvtkViewsInfovis-9.0 \ + -lvtkViewsQt-9.0 \ + -lvtkWrappingTools-9.0 \ + -lvtkdoubleconversion-9.0 \ + -lvtkexodusII-9.0 \ + -lvtkexpat-9.0 \ + -lvtkfreetype-9.0 \ + -lvtkgl2ps-9.0 \ + -lvtkglew-9.0 \ + -lvtkhdf5-9.0 \ + -lvtkhdf5_hl-9.0 \ + -lvtkjpeg-9.0 \ + -lvtkjsoncpp-9.0 \ + -lvtklibharu-9.0 \ + -lvtklibproj-9.0 \ + -lvtklibxml2-9.0 \ + -lvtkloguru-9.0 \ + -lvtklz4-9.0 \ + -lvtklzma-9.0 \ + -lvtkmetaio-9.0 \ + -lvtknetcdf-9.0 \ + -lvtkogg-9.0 \ + -lvtkpng-9.0 \ + -lvtkpugixml-9.0 \ + -lvtksqlite-9.0 \ + -lvtksys-9.0 \ + -lvtktheora-9.0 \ + -lvtktiff-9.0 \ + -lvtkverdict-9.0 \ + -lvtkzlib-9.0 \ +} + +unix{ +INCLUDEPATH += ../Tools/Linux64/VTK/include/vtk-9.0/ \ + +LIBS += -L../Tools/Linux64/VTK/lib/ \ + -lvtkChartsCore-9.0 \ + -lvtkCommonColor-9.0 \ + -lvtkCommonComputationalGeometry-9.0 \ + -lvtkCommonCore-9.0 \ + -lvtkCommonDataModel-9.0 \ + -lvtkCommonExecutionModel-9.0 \ + -lvtkCommonMath-9.0 \ + -lvtkCommonMisc-9.0 \ + -lvtkCommonSystem-9.0 \ + -lvtkCommonTransforms-9.0 \ + -lvtkDICOMParser-9.0 \ + -lvtkDomainsChemistry-9.0 \ + -lvtkFiltersAMR-9.0 \ + -lvtkFiltersCore-9.0 \ + -lvtkFiltersExtraction-9.0 \ + -lvtkFiltersFlowPaths-9.0 \ + -lvtkFiltersGeneral-9.0 \ + -lvtkFiltersGeneric-9.0 \ + -lvtkFiltersGeometry-9.0 \ + -lvtkFiltersHybrid-9.0 \ + -lvtkFiltersHyperTree-9.0 \ + -lvtkFiltersImaging-9.0 \ + -lvtkFiltersModeling-9.0 \ + -lvtkFiltersParallel-9.0 \ + -lvtkFiltersParallelImaging-9.0 \ + -lvtkFiltersPoints-9.0 \ + -lvtkFiltersProgrammable-9.0 \ + -lvtkFiltersSMP-9.0 \ + -lvtkFiltersSelection-9.0 \ + -lvtkFiltersSources-9.0 \ + -lvtkFiltersStatistics-9.0 \ + -lvtkFiltersTexture-9.0 \ + -lvtkFiltersTopology-9.0 \ + -lvtkFiltersVerdict-9.0 \ + -lvtkGUISupportQt-9.0 \ + -lvtkGUISupportQtSQL-9.0 \ + -lvtkGeovisCore-9.0 \ + -lvtkIOAMR-9.0 \ + -lvtkIOAsynchronous-9.0 \ + -lvtkIOCityGML-9.0 \ + -lvtkIOCore-9.0 \ + -lvtkIOEnSight-9.0 \ + -lvtkIOExodus-9.0 \ + -lvtkIOExport-9.0 \ + -lvtkIOExportGL2PS-9.0 \ + -lvtkIOExportPDF-9.0 \ + -lvtkIOGeometry-9.0 \ + -lvtkIOImage-9.0 \ + -lvtkIOImport-9.0 \ + -lvtkIOInfovis-9.0 \ + -lvtkIOLSDyna-9.0 \ + -lvtkIOLegacy-9.0 \ + -lvtkIOMINC-9.0 \ + -lvtkIOMotionFX-9.0 \ + -lvtkIOMovie-9.0 \ + -lvtkIONetCDF-9.0 \ + -lvtkIOOggTheora-9.0 \ + -lvtkIOPLY-9.0 \ + -lvtkIOParallel-9.0 \ + -lvtkIOParallelXML-9.0 \ + -lvtkIOSQL-9.0 \ + -lvtkIOSegY-9.0 \ + -lvtkIOTecplotTable-9.0 \ + -lvtkIOVeraOut-9.0 \ + -lvtkIOVideo-9.0 \ + -lvtkIOXML-9.0 \ + -lvtkIOXMLParser-9.0 \ + -lvtkImagingColor-9.0 \ + -lvtkImagingCore-9.0 \ + -lvtkImagingFourier-9.0 \ + -lvtkImagingGeneral-9.0 \ + -lvtkImagingHybrid-9.0 \ + -lvtkImagingMath-9.0 \ + -lvtkImagingMorphological-9.0 \ + -lvtkImagingSources-9.0 \ + -lvtkImagingStatistics-9.0 \ + -lvtkImagingStencil-9.0 \ + -lvtkInfovisCore-9.0 \ + -lvtkInfovisLayout-9.0 \ + -lvtkInteractionImage-9.0 \ + -lvtkInteractionStyle-9.0 \ + -lvtkInteractionWidgets-9.0 \ + -lvtkParallelCore-9.0 \ + -lvtkParallelDIY-9.0 \ + -lvtkRenderingAnnotation-9.0 \ + -lvtkRenderingContext2D-9.0 \ + -lvtkRenderingCore-9.0 \ + -lvtkRenderingFreeType-9.0 \ + -lvtkRenderingGL2PSOpenGL2-9.0 \ + -lvtkRenderingImage-9.0 \ + -lvtkRenderingLOD-9.0 \ + -lvtkRenderingLabel-9.0 \ + -lvtkRenderingOpenGL2-9.0 \ + -lvtkRenderingQt-9.0 \ + -lvtkRenderingSceneGraph-9.0 \ + -lvtkRenderingUI-9.0 \ + -lvtkRenderingVolume-9.0 \ + -lvtkRenderingVolumeOpenGL2-9.0 \ + -lvtkRenderingVtkJS-9.0 \ + -lvtkTestingRendering-9.0 \ + -lvtkViewsContext2D-9.0 \ + -lvtkViewsCore-9.0 \ + -lvtkViewsInfovis-9.0 \ + -lvtkViewsQt-9.0 \ + -lvtkWrappingTools-9.0 \ + -lvtkdoubleconversion-9.0 \ + -lvtkexodusII-9.0 \ + -lvtkexpat-9.0 \ + -lvtkfreetype-9.0 \ + -lvtkgl2ps-9.0 \ + -lvtkglew-9.0 \ + -lvtkhdf5-9.0 \ + -lvtkhdf5_hl-9.0 \ + -lvtkjpeg-9.0 \ + -lvtkjsoncpp-9.0 \ + -lvtklibharu-9.0 \ + -lvtklibproj-9.0 \ + -lvtklibxml2-9.0 \ + -lvtkloguru-9.0 \ + -lvtklz4-9.0 \ + -lvtklzma-9.0 \ + -lvtkmetaio-9.0 \ + -lvtknetcdf-9.0 \ + -lvtkogg-9.0 \ + -lvtkpng-9.0 \ + -lvtkpugixml-9.0 \ + -lvtksqlite-9.0 \ + -lvtksys-9.0 \ + -lvtktheora-9.0 \ + -lvtktiff-9.0 \ + -lvtkverdict-9.0 \ + -lvtkzlib-9.0 \ +}