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

Commits on Jun 17, 2021

  1. Make ch5 compilable in ubuntu 20

    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…
    keineahnung2345 committed Jun 17, 2021
    Configuration menu
    Copy the full SHA
    66f75e8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ed0d9a3 View commit details
    Browse the repository at this point in the history