ORB-SLAM2代码笔记(四):Map

2019-07-21  本文已影响0人  liampayne_66d0

Map

成员变量
成员函数
    unique_lock<mutex> lock(mMutexMap);
    mspKeyFrames.insert(pKF);
    if(pKF->mnId>mnMaxKFid)
        mnMaxKFid=pKF->mnId;

插入地图点AddMapPoint(MapPoint *pMP)实现类似

    mspMapPoints.erase(pMP);

删除关键帧类似

    for(set<MapPoint*>::iterator sit=mspMapPoints.begin(), send=mspMapPoints.end(); sit!=send; sit++)
        delete *sit;

    for(set<KeyFrame*>::iterator sit=mspKeyFrames.begin(), send=mspKeyFrames.end(); sit!=send; sit++)
        delete *sit;

    mspMapPoints.clear();
    mspKeyFrames.clear();
    mnMaxKFid = 0;
    mvpReferenceMapPoints.clear();
    mvpKeyFrameOrigins.clear();

分别遍历关键帧和地图点进行delete,然后对关键帧、地图点、参考地图点、初始关键帧clear(都是vector),关键帧最大id设为0.

上一篇 下一篇

猜你喜欢

热点阅读