template<typename T> inline boost::signals2::connection
registerPointPickingCallback (void (T::*callback) (const pcl::visualization::PointPickingEvent&, void*), T& instance, void* cookie = NULL)
{
return (registerPointPickingCallback (boost::bind (callback, boost::ref (instance), _1, cookie)));
}
用上面这个重载函数来完成对选点回调函数为成员函数时的注册。注意调用时,要输入模板参数T
把返回值boost::signals2::connection,存下来,在不需要回调函数执行的是否,调用disconnect()函数。即可取消注册的函数。
理论上,可以用boost::signals2::shared_connection_block来对信号进行管理,但测试不成功。等后面有时间分析源码找到原因再来分享原因。
|