发布版1

pull/1/head V1.2.0
剑古敛锋 2024-05-15 17:27:37 +08:00
parent f50634bcec
commit 7bd8cf83c0
16 changed files with 478 additions and 1680 deletions

View File

@ -21,6 +21,36 @@ include_directories(C:/PCL/include/pcl-1.14)
# qt5 # qt5
include_directories(C:/Qt/5.15.2/msvc2019_64/include/QtQml) include_directories(C:/Qt/5.15.2/msvc2019_64/include/QtQml)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
# boost
include_directories(D:/vcpkg/installed/x64-windows/include)
# pcl
include_directories(C:/PCL/3rdParty/FLANN/include)
include_directories(C:/PCL/3rdParty/VTK/include/vtk-9.3)
include_directories(C:/PCL/include/pcl-1.14)
# qt5
include_directories(C:/Qt/5.15.2/msvc2019_64/include/QtQml)
# json
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../json)
#
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/SqliteDBProcess/src)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/modelProcess)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/EchoShowProcess)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/OCCViewer)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/PointCloudProcess)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/SharedModuleLib)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/TableProcess)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/TaskXml)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# #
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@ -35,7 +65,9 @@ link_directories("C:/PCL/lib")
# include # include
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
@ -62,6 +94,11 @@ add_library(PluginMeshDataExchange
${_interface} ${_interface}
${_header} ${_header}
${_source} ${_source}
Dialogmeshsurfacesampling.cpp
Dialogmeshsurfacesampling.h
Dialogmeshsurfacesampling.ui
../PointCloudOperator/MeshSurfaceSamplingAlg.cpp
../PointCloudOperator/MeshSurfaceSamplingAlg.h
) )
@ -102,18 +139,24 @@ list(APPEND _depend_library
Common PointCloudOperator PythonModule DataProperty MeshData Material Geometry BCBase ConfigOptions SelfDefObject ModelData ModuleBase PluginManager GeometryCommand GeometryWidgets IO MainWidgets MainWindow) Common PointCloudOperator PythonModule DataProperty MeshData Material Geometry BCBase ConfigOptions SelfDefObject ModelData ModuleBase PluginManager GeometryCommand GeometryWidgets IO MainWidgets MainWindow)
list(APPEND _runtimes_libraries list(APPEND _runtimes_libraries
LAMPCAE::CGNS Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml LAMPCAE::CGNS Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml
) )
# pcl
list(APPEND _runtimes_libraries
list(APPEND _runtimes_libraries
LAMPCAE::CGNS Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml
) )
list(APPEND _runtimes_libraries
Qt5::Network Qt5::Core Qt5::Gui Qt5::Widgets Qt5::DBus Qt5::Core Qt5::Xml Qt5::OpenGL Qt5::Gui Qt5::Svg Qt5::Widgets Qt5::Qml Qt5::DataVisualization Qt5::Charts Qt5::PrintSupport Qt5::Test
)
list(APPEND _runtimes_libraries
OpenCASCADE::TKOpenGl OpenCASCADE::TKOffset OpenCASCADE::TKSTL OpenCASCADE::TKFillet OpenCASCADE::Freetype OpenCASCADE::TKBO OpenCASCADE::TKBRep OpenCASCADE::TKBool OpenCASCADE::TKCAF OpenCASCADE::TKCDF OpenCASCADE::TKG2d OpenCASCADE::TKG3d OpenCASCADE::TKGeomAlgo OpenCASCADE::TKGeomBase OpenCASCADE::TKHLR OpenCASCADE::TKIGES OpenCASCADE::TKLCAF OpenCASCADE::TKMath OpenCASCADE::TKMesh OpenCASCADE::TKPrim OpenCASCADE::TKSTEP OpenCASCADE::TKSTEP209 OpenCASCADE::TKSTEPAttr OpenCASCADE::TKSTEPBase OpenCASCADE::TKService OpenCASCADE::TKShHealing OpenCASCADE::TKTopAlgo OpenCASCADE::TKV3d OpenCASCADE::TKVCAF OpenCASCADE::TKXCAF OpenCASCADE::TKXDEIGES OpenCASCADE::TKXSBase OpenCASCADE::TKernel Qt5::Widgets Qt5::Xml VTK::CommonColor VTK::CommonComputationalGeometry VTK::CommonCore VTK::CommonDataModel VTK::CommonExecutionModel VTK::CommonMath VTK::CommonMisc VTK::CommonSystem VTK::CommonTransforms VTK::FiltersCore VTK::FiltersExtraction VTK::FiltersGeneral VTK::FiltersGeometry VTK::FiltersSources VTK::FiltersStatistics VTK::IOCore VTK::IOLegacy VTK::IOXML VTK::IOXMLParser VTK::ImagingCore VTK::ImagingFourier VTK::ImagingMath VTK::InteractionStyle VTK::ParallelCore VTK::ParallelDIY VTK::RenderingCore VTK::RenderingFreeType VTK::RenderingOpenGL2 VTK::RenderingUI VTK::RenderingVolume VTK::RenderingVolumeOpenGL2 VTK::doubleconversion VTK::expat VTK::freetype VTK::glew VTK::lz4 VTK::lzma VTK::sys VTK::zlib VTK::IOGeometry
)
# VTK # VTK
list(APPEND _runtimes_libraries list(APPEND _runtimes_libraries
VTK::CommonColor VTK::CommonComputationalGeometry VTK::CommonCore VTK::CommonDataModel VTK::CommonExecutionModel VTK::CommonMath VTK::CommonMisc VTK::CommonSystem VTK::CommonTransforms VTK::DICOMParser VTK::FiltersCore VTK::FiltersGeneral VTK::FiltersGeometry VTK::FiltersHybrid VTK::FiltersModeling VTK::FiltersSources VTK::IOCore VTK::IOChemistry VTK::IOGeometry VTK::IOImage VTK::IOLegacy VTK::ImagingCore VTK::ImagingSources VTK::RenderingCore VTK::RenderingLOD VTK::doubleconversion VTK::jpeg VTK::jsoncpp VTK::lz4 VTK::lzma VTK::metaio VTK::png VTK::pugixml VTK::sys VTK::tiff VTK::zlib VTK::CommonColor VTK::CommonComputationalGeometry VTK::CommonCore VTK::CommonDataModel VTK::CommonExecutionModel VTK::CommonMath VTK::CommonMisc VTK::CommonSystem VTK::CommonTransforms VTK::DICOMParser VTK::FiltersCore VTK::FiltersGeneral VTK::FiltersGeometry VTK::FiltersHybrid VTK::FiltersModeling VTK::FiltersSources VTK::IOCore VTK::IOChemistry VTK::IOGeometry VTK::IOImage VTK::IOLegacy VTK::ImagingCore VTK::ImagingSources VTK::RenderingCore VTK::RenderingLOD VTK::doubleconversion VTK::jpeg VTK::jsoncpp VTK::lz4 VTK::lzma VTK::metaio VTK::png VTK::pugixml VTK::sys VTK::tiff VTK::zlib

View File

@ -0,0 +1,40 @@
/**
* @file dialogmeshsurfacesampling.cpp
* @brief None
* @author (3045316072@qq.com)
* @version 2.5.0
* @date 24-5-15
* @copyright Copyright (c) Since 2024 All rights reserved.
*/
// You may need to build the project (run Qt uic code generator) to get
// "ui_DialogMeshSurfaceSampling.h" resolved
#include "Dialogmeshsurfacesampling.h"
#include "ui_DialogMeshSurfaceSampling.h"
namespace MainWidget {
// DialogMeshSurfaceSampling::DialogMeshSurfaceSampling(GUI::MainWindow* parent) : QFDialog(parent),
// _ui(new Ui::DialogMeshSurfaceSampling), _mw(parent), _selectdlg(new DialogSelectComponents(parent)) {
//
//
//
// }
// DialogMeshSurfaceSampling::~DialogMeshSurfaceSampling()
// {
// delete _ui;
// _ui = NULL;
// delete _selectdlg;
// _selectdlg = NULL;
// }
//
// void DialogMeshSurfaceSampling::removeCurrentItem(QListWidgetItem* curItem) {}
// void DialogMeshSurfaceSampling::accept()
// {
// QDialog::accept();
// }
// void DialogMeshSurfaceSampling::selectedComponentsSlot(QList<MeshData::MeshSet*> components) {}
// void DialogMeshSurfaceSampling::customContextMenuRequestedSlot(const QPoint& point) {}
} // namespace MeshSurfaceSampling

View File

@ -0,0 +1,66 @@
/**
* @file dialogmeshsurfacesampling.h
* @brief None
* @author (3045316072@qq.com)
* @version 2.5.0
* @date 24-5-15
* @copyright Copyright (c) Since 2024 All rights reserved.
*/
#ifndef LAMPCAE_DIALOGMESHSURFACESAMPLING_H
#define LAMPCAE_DIALOGMESHSURFACESAMPLING_H
#include "meshDataExchangePluginAPI.h"
#include "SelfDefObject/QFDialog.h"
#include "MeshData/meshSet.h"
#include <QDialog>
#include <QListWidgetItem>
namespace Ui {
class DialogMeshSurfaceSampling;
}
namespace MainWidget {
// class DialogSelectComponents;
//
//
// class MESHDATAEXCHANGEPLUGINAPI DialogMeshSurfaceSampling : public QFDialog {
// Q_OBJECT
//
// public:
// DialogMeshSurfaceSampling(GUI::MainWindow* parent);
// ~DialogMeshSurfaceSampling() ;
// private:
// void removeCurrentItem(QListWidgetItem* curItem);
// signals: // 这里采用信号来直接与 主界面通信,避免参数浪费
// private slots:
//
// virtual void accept();
// void selectedComponentsSlot(QList<MeshData::MeshSet*> components);
// void customContextMenuRequestedSlot(const QPoint& point);
//
// private:
// GUI::MainWindow* _mw;
// DialogSelectComponents* _selectdlg;
// QList<MeshData::MeshSet*> _components;
//
// private:
// Ui::DialogMeshSurfaceSampling* _ui;
// };
} // namespace MeshSurfaceSampling
#endif // LAMPCAE_DIALOGMESHSURFACESAMPLING_H

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MeshSurfaceSampling::DialogMeshSurfaceSampling</class>
<widget class="QDialog" name="MeshSurfaceSampling::DialogMeshSurfaceSampling">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>DialogMeshSurfaceSampling</string>
</property>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -254,7 +254,7 @@ namespace MeshData
} }
cellToPointFilter->Update(); cellToPointFilter->Update();
// ungird->CopyStructure(filter->GetOutput()); // ungird->CopyStructure(filter->GetOutput());
//
// qDebug()<<"ungird , cell Count : "+QString::number(ungird->GetNumberOfCells()); // qDebug()<<"ungird , cell Count : "+QString::number(ungird->GetNumberOfCells());
vtkSmartPointer<vtkPolyData> inpolyData=vtkSmartPointer<vtkPolyData>::New(); vtkSmartPointer<vtkPolyData> inpolyData=vtkSmartPointer<vtkPolyData>::New();
inpolyData = cellToPointFilter->GetOutput(); inpolyData = cellToPointFilter->GetOutput();

View File

@ -16,7 +16,8 @@
#include "VTKdataExchange.h" #include "VTKdataExchange.h"
#include "FoamDataExchange.h" #include "FoamDataExchange.h"
#include "PointClouddataExchange.h" #include "PointClouddataExchange.h"
#include "Dialogmeshsurfacesampling.h"
#include "Common/DebugLogger.h"
#include <QFileInfo> #include <QFileInfo>
GUI::MainWindow* MeshData::MeshDataExchangePlugin::_mainwindow = nullptr; GUI::MainWindow* MeshData::MeshDataExchangePlugin::_mainwindow = nullptr;
@ -62,7 +63,6 @@ namespace MeshData {
IO::IOConfigure::RegisterPclExporter("Point Cloud Data(*.pcd)",PCDexportPCL); IO::IOConfigure::RegisterPclExporter("Point Cloud Data(*.pcd)",PCDexportPCL);
IO::IOConfigure::RegisterPclExporter("vtk polygon Data(*.ply)",PLYexportPCL); IO::IOConfigure::RegisterPclExporter("vtk polygon Data(*.ply)",PLYexportPCL);
return true; return true;
} }
@ -107,12 +107,58 @@ namespace MeshData {
{ {
return _mainwindow; return _mainwindow;
} }
} // namespace MeshData
}
//namespace MeshSurfaceSampling
//{
// MeshSurfaceSamplingPlugin::MeshSurfaceSamplingPlugin(GUI::MainWindow* m) {
//
//
// }
// bool MeshSurfaceSamplingPlugin::install()
// {
// if(_mainwindow == nullptr)
// return false;
// PluginBase::install();
// DebugInfo("MeshSurfaceSamplingPlugin has install\n ");
// return true;
// }
// bool MeshSurfaceSamplingPlugin::uninstall()
// {
// PluginBase::uninstall();
// return true;
// }
// void MeshSurfaceSamplingPlugin::reTranslate(QString)
// {
//
// }
// GUI::MainWindow* MeshSurfaceSamplingPlugin::getMWpt()
// {
// return _mainwindow;
// }
//} // MeshSurfaceSampling MeshData
// 模型注册
void Register(GUI::MainWindow* m, QList<Plugins::PluginBase*>* ps) void Register(GUI::MainWindow* m, QList<Plugins::PluginBase*>* ps)
{ {
Plugins::PluginBase* p = new MeshData::MeshDataExchangePlugin(m); Plugins::PluginBase* p_meshdataExchangeplugin = new MeshData::MeshDataExchangePlugin(m);
ps->append(p); ps->append(p_meshdataExchangeplugin);
// Plugins::PluginBase* p_meshSurfaceSample = new MeshSurfaceSampling::MeshSurfaceSamplingPlugin(m);
// ps->append(p_meshSurfaceSample);
} }
bool CGNSimportMesh(QString AbFileName, int modelId) bool CGNSimportMesh(QString AbFileName, int modelId)

View File

@ -4,31 +4,45 @@
#include "meshDataExchangePluginAPI.h" #include "meshDataExchangePluginAPI.h"
#include "PluginManager/pluginBase.h" #include "PluginManager/pluginBase.h"
namespace MeshData namespace MeshData {
{ enum MeshOperation { MESH_NONE, MESH_READ, MESH_WRITE };
enum MeshOperation
{
MESH_NONE,
MESH_READ,
MESH_WRITE
};
class MESHDATAEXCHANGEPLUGINAPI MeshDataExchangePlugin : public Plugins::PluginBase class MESHDATAEXCHANGEPLUGINAPI MeshDataExchangePlugin : public Plugins::PluginBase {
{ public:
public: MeshDataExchangePlugin(GUI::MainWindow* m);
MeshDataExchangePlugin(GUI::MainWindow* m); ~MeshDataExchangePlugin() = default;
~MeshDataExchangePlugin() = default;
bool install(); bool install();
bool uninstall(); bool uninstall();
void reTranslate(QString); void reTranslate(QString);
static GUI::MainWindow* getMWpt(); static GUI::MainWindow* getMWpt();
private: private:
static GUI::MainWindow* _mainwindow; static GUI::MainWindow* _mainwindow;
}; };
} }
//
//namespace MeshSurfaceSampling
//{
// class MESHDATAEXCHANGEPLUGINAPI MeshSurfaceSamplingPlugin: public Plugins::PluginBase
// {
// public:
// MeshSurfaceSamplingPlugin(GUI::MainWindow* m);
// ~MeshSurfaceSamplingPlugin() = default;
//
// bool install();
// bool uninstall();
// void reTranslate(QString);
// static GUI::MainWindow* getMWpt();
//
// private:
// static GUI::MainWindow* _mainwindow;
// };
//
//
//}
extern "C" extern "C"
{ {
void MESHDATAEXCHANGEPLUGINAPI Register(GUI::MainWindow* m, QList<Plugins::PluginBase*>* plugs); void MESHDATAEXCHANGEPLUGINAPI Register(GUI::MainWindow* m, QList<Plugins::PluginBase*>* plugs);

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ShowAllFiles>false</ShowAllFiles>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerAttach>false</LocalDebuggerAttach>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LocalDebuggerAttach>false</LocalDebuggerAttach>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtLastBackgroundBuild>2024-03-11T14:28:13.8563547Z</QtLastBackgroundBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="QtSettings">
<QtLastBackgroundBuild>2024-03-11T14:28:13.5842400Z</QtLastBackgroundBuild>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtLastBackgroundBuild>2024-03-11T14:28:14.4305103Z</QtLastBackgroundBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="QtSettings">
<QtLastBackgroundBuild>2024-03-11T14:28:14.3381603Z</QtLastBackgroundBuild>
</PropertyGroup>
</Project>

View File

@ -92,6 +92,8 @@ add_library(PointCloudOperator
${_interface} ${_interface}
${_header} ${_header}
${_source} ${_source}
MeshOpearatorCommon.cpp
MeshOpearatorCommon.h
) )

View File

@ -0,0 +1,20 @@
/**
* @file MeshOpearatorCommon.cpp
* @brief None
* @author (3045316072@qq.com)
* @version 2.5.0
* @date 24-5-15
* @copyright Copyright (c) Since 2024 All rights reserved.
*/
#include "MeshOpearatorCommon.h"
namespace MeshOpearator {
MeshOpearatorCommon::MeshOpearatorCommon(QObject* parent): QObject(parent)
{
}
} // namespace MeshOpearator

View File

@ -0,0 +1,133 @@
/**
* @file MeshOpearatorCommon.h
* @brief None
* @author (3045316072@qq.com)
* @version 2.5.0
* @date 24-5-15
* @copyright Copyright (c) Since 2024 All rights reserved.
*/
#ifndef LAMPCAE_MESHOPEARATORCOMMON_H
#define LAMPCAE_MESHOPEARATORCOMMON_H
#include "PointCloudOperatorAPI.h"
// qt 相关头文件
#include <QObject>
// 常用pcl 头文件库
#include <pcl/io/ply_io.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <boost/random.hpp> //随机数
#include <boost/thread/thread.hpp>
#include <iostream>
#include <pcl/console/time.h> // TicToc
#include <pcl/features/normal_3d.h>
#include <pcl/filters/bilateral.h>
#include <pcl/filters/extract_indices.h>
#include <pcl/filters/fast_bilateral.h>
#include <pcl/filters/fast_bilateral_omp.h>
#include <pcl/filters/passthrough.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/kdtree/kdtree.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/registration/ia_fpcs.h> // 4PCS算法
#include <pcl/registration/ia_kfpcs.h> //K4PCS算法头文件
#include <pcl/registration/icp.h>
#include <pcl/registration/registration.h>
#include <pcl/search/flann_search.h>
#include <pcl/surface/concave_hull.h>
#include <pcl/surface/gp3.h> //贪婪投影三角化算法类定义的头文件
#include <pcl/surface/marching_cubes_hoppe.h> //移动立方体
#include <pcl/surface/marching_cubes_rbf.h>
#include <pcl/surface/mls.h> //MLS
#include <pcl/surface/poisson.h> //泊松重建
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <string>
#include <vector>
#include <vtkOutputWindow.h>
#include <pcl/console/time.h> // TicToc
#include <pcl/filters/approximate_voxel_grid.h> // 体素滤波
#include <pcl/filters/voxel_grid.h> // 体素滤波
#include <vtkOutputWindow.h>
#include <boost/thread/thread.hpp>
#include <pcl/ModelCoefficients.h>
#include <pcl/filters/extract_indices.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/sample_consensus/method_types.h> //随机参数估计方法
#include <pcl/sample_consensus/model_types.h> //模型定义
#include <pcl/segmentation/sac_segmentation.h> //RANSAC分割
#include <pcl/visualization/pcl_visualizer.h>
#include <sstream>
#include <stdlib.h> //rand()头文件
#include <vtkMassProperties.h>
#include <vtkPLYReader.h>
#include <vtkSmartPointer.h>
#include <vtkTriangleFilter.h>
#include <Eigen/Core>
#include <iostream>
#include <pcl/common/common.h>
#include <pcl/common/transforms.h>
#include <pcl/features/moment_of_inertia_estimation.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/io/vtk_io.h>
#include <pcl/io/vtk_lib_io.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <string>
#include <string>
#include <vector>
#include <vtkAutoInit.h>
//可视化相关头文件
#include <vtkActor.h>
#include <vtkAutoInit.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
// Boost
#include <boost/math/special_functions/round.hpp>
// Visualization Toolkit (VTK)
#include <vtkRenderWindow.h>
#include "MeshData/meshSet.h"
#include "Meshdata/meshKernal.h"
namespace MeshOpearator {
class POINTCLOUDOPERATORAPI MeshOpearatorCommon:public QObject
{
Q_OBJECT
public:
MeshOpearatorCommon(QObject* parent=nullptr);
~MeshOpearatorCommon()=default;
public:
};
} // namespace MeshOpearator
#endif // LAMPCAE_MESHOPEARATORCOMMON_H

View File

@ -0,0 +1,39 @@
/**
* @file MeshSurfaceSamplingAlg.cpp
* @brief None
* @author (3045316072@qq.com)
* @version 2.5.0
* @date 24-5-15
* @copyright Copyright (c) Since 2024 All rights reserved.
*/
#include <vtkStructuredPointsReader.h>
#include <vtkSurfaceReconstructionFilter.h>
#include <vtkDataSetSurfaceFilter.h>
#include <vtkXMLPolyDataWriter.h>
#include <QDebug>
namespace MeshSurfaceSampling {
vtkSmartPointer<vtkPolyData> MeshSurfaceSampling(vtkSmartPointer<vtkPolyData> Inpoints) {
// 读取三维数据
vtkSmartPointer<vtkStructuredPointsReader> reader = vtkSmartPointer<vtkStructuredPointsReader>::New();
reader->SetFileName("input.vtk");
reader->Update();
// 创建表面重建滤波器
vtkSmartPointer<vtkSurfaceReconstructionFilter> surfaceFilter = vtkSmartPointer<vtkSurfaceReconstructionFilter>::New();
surfaceFilter->SetInputData(Inpoints);
surfaceFilter->Update();
// 将结果转换为多边形数据
vtkSmartPointer<vtkDataSetSurfaceFilter> surface = vtkSmartPointer<vtkDataSetSurfaceFilter>::New();
surface->SetInputConnection(surfaceFilter->GetOutputPort());
surface->Update();
// 返回结果
vtkSmartPointer<vtkPolyData> Outresurface =surface->GetOutput();
qDebug()<<"MeshSurfaceSampling has finish,now return vtk ptr!!!";
return Outresurface;
}
} // namespace MeshSurfaceSampling

View File

@ -0,0 +1,25 @@
/**
* @file MeshSurfaceSamplingAlg.h
* @brief
* @author (3045316072@qq.com)
* @version 2.5.0
* @date 24-5-15
* @copyright Copyright (c) Since 2024 All rights reserved.
*/
#ifndef LAMPCAE_MESHSURFACESAMPLINGALG_H
#define LAMPCAE_MESHSURFACESAMPLINGALG_H
#include <vtkPolyData.h>
#include "PointCloudOperatorAPI.h"
namespace MeshSurfaceSampling {
vtkSmartPointer<vtkPolyData> POINTCLOUDOPERATORAPI MeshSurfaceSampling(vtkSmartPointer<vtkPolyData> Inpoints);
} // namespace MeshSurfaceSampling
#endif // LAMPCAE_MESHSURFACESAMPLINGALG_H

View File

@ -131,6 +131,7 @@ namespace PointCloudOperator {
static int PointCloudCommon::mesh2vtk (const pcl::PolygonMesh& mesh,vtkPolyData* poly_data); static int PointCloudCommon::mesh2vtk (const pcl::PolygonMesh& mesh,vtkPolyData* poly_data);
static vtkPolyData* meshSetToVtkDataset(MeshData::MeshSet* in_set); static vtkPolyData* meshSetToVtkDataset(MeshData::MeshSet* in_set);
}; };
} // namespace PointCloudOperator } // namespace PointCloudOperator