Pangolin的简单使用
一、Pangolin的编译
- 在win10系统,使用vs2017编译64位的pangolin库是比较简单的事情。直接下载最新的pangolin库,使用cmake-gui工具编译即可,建议使用3.14以上的版本,下载地址为cmake官网。
- 直接使用cnake-gui生成vs2017 64位的工程,编译过程中会自动下载需要的库,无需多余的配置。
- 可以根据需要修改pangolin库的安装路径(CMAKE_INSTALL_PREFIX对应的路径),最好修改一下,不然会默认安装到C盘,不好查找。
- 直接编译(Release模式)即可成功,点击install工程,使用仅安装生成,即可得到pangolin库。
- 安装过程如出现错误,可以参考这篇文章。
- win10+vs2017编译好的可以在这里下载。
二、Pangolin的配置
- 安装成功后,会出现lib, include,bin三个文件夹。
- 将lib添加到库目录中,例如:3rd_party\Pangolin\lib
- 将include添加到包含目录中,例如:3rd_party\Pangolin\include
- 在连接器-输入-附加依赖项中添加:
pangolin.lib
glew.lib
glu32.lib
opengl32.lib
mfplat.lib
mfreadwrite.lib
mfuuid.lib
strmiids.lib
mf.lib
三、测试例子
- Release模式编译使用
#include <iostream>
#include <iomanip>
#include <pangolin/pangolin.h>
using namespace std;
int main(int argc, char** argv){
pangolin::CreateWindowAndBind("my-slam: Map Viewer",1024,768);// 3D Mouse handler requires depth testing to be enabledglEnable(GL_DEPTH_TEST);// Issue specific OpenGl we might needglEnable(GL_BLEND);glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
pangolin::CreatePanel("menu").SetBounds(0.0,1.0,0.0, pangolin::Attach::Pix(175));
pangolin::Var<bool>menuFollowCamera("menu.Follow Camera",true,true);
pangolin::Var<bool>menuShowPoints("menu.Show Points",true,true);
pangolin::Var<bool>menuShowKeyFrames("menu.Show KeyFrames",true,true);
pangolin::Var<bool>menuShowGraph("menu.Show Graph",true,true);
pangolin::Var<bool>menuLocalizationMode("menu.Localization Mode",false,true);
pangolin::Var<bool>menuReset("menu.Reset",false,false);// Define Camera Render Object (for view / scene browsing)
pangolin::OpenGlRenderState s_cam = pangolin::OpenGlRenderState(
pangolin::ProjectionMatrix(1024,768,500,500,512,389,0.1,1000),
pangolin::ModelViewLookAt(0,-0.7,-1.8,0,0,0,0.0,-1.0,0.0));
pangolin::OpenGlMatrix Tcw;
Tcw.SetIdentity();// Add named OpenGL viewport to window and provide 3D Handler
pangolin::View& d_cam = pangolin::CreateDisplay().SetBounds(0.0,1.0, pangolin::Attach::Pix(175),1.0,-1024.0f /768.0f).SetHandler(newpangolin::Handler3D(s_cam));while(1){glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
s_cam.Follow(Tcw);
d_cam.Activate(s_cam);glClearColor(1.0f,1.0f,1.0f,1.0f);
pangolin::FinishFrame();}return0;}
- 效果图如下
本文转载自: https://blog.csdn.net/qq_38589460/article/details/117934776
版权归原作者 落叶知秋了哟 所有, 如有侵权,请联系我们删除。
版权归原作者 落叶知秋了哟 所有, 如有侵权,请联系我们删除。