Skip to content

C++ graphics library for (geo)spatial visualization with OpenGL

Notifications You must be signed in to change notification settings

martijnkoopman/SpatiumGL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpatiumGL

Build Status License: GPL v3

C++ graphics library for (geo)spatial visualization.

Content

Modules

  • core - Core classes (Vector, Matrix, Image) and functionality (math, statistics, constants)
  • idx - Spatial data structures (Octree)
  • gfx3d - 3D graphics (generic)
  • gfx3d_opengl - 3D graphics implementation based on OpenGL
  • io_las - LAS/LAZ point cloud IO.

Module dependency graph

Architecture

Apps

  • lasinfo - View LAS/LAZ file info
  • lasgrid - Filter LAS/LAZ point cloud with voxel grid filter
  • lasviewer - View LAS/LAZ point cloud in 3D
  • lasoctree - Create spatial index for viewing a massive point cloud in 3D (Unfinished!)
  • lasoctreeviewer - View massive LAS/LAZ point cloud in 3D utilizing a spatial index (Unfinished!)

Namespaces

  • spgl - SpatiumGL
    • idx - Spatial index
    • gfx3d - 3D graphics
    • io - File input/output

Building the library

Clone or download this repository

$ git clone https://github.com/martijnkoopman/SpatiumGL
$ cd SpatiumGL

Create build directory

$ mkdir build
$ cd build

Run CMake

Linux, macOS

$ cmake .. -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=ON -DSPATIUMGL_MODULE_IDX=ON -DSPATIUMGL_MODULE_GFX3D=ON -DSPATIUMGL_MODULE_GFX3D_OPENGL=ON -DSPATIUMGL_MODULE_IO_LAS=ON -DSPATIUMGL_APP_LASINFO=ON -DSPATIUMGL_APP_LASGRID=ON -DSPATIUMGL_APP_LASVIEWER=ON -DSPATIUMGL_APP_LASOCTREEVIEWER=ON

Windows

$ cmake .. -G "Visual Studio 16 2019" -A x64 -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=ON -DSPATIUMGL_MODULE_IDX=ON -DSPATIUMGL_MODULE_GFX3D=ON -DSPATIUMGL_MODULE_GFX3D_OPENGL=ON -DSPATIUMGL_MODULE_IO_LAS=ON -DSPATIUMGL_APP_LASINFO=ON -DSPATIUMGL_APP_LASGRID=ON -DSPATIUMGL_APP_LASVIEWER=ON -DSPATIUMGL_APP_LASOCTREEVIEWER=ON

CMake options

Option Effect
BUILD_SHARED_LIBS Build as shared library (versus static)
BUILD_TESTING Build unit tests
SPATIUMGL_MODULE_IDX Include module idx
SPATIUMGL_MODULE_GFX3D Include module gfx3d
SPATIUMGL_MODULE_GFX3D_OPENGL Include module gfx3d_opengl
SPATIUMGL_MODULE_IO_LAS Include module io_las
SPATIUMGL_APP_LASINFO Include app lasinfo
SPATIUMGL_APP_LASGRID Include app lasgrid
SPATIUMGL_APP_LASVIEWER Include app lasviewer
DSPATIUMGL_APP_LASOCTREEVIEWER Include app lasoctree + lasoctreeviewer
CMAKE_BUILD_TYPE Build type for library and thirdparty dependencies
CMAKE_INSTALL_PREFIX Install directory

Using the library

CMakeLists.txt

cmake_minimum_required(VERSION 3.2.0)

project(yourapp)

# Create executable
add_executable(yourapp yourapp.cpp)

# TODO: find_package(SpatiumGL REQUIRED)

# Link dependencies
target_link_libraries(lasviewer PRIVATE spatiumgl)

yourapp.cpp

TODO

License

This library is licensed under the GNU General Public License 3.0 - see the LICENSE.md file for details.

About

C++ graphics library for (geo)spatial visualization with OpenGL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published