Code Monkey home page Code Monkey logo

scenegraphfusion's Introduction

I am a Ph.D. candidate at TUM, Germany. Research interests are 3D scene understanding and reconstruction.

  • 🔭 I’m currently working on
    • higher-level scene understanding
    • a novel scene representation

scenegraphfusion's People

Contributors

martinarroyo avatar shunchengwu avatar zohairhadi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

scenegraphfusion's Issues

Question on Evaluation Metrics

Thanks for your work and time.

Just would like to have a quick confirmation on three R@k evaluation metrics (Object Class Prediction, Predicate Prediction, and Relationship Prediction) used in your work [1] and 3DSSG [2]. Are they aligned with the popular evaluation metrics used in ImgVRD (such as PredCls, PhrDet, SGCls, SGGen and etc)? Please see my thoughts below and your comments are warmly welcomed!!

More specifically,
Given detected objects (which is achieved by class-agnostic instance mask I suppose), we compute:

  1. Object Class Prediction R@k: Is that actually the Top-K accuracy (i.e., for example Top-K Accu in Image Classification)?
  2. Predicate Prediction R@k: Is this PredCls? Or is this another Top-K Accuracy, by enumerating all possible 8 or 26 predicate_classes between a specific object pair?
  3. Relationship Prediction R@k: Is this SGCls? Or is this another Top-K score, by taking both (1) and (2) into consideration via triplet-multiplication?

[1] SceneGraphFusion: Incremental 3D Scene Graph Prediction from RGB-D Sequences
[2] Learning 3D Semantic Scene Graphs from 3D Indoor Reconstructions

Please......

Hello, I am a student studying in South Korea.

The following things were installed. that --> { Prerequisites,OpenCV, Eigen,Assimp,With GUI: , BUILD ( cmake -DBUILD_GUI=ON ..) }
I contacted you because there was an error in the process of executing the code.

My environment is ubuntu 18.04.5.

When I set BUILD_GRAPHPERED=ON when I set up cmake, there was an error that the onnxruntime library could not be found, so I set up -DBUILD_GUI=ON and ran cmake.

Next, I performed.

  1. git clone [email protected]:WaldJohannaU/3RScan.git
  2. cd 3RSan
  3. bash setup.sh
  4. ./exe_GraphSLAM --pth_in /3RScan/data/3RScan/4acaebcc-6c10-2a2a-858b-29c7e4fb410d/sequence/

Error :
(hobe) ailab@ailab:~/Desktop/hobe/SceneGraphFusion/bin$ ./exe_GraphSLAM --pth_in ../data/3RScan/4acaebcc-6c10-2a2a-858b-29c7e4fb410d/sequence/
I0910 14:59:18.666 main.cc:main:154] Buliding data loader...
detect data type: 3RScanterminate called after throwing an instance of 'std::runtime_error'
what(): unable to open _info file
Aborted (core dumped)

An error has occurred.
I'd appreciate it if you could help me.

Please contact [email protected] ....
Thank you

Bugs Report and Fix

  1. Bugs about invoke_result: build/include/eigen3/Eigen/src/Core/util/Meta.h:617:25: error: ‘invoke_result’ in namespace ‘std’ does not name a template type

    • This is a bug caused by not compiling with c++17. However, although the CMAKE_CXX_STANDARD flag is 17 in the CMakeList.txt, the bug still exists. The probable solution is to comment these lines in the head files, e.g., when compiling, change the code from

      #if EIGEN_HAS_STD_INVOKE_RESULT
      template<typename F, typename... ArgTypes>
      struct invoke_result {
         typedef typename std::invoke_result<F, ArgTypes...>::type type1;
         typedef typename remove_all<type1>::type type;
       };
       #elif EIGEN_HAS_CXX11
       template<typename F, typename... ArgTypes>
       struct invoke_result {
         typedef typename result_of<F(ArgTypes...)>::type type1;
         typedef typename remove_all<type1>::type type;
       };
       #else
       template<typename F, typename ArgType0 = void, typename ArgType1 = void, typename ArgType2 = void>
       struct invoke_result {
         typedef typename result_of<F(ArgType0, ArgType1, ArgType2)>::type type1;
         typedef typename remove_all<type1>::type type;
       };
      

      to

      /*#if EIGEN_HAS_STD_INVOKE_RESULT
      template<typename F, typename... ArgTypes>
      struct invoke_result {
         typedef typename std::invoke_result<F, ArgTypes...>::type type1;
         typedef typename remove_all<type1>::type type;
       };*/
       #if EIGEN_HAS_CXX11
       template<typename F, typename... ArgTypes>
       struct invoke_result {
         typedef typename result_of<F(ArgTypes...)>::type type1;
         typedef typename remove_all<type1>::type type;
       };
       #else
       template<typename F, typename ArgType0 = void, typename ArgType1 = void, typename ArgType2 = void>
       struct invoke_result {
         typedef typename result_of<F(ArgType0, ArgType1, ArgType2)>::type type1;
         typedef typename remove_all<type1>::type type;
       };
      

      You can do the same thing in other files when this bug emerges.

  2. Bugs about io: SceneGraphFusion/libGraphSLAMGUI/../renderer/Scan3R_json_loader.h:9:18: error: ‘io’ in namespace ‘::’ does not name a type

    • You just need to delete the "::io" in some related files.
  3. Bugs about clamp: SceneGraphFusion/libGraphSLAMGUI/graphDrawer/graph_drawer.cpp:81:23: error: ‘clamp’ is not a member of ‘std’

    • This is also a bug caused by C++ standard. You can change the clamp function from:

      float scale = std::clamp((5-std::sqrt(point.z()))/5.f,0.1f,1.f);

      to

      float scale = (5-std::sqrt(point.z()))/5.f;
      if (scale < 0.1f)
      {
        scale = 0.1f;
      } 
      else if (scale > 1.f)
      {
        scale = 1.f;
      }
  4. Bugs about atomoic: it emerges in the

    std::atomic_int instance_idx = 0;
    and
    std::atomic_bool mbNeedUpdateNodeFeature = false;
    .

    • It may be also caused by c++17 standard. You can change them to

      std::atomic_int instance_idx = {0};
      std::atomic_bool mbNeedUpdateNodeFeature = {false};
  5. std::unique_lock lock_node(mMutNode);

    • This line should be changed to std::unique_lock<std::mutex> lock_node(mMutNode);
  6. About eigen

    • If this bug emege, you may build and install the eigen3 from source.
  7. Bugs about freetype2 (I guess it may be caused by HarfBuzz), the error may emerge as: SceneGraphFusion/build/external/FreeType2/src/autofit/afscript.h:35:11: error: ‘HB_SCRIPT_ADLAM’ undeclared here (not in a function) and SceneGraphFusion/build/external/FreeType2/src/autofit/afscript.h:278:11: error: ‘HB_SCRIPT_OSAGE’ undeclared here (not in a function)

    • The temporary solution is to find out the associated lines in these head files and comment them. Another head file is afstyle.h.
  8. When running the executable file, you should put the 3RScan.json and objects.json(from 3DSSG) under the correct directory. E.g., if the --pth_in is scans/sequence_idxxxx/sequence/, you should put these two files under scans/

  9. It seems that the GUI does not support remote X forward, i.e., if you compile the project on a remote server and run it on the local computer, the error may emerge: Error: GLX: Forward compatibility requested but GLX_ARB_create_context_profile is unavailable. Finally I compiled it on the local computer with an NVIDIA GPU.

Question about output of each frame RGB, Depth image

Hello, it's a great work!
I want to know where is the output (i.e., nodes, edges, pointcloud after instance segmentation) of each pair of RGBD images?
I searched but don't get it.
Looking forward to your reply!

InSegLib linking errors

I'm trying to port SceneGraphFusion to Windows. It's compiling now, but I'm getting linking errors with the InSegLib.

LNK2019	unresolved external symbol "public: __cdecl inseg_lib::Map::~Map(void)" (??1Map@inseg_lib@@QEAA@XZ) referenced in function "public: __cdecl inseg_lib::InSegReconstruction::~InSegReconstruction(void)" (??1InSegReconstruction@inseg_lib@@QEAA@XZ)
LNK2019	unresolved external symbol "public: bool __cdecl inseg_lib::Map::SaveModel(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int,class Eigen::Matrix<float,4,4,0,4,4>)const " (?SaveModel@Map@inseg_lib@@QEBA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HV?$Matrix@M$03$03$0A@$03$03@Eigen@@@Z) referenced in function "public: void __cdecl PSLAM::GraphSLAM::SaveModel(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (?SaveModel@GraphSLAM@PSLAM@@QEBAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
LNK2019	unresolved external symbol "class cv::Vec<unsigned char,3> const & __cdecl inseg_lib::CalculateLabelColor(short)" (?CalculateLabelColor@inseg_lib@@YAAEBV?$Vec@E$02@cv@@F@Z) referenced in function "public: void __cdecl PSLAM::GraphSLAM::SaveNodesToPLY(int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,enum PSLAM::GraphSLAM::SAVECOLORMODE,bool)" (?SaveNodesToPLY@GraphSLAM@PSLAM@@QEAAXHAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@W4SAVECOLORMODE@12@_N@Z)
LNK2001	unresolved external symbol "class cv::Vec<unsigned char,3> const & __cdecl inseg_lib::CalculateLabelColor(short)" (?CalculateLabelColor@inseg_lib@@YAAEBV?$Vec@E$02@cv@@F@Z)
LNK2019	unresolved external symbol "public: __cdecl inseg_lib::InSegLib::InSegLib(class std::shared_ptr<class inseg_lib::SegmentsInterface>,struct inseg_lib::InSegConfig &,struct inseg_lib::MainConfig &,struct inseg_lib::MapConfig &,struct inseg_lib::SegmentationConfig const &)" (??0InSegLib@inseg_lib@@QEAA@V?$shared_ptr@VSegmentsInterface@inseg_lib@@@std@@AEAUInSegConfig@1@AEAUMainConfig@1@AEAUMapConfig@1@AEBUSegmentationConfig@1@@Z) referenced in function "public: __cdecl std::_Ref_count_obj<class inseg_lib::InSegLib>::_Ref_count_obj<class inseg_lib::InSegLib><class std::shared_ptr<class PSLAM::Graph> &,struct inseg_lib::InSegConfig &,struct inseg_lib::MainConfig &,struct inseg_lib::MapConfig &,struct inseg_lib::SegmentationConfig &>(class std::shared_ptr<class PSLAM::Graph> &,struct inseg_lib::InSegConfig &,struct inseg_lib::MainConfig &,struct inseg_lib::MapConfig &,struct inseg_lib::SegmentationConfig &)" (??$?0AEAV?$shared_ptr@VGraph@PSLAM@@@std@@AEAUInSegConfig@inseg_lib@@AEAUMainConfig@3@AEAUMapConfig@3@AEAUSegmentationConfig@3@@?$_Ref_count_obj@VInSegLib@inseg_lib@@@std@@QEAA@AEAV?$shared_ptr@VGraph@PSLAM@@@1@AEAUInSegConfig@inseg_lib@@AEAUMainConfig@4@AEAUMapConfig@4@AEAUSegmentationConfig@4@@Z)
LNK2019	unresolved external symbol "public: int __cdecl inseg_lib::Surfel::GetLabel(void)const " (?GetLabel@Surfel@inseg_lib@@QEBAHXZ) referenced in function "public: int __cdecl PSLAM::Node::Add(class std::shared_ptr<class inseg_lib::Surfel> const &)" (?Add@Node@PSLAM@@QEAAHAEBV?$shared_ptr@VSurfel@inseg_lib@@@std@@@Z)
LNK2001	unresolved external symbol "public: int __cdecl inseg_lib::Surfel::GetLabel(void)const " (?GetLabel@Surfel@inseg_lib@@QEBAHXZ)
LNK2019	unresolved external symbol "public: void __cdecl inseg_lib::Surfel::SetLabel(int)" (?SetLabel@Surfel@inseg_lib@@QEAAXH@Z) referenced in function "public: virtual void __cdecl PSLAM::Graph::Merge(int,int)" (?Merge@Graph@PSLAM@@UEAAXHH@Z)

Since the repository only supplies linux and mac libraries, I downloaded the precompiled Windows libraries at the bottom here: http://campar.in.tum.de/Chair/ProjectInSeg, but I think there is a mismatch between the header files you used in your repository and the libraries provided on the tum webpage.

Could you provide the InSegLib source code that was used to compile the provided libraries, so I could compile a binary for Windows myself and have it match your header files?

no imgui.h

fatal error: imgui.h: 没有那个文件或目录? Has anyone encountered this problem? thx

Bug related to ProjectInseg

Hi!

I am following the data preparation pipeline in 3DSSG, to generate estimated segment map file inseg.ply on 3RScan dataset.

When executing command

./bin/exe_GraphSLAM --pth_in ./data/3RScan/754e884c-ea24-2175-8b34-cead19d4198d/sequence --pth_out ./data/3RScan/754e884c-ea24-2175-8b34-cead19d4198d --save_name inseg.ply --rendered 0 --min_pyr_level 2 --depth_edge_threshold 0.98 --save 1 --save_graph 1 --save_graph_ply 0 --save_surfel_ply 1 --save_time 0 --binary 1

called by https://github.com/ShunChengWu/3DSSG/blob/24d4ac520c3441fb6815d0d4890dd845e10e5cc7/script/RUN_GenSeg.py#L35

I got the segmentation fault (core dumped) from method inseg_->ProcessFrame(depthImage, colorImage); on line 74 in file ./libGraphSLAM/GraphSLAM.cpp

inseg_->ProcessFrame(depthImage, colorImage);

I tried to step into this method, but this function is linked from the pre-compiled static library ./lib/libInSegLib_linux.a. Source code seems not public.

After several tries, I found that the error disappeared after removing flag "--rendered 0".

I wonder if this option affects the final output file inseg.ply. Besides, just curious, what could cause this error?

fatal error: imgui.h: No such file or directory

Thanks for your great work. I got some problems in installation. When I ran make in the ./build dir, it shows the missing header "imgui.h". Logs:

In file included from /home/xxx/3dssg/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/GUI3D.h:3:0,
                 from /home/xxx/3dssg/SceneGraphFusion/app/GraphSLAM/main.cc:19:
/home/xxx/3dssg/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/../libGUI/GUI.h:2:10: fatal error: imgui.h: 没有那个文件或目录
 #include "imgui.h"
          ^~~~~~~~~
compilation terminated.
app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/build.make:75: recipe for target 'app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/main.cc.o' failed
make[2]: *** [app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/main.cc.o] Error 1
CMakeFiles/Makefile2:201: recipe for target 'app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/all' failed
make[1]: *** [app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

I've tried to solve this by manually linking imgui from https://github.com/ocornut/imgui in CMakeLists.txt and other errors occurred.

Did I miss something?

Q1. GraphPredictor.cpp->UpdateGCNFeature

Hello!
I have a question!
Question 1. I understood that part idx2seg,seg2idx calculates idx2seg,seg2idx to predict the relationship between the two starting and target nodes created earlier.

If not, what does idx2seg and seg2idx mean?

q1

请问怎么构建自己的数据加载器?只需要RGB-D + Pose输入

并且,设置use_render = false,程序运行报错

./exe_GraphSLAM --pth_in ../data/3RScan/754e884c-ea24-2175-8b34-cead19d4198d/sequence/
I0915 00:34:21.290 main.cc:main:155] Buliding data loader...
detect data type: 3RScanI0915 00:34:21.462 main.cc:main:175] Building framework...
I0915 00:34:21.469 main.cc:main:212] start processing frames...
V0915 00:34:21.472 main.cc:main:215] process frame: 1
V0915 00:34:21.476 main.cc:main:215] process frame: 2
Segmentation fault (core dumped)

Question1

image

Hello
I'm analyzing the author's code.
I am sending you an issue because I have one question.

Predicate (node.first ---- (realization) ----- node.second)
Question 1.
Can you tell me what the code in the picture means?

Not able to run with example sequence

Hello!
I successfully built exe_GraphSLAM, but when I try to run it with example sequence, I get the following error:

./exe_GraphSLAM --pth_in <3RScan_dir>/3RScan/data/3RScan/4acaebcc-6c10-2a2a-858b-29c7e4fb410d/sequence/
I0131 10:08:21.957 main.cc:main:154] Buliding data loader...
detect data type: 3RScanI0131 10:08:22.160 main.cc:main:166] Building renderer...
I0131 10:08:24.818 main.cc:main:174] Building framework...
I0131 10:08:24.818 main.cc:main:211] start processing frames...
V0131 10:08:24.822 main.cc:main:214] process frame: 1
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(4.5.5-dev) <opencv_build_directory>/opencv/modules/imgproc/src/resize.cpp:4055: error: (-215:Assertion failed) inv_scale_x > 0 in function 'resize'

Aborted (core dumped)

Could you give me a cue what to look for and where, please? I assumed that different OpenCV version isn't a problem here, but maybe it is.

Transform the world coordinate of the camera pose

Hi @ShunChengWu

I want to transfer the global coordinate of the pose. In the Retrieve function of the "dataloader_3rscan.cpp", I add a steady transformation to the loaded camera pose. However, I found the transformed segments map is still aligned with the original segments map. And the color of the surfels is significantly twisted.

Original surfels:
original_rgb_surfels

Transformed surfels:
transformed_rgb_surfels

In the example above, I transformed the pose to +0.5m in the height direction. And you can see many of the textures are fused into surfels that higher than they are supposed to be. It looks like the depth image and the rgb image are not integrated with the same camera pose. Is there any part about the pose transform is hardcoded?

I was doubting is it because the rendered depth map is not transformed. But it looks like the depth is rendered on the retrieved pose, which is also loaded from the "dataloader". So, the rendered depth should be consistent with the coordinate transformation.

Thanks!
Chuhao

imgui.h is not found

Hello, a problem occurred while compiling the code:

/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/../libGUI/GUI.h:2:10: fatal error: imgui.h: 没有那个文件或目录
#include "imgui.h"
^~~~~~~~~
compilation terminated.

Content of [labels.instances.annotated.v2.ply], [mesh.refined.v2.obj] and [semseg.v2.json]

Would you be so kind to help me out what exactly is stored in these files and what they are used for?

First is a mesh where vertices are annotated with rgb, "objectID", "globalID", NYU40, Eigen13, RIO27.

Is this information necessarily required? As far as I understand the segmentation should happen only from the depth images & incrementally created global vertex map in accordance to [K. Tateno 2015].

Second file seems to also be a mesh, where is it needed?

Third file is semantic segmentation of point cloud clusters/objects? Is this file needed? As far as I understand graph NN takes (non-semantically) segmented input point cloud clusters and outputs a graph, so semantic segmentation shouldn't be necessary I believe.

Thanks in advance.

Using SceneGraphFusion with custom dataset

Hello,

Thank you very much for this work!
I wanted to use this package on a custom dataset. I don't plan to retrain the network but use the pre-trained network provided with the code. In the current structure, the package requires the data in the3RScan or ScanNet format with the segmented mesh of the environment. I wanted to ask what would be the best way to use the package without having the segmented mesh.

Best,
Mihir

The GraphPred part

Looking forward to releasing the graph prediction codes in this repo.

Questions about training data collection.

Hello! I'm going to apply the author's Scene Graph Fusion technology after collecting data in the AI2Thor environment. Currently, when I establish a relationship between two objects, I am working manually. Can you tell me how you collected the data?

errors on compiling the project

Hi, thank you for your great work and I attempt to reproduce this project to see how scene graph is generated incrementally. But I have encountered lots of errors while compiling this project (in order to generate inseg.ply files). I followed README.md to prepare environment, and then run "cmake .." with no error. Then run "make", lots of errors appeared! In file glModel.hpp glShader.hpp glUtils.hpp Render.h Renderer3RScan.h RendererScanNet.h, there are many errors of no definition.
I guess something necessary was missed but I haven't found what is wrong. Could you please give me a cue to solve these errors?
Thanks for your time.

2022-03-30 16-52-13 的屏幕截图

Errors:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::compileShader(const char*, const char*, const char*)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:158:22: error: ‘glCreateShader’ was not declared in this scope
vertex = glCreateShader(GL_VERTEX_SHADER);
^~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:158:22: note: suggested alternative: ‘compileShader’
vertex = glCreateShader(GL_VERTEX_SHADER);
^~~~~~~~~~~~~~
compileShader
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:159:13: error: ‘glShaderSource’ was not declared in this scope
glShaderSource(vertex, 1, &vShaderCode, NULL);
^~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:159:13: note: suggested alternative: ‘geShaderCode’
glShaderSource(vertex, 1, &vShaderCode, NULL);
^~~~~~~~~~~~~~
geShaderCode
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:160:13: error: ‘glCompileShader’ was not declared in this scope
glCompileShader(vertex);
^~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:160:13: note: suggested alternative: ‘compileShader’
glCompileShader(vertex);
^~~~~~~~~~~~~~~
compileShader
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:176:18: error: ‘glCreateProgram’ was not declared in this scope
ID = glCreateProgram();
^~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:176:18: note: suggested alternative: ‘glGetHistogram’
ID = glCreateProgram();
^~~~~~~~~~~~~~~
glGetHistogram
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:177:13: error: ‘glAttachShader’ was not declared in this scope
glAttachShader(ID, vertex);
^~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:181:13: error: ‘glLinkProgram’ was not declared in this scope
glLinkProgram(ID);
^~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:181:13: note: suggested alternative: ‘glHistogram’
glLinkProgram(ID);
^~~~~~~~~~~~~
glHistogram
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:184:13: error: ‘glDeleteShader’ was not declared in this scope
glDeleteShader(vertex);
^~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:184:13: note: suggested alternative: ‘glDeleteLists’
glDeleteShader(vertex);
^~~~~~~~~~~~~~
glDeleteLists
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::use()’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:194:13: error: ‘glUseProgram’ was not declared in this scope
glUseProgram(ID);
^~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:194:13: note: suggested alternative: ‘glHistogram’
glUseProgram(ID);
^~~~~~~~~~~~
glHistogram
In file included from /home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/GUI3D.h:4:0,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/main.cc:19:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, T) const’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:202:30: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform1ui(glGetUniformLocation(ID, name.c_str()), value); // value: number of element if a vector type is given.
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:202:30: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:204:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:206:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform1f(glGetUniformLocation(ID, name.c_str()), value);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:208:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, T, T) const’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:217:30: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform2ui(glGetUniformLocation(ID, name.c_str()), value1, value2);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:219:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform2i(glGetUniformLocation(ID, name.c_str()), value1, value2);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:221:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform2f(glGetUniformLocation(ID, name.c_str()), value1, value2);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, T, T, T) const’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:232:30: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform3ui(glGetUniformLocation(ID, name.c_str()), value1, value2, value3);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:234:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform3i(glGetUniformLocation(ID, name.c_str()), value1, value2, value3);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:236:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform3f(glGetUniformLocation(ID, name.c_str()), value1, value2, value3);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, T, T, T, T) const’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:247:30: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform4ui(glGetUniformLocation(ID, name.c_str()), value1, value2, value3, value4);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:249:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform4i(glGetUniformLocation(ID, name.c_str()), value1, value2, value3, value4);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:251:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform4f(glGetUniformLocation(ID, name.c_str()), value1, value2, value3, value4);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, const Eigen::Matrix<Type, 4, 4>&, bool)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:261:32: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, mat.template cast().data());
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, const Eigen::Transform<T, 3, 3>&, bool)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:267:32: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, affine.template cast().data());
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, const Eigen::Matrix<Type, 3, 3>&, bool)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:273:32: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniformMatrix3fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, mat.template cast().data());
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, const Eigen::Transform<T, 2, 2>&, bool)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:279:32: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniformMatrix3fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, affine.template cast().data());
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, const Eigen::Matrix<Type, 3, 1>&, bool)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:286:30: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform3ui(glGetUniformLocation(ID, name.c_str()), (unsigned int) v.x(), (unsigned int) v.y(), (unsigned int) v.z());
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:288:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform3i(glGetUniformLocation(ID, name.c_str()), (int) v.x(), (int) v.y(), (int) v.z());
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:290:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform3f(glGetUniformLocation(ID, name.c_str()), (float) v.x(), (float) v.y(), (float) v.z());
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, const Eigen::Matrix<Type, 4, 1>&, bool)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:301:30: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform4ui(glGetUniformLocation(ID, name.c_str()), (unsigned int) v.x(), (unsigned int) v.y(), (unsigned int) v.z(), (unsigned int) v.w());
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:303:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform4i(glGetUniformLocation(ID, name.c_str()), (int) v.x(), (int) v.y(), (int) v.z(), (int) v.w());
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:305:29: error: there are no arguments to ‘glGetUniformLocation’ that depend on a template parameter, so a declaration of ‘glGetUniformLocation’ must be available [-fpermissive]
glUniform4f(glGetUniformLocation(ID, name.c_str()), (float) v.x(), (float) v.y(), (float) v.z(), (float) v.w());
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::setTexture(const string&, int) const’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:334:25: error: ‘glGetUniformLocation’ was not declared in this scope
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:334:25: note: suggested alternative: ‘__errno_location’
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
^~~~~~~~~~~~~~~~~~~~
__errno_location
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:334:13: error: ‘glUniform1i’ was not declared in this scope
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
^~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, glm::mat4) const’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:339:32: error: ‘glGetUniformLocation’ was not declared in this scope
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, glm::value_ptr(matrix));
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:339:32: note: suggested alternative: ‘__errno_location’
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, glm::value_ptr(matrix));
^~~~~~~~~~~~~~~~~~~~
__errno_location
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:339:13: error: ‘glUniformMatrix4fv’ was not declared in this scope
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, glm::value_ptr(matrix));
^~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:339:13: note: suggested alternative: ‘glLoadMatrixf’
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, glm::value_ptr(matrix));
^~~~~~~~~~~~~~~~~~
glLoadMatrixf
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, glm::vec3) const’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:344:26: error: ‘glGetUniformLocation’ was not declared in this scope
glUniform3fv(glGetUniformLocation(ID, name.c_str()), 1, glm::value_ptr(vec));
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:344:26: note: suggested alternative: ‘__errno_location’
glUniform3fv(glGetUniformLocation(ID, name.c_str()), 1, glm::value_ptr(vec));
^~~~~~~~~~~~~~~~~~~~
__errno_location
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:344:13: error: ‘glUniform3fv’ was not declared in this scope
glUniform3fv(glGetUniformLocation(ID, name.c_str()), 1, glm::value_ptr(vec));
^~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:344:13: note: suggested alternative: ‘glColor3fv’
glUniform3fv(glGetUniformLocation(ID, name.c_str()), 1, glm::value_ptr(vec));
^~~~~~~~~~~~
glColor3fv
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::set(const string&, glm::vec4) const’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:349:26: error: ‘glGetUniformLocation’ was not declared in this scope
glUniform4fv(glGetUniformLocation(ID, name.c_str()), 1, glm::value_ptr(vec));
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:349:26: note: suggested alternative: ‘__errno_location’
glUniform4fv(glGetUniformLocation(ID, name.c_str()), 1, glm::value_ptr(vec));
^~~~~~~~~~~~~~~~~~~~
__errno_location
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:349:13: error: ‘glUniform4fv’ was not declared in this scope
glUniform4fv(glGetUniformLocation(ID, name.c_str()), 1, glm::value_ptr(vec));
^~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:349:13: note: suggested alternative: ‘glColor4fv’
glUniform4fv(glGetUniformLocation(ID, name.c_str()), 1, glm::value_ptr(vec));
^~~~~~~~~~~~
glColor4fv
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In member function ‘void glUtil::Shader::checkCompileErrors(unsigned int, std::__cxx11::string)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:361:17: error: ‘glGetShaderiv’ was not declared in this scope
glGetShaderiv(shader, GL_COMPILE_STATUS, &success);
^~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:361:17: note: suggested alternative: ‘glGetMapiv’
glGetShaderiv(shader, GL_COMPILE_STATUS, &success);
^~~~~~~~~~~~~
glGetMapiv
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:364:21: error: ‘glGetShaderInfoLog’ was not declared in this scope
glGetShaderInfoLog(shader, 1024, NULL, infoLog);
^~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:364:21: note: suggested alternative: ‘glGetString’
glGetShaderInfoLog(shader, 1024, NULL, infoLog);
^~~~~~~~~~~~~~~~~~
glGetString
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:370:17: error: ‘glGetProgramiv’ was not declared in this scope
glGetProgramiv(shader, GL_LINK_STATUS, &success);
^~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:370:17: note: suggested alternative: ‘glGetHistogram’
glGetProgramiv(shader, GL_LINK_STATUS, &success);
^~~~~~~~~~~~~~
glGetHistogram
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:373:21: error: ‘glGetProgramInfoLog’ was not declared in this scope
glGetProgramInfoLog(shader, 1024, NULL, infoLog);
^~~~~~~~~~~~~~~~~~~
In file included from /home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/GUI3D.h:7:0,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/main.cc:19:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp: In member function ‘virtual void glUtil::Mesh::Draw()’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:135:13: error: ‘glBindVertexArray’ was not declared in this scope
glBindVertexArray(VAO);
^~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:135:13: note: suggested alternative: ‘glBindTexture’
glBindVertexArray(VAO);
^~~~~~~~~~~~~~~~~
glBindTexture
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp: In member function ‘void glUtil::Mesh::setupMesh()’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:188:13: error: ‘glGenVertexArrays’ was not declared in this scope
glGenVertexArrays(1, &VAO);
^~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:188:13: note: suggested alternative: ‘glGenTextures’
glGenVertexArrays(1, &VAO);
^~~~~~~~~~~~~~~~~
glGenTextures
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:189:13: error: ‘glGenBuffers’ was not declared in this scope
glGenBuffers(1, &VBO);
^~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:189:13: note: suggested alternative: ‘glReadBuffer’
glGenBuffers(1, &VBO);
^~~~~~~~~~~~
glReadBuffer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:193:13: error: ‘glBindVertexArray’ was not declared in this scope
glBindVertexArray(VAO);
^~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:193:13: note: suggested alternative: ‘glBindTexture’
glBindVertexArray(VAO);
^~~~~~~~~~~~~~~~~
glBindTexture
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:195:13: error: ‘glBindBuffer’ was not declared in this scope
glBindBuffer(GL_ARRAY_BUFFER, VBO);
^~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:195:13: note: suggested alternative: ‘glReadBuffer’
glBindBuffer(GL_ARRAY_BUFFER, VBO);
^~~~~~~~~~~~
glReadBuffer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:199:13: error: ‘glBufferData’ was not declared in this scope
glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(Vertex), &vertices[0], GL_STATIC_DRAW);
^~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:199:13: note: suggested alternative: ‘ImGuiKeyData’
glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(Vertex), &vertices[0], GL_STATIC_DRAW);
^~~~~~~~~~~~
ImGuiKeyData
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:208:13: error: ‘glEnableVertexAttribArray’ was not declared in this scope
glEnableVertexAttribArray(0);
^~~~~~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:209:13: error: ‘glVertexAttribPointer’ was not declared in this scope
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)0);
^~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:209:13: note: suggested alternative: ‘glVertexPointer’
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)0);
^~~~~~~~~~~~~~~~~~~~~
glVertexPointer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp: In member function ‘void glUtil::Mesh::Reset()’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:230:13: error: ‘glDeleteVertexArrays’ was not declared in this scope
glDeleteVertexArrays(1, &VAO);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:230:13: note: suggested alternative: ‘glDeleteTextures’
glDeleteVertexArrays(1, &VAO);
^~~~~~~~~~~~~~~~~~~~
glDeleteTextures
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:231:13: error: ‘glDeleteBuffers’ was not declared in this scope
glDeleteBuffers(1, &VBO);
^~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:231:13: note: suggested alternative: ‘glSelectBuffer’
glDeleteBuffers(1, &VBO);
^~~~~~~~~~~~~~~
glSelectBuffer
In file included from /home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/GUI3D.h:8:0,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/main.cc:19:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp: At global scope:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:72:46: error: ‘precision’ is not a member of ‘glm’
static inline glm::mat<m, n, float, glm::precision::highp> E2GLM(const Eigen::Matrix<T, m, n>& em)
^~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:72:62: error: template argument 4 is invalid
static inline glm::mat<m, n, float, glm::precision::highp> E2GLM(const Eigen::Matrix<T, m, n>& em)
^
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp: In function ‘int glUtil::E2GLM(const Eigen::Matrix<T, m, n>&)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:74:36: error: ‘precision’ is not a member of ‘glm’
glm::mat<m, n, float, glm::precision::highp> mat;
^~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:74:52: error: template argument 4 is invalid
glm::mat<m, n, float, glm::precision::highp> mat;
^
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:79:22: error: invalid types ‘int[int]’ for array subscript
mat[j][i] = em(i, j);
^
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp: At global scope:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:82: error: ‘precision’ is not a member of ‘glm’
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:98: error: template argument 4 is invalid
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:82: error: ‘precision’ is not a member of ‘glm’
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:98: error: template argument 4 is invalid
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:82: error: ‘precision’ is not a member of ‘glm’
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:98: error: template argument 4 is invalid
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:82: error: ‘precision’ is not a member of ‘glm’
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:98: error: template argument 4 is invalid
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:55: error: invalid template-id
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:82: error: ‘precision’ is not a member of ‘glm’
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:49: error: expected primary-expression before ‘const’
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:86:106: error: expected ‘;’ before ‘{’ token
static inline Eigen::Matrix<T, m, n> GLM2E(const glm::mat<m, n, float, glm::precision::highp> &mat) {
^
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:99:43: error: ‘precision’ is not a member of ‘glm’
static inline glm::vec<m, float, glm::precision::highp> E2GLM(const Eigen::Matrix<T, m, 1>& em)
^~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:99:59: error: template argument 3 is invalid
static inline glm::vec<m, float, glm::precision::highp> E2GLM(const Eigen::Matrix<T, m, 1>& em)
^
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp: In function ‘int glUtil::E2GLM(const Eigen::Matrix<Type, Size, 1>&)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:101:33: error: ‘precision’ is not a member of ‘glm’
glm::vec<m, float, glm::precision::highp> v;
^~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:101:49: error: template argument 3 is invalid
glm::vec<m, float, glm::precision::highp> v;
^
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glUtils.hpp:104:16: error: invalid types ‘int[int]’ for array subscript
v[i] = em(i);
^
In file included from /home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/GUI3D.h:11:0,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/main.cc:19:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h: In constructor ‘glUtil::GLImageRenderer::GLImageRenderer(unsigned char*, int, int)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:22:13: error: ‘glGenVertexArrays’ was not declared in this scope
glGenVertexArrays(1, &quadVAO);
^~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:22:13: note: suggested alternative: ‘glGenTextures’
glGenVertexArrays(1, &quadVAO);
^~~~~~~~~~~~~~~~~
glGenTextures
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:23:13: error: ‘glGenBuffers’ was not declared in this scope
glGenBuffers(1, &quadVBO);
^~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:23:13: note: suggested alternative: ‘glReadBuffer’
glGenBuffers(1, &quadVBO);
^~~~~~~~~~~~
glReadBuffer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:24:13: error: ‘glBindVertexArray’ was not declared in this scope
glBindVertexArray(quadVAO);
^~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:24:13: note: suggested alternative: ‘glBindTexture’
glBindVertexArray(quadVAO);
^~~~~~~~~~~~~~~~~
glBindTexture
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:25:13: error: ‘glBindBuffer’ was not declared in this scope
glBindBuffer(GL_ARRAY_BUFFER, quadVBO);
^~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:25:13: note: suggested alternative: ‘glReadBuffer’
glBindBuffer(GL_ARRAY_BUFFER, quadVBO);
^~~~~~~~~~~~
glReadBuffer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:26:13: error: ‘glBufferData’ was not declared in this scope
glBufferData(GL_ARRAY_BUFFER, sizeof(quadVertices), &quadVertices, GL_STATIC_DRAW);
^~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:26:13: note: suggested alternative: ‘ImGuiKeyData’
glBufferData(GL_ARRAY_BUFFER, sizeof(quadVertices), &quadVertices, GL_STATIC_DRAW);
^~~~~~~~~~~~
ImGuiKeyData
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:27:13: error: ‘glEnableVertexAttribArray’ was not declared in this scope
glEnableVertexAttribArray(0);
^~~~~~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:28:13: error: ‘glVertexAttribPointer’ was not declared in this scope
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), (void ) 0);
^~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:28:13: note: suggested alternative: ‘glVertexPointer’
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), (void ) 0);
^~~~~~~~~~~~~~~~~~~~~
glVertexPointer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h: In destructor ‘glUtil::GLImageRenderer::~GLImageRenderer()’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:46:13: error: ‘glDeleteVertexArrays’ was not declared in this scope
glDeleteVertexArrays(1, &VAO);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:46:13: note: suggested alternative: ‘glDeleteTextures’
glDeleteVertexArrays(1, &VAO);
^~~~~~~~~~~~~~~~~~~~
glDeleteTextures
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:47:13: error: ‘glDeleteBuffers’ was not declared in this scope
glDeleteBuffers(1, &VBO);
^~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:47:13: note: suggested alternative: ‘glSelectBuffer’
glDeleteBuffers(1, &VBO);
^~~~~~~~~~~~~~~
glSelectBuffer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h: In member function ‘void glUtil::GLImageRenderer::draw(glUtil::Shader
)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:60:13: error: ‘glBindVertexArray’ was not declared in this scope
glBindVertexArray(VAO);
^~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glImageRenderer.h:60:13: note: suggested alternative: ‘glBindTexture’
glBindVertexArray(VAO);
^~~~~~~~~~~~~~~~~
glBindTexture
In file included from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/RendererFactory.h:7:0,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/main.cc:20:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h: In destructor ‘virtual PSLAM::MeshRendererInterface::~MeshRendererInterface()’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:19:13: error: ‘glDeleteFramebuffers’ was not declared in this scope
glDeleteFramebuffers(1,&framebuffer);
^~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:19:13: note: suggested alternative: ‘glfwGetFramebufferSize’
glDeleteFramebuffers(1,&framebuffer);
^~~~~~~~~~~~~~~~~~~~
glfwGetFramebufferSize
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:20:13: error: ‘glDeleteRenderbuffers’ was not declared in this scope
glDeleteRenderbuffers(1, &rbo);
^~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:20:13: note: suggested alternative: ‘glDeleteTextures’
glDeleteRenderbuffers(1, &rbo);
^~~~~~~~~~~~~~~~~~~~~
glDeleteTextures
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h: In member function ‘void PSLAM::MeshRendererInterface::InitGL()’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:35:13: error: ‘glGenFramebuffers’ was not declared in this scope
glGenFramebuffers(1, &framebuffer);
^~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:35:13: note: suggested alternative: ‘framebuffer’
glGenFramebuffers(1, &framebuffer);
^~~~~~~~~~~~~~~~~
framebuffer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:36:13: error: ‘glBindFramebuffer’ was not declared in this scope
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
^~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:36:13: note: suggested alternative: ‘framebuffer’
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
^~~~~~~~~~~~~~~~~
framebuffer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:43:13: error: ‘glFramebufferTexture2D’ was not declared in this scope
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureColorbuffer, 0);
^~~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:43:13: note: suggested alternative: ‘glPrioritizeTextures’
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureColorbuffer, 0);
^~~~~~~~~~~~~~~~~~~~~~
glPrioritizeTextures
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:46:13: error: ‘glGenRenderbuffers’ was not declared in this scope
glGenRenderbuffers(1, &rbo);
^~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:46:13: note: suggested alternative: ‘glReadBuffer’
glGenRenderbuffers(1, &rbo);
^~~~~~~~~~~~~~~~~~
glReadBuffer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:47:13: error: ‘glBindRenderbuffer’ was not declared in this scope
glBindRenderbuffer(GL_RENDERBUFFER, rbo);
^~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:47:13: note: suggested alternative: ‘glReadBuffer’
glBindRenderbuffer(GL_RENDERBUFFER, rbo);
^~~~~~~~~~~~~~~~~~
glReadBuffer
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:48:13: error: ‘glRenderbufferStorage’ was not declared in this scope
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT32F, m_width, m_height); // use a single renderbuffer object for both a depth AND stencil buffer.
^~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:48:13: note: suggested alternative: ‘GL_ARB_buffer_storage’
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT32F, m_width, m_height); // use a single renderbuffer object for both a depth AND stencil buffer.
^~~~~~~~~~~~~~~~~~~~~
GL_ARB_buffer_storage
In file included from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/RendererFactory.h:7:0,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/main.cc:20:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:49:13: error: ‘glFramebufferRenderbuffer’ was not declared in this scope
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rbo); // now actually attach it
^~~~~~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:51:16: error: ‘glCheckFramebufferStatus’ was not declared in this scope
if(glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
^~~~~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer.h:51:16: note: suggested alternative: ‘glfwGetFramebufferSize’
if(glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
^~~~~~~~~~~~~~~~~~~~~~~~
glfwGetFramebufferSize
In file included from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer3RScan.h:8:0,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/RendererFactory.h:9,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/main.cc:20:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/../libGUI3D/libGUI3D/glModel.hpp: In member function ‘unsigned int glUtil::Model::TextureFromFile(const char
, const string&, bool)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/../libGUI3D/libGUI3D/glModel.hpp:555:17: error: ‘glGenerateMipmap’ was not declared in this scope
glGenerateMipmap(GL_TEXTURE_2D);
^~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/../libGUI3D/libGUI3D/glModel.hpp:555:17: note: suggested alternative: ‘glGetMinmax’
glGenerateMipmap(GL_TEXTURE_2D);
^~~~~~~~~~~~~~~~
glGetMinmax
In file included from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/RendererFactory.h:9:0,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/main.cc:20:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer3RScan.h: In member function ‘virtual void PSLAM::MeshRenderer3RScan::Render(const Matrix4f&, const Matrix4f&, float, float)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer3RScan.h:34:13: error: ‘glBindFramebuffer’ was not declared in this scope
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
^~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer3RScan.h:34:13: note: suggested alternative: ‘framebuffer’
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
^~~~~~~~~~~~~~~~~
framebuffer
In file included from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/RendererFactory.h:10:0,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/main.cc:20:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/RendererScanNet.h: In member function ‘virtual void PSLAM::MeshRendererScanNet::Render(const Matrix4f&, const Matrix4f&, float, float)’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/RendererScanNet.h:29:13: error: ‘glBindFramebuffer’ was not declared in this scope
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
^~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/RendererScanNet.h:29:13: note: suggested alternative: ‘framebuffer’
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
^~~~~~~~~~~~~~~~~
framebuffer
In file included from /home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/GUI3D.h:4:0,
from /home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/main.cc:19:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In instantiation of ‘void glUtil::Shader::set(const string&, T) const [with T = int; std::__cxx11::string = std::__cxx11::basic_string]’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glMesh.hpp:130:65: required from here
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:202:50: error: ‘glGetUniformLocation’ was not declared in this scope
glUniform1ui(glGetUniformLocation(ID, name.c_str()), value); // value: number of element if a vector type is given.
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:202:50: note: suggested alternative: ‘__errno_location’
glUniform1ui(glGetUniformLocation(ID, name.c_str()), value); // value: number of element if a vector type is given.
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
__errno_location
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:202:29: error: ‘glUniform1ui’ was not declared in this scope
glUniform1ui(glGetUniformLocation(ID, name.c_str()), value); // value: number of element if a vector type is given.
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:202:29: note: suggested alternative: ‘glColor4ui’
glUniform1ui(glGetUniformLocation(ID, name.c_str()), value); // value: number of element if a vector type is given.
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
glColor4ui
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:204:49: error: ‘glGetUniformLocation’ was not declared in this scope
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:204:49: note: suggested alternative: ‘__errno_location’
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
__errno_location
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:204:28: error: ‘glUniform1i’ was not declared in this scope
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:206:49: error: ‘glGetUniformLocation’ was not declared in this scope
glUniform1f(glGetUniformLocation(ID, name.c_str()), value);
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:206:49: note: suggested alternative: ‘__errno_location’
glUniform1f(glGetUniformLocation(ID, name.c_str()), value);
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
__errno_location
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:206:28: error: ‘glUniform1f’ was not declared in this scope
glUniform1f(glGetUniformLocation(ID, name.c_str()), value);
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:208:49: error: ‘glGetUniformLocation’ was not declared in this scope
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:208:49: note: suggested alternative: ‘__errno_location’
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
__errno_location
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:208:28: error: ‘glUniform1i’ was not declared in this scope
glUniform1i(glGetUniformLocation(ID, name.c_str()), value);
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp: In instantiation of ‘void glUtil::Shader::set(const string&, const Eigen::Matrix<Type, 4, 4>&, bool) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’:
/home/flj/3DSceneGraphFusion/SceneGraphFusion/app/GraphSLAM/../../renderer/Renderer3RScan.h:37:43: required from here
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:261:52: error: ‘glGetUniformLocation’ was not declared in this scope
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, mat.template cast().data());
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:261:52: note: suggested alternative: ‘__errno_location’
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, mat.template cast().data());
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
__errno_location
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:261:31: error: ‘glUniformMatrix4fv’ was not declared in this scope
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, mat.template cast().data());
~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/flj/3DSceneGraphFusion/SceneGraphFusion/libGraphSLAM/../lib/../libGUI3D/libGUI3D/glShader.hpp:261:31: note: suggested alternative: ‘glLoadMatrixf’
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, mat.template cast().data());
~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
glLoadMatrixf
app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/build.make:75: recipe for target 'app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/main.cc.o' failed
make[2]: *** [app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/main.cc.o] Error 1
CMakeFiles/Makefile2:228: recipe for target 'app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/all' failed
make[1]: *** [app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

Reproducing Scannet Panoptic Segmentation Results

Hi @ShunChengWu,

Thanks a lot for providing this awesome code base. It runs really nicely without a lot of effort.

However, I have one question regarding evaluating results. I'd like to run the same evaluation (Panoptic Segmentation) as you show in Table 5 and 6 in the paper. What code part do I need to run if I want to do this on a very specific set of scenes? Ideally, I'd like to output it in the ScanNet format for both semantic and instance segmentation. I.e. having a semantic label for each label of the ground-truth mesh and a vertex mask for each predicted instance.

Thank you very much!

Question on eval

Hi, thank you for your great work and kind help! I have already reproduced the SceneGraphFusion project. I have a question, how to evaluate the result with GT? Could you please share the eval method and code? If it's OK, could you please send it to [email protected]?
Thanks so much!

Run on custom sequence

Hello,

Can you tell me briefly what changes to the code are required to run on a custom image sequence?

Is it ok without entering "pose"? The paper says that only RGBD is required

If I annotate this paragraph, i.e. do not assign pose to inseg, the result will be messy,Why?Looking forward to your reply。

void GraphSLAM::ProcessFrame(int idx, const cv::Mat &colorImage, const cv::Mat &depthImage,const Eigen::Matrix4f *pose) {
// if(pose){ // 此处pose给inseg,否则没有pose,inseg结果较差? hy
// pose_ = *pose;
// inseg_->set_pose(pose_);
// }
mTimeStamp = idx;
CTICK("[SLAM][ProcessFrame]1.ProcessFrame");
......

如何在RGB-D数据流中使用

作者您好,对于您的代码有部分问题想要请教。
关于语义分割的实现部分仅提供了接口部分,实现封装在libInSegLib_linux.a。
对于RGB-D数据流,通过SLAM可以获得单帧位姿,通过语义分割可以获得单帧的分割结果。
如果要处理RGB-D数据流,现有代码在部分实现不清楚的情况下,能否实现这个功能,主要是需要修改那部分内容?

Compilation Error: `Renderer` Constructor Argument Mismatch

I encountered a compilation error when trying to build the GraphSLAM component of the SceneGraphFusion project. The error indicates a mismatch in the arguments passed to the Renderer constructor. Below are the details:

Environment:
OS: Ubuntu 20.04
Compiler: GCC 11
Project: SceneGraphFusion
File Path: SceneGraphFusion/app/GraphSLAM/main.cc
OpenCV Version: 4.x

Issue:
In the file SceneGraphFusion/app/GraphSLAM/main.cc, at line 167, an attempt is made to call the Renderer constructor, resulting in the following error:
/usr/include/c++/11/bits/unique_ptr.h:962:30: error: no matching function for call to ‘Renderer::Renderer(short unsigned int&, short unsigned int&, std::__cxx11::basic_string<char>&, bool)’

but it was found that the Renderer constructor only accepts 3 parameters:
Renderer(int width, int height, const std::string &path)

However, in main.cc, the constructor is invoked with 4 parameters:
std::make_unique<Renderer>(width, height, path, some_boolean)

Compilation Output:

[ 33%] Built target libDataLoader
[ 83%] Built target libGraphSLAM
[ 91%] Building CXX object app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/main.cc.o
...
/usr/include/c++/11/bits/unique_ptr.h:962:30: error: no matching function for call to ‘Renderer::Renderer(short unsigned int&, short unsigned int&, std::__cxx11::basic_string<char>&, bool)’
...
make[2]: *** [app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/build.make:76: app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/main.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:202: app/GraphSLAM/CMakeFiles/exe_GraphSLAM.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

How should I do to complete the compilation?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.