diff --git a/.idea/QtSettings.xml b/.idea/QtSettings.xml
index ba715ef..1762fa9 100644
--- a/.idea/QtSettings.xml
+++ b/.idea/QtSettings.xml
@@ -7,16 +7,16 @@
-
-
+
+
-
-
+
+
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 897b274..714877c 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -1,11 +1,5 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/editor.xml b/.idea/editor.xml
new file mode 100644
index 0000000..46540da
--- /dev/null
+++ b/.idea/editor.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cmake/FindCGNS.cmake b/cmake/FindCGNS.cmake
index c5bb959..61e8f97 100644
--- a/cmake/FindCGNS.cmake
+++ b/cmake/FindCGNS.cmake
@@ -39,7 +39,7 @@ find_path(CGNS_DIRS
NAMES
include/cgnslib.h
PATHS
- D:/vcpkg/installed/x64-windows
+ C:/vcpkg/installed/x64-windows
NO_SYSTEM_ENVIRONMENT_PATH
NO_CMAKE_SYSTEM_PATH
)
diff --git a/cmake/FindOpenCASCADE.cmake b/cmake/FindOpenCASCADE.cmake
index 88fd0ba..b84b010 100644
--- a/cmake/FindOpenCASCADE.cmake
+++ b/cmake/FindOpenCASCADE.cmake
@@ -35,7 +35,7 @@ if(LAMPCAE_OpenCASCADE_ALREADY_INCLUDED)
endif()
set(LAMPCAE_OpenCASCADE_ALREADY_INCLUDED 1)
-set(OpenCASCADE_DIRS "C:/OCCT")
+set(OpenCASCADE_DIRS ${CMAKE_SOURCE_DIR}/extlib/OCCT)
set(OpenCASCADE_VERSION_MAJOR 7)
set(OpenCASCADE_VERSION_MINOR 6)
@@ -101,10 +101,10 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set_property(TARGET OpenCASCADE::Tcl86 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_property(TARGET OpenCASCADE::Tk86 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(OpenCASCADE::Freetype PROPERTIES
- IMPORTED_IMPLIB_RELEASE "D:/vcpkg/installed/x64-windows/lib/freetype.lib"
- IMPORTED_LOCATION_RELEASE "D:/vcpkg/installed/x64-windows/bin/freetype.dll"
- IMPORTED_IMPLIB_DEBUG "D:/vcpkg/installed/x64-windows/debug/lib/freetyped.lib"
- IMPORTED_LOCATION_DEBUG "D:/vcpkg/installed/x64-windows/debug/bin/freetyped.dll"
+ IMPORTED_IMPLIB_RELEASE "C:/vcpkg/installed/x64-windows/lib/freetype.lib"
+ IMPORTED_LOCATION_RELEASE "C:/vcpkg/installed/x64-windows/bin/freetype.dll"
+ IMPORTED_IMPLIB_DEBUG "C:/vcpkg/installed/x64-windows/debug/lib/freetyped.lib"
+ IMPORTED_LOCATION_DEBUG "C:/vcpkg/installed/x64-windows/debug/bin/freetyped.dll"
)
set_target_properties(OpenCASCADE::Tcl86 PROPERTIES
IMPORTED_IMPLIB_RELEASE "${OpenCASCADE_LIBRARY_DIRS}/tcl86.lib"
diff --git a/cmake/FindVTK.cmake b/cmake/FindVTK.cmake
index 3644a27..7a932f1 100644
--- a/cmake/FindVTK.cmake
+++ b/cmake/FindVTK.cmake
@@ -36,7 +36,7 @@ endif()
set(LAMPCAE_VTK_ALREADY_INCLUDED 1)
#set(VTK_DIRS "${CMAKE_SOURCE_DIR}/extlib/VTK")
-set(VTK_DIRS "C:/VTK")
+set(VTK_DIRS ${CMAKE_SOURCE_DIR}/extlib/VTK)
set(VTK_VERSION_MAJOR 9)
set(VTK_VERSION_MINOR 3)
diff --git a/src/MainWidgets/SelectNodeShow.cpp b/src/MainWidgets/SelectNodeShow.cpp
new file mode 100644
index 0000000..dc79191
--- /dev/null
+++ b/src/MainWidgets/SelectNodeShow.cpp
@@ -0,0 +1,284 @@
+#include
+#include "SelectNodeShow.h"
+#include "ui_SelectNodeShow.h"
+#include
+#include
+#include
+#include
+#include
+#include "MeshData/meshSingleton.h"
+#include "MeshData/meshKernal.h"
+#include "preWindow.h"
+#include "vtkMeshSelectTableModel.h"
+#include "Settings/busAPI.h" // 获取高亮颜色
+#include "Settings/GraphOption.h" // 获取高亮颜色
+namespace MainWidget {
+
+ SelectNodeShow::SelectNodeShow(PreWindow* preWindow,QWidget* parent)
+ : QDialog(parent)
+ , ui(new Ui::SelectNodeShow)
+ ,_preWindow(preWindow)
+ {
+ ui->setupUi(this);
+ init();
+
+ }
+
+ SelectNodeShow::~SelectNodeShow()
+ {
+ delete ui;
+ }
+
+ void SelectNodeShow::search()
+ {
+ on_btnSearch_clicked();
+ }
+
+ void SelectNodeShow::revert()
+ {
+ on_btnCancel_clicked();
+ }
+
+ void SelectNodeShow::submit()
+ {
+ on_btnSubmit_clicked();
+ }
+
+ bool SelectNodeShow::editable()
+ {
+ return true;
+ }
+
+ void SelectNodeShow::init()
+ {
+ //m_editMode = false;
+
+ // m_access = new AccessDB(nullptr, "Threshold");
+ // m_access->initDB();
+
+ this->setAttribute(Qt::WA_StyledBackground);
+
+ initTableView();
+ }
+
+ void SelectNodeShow::initTableView()
+ {
+ this->_model=new vtkMeshSelectTableModel(_preWindow,this);
+ this->_model->clear();
+ this->ui->tableView->setModel(this->_model);
+ selectionModel = this->ui->tableView->selectionModel();
+ connect(selectionModel,SIGNAL(currentChanged(const QModelIndex&, const QModelIndex&)),this,SLOT(currentChanged(const QModelIndex&, const QModelIndex&)));
+ // m_sqlModel = new QSqlTableModel(this, m_access);
+ //
+ // m_sqlModel->setTable("XXX");
+ //
+ // m_sqlModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
+ //
+ // if (!m_sqlModel->select()) {
+ // qDebug() << "查询失败";
+ // qDebug() << m_sqlModel->lastError();
+ // return;
+ // }
+ //
+ // ui->tableView->setModel(m_sqlModel);
+ //
+ // ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);
+ // ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
+ //
+ // ui->tableView->setShowGrid(false);
+ //
+ // ui->tableView->verticalHeader()->setVisible(false);
+ //
+ // ui->tableView->setEditTriggers(QTableView::NoEditTriggers);
+ }
+
+ bool SelectNodeShow::editMode()
+ {
+ return false;
+ }
+
+ void SelectNodeShow::on_btnEdit_clicked()
+ {
+ // // TODO
+ // // 将其余按键状态置灰
+ // // 将表格的编辑模式打开
+ // m_editMode = true;
+ //
+ // ui->tableView->setEditTriggers(QAbstractItemView::DoubleClicked);
+ //
+ // ui->btnNew->setDisabled(true);
+ // ui->btnNew->setDisabled(true);
+ // ui->btnDelete->setDisabled(true);
+ // ui->btnCancel->setEnabled(true);
+ // ui->btnSubmit->setEnabled(true);
+ }
+
+ void SelectNodeShow::on_btnNew_clicked()
+ {
+ // 删除指定行数
+ QItemSelectionModel* selectionModel = this->ui->tableView->selectionModel();
+ QModelIndexList selectedIndexes = selectionModel->selectedIndexes();
+ if (selectedIndexes.count() == 0) {
+ return;
+ }
+ QList rows;
+ for (int i = 0; i < selectedIndexes.count(); i++) {
+ rows.push_back(selectedIndexes[i].row());
+ this->_model->setRemoveFlag(selectedIndexes[i].row(),false);
+ }
+
+ ModuleBase::SelectModel _selectModel=this->_model->getSelectModel();
+ if( _selectModel== ModuleBase::BoxMeshNode || _selectModel == ModuleBase::MeshNode||_selectModel==ModuleBase::BoxMeshSurfaceNode) {
+ this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor());
+ } else if(_selectModel == ModuleBase::BoxMeshCell || _selectModel == ModuleBase::MeshCell||_selectModel==ModuleBase::BoxMeshSurfaceCell) {
+ this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor());
+ }
+ _preWindow->reRender();
+ this->ui->tableView->show();
+ }
+
+ void SelectNodeShow::on_btnSubmit_clicked()
+ {
+ // 更新items
+ QMultiHash selectItems = this->_model->getSelectItems();
+ this->_preWindow->setSelectItems(selectItems,this->_model->getSelectModel());
+ }
+
+ void SelectNodeShow::on_btnCancel_clicked()
+ {
+
+ }
+
+ void SelectNodeShow::on_btnDelete_clicked()
+ {
+ // 删除指定行数
+ QItemSelectionModel* selectionModel = this->ui->tableView->selectionModel();
+ QModelIndexList selectedIndexes = selectionModel->selectedIndexes();
+ if (selectedIndexes.count() == 0) {
+ return;
+ }
+ QList rows;
+ for (int i = 0; i < selectedIndexes.count(); i++) {
+ rows.push_back(selectedIndexes[i].row());
+ this->_model->setRemoveFlag(selectedIndexes[i].row(),true);
+ }
+
+ ModuleBase::SelectModel _selectModel=this->_model->getSelectModel();
+ if( _selectModel== ModuleBase::BoxMeshNode || _selectModel == ModuleBase::MeshNode||_selectModel==ModuleBase::BoxMeshSurfaceNode) {
+ this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getMeshNodeColor());
+ } else if(_selectModel == ModuleBase::BoxMeshCell || _selectModel == ModuleBase::MeshCell||_selectModel==ModuleBase::BoxMeshSurfaceCell) {
+ this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getMeshFaceColor());
+ }
+ _preWindow->reRender();
+ this->ui->tableView->show();
+ }
+
+ void SelectNodeShow::on_btnSearch_clicked()
+ {
+ // m_sqlModel->setSort(0, Qt::AscendingOrder);
+ //
+ // int result = m_sqlModel->select();
+ // if (!result) {
+ // qDebug() << u8"查询失败: " << m_sqlModel->lastError().text();
+ // return;
+ // }
+ //
+ // ui->btnNew->setEnabled(true);
+ // ui->btnEdit->setEnabled(true);
+ // ui->btnDelete->setEnabled(true);
+ // ui->btnCancel->setDisabled(true);
+ // ui->btnSubmit->setDisabled(true);
+ //
+ // ui->tableView->scrollToTop();
+ }
+ void SelectNodeShow::initSelectNodeShow(QMultiHash* selectItems,ModuleBase::SelectModel _selectModel)
+ {
+ this->_model->SetData(selectItems,_selectModel);
+ //
+
+ if (this->_model->rowCount() > 1e4) {
+ this->ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
+ }else{
+ this->ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+ }
+ this->ui->tableView->show();
+
+ }
+ void SelectNodeShow::currentChanged(const QModelIndex& current,
+ const QModelIndex& previous)
+ {
+ if (current.isValid()) {
+ // 处理当前行的逻辑,比如更新界面或者执行其他操作
+ this->_model->setCurrentRowIndex(current);
+ }
+ }
+ void SelectNodeShow::on_btnHightlightSelect_clicked() {
+ ModuleBase::SelectModel _selectModel=this->_model->getSelectModel();
+ // 清除选中行
+ QList deleterows;
+ QList highrows;
+ deleterows.clear();
+ highrows.clear();
+ for(int i=0;i_model->getRemoveFlag(selectRows[i])) {
+ deleterows.push_back(selectRows[i]);
+ } else {
+ highrows.push_back(selectRows[i]);
+ }
+ }
+ if( _selectModel== ModuleBase::BoxMeshNode || _selectModel == ModuleBase::MeshNode||_selectModel==ModuleBase::BoxMeshSurfaceNode) {
+ this->_model->HightlightRows(deleterows,Setting::BusAPI::instance()->getGraphOption()->getMeshNodeColor());
+ this->_model->HightlightRows(highrows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor());
+ } else if(_selectModel == ModuleBase::BoxMeshCell || _selectModel == ModuleBase::MeshCell||_selectModel==ModuleBase::BoxMeshSurfaceCell) {
+ this->_model->HightlightRows(deleterows,Setting::BusAPI::instance()->getGraphOption()->getMeshFaceColor());
+ this->_model->HightlightRows(highrows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor());
+ }
+
+ // 删除指定行数
+ QItemSelectionModel* selectionModel = this->ui->tableView->selectionModel();
+ QModelIndexList selectedIndexes = selectionModel->selectedIndexes();
+ if (selectedIndexes.count() == 0) {
+ return;
+ }
+ QList rows;
+ for (int i = 0; i < selectedIndexes.count(); i++) {
+ rows.push_back(selectedIndexes[i].row());
+ }
+
+// ModuleBase::SelectModel _selectModel=this->_model->getSelectModel();
+ if( _selectModel== ModuleBase::BoxMeshNode || _selectModel == ModuleBase::MeshNode||_selectModel==ModuleBase::BoxMeshSurfaceNode) {
+ this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getPreHighLightColor());
+ } else if(_selectModel == ModuleBase::BoxMeshCell || _selectModel == ModuleBase::MeshCell||_selectModel==ModuleBase::BoxMeshSurfaceCell) {
+ this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getPreHighLightColor());
+ }
+ _preWindow->reRender();
+ selectRows=rows;
+// this->ui->tableView->show();
+ }
+ void SelectNodeShow::on_btnShowSelect_clicked() {
+ QList deleterows;
+ QList highrows;
+ deleterows.clear();
+ highrows.clear();
+ // 针对所有行进行操作
+ for(int i=0;i_model->rowCount();i++) {
+ if(this->_model->getRemoveFlag(i)) {
+ deleterows.push_back(i);
+ } else {
+ highrows.push_back(i);
+ }
+ }
+ ModuleBase::SelectModel _selectModel=this->_model->getSelectModel();
+ if( _selectModel== ModuleBase::BoxMeshNode || _selectModel == ModuleBase::MeshNode||_selectModel==ModuleBase::BoxMeshSurfaceNode) {
+ this->_model->HightlightRows(deleterows,Setting::BusAPI::instance()->getGraphOption()->getMeshNodeColor());
+ this->_model->HightlightRows(highrows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor());
+ } else if(_selectModel == ModuleBase::BoxMeshCell || _selectModel == ModuleBase::MeshCell||_selectModel==ModuleBase::BoxMeshSurfaceCell) {
+ this->_model->HightlightRows(deleterows,Setting::BusAPI::instance()->getGraphOption()->getMeshFaceColor());
+ this->_model->HightlightRows(highrows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor());
+ }
+
+ _preWindow->reRender();
+
+
+ }
+}
\ No newline at end of file
diff --git a/src/MainWidgets/SelectNodeShow.h b/src/MainWidgets/SelectNodeShow.h
new file mode 100644
index 0000000..9b86d80
--- /dev/null
+++ b/src/MainWidgets/SelectNodeShow.h
@@ -0,0 +1,81 @@
+#ifndef THRESHOLDMANAGE_H
+#define THRESHOLDMANAGE_H
+
+#include "mainWidgetsAPI.h"
+#include
+#include
+#include
+#include
+#include
+#include
+#include "MeshData/meshSingleton.h"
+#include "MeshData/meshKernal.h"
+#include "preWindow.h"
+#include "meshViewProvider.h"
+#include "meshKernalViewObject.h"
+#include "vtkMeshSelectTableModel.h"
+#include "preWindow.h"
+#include "MeshData/meshKernal.h"
+#include "meshViewProvider.h"
+#include "meshKernalViewObject.h"
+#include "MeshData/meshSet.h"
+
+
+
+namespace Ui {
+ class SelectNodeShow;
+}
+
+namespace MainWidget {
+ class MAINWIDGETSAPI SelectNodeShow : public QDialog {
+ Q_OBJECT
+
+ public:
+ explicit SelectNodeShow(PreWindow* preWindow,QWidget* parent = nullptr);
+ ~SelectNodeShow();
+
+ void search();
+
+ void revert();
+
+ void submit();
+
+ bool editable();
+
+ bool editMode();
+
+ void initSelectNodeShow(QMultiHash* selectItems,ModuleBase::SelectModel _selectModel);
+
+ private:
+ void init();
+
+ void initTableView();
+
+ private slots:
+ void on_btnEdit_clicked();
+
+ void on_btnNew_clicked();
+
+ void on_btnSubmit_clicked();
+
+ void on_btnCancel_clicked();
+
+ void on_btnDelete_clicked();
+
+ void on_btnSearch_clicked();
+
+ void on_btnShowSelect_clicked();
+
+ void on_btnHightlightSelect_clicked();
+
+ void currentChanged(const QModelIndex& current, const QModelIndex& previous) ;
+
+ private:
+ Ui::SelectNodeShow* ui;
+ vtkMeshSelectTableModel* _model;
+ PreWindow* _preWindow;
+ QItemSelectionModel *selectionModel;
+ QList selectRows;
+ };
+} // namespace MainWidget
+#endif // THRESHOLDMANAGE_H
diff --git a/src/MainWidgets/SelectNodeShow.ui b/src/MainWidgets/SelectNodeShow.ui
new file mode 100644
index 0000000..e61065c
--- /dev/null
+++ b/src/MainWidgets/SelectNodeShow.ui
@@ -0,0 +1,145 @@
+
+
+ SelectNodeShow
+
+
+
+ 0
+ 0
+ 840
+ 782
+
+
+
+ Form
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 16777215
+ 50
+
+
+
+
+
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Maximum
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ 提交
+
+
+ false
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ 删除
+
+
+ false
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ 新增
+
+
+ false
+
+
+
+ -
+
+
+ 高亮选择
+
+
+
+ -
+
+
+ 显示点集
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 1598
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+