相关文件:
- 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
- 换入某个属性的所有数据,参数为属性类型的列表