#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //各种格式的点的头文件 #include #include #include "ars548recv.h" #include "vtkCubeSource.h" #if VTK_VERSION_NUMBER >= 89000000000ULL #define VTK890 1 #endif #define NUM_DET_MAX 800 #define NUM_OBJ_MAX 50 QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); public: void resizeEvent(QResizeEvent *event); void keyReleaseEvent(QKeyEvent *event) Q_DECL_OVERRIDE; signals: void detupdate(); private slots: void onTimer(); void on_actionReset_Camera_triggered(); void on_actionFull_Screem_triggered(); void onDetUpdate(); void on_actionAll_triggered(); void on_actionObjectAll_triggered(); private: Ui::MainWindow *ui; boost::shared_ptr< pcl::visualization::PCLVisualizer > view; void DrawAxis(); bool mbFull = false; ars548recv * mprecv; private: void threaddet(); void threadobj(); bool mbThreadRun = true; std::thread * mpthreaddet; std::thread * mpthreadobj; iv::radar::radar4ddetectarray mdetarray; std::mutex mmutexdet; bool mbdetupdate = false; iv::radar::radar4dobjectarray mobjarray; bool mbobjupdate = false; std::mutex mmutexobj; std::vector mvectordetname; vtkNew sphereSource[NUM_OBJ_MAX]; vtkNew mapper[NUM_OBJ_MAX]; vtkNew detSource[NUM_DET_MAX]; vtkNew detmapper[NUM_DET_MAX]; }; #endif // MAINWINDOW_H