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种形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值