Coder Social home page Coder Social logo

scenegraphfusion's Introduction

SceneGraphFusion

teaser Authors: Shun-Cheng Wu, Johanna Wald, Keisuke Tateno, Nassir Navab and Federico Tombari

This is the SceneGraphFusion c++ framework. For the network part of the code, check here.

Prerequisites

git, cmake

apt update
apt install git
# cmake
sudo apt install python3-pip
pip3 install cmake
# create ssh key and associate to your account in order to clone this project.
# * Generate new ssh key [link](https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)
# * Adding a new ssh key to your account [link](https://docs.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account)

OpenCV, Eigen

# Eigen3 3.3.90  
# OpenCV 4.0.0  
# This project will try to install them locally if they were not found.

Assimp

loading meshes for online rendered view generation.

apt install libassimp-dev

Optional dependencies

With GUI:

# OpenGL & Glfw3
apt install freeglut3-dev libglfw3-dev

With graph prediction:

# Onnxruntime
# See https://github.com/microsoft/onnxruntime for more information
git clone --recursive -b v1.8.2 https://github.com/microsoft/onnxruntime
cd onnxruntime
# For Linux
./build.sh --config RelWithDebInfo --build_shared_lib --parallel
cd build/Linux/RelWithDebInfo
sudo make install

BUILD

build the basic segmentation system

git clone {this_repo}
cd SceneGraphFusion
git submodule init
git submodule update
mkdir build
cd build
cmake ..
make

build with GUI or graph prediction, pass these options in cmake:

cmake -DBUILD_GRAPHPRED=ON -DBUILD_GUI=ON ..

Run

./exe_GraphSLAM --pth_in path/to/3RScan/squence/
# or with GUI
./exe_GraphSLAM_GUI --pth_in path/to/3RScan/squence/
# to see usage and options 
./exe_GraphSLAM --help
# to run with graph prediction (need to build with graph predict)
./exe_GraphSLAM_GUI --pth_in path/to/3RScan/squence/ --pth_model /path/to/the/traced/model/folder/

We provide data loader for 3RScan dataset and ScanNet. In default, we use rendered view for both dataset. The rendered view will be generated during on time.

you can download the traced model of our pretrained network here. The model is trained with 20 NYUv2 object classes used in ScanNet benchmark, and with 8 support types of predicates.

Example:

To run our system with a test sequence, run bash prepare_example_data.sh. It will download an example sequence provided from 3RScan repository. Then run

cd bin
./exe_GraphSLAM --pth_in ../data/3RScan/4acaebcc-6c10-2a2a-858b-29c7e4fb410d/sequence/

Or using the full sequence from either ScanNet or 3RScan

# For 3RScan:
./exe_GraphSLAM --pth_in [path/to/3RScan]/[sequence_id]/sequence/
# For ScanNet
./exe_GraphSLAM --pth_in [path/to/scannet]/[scan_id]/[scan_id].sens
# Run with graph prediction
./exe_GraphSLAM --pth_in ./path/to/data --pth_model /path/to/model

Run with example sequence

If you would like to try out the code without downloading the 3RScan & 3DSSG datset, you can clone the repository of 3RScan which consist of two example sequences.

git clone [email protected]:WaldJohannaU/3RScan.git
cd 3RSan
bash setup.sh

Then cd to the exe_GraphSLAM executable directory and do

./exe_GraphSLAM --pth_in /3RScan/data/3RScan/4acaebcc-6c10-2a2a-858b-29c7e4fb410d/sequence/
# with graph_pred 
./exe_GraphSLAM --pth_in /3RScan/data/3RScan/4acaebcc-6c10-2a2a-858b-29c7e4fb410d/sequence/ --pth_model /CVPR21_traced/traced/

License

License

Paper

If you find the code useful please consider citing our paper:

@inproceedings{Wu2021,
    title = {{SceneGraphFusion: Incremental 3D Scene Graph Prediction from RGB-D Sequences}},
    author = {Shun-Cheng Wu and Johanna Wald and Keisuke Tateno and Nassir Navab and Federico Tombari},
    booktitle = {Proceedings IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
    year = {2021}
}

Acknowledgements

This work is supported by the German Research Foundation (DFG, project number 407378162) and the Bavarian State Ministry of Education, Science and the Arts in the framework of the Centre Digitisation Bavaria (ZD.B).

Troubleshooting

In some platforms the CMake config for Assimp is called assimpConfig.cmake and in others AssimpConfig.cmake. This mismatch can lead to CMake not finding the library despite being available in the system. If this is the case, edit cmake/UseAssimp.cmake to look like this:

find_package(assimp QUIET)
OPTION(WITH_ASSIMP "Build with Assimp support?" ${assimp_FOUND})

IF(WITH_ASSIMP)
    MESSAGE(STATUS "WITH Assimp")
    find_package(assimp REQUIRED)
    INCLUDE_DIRECTORIES(${assimp_INCLUDE_DIRS})
ENDIF()

See assimp/assimp#3455, microsoft/vcpkg#14256 for more details

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

Run on custom sequence

Hello,

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

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

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

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.

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?

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?

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

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?

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

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 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

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?

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");
......

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!

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.

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

请问怎么构建自己的数据加载器?只需要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)

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.

no imgui.h

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

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.

The GraphPred part

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

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.