-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gproshan v4.0 new version coming: updating GUI, new features, ray tracing #14
Open
larc
wants to merge
1,206
commits into
main
Choose a base branch
from
alpha
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 250 commits
Commits
Show all changes
1206 commits
Select commit
Hold shift + click to select a range
62ae64d
rt_embree: update to embree4
larc 556f762
github actions install embree4
larc 1df63e4
Update build.yml
larc 035ba94
Update build.yml
larc edd7750
Update build.yml
larc 57ef5ea
Update build.yml
larc 0a9e756
Update build.yml
larc 9fce4fc
update gproshanConfig.cmake.in
larc 2debbf1
update imgui 1.89.4
larc aa51f6d
app_viewer: cleaning log messages
larc 2d530a4
points: add sampling 4points function
larc 2340033
points: update sampling 4points
larc e86c939
che_pcd (io): adding pcd reader and writer
larc dfacb3c
rt_embree: fix select vertex in a point cloud
larc c680487
app_viewer: creating point cloud from 4points samples function
larc a36edf6
Update build.yml
larc 8bf6aca
Update build.yml
larc 0f69bd4
Update build.yml
larc 914b9b0
Update build.yml
larc 2bd94e2
Merge branch 'dev' into alpha
larc b2ac921
update to OptiX 7.7
larc 3eb8114
Merge branch 'alpha' into dev
larc 0e73460
Update README.md
larc f870382
Merge branch 'dev' into alpha
larc d533547
viewer: implementing shadow mapping, adding depth shader
larc b7efc22
viewer: added uniform method to shader class
larc c6be97f
Merge branch 'dev' into alpha
larc 9a23e9e
viewer: undo triangles shader line
larc 50478ff
che_ply: loading normals
larc ed532e2
che_ply: fix normal loading
larc ec8b540
rt_embree: render point cloud as unoriented disk
larc ed617f9
raytracing: renaming source files
larc 3e67e91
che_img: loading rgb images, and depth images
larc 6d34db5
geometry: minor updates
larc 5b015cc
update gitignore
larc 4793185
fix .gitignore
larc bd3524b
che_ptx: display image in debug
larc 59cf2c2
optix: input ptx file
larc e15d6ca
optix: adding void pointer in optix_params
larc 33665ce
update imgui v1.89.7
larc 9a06c14
Merge branch 'dev' into alpha
larc 24f607b
Update build.yml
larc 348ec9d
Merge branch 'dev' into alpha
larc 5015651
scanner: fix room scanner orientation y axis
larc 6e1d051
scanner: fix orientation
larc 3547c39
cleaning up warnings adding TODOs
larc b6e4df0
knn: add grid knn class
larc da5b110
knn: grid knn query
larc 1acd192
geometry: updating vec class
larc d3c7efe
vec: add comma operator for concat a scalar
larc a4bdcd4
scanner: cleaning up
larc bd1e460
Merge branch 'dev' into alpha
larc f1d4bb9
using optix 8
larc 61118ee
pointcloud: adding UI menu
larc cfbf944
viewer: selected mesh label
larc 95ce151
viewer: fix meshes selected label
larc a96b203
Merge branch 'dev' into alpha
larc 60e5628
viewer: transparent bg selected mesh label
larc ace1d4e
knn: using flann to implement k3tree
larc dc74b13
viewer: computing knn for selected vertices
larc 004693f
fix github workflows
larc 352be42
viewer: recording timeframe
larc afbc3e3
viewer: saving frametimes
larc 8e1d44a
viewer: save gproshan history
larc cea80ac
viewer: saving history and frametime
larc 3cc8157
knn: remove kdtree, resolved #23
larc 8a93e54
Merge branch 'dev' into alpha
larc 637a878
pointcloud: update k3tree knn access methods
larc 89edb18
Update build.yml
larc 8476f9f
Merge branch 'dev' into alpha
larc e567b0c
Update build.yml
larc cbe5e11
Merge branch 'dev' into alpha
larc 3ce3b68
viewer: save rt built times
larc 91e3e9d
viewer: method for update status message
larc a2025b7
viewer: update default window size
larc 57eaa1a
viewer: updating blinn phon shading
larc 0a86944
viewer: updating shading default values
larc d786d46
viewer: adding light struct
larc 213de8f
viewer: adding struct light to shader
larc 798dc17
viewer: add imgui light inputs
larc e407b9e
Merge branch 'dev' into alpha
larc d7b6bdd
viewer: update optix lights and shading
larc 960db02
Merge branch 'dev' into alpha
larc a991de7
fix gproshanConfig.cmake.in
larc a2be6a2
Merge branch 'dev' into alpha
larc 47c3055
g++-13 CImg warnings
larc 9da0074
Merge branch 'dev' into alpha
larc d6068dc
fix debug CImg error
larc 25d1267
Merge branch 'dev' into alpha
larc 1cbfbbb
fix clang warnings: AppleClang 15
larc 9250e10
mesh: move load mesh to che static method
larc 3e63deb
util: adding partitions iterator
larc 3f2d381
util: partitions iterator cuda
larc 1767039
update cmake and install dependencies
larc 859831f
Merge branch 'dev' into alpha
larc f426d87
che: ply ascii reader fix normal
larc 2eca24f
che: update ply reader ascii
larc adea8a3
scenes: update scanner and rt const methods
larc b58d315
che: update merge method
larc 15c56c6
Merge branch 'dev' into alpha
larc 82fc290
che: fix ambigous rgb_t constructor
larc 64a45a6
util: update partitions iterator/class
larc d36b95c
vec: update division methods
larc e3e325b
rt: update near ray parameter
larc 1a4cc0c
che_ply: saving normals
larc b9844d8
rt: fix ray intersection pc
larc 1d31eae
scenes: normalize scanner dist
larc eb04e79
viewer: maximize window
larc cb5d967
Merge branch 'dev' into alpha
larc 4a98cd9
viewer: maximize with set windows size
larc 94e4828
Merge branch 'dev' into alpha
larc 21e3154
viewer: pop mesh
larc c60d1fd
viewer: delete selected mesh
larc 083210a
viewer: refactoring add_process, menu/submenu entries
larc 5dbdfd9
Merge branch 'dev' into alpha
larc 6ba2ffa
viewer: fix callback keyboard glfw
larc 288c63b
Merge branch 'dev' into alpha
larc d043dd2
rt: intersect get flat normal
larc 5b9fe5f
viewer: refactoring menus
larc 28627a2
viewer: refactoring menu items
larc 0ccfc87
viewer: context menu mesh
larc 2435bd0
viewer: mesh context menu added render/mesh options
larc 8fbd63e
viewer: adding removed meshes history
larc 1af6886
Merge branch 'dev' into alpha
larc 517f6ed
viewer: fix width mesh context menu
larc 00b2bc3
std: using size(container) instead of .size()
larc a9f9fa0
std: using size(container) instead of .size()
larc b34005e
std: using size(container) instead of .size()
larc 79dd1e6
Merge branch 'dev' into alpha
larc 181d17c
std: fix bug in action build Debug
larc 6ec3ac2
viewer: add title arg constructor
larc cec473c
Merge branch 'dev' into alpha
larc 01365b7
gproshan now using c++20
larc 1d48a0e
geometry: using ivec2 for 2d convex hull
larc 1c6728e
std: using std::ranges::sort
larc 5d28857
viewer: organizing menu items
larc f2483df
Merge branch 'dev' into alpha
larc 4bf6522
viewer: minor updates
larc 3f454db
Merge branch 'dev' into alpha
larc d3fd16c
raytracing: mirror rays optix
larc b9ef88a
raytracing: fix miss rays, adding depth path tracing
larc 19016ad
scenes: fix getting material texture in shading rt/gl
larc 076b94b
scenes: fix specular texture one channel
larc 60d39a7
rt: random samples
larc c99de39
rt: refactoring render params
larc 2f3c1bf
rt: updating render params structure
larc 0b8c9ef
rt: adding n_samples to render params optix
larc 1d20eae
rt_optix: using payload_2 for random seed
larc 38b3dc2
rt: scattered diffuse
larc e845e7e
rt: implementing a simple path tracer
larc bd34a99
Merge branch 'dev' into alpha
larc 4d3c20d
rt: diffuse scatter default
larc 89f1c68
Merge branch 'dev' into alpha
larc 1363c59
util: adding access to partitions sorted pointer
larc 6a4af7b
rt: embree path tracer implementation structure
larc 5cb4ab6
rt: embree simple path tracer
larc 78e6c22
gproshan: using const index_t instead of const index_t &
larc 1d7a585
gproshan: using const real_t instead of const real_t &
larc 82e8f81
gproshan: update rgb_t access methods
larc f1b79de
gproshan: cleaning up const &
larc 7a1573a
Merge branch 'dev' into alpha
larc 5fc627d
gproshan: minor updates
larc c9e683f
Merge branch 'dev' into alpha
larc b1f5fed
rt_embree: adding point cloud options params
larc accd707
rt_embree: varying radius knn based
larc b8db78d
Merge branch 'dev' into alpha
larc 3e10b23
update imgui v1.90.1
larc 7eb4512
Merge branch 'dev' into alpha
larc e266dba
che_xyz: loading colors and extra value as heatmap
larc 1132f82
raytracing: closes hit vertex utils function added
larc 8e09bf2
scenes: scanner save heatmap
larc 2d0c822
Merge branch 'dev' into alpha
larc 8dcd09d
che: accessing heatmap_scale member
larc d4a6246
Merge branch 'dev' into alpha
larc 29bb9e9
rt_optix: using payload for accumulating hit distant
larc 8efb1d1
rt_embree: accumulating hit distant variable and minor updates
larc c93b165
Merge branch 'dev' into alpha
larc 32f3eba
updated imgui v1.90.4
larc c292e5c
knn: add median distant pairwise of pointcloud
larc 623fbfe
Merge branch 'dev' into alpha
larc ff82958
knn: add k3tree constructor raw pointer query
larc 8ff4bdb
knn: added mean of median knn distants
larc ce7e197
knn: options to compute a radius for all points cover surface
larc 8edb76a
knn: adding different ways to compute radius knn/embree application
larc 334a153
knn: options knn radius per point embree
larc 06900de
embree: knn mean fix bug
larc 8518c1f
knn: uncomment radius variations
larc 1755bcf
Merge branch 'dev' into alpha
larc 5bd0b22
rt_embree: get pc data from tracer
larc b612b38
remove CGAL dependency
larc ce7d85b
update github workflow and CHANGELOG
larc 1dcaf87
geodesics: fix #19, use std::abs float/double issue
larc 4877ac7
geodesics: update ptp cpu
larc 5bb647c
geodesics: #15 passing custom user function, useful for testing for e…
larc 9655f2d
geodesics: #15 cleaning up extra sources
larc 67650af
geodesics: remove/move test source
larc fd85b53
update gproshan config file
larc 65578f7
gproshan v4.0
larc 5ab234b
Merge branch 'dev' into alpha
larc ee38444
laplacian: implemented as template functions
larc bee62d3
geodesics: heat method fix float/double mix, it requires double preci…
larc 5c4a8fe
geodesics: debugging heat method
larc c221bc3
geodesics: fix #8 heat method, requires double precision
larc 75107e3
che: adding che_cuda
larc f1df3ca
che: fix che_cuda when no cuda compiler
larc 97f217d
che: using che_cuda optix, update scenes trigs
larc de069b7
che: const on public members
larc 6ce951f
che: fix using access methods
larc 5b1f990
che: cuda access methods implementation and iterator
larc f66b611
vec: update value access methods
larc c3b269f
embree: render pointcloud hit param
larc 93c3c8d
quaternion: peding upgrade, removed toMatrix
larc 0f367f4
Merge branch 'dev' into alpha
larc 33f15cb
rt: update shading, utils.h
larc 529a360
descriptor: WKS, HKS and GPS with double precision needed
larc 01ddf64
Update build.yml
larc d85eb90
Update build.yml
larc e7a8e0f
Update README.md
larc 33ae698
Update build.yml
larc 07d63a2
Update build.yml
larc e18561a
Merge remote-tracking branch 'dev/larc-patch-1' into dev
larc 0ad97c7
features: WKS update, fix max eigval
larc 9a95a18
gproshan: compiling with AppleClang 15.0
larc 471d461
cimg: warning null destination pointer snprintf
larc f3fa1f9
cimg: warning null destination pointer snprintf
larc 5d3ac2b
cleaning up include_arma.h
larc 0d2f56e
gproshan update install external cmake files
larc 5371c78
geodesics: update cholmod heat method implementation
larc fccd82a
update README
larc 0100f16
Merge branch 'dev' into alpha
larc 602888d
float: updating float operations as default for loading and rendering…
larc f518e58
Merge branch 'dev' into alpha
larc 10d3c6a
geodesics: update heat method gpu
larc c1a70bd
viewer: check window creation
larc 4640dca
mesh: adding toplesets class
larc 2574e39
geodesics: added toplesets and coalescence structs
larc 79cfd5e
scenes: fix scene number of triangles
larc 477f08f
Merge branch 'dev' into alpha
larc 6feaefc
rt: avoiding float operations ptx optix
larc 8d7ae3a
viewer: frame minor updates
larc 7b6e249
rt_optix: splitting module
larc 42567c1
Merge branch 'dev' of github.com:larc/gproshan_dev into dev
larc 2b04080
rt: errors optix render
larc d699d76
rt: fix optix, renaming optix params
larc 72efe30
update imgui v1.91.0
larc 81c3c58
Merge branch 'dev' into alpha
larc 22fb92c
Update build.yml
larc 74b63d0
Merge branch 'dev' into alpha
larc b916825
viewer: add merge action to the list of removed meshes (merge with th…
larc a269880
Merge branch 'dev' into alpha
larc File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
name: Build | ||
|
||
on: [push] | ||
|
||
env: | ||
CUDA_BIN: /usr/local/cuda/bin | ||
|
||
jobs: | ||
build: | ||
name: ${{ matrix.os }} (${{ matrix.config }}) ${{ matrix.cuda }} | ||
runs-on: ${{ matrix.os }} | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-20.04] | ||
config: [Release, Debug] | ||
cuda: [cuda, ''] | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install Dependencies | ||
run: | | ||
sudo apt remove --purge cmake | ||
sudo snap install cmake --classic | ||
sudo apt update | ||
sudo apt install \ | ||
libarmadillo-dev \ | ||
libeigen3-dev \ | ||
libcgal-dev \ | ||
libsuitesparse-dev \ | ||
libopenblas-dev \ | ||
libglew-dev \ | ||
libglfw3-dev \ | ||
libglm-dev \ | ||
cimg-dev | ||
|
||
- name: Install Cuda | ||
if: matrix.cuda == 'cuda' | ||
run: | | ||
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin | ||
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 | ||
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub | ||
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" | ||
sudo apt-get update | ||
sudo apt-get -y install cuda | ||
|
||
- name: Install Embree | ||
run: | | ||
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | ||
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null | ||
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list | ||
sudo apt update | ||
sudo apt -y install intel-renderkit | ||
|
||
- name: Create Build Environment | ||
run: cmake -E make_directory ${{runner.workspace}}/build | ||
|
||
- name: Configure CMake | ||
shell: bash | ||
working-directory: ${{runner.workspace}}/build | ||
run: | | ||
export PATH=${CUDA_BIN}:${PATH} | ||
source /opt/intel/oneapi/setvars.sh | ||
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.config}} | ||
|
||
- name: Build | ||
working-directory: ${{runner.workspace}}/build | ||
shell: bash | ||
run: | | ||
source /opt/intel/oneapi/setvars.sh | ||
cmake --build . --config ${{matrix.config}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,15 @@ | ||
build*/* | ||
obj/* | ||
bin/* | ||
lib/* | ||
doc/* | ||
tmp/* | ||
*.swp | ||
*.swo | ||
*.user | ||
.vscode/* | ||
.DS_Store | ||
*.vscode/* | ||
*.DS_Store | ||
|
||
|
||
include/gproshan/config.h | ||
|
||
src/rt_optix.ptx |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
Version History | ||
--------------- | ||
|
||
### gproshan 3.14 | ||
- Exporting gproshan as cmake library, use find_package(gproshan) in your project. | ||
- Added Intel Embree as default ray tracing library, for ray casting operations and as rendering option with shadows. | ||
- Adding Scenes module, virtual point cloud scanners and point cloud normals computation for 3D scenes. | ||
- Added render option using [OptiX](https://developer.nvidia.com/optix) ray tracing mesh, shadows. | ||
- Add module geometry, including a 2D convex hull algorithm implementation and connected components detection. | ||
- Supported file mesh types include: off, obj, ply, ptx, xyz, and any depth image or image file loaded as a mesh. | ||
- Upgraded version of geodesics module: fast marching algorithm, heat method, and parallel topleset propagation algorithm from our published paper. | ||
- Upgraded version of the sparse mesh coding with feature aware sampling module and published paper reference. | ||
- Updated save mesh with options for file types, normals, and point-cloud. | ||
- Added render option using [Embree](https://www.embree.org/) ray tracing mesh, shadows, point-cloud disks, and splats. | ||
- Implemented the loading and rendering of point clouds. | ||
- Added heatmap viewer options and loading vertex color from a file. | ||
- New user interface implemented with [ImGui](https://github.com/ocornut/imgui). | ||
- Viewer upgraded using GLEW, GLFW, and GLM. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
cff-version: 1.2.0 | ||
message: "If you use this software, please cite it as below." | ||
authors: | ||
- family-names: "Romero Calla" | ||
given-names: "Luciano Arnaldo" | ||
orcid: "https://orcid.org/0000-0002-6186-4027" | ||
- family-names: "Fuentes Perez" | ||
given-names: "Lizeth Joseline" | ||
orcid: "https://orcid.org/0000-0003-1096-2871" | ||
title: "gproshan" | ||
version: 3.0-alpha | ||
doi: 10.5281/zenodo.5227555 | ||
date-released: 2021-08-20 | ||
url: "https://github.com/larc/gproshan" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,91 +1,76 @@ | ||
cmake_minimum_required(VERSION 3.12) | ||
cmake_minimum_required(VERSION 3.22) | ||
|
||
project(gproshan VERSION 2.0 LANGUAGES CXX) | ||
project(gproshan VERSION 3.14) | ||
|
||
list(APPEND CMAKE_MODULE_PATH "${gproshan_SOURCE_DIR}/cmake") | ||
|
||
find_package(CUDA 10.1) | ||
if(CUDA_FOUND) | ||
if(NOT CMAKE_BUILD_TYPE) | ||
set(CMAKE_BUILD_TYPE Release) | ||
endif() | ||
|
||
set(CMAKE_CXX_STANDARD 17) | ||
set(CMAKE_CXX_STANDARD_REQUIRED ON) | ||
|
||
add_compile_options(-Wall -Wextra -Wno-unused-result) | ||
|
||
|
||
find_package(CUDAToolkit 11.7) | ||
if(CUDAToolkit_FOUND) | ||
enable_language(CUDA) | ||
endif(CUDA_FOUND) | ||
include_directories(SYSTEM ${CUDAToolkit_INCLUDE_DIRS}) | ||
|
||
set(CMAKE_CUDA_STANDARD 17) | ||
set(CMAKE_CUDA_STANDARD_REQUIRED ON) | ||
|
||
set(CMAKE_CUDA_FLAGS "-Xcompiler -fopenmp") | ||
set(CMAKE_CUDA_SEPARABLE_COMPILATION ON) | ||
set(CMAKE_CUDA_ARCHITECTURES 52 60 61 70 75 80 86) | ||
|
||
find_package(OptiX 7.4) | ||
if(OptiX_INCLUDE) | ||
include_directories(SYSTEM ${OptiX_INCLUDE}) | ||
endif(OptiX_INCLUDE) | ||
endif(CUDAToolkit_FOUND) | ||
|
||
|
||
set(GPROSHAN_DIR "${gproshan_SOURCE_DIR}") | ||
|
||
option(GPROSHAN_LOG "Enables logging gproshan messages." ON) | ||
option(GPROSHAN_FLOAT "Compile gproshan with float precision." ON) | ||
|
||
set(GPROSHAN_CUDA ${CUDAToolkit_FOUND}) | ||
set(GPROSHAN_OPTIX ${OptiX_INCLUDE}) | ||
|
||
|
||
configure_file( ${gproshan_SOURCE_DIR}/include/gproshan/config.h.in | ||
${gproshan_SOURCE_DIR}/include/gproshan/config.h | ||
) | ||
|
||
|
||
find_package(embree 3.13 REQUIRED) | ||
find_package(Threads REQUIRED) | ||
find_package(OpenMP REQUIRED) | ||
find_package(OpenGL REQUIRED) | ||
find_package(OpenMP REQUIRED) | ||
find_package(GLEW REQUIRED) | ||
find_package(GLUT REQUIRED) | ||
find_package(glfw3 REQUIRED) | ||
find_package(glm REQUIRED) | ||
find_package(X11 REQUIRED) | ||
find_package(Armadillo REQUIRED) | ||
find_package(CGAL REQUIRED) | ||
find_package(Eigen3 REQUIRED) | ||
find_package(CGAL REQUIRED) | ||
find_package(SuiteSparse REQUIRED) | ||
find_package(Boost COMPONENTS thread system) | ||
|
||
|
||
include_directories(SYSTEM ${embree_INCLUDE_DIRS}) | ||
include_directories(SYSTEM ${GLEW_INCLUDE_DIRS}) | ||
include_directories(SYSTEM ${GLFW3_INCLUDE_DIRS}) | ||
include_directories(SYSTEM ${AMADILLO_INCLUDE_DIR}) | ||
include_directories(SYSTEM ${SuiteSparse_INCLUDE_DIRS}) | ||
include_directories(SYSTEM ${EIGEN3_INCLUDE_DIRS}) | ||
include_directories(SYSTEM ${CGAL_INCLUDE_DIRS}) | ||
|
||
if(NOT CMAKE_BUILD_TYPE) | ||
set(CMAKE_BUILD_TYPE Release) | ||
endif() | ||
|
||
set(CMAKE_CXX_FLAGS "-fopenmp -Wall -Wno-unused-result") | ||
set(CMAKE_CUDA_FLAGS "-Xcompiler -fopenmp") | ||
|
||
set(THREADS_PREFER_PTHREAD_FLAG ON) | ||
|
||
add_definitions(${EIGEN3_DEFINITIONS}) | ||
|
||
# ARMA warning ARMA_ALLOW_FAKE_GCC with g++-9 | ||
add_definitions(-DARMA_ALLOW_FAKE_GCC) | ||
|
||
if(CUDA_FOUND) | ||
add_definitions(-DGPROSHAN_CUDA) | ||
include_directories(${CUDA_INCLUDE_DIRS}) | ||
endif(CUDA_FOUND) | ||
|
||
include_directories(${OPENGL_INCLUDE_DIR}) | ||
include_directories(${GLEW_INCLUDE_DIRS}) | ||
include_directories(${GLUT_INCLUDE_DIR}) | ||
include_directories(${X11_INCLUDE_DIR}) | ||
include_directories(${AMADILLO_INCLUDE_DIR}) | ||
include_directories(${EIGEN3_INCLUDE_DIR}) | ||
include_directories(${SuiteSparse_INCLUDE_DIRS}) | ||
include_directories(${CGAL_INCLUDE_DIRS}) | ||
|
||
include_directories(${gproshan_SOURCE_DIR}/include) | ||
include_directories(${gproshan_SOURCE_DIR}/include/viewer) | ||
include_directories(${gproshan_SOURCE_DIR}/include/mdict) | ||
include_directories(${gproshan_SOURCE_DIR}/include/cuda) | ||
|
||
FILE(GLOB_RECURSE cpp_sources ${gproshan_SOURCE_DIR}/src/*.cpp) | ||
add_library(gproshan_cpp STATIC ${cpp_sources}) | ||
|
||
target_link_libraries(gproshan_cpp ${OpenMP_CXX_LIBRARIES}) | ||
target_link_libraries(gproshan_cpp ${OPENGL_LIBRARIES}) | ||
target_link_libraries(gproshan_cpp ${GLEW_LIBRARIES}) | ||
target_link_libraries(gproshan_cpp ${GLUT_LIBRARIES}) | ||
target_link_libraries(gproshan_cpp ${X11_X11_LIB}) | ||
target_link_libraries(gproshan_cpp ${ARMADILLO_LIBRARIES}) | ||
target_link_libraries(gproshan_cpp CGAL::CGAL) | ||
target_link_libraries(gproshan_cpp ${SuiteSparse_LIBRARIES}) | ||
|
||
if(CUDA_FOUND) | ||
FILE(GLOB_RECURSE cu_sources ${gproshan_SOURCE_DIR}/src/*.cu) | ||
add_library(gproshan_cu STATIC ${cu_sources}) | ||
set_target_properties(gproshan_cu PROPERTIES CUDA_SEPARABLE_COMPILATION ON) | ||
target_link_libraries(gproshan_cu gproshan_cpp) | ||
target_link_libraries(gproshan_cu ${CUDA_LIBRARIES} ${CUDA_cublas_LIBRARY} ${CUDA_cusolver_LIBRARY} ${CUDA_cusparse_LIBRARY}) | ||
endif(CUDA_FOUND) | ||
|
||
add_executable(gproshan gproshan.cpp) | ||
add_executable(test_geodesics test_geodesics.cpp) | ||
add_executable(test_image_denoising test_image_denoising.cpp) | ||
|
||
target_link_libraries(gproshan gproshan_cpp) | ||
target_link_libraries(test_geodesics gproshan_cpp) | ||
target_link_libraries(test_image_denoising gproshan_cpp) | ||
|
||
if(CUDA_FOUND) | ||
target_link_libraries(gproshan gproshan_cu) | ||
target_link_libraries(test_geodesics gproshan_cu) | ||
target_link_libraries(test_image_denoising gproshan_cu) | ||
endif(CUDA_FOUND) | ||
|
||
file(MAKE_DIRECTORY tmp) | ||
add_subdirectory(src) # gproshan library | ||
add_subdirectory(apps) # gproshan executables | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review the other updates and changes.