目的
想通过鼠标左键实现点云旋转变换
遇到问题
操作点云时进不去vtk鼠标控件的回调函数
解决方式
无意间看到这位老哥的博文PCL1.12.1+VTK9.1+Qt5.14.2VS创建Qt项目在widget上显示点云,其中提到QOpenGLWidget界面实时刷新问题
即viewer调用回调函数后增加一行代码,实现界面的重新渲染
Viewer->getRenderWindow()->Render();
自己实现代码参考
QtWidgetsApplication_PCL.h
class QtWidgetsApplication_PCL : public QMainWindow
{
Q_OBJECT
public:
QtWidgetsApplication_PCL(QWidget *parent = nullptr);
~QtWidgetsApplication_PCL();
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud;
int flag , xb, yb;
static void pp_callback(const pcl::visualization::MouseEvent& event, void* args);//回调函数设置成静态函数方便访问 类成员
private slots:
void showCloud();
private:
Ui::QtWidgetsApplication_PCLClass ui;
pcl::visualization::PCLVisualizer::Ptr view;
};
</