PCLVisualizer窗口事件注册

本文介绍了PCLVisualizer窗口事件的注册方法,包括不同类型的事件回调函数注册方式及使用智能指针操作的方法。探讨了如何通过不同途径传递智能指针,并提供了具体的实现示例。

PCLVisualizer窗口事件的注册


一般情况下PCLVisualizer事件回调函数的形式为:

void eventFunction(const pcl::visualization::**Event &event, void* args)

注册回调函数的形式为:

viewer->registerEventCallback(eventFunction, void*)

若在事件相应后想对PCLVisualizer所指向的智能指针对象进行操作,需要将该指针传入args。主要方法主要有两种。

1.pcl::visualization::PCLVisualizer::Ptr viewer to void*

// get()返回智能指针对应的普通指针
(void*)viewer.get();

void* viewer to pcl::visualization::PCLVisualizer::Ptr

// 用普通指针初始化只能指针
pcl::visualization::PCLVisualizer::Ptr _viewer(viewer);

2.将pcl::visualization::PCLVisualizer::Ptr重新封装在一个数据结构里(推荐),例如:

// 将pcl::visualization::PCLVisualizer::Ptr封装在新的数据形式里面
typedef EventArgs
{
    pcl::visualization::PCLVisualizer::Ptr viewerPtr;
}EVENTARGS;

3.传入指向智能指针的普通指针,官方文档示例中

pcl::visualization::PCLVisualizer::Ptr viewer = *static_cast< *pcl::visualization::PCLVisualizer::Ptr> (viewer_void);
viewer->registerEventCallback (keyboardEventOccurred, (void*)&viewer);

该方法在win10,pcl1.7.2下运行出现错误。不知道其他平台怎么样


pcl::visualization中的事件主要有PointPickingEvent, AreaPickingEvent,MouseEvent,KeybordEvent 4种形式。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值