Skip to content

Folder Structure

Marcus Hudritsch edited this page Jul 1, 2024 · 6 revisions

After cloning the GIT repository you will have the following folders in the root folder. Only the main folders and files are shown here:

  • .gitignore: Important hidden file with all file and folder patterns that GIT should ignore.
  • .clangformat: Important hidden configuration file for the clangformat formatting system. See also Coding Style.
  • apps:
    • app_demo: SLProject demo app for GLFW desktop, iOS and Android OS.
    • app_imgui: Demo app from the ImGui UI framework. This original ImGui demo app could be used as a simple starting point for any platform-independent GUI app. See the YouTube video from the Cerno why and how you can do that.
    • app_node: GLFW-app that demonstrates all node transform possibilities.
    • app_webgl: Demo application for the new WebGPU graphics API from the World Wide Web Consortium (W3C). See the extensive documentation within the source code.
    • exercises: Folder with minimal OpenGL and OpenCV exercises.
    • sources: Source files common to all apps.
      • platforms:
        • android: Top-level code for the Android platform.
        • emscripten: Top-level code for the Emscripten web platform.
        • glfw: Top-level code for the glfw desktop platform.
        • iOS: Top-level code for the iOS platform.
  • cmake: Various cmake scripts are included in the CMakeLists files.
  • data: Folder with assets loaded at runtime
    • calibrations: Folder with video calibration and tracking marker files
    • images: Folder with texture and font images
    • models: Folder with 3DS model files
    • opencv: Folder for OpenCV data
    • shaders: Folder with the static GLSL shader files that are not generated.
    • videos: Folder with all videos from the video examples
  • docs: Folder with all files needed for the Doxygen-generated documentation.
  • externals:
    • eigen: A header-only linear algebra library.
    • lib-optix: Nvidia Optix library for accelerated ray tracing on Windows.
    • libiigl: An easy to use C++ geometry processing library used in SLMesh.
    • prebuild_scripts: Script for building the prebuilt libraries.
    • prebuilt: Downloaded and prebuilt libraries such as OpenCV.
    • utils: External libraries used in the utils library module.
  • modules: The library modules, each with its own CMakeLists.txt file:
    • math: A math helper library
    • sens: A sensor library
    • utils: A utility library
    • wai: The Where Am I (SLAM) library
    • cv: A wrapper around OpenCV functions
    • sl: The SLProject scenegraph library:
      • source: Folder with all SLProject header and source files.
        • gl: All classes that use OpenGL
        • input: All input related classes
        • mesh: All SLMesh inherited classes
        • node: All SLNode inherited classes
        • optix: All classes for real-time ray tracing with Optix
        • ray: All ray tracing classes
  • scripts: Some additional shell scripts.
  • CMakeLists.txt: Top-level CMake project definition file.
  • readme.md: Top-level readme in markup language.