2020-12-01 11:58:17 +08:00
|
|
|
/**
|
|
|
|
* This file is part of ORB-SLAM3
|
|
|
|
*
|
2022-03-28 21:20:28 +08:00
|
|
|
* Copyright (C) 2017-2021 Carlos Campos, Richard Elvira, Juan J. Gómez Rodríguez, José M.M. Montiel and Juan D. Tardós, University of Zaragoza.
|
2020-12-01 11:58:17 +08:00
|
|
|
* Copyright (C) 2014-2016 Raúl Mur-Artal, José M.M. Montiel and Juan D. Tardós, University of Zaragoza.
|
|
|
|
*
|
|
|
|
* ORB-SLAM3 is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
|
|
|
|
* License as published by the Free Software Foundation, either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* ORB-SLAM3 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
|
|
|
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License along with ORB-SLAM3.
|
|
|
|
* If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef MAPDRAWER_H
|
|
|
|
#define MAPDRAWER_H
|
|
|
|
|
|
|
|
#include"Atlas.h"
|
|
|
|
#include"MapPoint.h"
|
|
|
|
#include"KeyFrame.h"
|
2022-03-28 21:20:28 +08:00
|
|
|
#include "Settings.h"
|
2020-12-01 11:58:17 +08:00
|
|
|
#include<pangolin/pangolin.h>
|
|
|
|
|
|
|
|
#include<mutex>
|
|
|
|
|
|
|
|
namespace ORB_SLAM3
|
|
|
|
{
|
|
|
|
|
2022-03-28 21:20:28 +08:00
|
|
|
class Settings;
|
|
|
|
|
2020-12-01 11:58:17 +08:00
|
|
|
class MapDrawer
|
|
|
|
{
|
|
|
|
public:
|
2022-03-28 21:20:28 +08:00
|
|
|
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
|
|
|
|
MapDrawer(Atlas* pAtlas, const string &strSettingPath, Settings* settings);
|
|
|
|
|
|
|
|
void newParameterLoader(Settings* settings);
|
2020-12-01 11:58:17 +08:00
|
|
|
|
|
|
|
Atlas* mpAtlas;
|
|
|
|
|
|
|
|
void DrawMapPoints();
|
2022-03-28 21:20:28 +08:00
|
|
|
void DrawKeyFrames(const bool bDrawKF, const bool bDrawGraph, const bool bDrawInertialGraph, const bool bDrawOptLba);
|
2020-12-01 11:58:17 +08:00
|
|
|
void DrawCurrentCamera(pangolin::OpenGlMatrix &Twc);
|
2022-03-28 21:20:28 +08:00
|
|
|
void SetCurrentCameraPose(const Sophus::SE3f &Tcw);
|
2020-12-01 11:58:17 +08:00
|
|
|
void SetReferenceKeyFrame(KeyFrame *pKF);
|
|
|
|
void GetCurrentOpenGLCameraMatrix(pangolin::OpenGlMatrix &M, pangolin::OpenGlMatrix &MOw);
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
bool ParseViewerParamFile(cv::FileStorage &fSettings);
|
|
|
|
|
|
|
|
float mKeyFrameSize;
|
|
|
|
float mKeyFrameLineWidth;
|
|
|
|
float mGraphLineWidth;
|
|
|
|
float mPointSize;
|
|
|
|
float mCameraSize;
|
|
|
|
float mCameraLineWidth;
|
|
|
|
|
2022-03-28 21:20:28 +08:00
|
|
|
Sophus::SE3f mCameraPose;
|
2020-12-01 11:58:17 +08:00
|
|
|
|
|
|
|
std::mutex mMutexCamera;
|
|
|
|
|
|
|
|
float mfFrameColors[6][3] = {{0.0f, 0.0f, 1.0f},
|
|
|
|
{0.8f, 0.4f, 1.0f},
|
|
|
|
{1.0f, 0.2f, 0.4f},
|
|
|
|
{0.6f, 0.0f, 1.0f},
|
|
|
|
{1.0f, 1.0f, 0.0f},
|
|
|
|
{0.0f, 1.0f, 1.0f}};
|
2022-03-28 21:20:28 +08:00
|
|
|
|
2020-12-01 11:58:17 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
} //namespace ORB_SLAM
|
|
|
|
|
|
|
|
#endif // MAPDRAWER_H
|