Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ch5: fix joinMap compile error in ubuntu 20.04 #181

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

keineahnung2345
Copy link
Contributor

In Ubuntu 20.04, fmt is required. Also, the variable named fmt should be avoided:

  • pangolin/pangolin.h has variable named fmt, so it should be included before sophus/se3.hpp. (This solves the error showed in my first commit message)
  • change the variable named fmt to imgfmt

switch pangolin and sophus header to solve the following error
```
[ 25%] Built target undistortImage
[ 50%] Built target stereoVision
[ 75%] Built target imageBasics
Scanning dependencies of target joinMap
[ 87%] Building CXX object rgbd/CMakeFiles/joinMap.dir/joinMap.cpp.o
In file included from /usr/local/include/sophus/common.hpp:43,
                 from /usr/local/include/sophus/types.hpp:8,
                 from /usr/local/include/sophus/rotation_matrix.hpp:10,
                 from /usr/local/include/sophus/so3.hpp:7,
                 from /usr/local/include/sophus/se3.hpp:7,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:5:
/home/ubt/Documents/installation/Pangolin/include/pangolin/image/typed_image.h: In constructor ‘pangolin::TypedImage::TypedImage(size_t, size_t, const pangolin::PixelFormat&)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/image/typed_image.h:45:34: error: expected identifier before ‘[’ token
   45 |         : Base(w,h,w*fmt.bpp/8), fmt(fmt)
      |                                  ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/image/typed_image.h:45:34: error: expected ‘{’ before ‘[’ token
/home/ubt/Documents/installation/Pangolin/include/pangolin/image/typed_image.h: In constructor ‘pangolin::TypedImage::TypedImage(size_t, size_t, const pangolin::PixelFormat&, size_t)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/image/typed_image.h:50:29: error: expected identifier before ‘[’ token
   50 |         : Base(w,h, pitch), fmt(fmt)
      |                             ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/image/typed_image.h:50:29: error: expected ‘{’ before ‘[’ token
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In member function ‘void pangolin::GlTexture::Load(const pangolin::TypedImage&, bool)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:230:17: error: structured binding declaration cannot have type ‘pangolin::GlPixFormat’
  230 |     GlPixFormat fmt(image.fmt);
      |                 ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:230:17: note: type must be cv-qualified ‘auto’ or reference to cv-qualified ‘auto’
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:230:17: error: empty structured binding declaration
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:230:17: error: expected primary-expression before ‘struct’
  230 |     GlPixFormat fmt(image.fmt);
      |                 ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:230:17: error: expected ‘}’ before ‘struct’
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:230:17: error: ‘result’ was not declared in this scope
  230 |     GlPixFormat fmt(image.fmt);
      |                 ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:230:17: error: template argument 1 is invalid
  230 |     GlPixFormat fmt(image.fmt);
      |                 ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:230:17: error: expected ‘>’ before ‘(’ token
  230 |     GlPixFormat fmt(image.fmt);
      |                 ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:230:17: error: return-statement with a value, in function returning ‘void’ [-fpermissive]
  230 |     GlPixFormat fmt(image.fmt);
      |                 ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:230:17: error: expected unqualified-id before ‘)’ token
  230 |     GlPixFormat fmt(image.fmt);
      |                 ^~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:231:17: error: expected constructor, destructor, or type conversion before ‘(’ token
  231 |     Reinitialise((GLint)image.w, (GLint)image.h, GL_RGBA32F, sampling_linear, 0, fmt.glformat, fmt.gltype, image.ptr );
      |                 ^
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:234:13: error: ‘GlTexture’ has not been declared
  234 | inline void GlTexture::LoadFromFile(const std::string& filename, bool sampling_linear)
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void LoadFromFile(const string&, bool)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:236:5: error: ‘TypedImage’ was not declared in this scope; did you mean ‘pangolin::TypedImage’?
  236 |     TypedImage image = LoadImage(filename);
      |     ^~~~~~~~~~
      |     pangolin::TypedImage
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/image/image_io.h:32,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:32,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/image/typed_image.h:35:8: note: ‘pangolin::TypedImage’ declared here
   35 | struct TypedImage : public ManagedImage<unsigned char>
      |        ^~~~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:237:10: error: ‘image’ was not declared in this scope
  237 |     Load(image, sampling_linear);
      |          ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:237:5: error: ‘Load’ was not declared in this scope
  237 |     Load(image, sampling_linear);
      |     ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:241:13: error: ‘GlTexture’ has not been declared
  241 | inline void GlTexture::Download(void* image, GLenum data_layout, GLenum data_type) const
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:241:84: error: non-member function ‘void Download(void*, GLenum, GLenum)’ cannot have cv-qualifier
  241 | inline void GlTexture::Download(void* image, GLenum data_layout, GLenum data_type) const
      |                                                                                    ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Download(void*, GLenum, GLenum)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:243:5: error: ‘Bind’ was not declared in this scope
  243 |     Bind();
      |     ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:245:5: error: ‘Unbind’ was not declared in this scope
  245 |     Unbind();
      |     ^~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:248:13: error: ‘GlTexture’ has not been declared
  248 | inline void GlTexture::Download(TypedImage& image) const
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:248:33: error: variable or field ‘Download’ declared void
  248 | inline void GlTexture::Download(TypedImage& image) const
      |                                 ^~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:248:33: error: ‘TypedImage’ was not declared in this scope; did you mean ‘pangolin::TypedImage’?
  248 | inline void GlTexture::Download(TypedImage& image) const
      |                                 ^~~~~~~~~~
      |                                 pangolin::TypedImage
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/image/image_io.h:32,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:32,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/image/typed_image.h:35:8: note: ‘pangolin::TypedImage’ declared here
   35 | struct TypedImage : public ManagedImage<unsigned char>
      |        ^~~~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:248:45: error: ‘image’ was not declared in this scope
  248 | inline void GlTexture::Download(TypedImage& image) const
      |                                             ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:301:13: error: ‘GlTexture’ has not been declared
  301 | inline void GlTexture::CopyFrom(const GlTexture& tex)
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:301:39: error: ‘GlTexture’ does not name a type; did you mean ‘glIsTexture’?
  301 | inline void GlTexture::CopyFrom(const GlTexture& tex)
      |                                       ^~~~~~~~~
      |                                       glIsTexture
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void CopyFrom(const int&)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:303:9: error: ‘tid’ was not declared in this scope
  303 |     if(!tid || width != tex.width || height != tex.height ||
      |         ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:303:16: error: ‘width’ was not declared in this scope; did you mean ‘wcwidth’?
  303 |     if(!tid || width != tex.width || height != tex.height ||
      |                ^~~~~
      |                wcwidth
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:303:29: error: request for member ‘width’ in ‘tex’, which is of non-class type ‘const int’
  303 |     if(!tid || width != tex.width || height != tex.height ||
      |                             ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:303:38: error: ‘height’ was not declared in this scope
  303 |     if(!tid || width != tex.width || height != tex.height ||
      |                                      ^~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:303:52: error: request for member ‘height’ in ‘tex’, which is of non-class type ‘const int’
  303 |     if(!tid || width != tex.width || height != tex.height ||
      |                                                    ^~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:304:8: error: ‘internal_format’ was not declared in this scope
  304 |        internal_format != tex.internal_format)
      |        ^~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:304:31: error: request for member ‘internal_format’ in ‘tex’, which is of non-class type ‘const int’
  304 |        internal_format != tex.internal_format)
      |                               ^~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:306:26: error: request for member ‘width’ in ‘tex’, which is of non-class type ‘const int’
  306 |         Reinitialise(tex.width, tex.height, tex.internal_format, true);
      |                          ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:306:37: error: request for member ‘height’ in ‘tex’, which is of non-class type ‘const int’
  306 |         Reinitialise(tex.width, tex.height, tex.internal_format, true);
      |                                     ^~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:306:49: error: request for member ‘internal_format’ in ‘tex’, which is of non-class type ‘const int’
  306 |         Reinitialise(tex.width, tex.height, tex.internal_format, true);
      |                                                 ^~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:306:9: error: ‘Reinitialise’ was not declared in this scope
  306 |         Reinitialise(tex.width, tex.height, tex.internal_format, true);
      |         ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:309:28: error: request for member ‘tid’ in ‘tex’, which is of non-class type ‘const int’
  309 |     glCopyImageSubData(tex.tid, GL_TEXTURE_2D, 0, 0, 0, 0,
      |                            ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:310:24: error: ‘tid’ was not declared in this scope
  310 |                        tid, GL_TEXTURE_2D, 0, 0, 0, 0,
      |                        ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:311:24: error: ‘width’ was not declared in this scope; did you mean ‘wcwidth’?
  311 |                        width, height, 1);
      |                        ^~~~~
      |                        wcwidth
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:311:31: error: ‘height’ was not declared in this scope
  311 |                        width, height, 1);
      |                               ^~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:315:13: error: ‘GlTexture’ has not been declared
  315 | inline void GlTexture::Save(const std::string& filename, bool top_line_first)
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Save(const string&, bool)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:317:5: error: ‘TypedImage’ was not declared in this scope; did you mean ‘pangolin::TypedImage’?
  317 |     TypedImage image;
      |     ^~~~~~~~~~
      |     pangolin::TypedImage
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/image/image_io.h:32,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:32,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/image/typed_image.h:35:8: note: ‘pangolin::TypedImage’ declared here
   35 | struct TypedImage : public ManagedImage<unsigned char>
      |        ^~~~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:318:14: error: ‘image’ was not declared in this scope
  318 |     Download(image);
      |              ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:323:13: error: ‘GlTexture’ has not been declared
  323 | inline void GlTexture::SetLinear()
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void SetLinear()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:325:5: error: ‘Bind’ was not declared in this scope
  325 |     Bind();
      |     ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:328:5: error: ‘Unbind’ was not declared in this scope
  328 |     Unbind();
      |     ^~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:331:13: error: ‘GlTexture’ has not been declared
  331 | inline void GlTexture::SetNearestNeighbour()
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void SetNearestNeighbour()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:333:5: error: ‘Bind’ was not declared in this scope
  333 |     Bind();
      |     ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:336:5: error: ‘Unbind’ was not declared in this scope
  336 |     Unbind();
      |     ^~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:339:13: error: ‘GlTexture’ has not been declared
  339 | inline void GlTexture::RenderToViewport(const bool flip) const
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:339:58: error: non-member function ‘void RenderToViewport(bool)’ cannot have cv-qualifier
  339 | inline void GlTexture::RenderToViewport(const bool flip) const
      |                                                          ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void RenderToViewport(bool)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:342:9: error: ‘RenderToViewportFlipY’ was not declared in this scope; did you mean ‘RenderToViewport’?
  342 |         RenderToViewportFlipY();
      |         ^~~~~~~~~~~~~~~~~~~~~
      |         RenderToViewport
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:344:26: error: too few arguments to function ‘void RenderToViewport(bool)’
  344 |         RenderToViewport();
      |                          ^
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:339:13: note: declared here
  339 | inline void GlTexture::RenderToViewport(const bool flip) const
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:348:13: error: ‘GlTexture’ has not been declared
  348 | inline void GlTexture::RenderToViewport() const
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:348:43: error: non-member function ‘void RenderToViewport()’ cannot have cv-qualifier
  348 | inline void GlTexture::RenderToViewport() const
      |                                           ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void RenderToViewport()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:364:5: error: ‘Bind’ was not declared in this scope
  364 |     Bind();
      |     ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:374:13: error: ‘GlTexture’ has not been declared
  374 | inline void GlTexture::RenderToViewport(Viewport tex_vp, bool flipx, bool flipy) const
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:374:41: error: variable or field ‘RenderToViewport’ declared void
  374 | inline void GlTexture::RenderToViewport(Viewport tex_vp, bool flipx, bool flipy) const
      |                                         ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:374:41: error: ‘Viewport’ was not declared in this scope; did you mean ‘pangolin::Viewport’?
  374 | inline void GlTexture::RenderToViewport(Viewport tex_vp, bool flipx, bool flipy) const
      |                                         ^~~~~~~~
      |                                         pangolin::Viewport
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:30,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/display/viewport.h:37:24: note: ‘pangolin::Viewport’ declared here
   37 | struct PANGOLIN_EXPORT Viewport
      |                        ^~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:374:58: error: expected primary-expression before ‘bool’
  374 | inline void GlTexture::RenderToViewport(Viewport tex_vp, bool flipx, bool flipy) const
      |                                                          ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:374:70: error: expected primary-expression before ‘bool’
  374 | inline void GlTexture::RenderToViewport(Viewport tex_vp, bool flipx, bool flipy) const
      |                                                                      ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:408:13: error: ‘GlTexture’ has not been declared
  408 | inline void GlTexture::RenderToViewportFlipY() const
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:408:48: error: non-member function ‘void RenderToViewportFlipY()’ cannot have cv-qualifier
  408 | inline void GlTexture::RenderToViewportFlipY() const
      |                                                ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void RenderToViewportFlipY()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:424:5: error: ‘Bind’ was not declared in this scope
  424 |     Bind();
      |     ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:434:13: error: ‘GlTexture’ has not been declared
  434 | inline void GlTexture::RenderToViewportFlipXFlipY() const
      |             ^~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:434:53: error: non-member function ‘void RenderToViewportFlipXFlipY()’ cannot have cv-qualifier
  434 | inline void GlTexture::RenderToViewportFlipXFlipY() const
      |                                                     ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void RenderToViewportFlipXFlipY()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:450:5: error: ‘Bind’ was not declared in this scope
  450 |     Bind();
      |     ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:462:8: error: ‘GlRenderBuffer’ does not name a type; did you mean ‘glReadBuffer’?
  462 | inline GlRenderBuffer::GlRenderBuffer()
      |        ^~~~~~~~~~~~~~
      |        glReadBuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:467:8: error: ‘GlRenderBuffer’ does not name a type; did you mean ‘glReadBuffer’?
  467 | inline GlRenderBuffer::GlRenderBuffer(GLint width, GLint height, GLint internal_format )
      |        ^~~~~~~~~~~~~~
      |        glReadBuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:474:13: error: ‘GlRenderBuffer’ has not been declared
  474 | inline void GlRenderBuffer::Reinitialise(GLint width, GLint height, GLint internal_format)
      |             ^~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Reinitialise(GLint, GLint, GLint)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:476:9: error: invalid use of ‘this’ in non-member function
  476 |     if( this->width != 0 ) {
      |         ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:477:38: error: ‘rbid’ was not declared in this scope
  477 |         glDeleteRenderbuffersEXT(1, &rbid);
      |                                      ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:480:5: error: invalid use of ‘this’ in non-member function
  480 |     this->width = width;
      |     ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:481:5: error: invalid use of ‘this’ in non-member function
  481 |     this->height = height;
      |     ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:482:31: error: ‘rbid’ was not declared in this scope
  482 |     glGenRenderbuffersEXT(1, &rbid);
      |                               ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:488:8: error: ‘GlRenderBuffer’ does not name a type; did you mean ‘glReadBuffer’?
  488 | inline GlRenderBuffer::~GlRenderBuffer()
      |        ^~~~~~~~~~~~~~
      |        glReadBuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:525:8: error: ‘GlRenderBuffer’ does not name a type; did you mean ‘glReadBuffer’?
  525 | inline GlRenderBuffer::GlRenderBuffer(GlRenderBuffer&& tex)
      |        ^~~~~~~~~~~~~~
      |        glReadBuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:533:8: error: ‘GlFramebuffer’ does not name a type; did you mean ‘glIsFramebuffer’?
  533 | inline GlFramebuffer::GlFramebuffer()
      |        ^~~~~~~~~~~~~
      |        glIsFramebuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:538:8: error: ‘GlFramebuffer’ does not name a type; did you mean ‘glIsFramebuffer’?
  538 | inline GlFramebuffer::~GlFramebuffer()
      |        ^~~~~~~~~~~~~
      |        glIsFramebuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:545:8: error: ‘GlFramebuffer’ does not name a type; did you mean ‘glIsFramebuffer’?
  545 | inline GlFramebuffer::GlFramebuffer(GlTexture& colour, GlRenderBuffer& depth)
      |        ^~~~~~~~~~~~~
      |        glIsFramebuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:554:8: error: ‘GlFramebuffer’ does not name a type; did you mean ‘glIsFramebuffer’?
  554 | inline GlFramebuffer::GlFramebuffer(GlTexture& colour0, GlTexture& colour1, GlRenderBuffer& depth)
      |        ^~~~~~~~~~~~~
      |        glIsFramebuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:564:8: error: ‘GlFramebuffer’ does not name a type; did you mean ‘glIsFramebuffer’?
  564 | inline GlFramebuffer::GlFramebuffer(GlTexture& colour0, GlTexture& colour1, GlTexture& colour2, GlRenderBuffer& depth)
      |        ^~~~~~~~~~~~~
      |        glIsFramebuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:575:8: error: ‘GlFramebuffer’ does not name a type; did you mean ‘glIsFramebuffer’?
  575 | inline GlFramebuffer::GlFramebuffer(GlTexture& colour0, GlTexture& colour1, GlTexture& colour2, GlTexture& colour3, GlRenderBuffer& depth)
      |        ^~~~~~~~~~~~~
      |        glIsFramebuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:587:13: error: ‘GlFramebuffer’ has not been declared
  587 | inline void GlFramebuffer::Bind() const
      |             ^~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:587:35: error: non-member function ‘void Bind()’ cannot have cv-qualifier
  587 | inline void GlFramebuffer::Bind() const
      |                                   ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Bind()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:589:46: error: ‘fbid’ was not declared in this scope
  589 |     glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbid);
      |                                              ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:591:20: error: ‘attachments’ was not declared in this scope
  591 |     glDrawBuffers( attachments, attachment_buffers );
      |                    ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:591:33: error: ‘attachment_buffers’ was not declared in this scope; did you mean ‘pangolin::attachment_buffers’?
  591 |     glDrawBuffers( attachments, attachment_buffers );
      |                                 ^~~~~~~~~~~~~~~~~~
      |                                 pangolin::attachment_buffers
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:46:21: note: ‘pangolin::attachment_buffers’ declared here
   46 | const static GLuint attachment_buffers[] = {
      |                     ^~~~~~~~~~~~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:595:13: error: ‘GlFramebuffer’ has not been declared
  595 | inline void GlFramebuffer::Reinitialise()
      |             ^~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Reinitialise()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:597:8: error: ‘fbid’ was not declared in this scope
  597 |     if(fbid) {
      |        ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:600:30: error: ‘fbid’ was not declared in this scope
  600 |     glGenFramebuffersEXT(1, &fbid);
      |                              ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:603:13: error: ‘GlFramebuffer’ has not been declared
  603 | inline void GlFramebuffer::Unbind() const
      |             ^~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:603:37: error: non-member function ‘void Unbind()’ cannot have cv-qualifier
  603 | inline void GlFramebuffer::Unbind() const
      |                                     ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Unbind()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:606:23: error: ‘attachment_buffers’ was not declared in this scope; did you mean ‘pangolin::attachment_buffers’?
  606 |     glDrawBuffers( 1, attachment_buffers );
      |                       ^~~~~~~~~~~~~~~~~~
      |                       pangolin::attachment_buffers
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:46:21: note: ‘pangolin::attachment_buffers’ declared here
   46 | const static GLuint attachment_buffers[] = {
      |                     ^~~~~~~~~~~~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:611:15: error: ‘GlFramebuffer’ has not been declared
  611 | inline GLenum GlFramebuffer::AttachColour(GlTexture& tex )
      |               ^~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:611:43: error: ‘GlTexture’ was not declared in this scope; did you mean ‘pangolin::GlTexture’?
  611 | inline GLenum GlFramebuffer::AttachColour(GlTexture& tex )
      |                                           ^~~~~~~~~
      |                                           pangolin::GlTexture
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:53:23: note: ‘pangolin::GlTexture’ declared here
   53 | class PANGOLIN_EXPORT GlTexture
      |                       ^~~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:611:54: error: ‘tex’ was not declared in this scope; did you mean ‘timex’?
  611 | inline GLenum GlFramebuffer::AttachColour(GlTexture& tex )
      |                                                      ^~~
      |                                                      timex
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:624:13: error: ‘GlFramebuffer’ has not been declared
  624 | inline void GlFramebuffer::AttachDepth(GlRenderBuffer& rb )
      |             ^~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:624:40: error: variable or field ‘AttachDepth’ declared void
  624 | inline void GlFramebuffer::AttachDepth(GlRenderBuffer& rb )
      |                                        ^~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:624:40: error: ‘GlRenderBuffer’ was not declared in this scope; did you mean ‘pangolin::GlRenderBuffer’?
  624 | inline void GlFramebuffer::AttachDepth(GlRenderBuffer& rb )
      |                                        ^~~~~~~~~~~~~~
      |                                        pangolin::GlRenderBuffer
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:124:24: note: ‘pangolin::GlRenderBuffer’ declared here
  124 | struct PANGOLIN_EXPORT GlRenderBuffer
      |                        ^~~~~~~~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:624:56: error: ‘rb’ was not declared in this scope
  624 | inline void GlFramebuffer::AttachDepth(GlRenderBuffer& rb )
      |                                                        ^~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:642:8: error: ‘GlBufferData’ does not name a type; did you mean ‘glBufferData’?
  642 | inline GlBufferData::GlBufferData()
      |        ^~~~~~~~~~~~
      |        glBufferData
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:647:8: error: ‘GlBufferData’ does not name a type; did you mean ‘glBufferData’?
  647 | inline GlBufferData::GlBufferData(GlBufferType buffer_type, GLuint size_bytes, GLenum gluse, const unsigned char* data )
      |        ^~~~~~~~~~~~
      |        glBufferData
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:654:8: error: ‘GlBufferData’ does not name a type; did you mean ‘glBufferData’?
  654 | inline GlBufferData::GlBufferData(GlBufferData&& tex)
      |        ^~~~~~~~~~~~
      |        glBufferData
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:659:8: error: ‘GlBufferData’ does not name a type; did you mean ‘glBufferData’?
  659 | inline GlBufferData& GlBufferData::operator=(GlBufferData&& tex)
      |        ^~~~~~~~~~~~
      |        glBufferData
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:670:8: error: ‘GlBufferData’ does not name a type; did you mean ‘glBufferData’?
  670 | inline GlBufferData::~GlBufferData()
      |        ^~~~~~~~~~~~
      |        glBufferData
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:675:13: error: ‘GlBufferData’ has not been declared
  675 | inline void GlBufferData::Free()
      |             ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Free()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:677:8: error: ‘bo’ was not declared in this scope
  677 |     if(bo!=0) {
      |        ^~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:682:13: error: ‘GlBufferData’ has not been declared
  682 | inline bool GlBufferData::IsValid() const
      |             ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:682:37: error: non-member function ‘bool IsValid()’ cannot have cv-qualifier
  682 | inline bool GlBufferData::IsValid() const
      |                                     ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘bool IsValid()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:684:12: error: ‘bo’ was not declared in this scope
  684 |     return bo != 0;
      |            ^~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:687:15: error: ‘GlBufferData’ has not been declared
  687 | inline size_t GlBufferData::SizeBytes() const
      |               ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:687:41: error: non-member function ‘size_t SizeBytes()’ cannot have cv-qualifier
  687 | inline size_t GlBufferData::SizeBytes() const
      |                                         ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘size_t SizeBytes()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:689:12: error: ‘size_bytes’ was not declared in this scope; did you mean ‘SizeBytes’?
  689 |     return size_bytes;
      |            ^~~~~~~~~~
      |            SizeBytes
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:692:13: error: ‘GlBufferData’ has not been declared
  692 | inline void GlBufferData::Reinitialise(GlBufferType buffer_type, GLuint size_bytes, GLenum gluse, const unsigned char* data )
      |             ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:692:40: error: variable or field ‘Reinitialise’ declared void
  692 | inline void GlBufferData::Reinitialise(GlBufferType buffer_type, GLuint size_bytes, GLenum gluse, const unsigned char* data )
      |                                        ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:692:40: error: ‘GlBufferType’ was not declared in this scope; did you mean ‘pangolin::GlBufferType’?
  692 | inline void GlBufferData::Reinitialise(GlBufferType buffer_type, GLuint size_bytes, GLenum gluse, const unsigned char* data )
      |                                        ^~~~~~~~~~~~
      |                                        pangolin::GlBufferType
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:171:6: note: ‘pangolin::GlBufferType’ declared here
  171 | enum GlBufferType
      |      ^~~~~~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:692:73: error: expected primary-expression before ‘size_bytes’
  692 | inline void GlBufferData::Reinitialise(GlBufferType buffer_type, GLuint size_bytes, GLenum gluse, const unsigned char* data )
      |                                                                         ^~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:692:92: error: expected primary-expression before ‘gluse’
  692 | inline void GlBufferData::Reinitialise(GlBufferType buffer_type, GLuint size_bytes, GLenum gluse, const unsigned char* data )
      |                                                                                            ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:692:99: error: expected primary-expression before ‘const’
  692 | inline void GlBufferData::Reinitialise(GlBufferType buffer_type, GLuint size_bytes, GLenum gluse, const unsigned char* data )
      |                                                                                                   ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:707:13: error: ‘GlBufferData’ has not been declared
  707 | inline void GlBufferData::Bind() const
      |             ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:707:34: error: non-member function ‘void Bind()’ cannot have cv-qualifier
  707 | inline void GlBufferData::Bind() const
      |                                  ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:707:13: error: redefinition of ‘void Bind()’
  707 | inline void GlBufferData::Bind() const
      |             ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:587:13: note: ‘void Bind()’ previously defined here
  587 | inline void GlFramebuffer::Bind() const
      |             ^~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Bind()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:709:18: error: ‘buffer_type’ was not declared in this scope
  709 |     glBindBuffer(buffer_type, bo);
      |                  ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:709:31: error: ‘bo’ was not declared in this scope
  709 |     glBindBuffer(buffer_type, bo);
      |                               ^~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:712:13: error: ‘GlBufferData’ has not been declared
  712 | inline void GlBufferData::Unbind() const
      |             ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:712:36: error: non-member function ‘void Unbind()’ cannot have cv-qualifier
  712 | inline void GlBufferData::Unbind() const
      |                                    ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:712:13: error: redefinition of ‘void Unbind()’
  712 | inline void GlBufferData::Unbind() const
      |             ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:603:13: note: ‘void Unbind()’ previously defined here
  603 | inline void GlFramebuffer::Unbind() const
      |             ^~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Unbind()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:714:18: error: ‘buffer_type’ was not declared in this scope
  714 |     glBindBuffer(buffer_type, 0);
      |                  ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:717:13: error: ‘GlBufferData’ has not been declared
  717 | inline void GlBufferData::Upload(const GLvoid* data, GLsizeiptr size_bytes, GLintptr offset)
      |             ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Upload(const GLvoid*, GLsizeiptr, GLintptr)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:719:30: error: invalid use of ‘this’ in non-member function
  719 |     if(offset + size_bytes > this->size_bytes) {
      |                              ^~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:724:21: error: ‘buffer_type’ was not declared in this scope
  724 |     glBufferSubData(buffer_type,offset,size_bytes,data);
      |                     ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:728:13: error: ‘GlBufferData’ has not been declared
  728 | inline void GlBufferData::Download(GLvoid* data, GLsizeiptr size_bytes, GLintptr offset) const
      |             ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:728:90: error: non-member function ‘void Download(GLvoid*, GLsizeiptr, GLintptr)’ cannot have cv-qualifier
  728 | inline void GlBufferData::Download(GLvoid* data, GLsizeiptr size_bytes, GLintptr offset) const
      |                                                                                          ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Download(GLvoid*, GLsizeiptr, GLintptr)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:731:24: error: ‘buffer_type’ was not declared in this scope
  731 |     glGetBufferSubData(buffer_type, offset, size_bytes, data);
      |                        ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:737:8: error: ‘GlBuffer’ does not name a type; did you mean ‘glIsBuffer’?
  737 | inline GlBuffer::GlBuffer()
      |        ^~~~~~~~
      |        glIsBuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:742:8: error: ‘GlBuffer’ does not name a type; did you mean ‘glIsBuffer’?
  742 | inline GlBuffer::GlBuffer(GlBufferType buffer_type, GLuint num_elements, GLenum datatype, GLuint count_per_element, GLenum gluse )
      |        ^~~~~~~~
      |        glIsBuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:749:8: error: ‘GlBuffer’ does not name a type; did you mean ‘glIsBuffer’?
  749 | inline GlBuffer::GlBuffer(GlBuffer&& o)
      |        ^~~~~~~~
      |        glIsBuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:755:8: error: ‘GlBuffer’ does not name a type; did you mean ‘glIsBuffer’?
  755 | inline GlBuffer& GlBuffer::operator=(GlBuffer&& o)
      |        ^~~~~~~~
      |        glIsBuffer
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:764:13: error: ‘GlBuffer’ has not been declared
  764 | inline void GlBuffer::Reinitialise(GlBufferType buffer_type, GLuint num_elements, GLenum datatype, GLuint count_per_element, GLenum gluse, const unsigned char* data )
      |             ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:764:36: error: variable or field ‘Reinitialise’ declared void
  764 | inline void GlBuffer::Reinitialise(GlBufferType buffer_type, GLuint num_elements, GLenum datatype, GLuint count_per_element, GLenum gluse, const unsigned char* data )
      |                                    ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:764:36: error: ‘GlBufferType’ was not declared in this scope; did you mean ‘pangolin::GlBufferType’?
  764 | inline void GlBuffer::Reinitialise(GlBufferType buffer_type, GLuint num_elements, GLenum datatype, GLuint count_per_element, GLenum gluse, const unsigned char* data )
      |                                    ^~~~~~~~~~~~
      |                                    pangolin::GlBufferType
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:171:6: note: ‘pangolin::GlBufferType’ declared here
  171 | enum GlBufferType
      |      ^~~~~~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:764:69: error: expected primary-expression before ‘num_elements’
  764 | inline void GlBuffer::Reinitialise(GlBufferType buffer_type, GLuint num_elements, GLenum datatype, GLuint count_per_element, GLenum gluse, const unsigned char* data )
      |                                                                     ^~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:764:90: error: expected primary-expression before ‘datatype’
  764 | inline void GlBuffer::Reinitialise(GlBufferType buffer_type, GLuint num_elements, GLenum datatype, GLuint count_per_element, GLenum gluse, const unsigned char* data )
      |                                                                                          ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:764:107: error: expected primary-expression before ‘count_per_element’
  764 | inline void GlBuffer::Reinitialise(GlBufferType buffer_type, GLuint num_elements, GLenum datatype, GLuint count_per_element, GLenum gluse, const unsigned char* data )
      |                                                                                                           ^~~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:764:133: error: expected primary-expression before ‘gluse’
  764 | inline void GlBuffer::Reinitialise(GlBufferType buffer_type, GLuint num_elements, GLenum datatype, GLuint count_per_element, GLenum gluse, const unsigned char* data )
      |                                                                                                                                     ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:764:140: error: expected primary-expression before ‘const’
  764 | inline void GlBuffer::Reinitialise(GlBufferType buffer_type, GLuint num_elements, GLenum datatype, GLuint count_per_element, GLenum gluse, const unsigned char* data )
      |                                                                                                                                            ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:773:13: error: ‘GlBuffer’ has not been declared
  773 | inline void GlBuffer::Reinitialise(GlBuffer const& other )
      |             ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:773:45: error: variable or field ‘Reinitialise’ declared void
  773 | inline void GlBuffer::Reinitialise(GlBuffer const& other )
      |                                             ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:773:36: error: ‘GlBuffer’ was not declared in this scope; did you mean ‘pangolin::GlBuffer’?
  773 | inline void GlBuffer::Reinitialise(GlBuffer const& other )
      |                                    ^~~~~~~~
      |                                    pangolin::GlBuffer
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:218:24: note: ‘pangolin::GlBuffer’ declared here
  218 | struct PANGOLIN_EXPORT GlBuffer : public GlBufferData
      |                        ^~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:778:13: error: ‘GlBuffer’ has not been declared
  778 | inline void GlBuffer::Resize(GLuint new_num_elements)
      |             ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Resize(GLuint)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:780:8: error: ‘bo’ was not declared in this scope
  780 |     if(bo!=0) {
      |        ^~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:783:66: error: ‘num_elements’ was not declared in this scope; did you mean ‘new_num_elements’?
  783 |         const size_t backup_elements = std::min(new_num_elements,num_elements);
      |                                                                  ^~~~~~~~~~~~
      |                                                                  new_num_elements
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:784:74: error: ‘datatype’ was not declared in this scope
  784 |         const size_t backup_size_bytes = backup_elements*GlDataTypeBytes(datatype)*count_per_element;
      |                                                                          ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:784:58: error: ‘GlDataTypeBytes’ was not declared in this scope; did you mean ‘pangolin::GlDataTypeBytes’?
  784 |         const size_t backup_size_bytes = backup_elements*GlDataTypeBytes(datatype)*count_per_element;
      |                                                          ^~~~~~~~~~~~~~~
      |                                                          pangolin::GlDataTypeBytes
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:88:15: note: ‘pangolin::GlDataTypeBytes’ declared here
   88 | inline size_t GlDataTypeBytes(GLenum type)
      |               ^~~~~~~~~~~~~~~
In file included from /home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.h:273,
                 from /home/ubt/Documents/installation/Pangolin/include/pangolin/pangolin.h:33,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:6:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:784:84: error: ‘count_per_element’ was not declared in this scope
  784 |         const size_t backup_size_bytes = backup_elements*GlDataTypeBytes(datatype)*count_per_element;
      |                                                                                    ^~~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:787:28: error: ‘buffer_type’ was not declared in this scope
  787 |         glGetBufferSubData(buffer_type, 0, backup_size_bytes, backup);
      |                            ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:788:100: error: ‘gluse’ was not declared in this scope
  788 |         glBufferData(buffer_type, new_num_elements*GlDataTypeBytes(datatype)*count_per_element, 0, gluse);
      |                                                                                                    ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:796:22: error: ‘buffer_type’ was not declared in this scope
  796 |         Reinitialise(buffer_type, new_num_elements, datatype, count_per_element, gluse);
      |                      ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:796:53: error: ‘datatype’ was not declared in this scope
  796 |         Reinitialise(buffer_type, new_num_elements, datatype, count_per_element, gluse);
      |                                                     ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:796:63: error: ‘count_per_element’ was not declared in this scope
  796 |         Reinitialise(buffer_type, new_num_elements, datatype, count_per_element, gluse);
      |                                                               ^~~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:796:82: error: ‘gluse’ was not declared in this scope
  796 |         Reinitialise(buffer_type, new_num_elements, datatype, count_per_element, gluse);
      |                                                                                  ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:798:5: error: ‘num_elements’ was not declared in this scope; did you mean ‘new_num_elements’?
  798 |     num_elements = new_num_elements;
      |     ^~~~~~~~~~~~
      |     new_num_elements
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:804:8: error: ‘GlSizeableBuffer’ does not name a type
  804 | inline GlSizeableBuffer::GlSizeableBuffer(GlBufferType buffer_type, GLuint initial_num_elements, GLenum datatype, GLuint count_per_element, GLenum gluse )
      |        ^~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:810:13: error: ‘GlSizeableBuffer’ has not been declared
  810 | inline void GlSizeableBuffer::Clear()
      |             ^~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Clear()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:812:5: error: ‘m_num_verts’ was not declared in this scope
  812 |     m_num_verts = 0;
      |     ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:817:6: error: ‘GlSizeableBuffer’ has not been declared
  817 | void GlSizeableBuffer::Add(const Eigen::DenseBase<Derived>& vec)
      |      ^~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Add(const Eigen::DenseBase<Derived>&)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:821:17: error: ‘m_num_verts’ was not declared in this scope
  821 |     CheckResize(m_num_verts + 1);
      |                 ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:821:5: error: there are no arguments to ‘CheckResize’ that depend on a template parameter, so a declaration of ‘CheckResize’ must be available [-fpermissive]
  821 |     CheckResize(m_num_verts + 1);
      |     ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:821:5: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:829:6: error: ‘GlSizeableBuffer’ has not been declared
  829 | void GlSizeableBuffer::Update(const Eigen::DenseBase<Derived>& vec, size_t position )
      |      ^~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void Update(const Eigen::DenseBase<Derived>&, size_t)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:837:5: error: ‘m_num_verts’ was not declared in this scope
  837 |     m_num_verts = std::max(position+vec.cols(), m_num_verts);
      |     ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:841:15: error: ‘GlSizeableBuffer’ has not been declared
  841 | inline size_t GlSizeableBuffer::start() const {
      |               ^~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:841:41: error: non-member function ‘size_t start()’ cannot have cv-qualifier
  841 | inline size_t GlSizeableBuffer::start() const {
      |                                         ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:845:15: error: ‘GlSizeableBuffer’ has not been declared
  845 | inline size_t GlSizeableBuffer::size() const {
      |               ^~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:845:40: error: non-member function ‘size_t size()’ cannot have cv-qualifier
  845 | inline size_t GlSizeableBuffer::size() const {
      |                                        ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘size_t size()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:846:12: error: ‘m_num_verts’ was not declared in this scope
  846 |     return m_num_verts;
      |            ^~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:849:13: error: ‘GlSizeableBuffer’ has not been declared
  849 | inline void GlSizeableBuffer::CheckResize(size_t num_verts)
      |             ^~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘void CheckResize(size_t)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:851:21: error: ‘GlBuffer’ has not been declared
  851 |     if( num_verts > GlBuffer::num_elements) {
      |                     ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:852:33: error: ‘NextSize’ was not declared in this scope
  852 |         const size_t new_size = NextSize(num_verts);
      |                                 ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:853:9: error: ‘GlBuffer’ has not been declared
  853 |         GlBuffer::Resize((GLuint)new_size);
      |         ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:857:15: error: ‘GlSizeableBuffer’ has not been declared
  857 | inline size_t GlSizeableBuffer::NextSize(size_t min_size) const
      |               ^~~~~~~~~~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:857:59: error: non-member function ‘size_t NextSize(size_t)’ cannot have cv-qualifier
  857 | inline size_t GlSizeableBuffer::NextSize(size_t min_size) const
      |                                                           ^~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: In function ‘size_t NextSize(size_t)’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:859:32: error: ‘GlBuffer’ has not been declared
  859 |     size_t new_size = std::max(GlBuffer::num_elements, 1u);
      |                                ^~~~~~~~
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp: At global scope:
/home/ubt/Documents/installation/Pangolin/include/pangolin/gl/gl.hpp:866:1: error: expected declaration before ‘}’ token
  866 | }
      | ^
In file included from /usr/local/include/sophus/common.hpp:43,
                 from /usr/local/include/sophus/types.hpp:8,
                 from /usr/local/include/sophus/rotation_matrix.hpp:10,
                 from /usr/local/include/sophus/so3.hpp:7,
                 from /usr/local/include/sophus/se3.hpp:7,
                 from /home/ubt/Documents/SLAMCourse/slambook2/ch5/rgbd/joinMap.cpp:5:
/home/ubt/Documents/installation/Pangolin/include/pangolin/video/stream_info.h: In constructor ‘pangolin::StreamInfo::StreamInfo()’:
/home/ubt/Documents/installation/Pangolin/include/pangolin/video/stream_info.h:39:11: error: expected identifier before ‘[’ token
   39 |         : fmt(PixelFormatFromString("GRAY8")) {}
      |           ^~~
/home/ubt/Documents/installation/Pangolin/include/pangolin…
@xmba15
Copy link

xmba15 commented Nov 16, 2021

@keineahnung2345 I think this can be solved by adding Sophus library as Sophus::Sophus instead of ${Sophus_INCLUDE_DIRS}.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants