maplab系列1:channel

maplab中的channel是ViewFrame数据存储的关键结构,其实质是std::map<std::string, any data type>,用于存储各种类型的数据。通过DECLARE_CHANNEL宏定义新的属性,并提供访问接口如hasXXX、getXXXs、setXXXs等。ChannelGroup是Channel的集合,增加了打印参数和线程同步功能。ChannelBase是封装属性数据类型的虚基类,而Channel是其实现类。" 129035155,5679753,Scratch编程教学:华氏和摄氏度转换实践,"['青少年编程', '游戏开发', 'unity', 'Scratch']
摘要由CSDN通过智能技术生成

相关文件:

  • maplab/aslam_cv2/aslam_cv_common/include/aslam/common/channel-declaration.h
  • maplab/aslam_cv2/aslam_cv_common/include/aslam/common/channel-definitions.h
  • maplab/aslam_cv2/aslam_cv_common/include/aslam/common/channel.h

channel是ViewFrame中数据存储的结构,其本质是std::map<std::string, any data type>。但作者使用了很多宏来把不同类型的数据封装成ViewFrame的属性。


每个属性包含多种访问接口:XXX代表某个属性名

  • hasXXX
    • 参看是否有某个属性,无参数,返回bool
    • 本质是看std::map中是否有这个key
    • 在第一次调用set或者swap的时候,会自动添加key
  • getXXXs
    • 得到某个属性的所有数据,无参数,返回对应属性类型的列表
  • getXXX
    • 得到某个属性中的某个元素,比如地i个kp的scale。参数为序号,返回属性类型
  • getXXXsMutable
    • 得到某个属性的所有数据的拷贝,如果有其他线程修改这个属性,不会影响。
  • setXXXs
    • 设置某个属性的所有数据,参数为属性类型的列表
  • swapXXXs
    • 换入某个属性的所有数据,参数为属性类型的列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值