Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file removed .vs/CMake Overview
Empty file.
3 changes: 0 additions & 3 deletions .vs/ProjectSettings.json

This file was deleted.

13 changes: 0 additions & 13 deletions .vs/VSWorkspaceState.json

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed .vs/VolumeProjectorPlugin/v17/.wsuo
Binary file not shown.
Binary file removed .vs/VolumeProjectorPlugin/v17/Browse.VC.db
Binary file not shown.
104 changes: 0 additions & 104 deletions .vs/VolumeProjectorPlugin/v17/DocumentLayout.backup.json

This file was deleted.

101 changes: 0 additions & 101 deletions .vs/VolumeProjectorPlugin/v17/DocumentLayout.json

This file was deleted.

Binary file not shown.
Binary file removed .vs/cmake.db
Binary file not shown.
Binary file removed .vs/slnx.sqlite
Binary file not shown.
7 changes: 1 addition & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
cmake_minimum_required(VERSION 3.22)

if(NOT DEFINED MV_DRV_USE_VCPKG)
set(MV_DRV_USE_VCPKG OFF)
elseif(MV_DRV_USE_VCPKG)
message(STATUS "DVRPlugins: Using vcpkg to install dependencies")
endif()

option(MV_DRV_USE_FAISS "Enable Faiss library integration" OFF)
option(MV_UNITY_BUILD "Combine target source files into batches for faster compilation" OFF)

set(PROJECT "DVRPlugins")
Expand Down
19 changes: 1 addition & 18 deletions DVRViewPlugin/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
cmake_minimum_required(VERSION 3.22)

option(MV_DRV_USE_FAISS "Enable Faiss library integration" OFF) # Add this line

# -----------------------------------------------------------------------------
# DVRView Plugin
# -----------------------------------------------------------------------------
Expand All @@ -28,22 +26,7 @@ endif()
# Conda Faiss Integration
# -----------------------------------------------------------------------------
if(MV_DRV_USE_FAISS)
# Set the path to your Faiss library.
set(FAISS_DIR "" CACHE PATH "Path to your folder containing the Faiss include and library folders")
if(FAISS_DIR STREQUAL "")
message(FATAL_ERROR "FAISS_DIR is not set. Please set it to your folder that contains the Faiss include and library folders.")
endif()

if(WIN32)
set(FAISS_INCLUDE_DIR "${FAISS_DIR}/Library/include")
set(FAISS_LIBRARY_DIR "${FAISS_DIR}/Library/lib")
else()
set(FAISS_INCLUDE_DIR "${FAISS_DIR}/include")
set(FAISS_LIBRARY_DIR "${FAISS_DIR}/lib")
endif()

message(STATUS "Using Faiss include directory: ${FAISS_INCLUDE_DIR}")
message(STATUS "Using Faiss library directory: ${FAISS_LIBRARY_DIR}")
find_package(faiss CONFIG REQUIRED)
endif()

# -----------------------------------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ https://github.com/user-attachments/assets/ce592486-d5a1-4a5e-84f4-011fe753f0fb

## Build instructions
- This is a plugin for the [manivault studio framework](https://github.com/ManiVaultStudio). Go to the repository of the framework, and it has extensive explanation about how to build and run plugins for it.
- It has an optional dependency for the [Faiss ANN library](github.com/facebookresearch/faiss)
- It has an optional dependency for the [Faiss ANN library](github.com/facebookresearch/faiss). Set the CMake option `MV_DRV_USE_FAISS` to `ON` and provide a faiss installation. We recommend using [vcpkg](https://github.com/microsoft/vcpkg/) using `CMAKE_TOOLCHAIN_FILE` (`PATH_TO/vcpkg/scripts/buildsystems/vcpkg.cmake`) and the `VCPKG_TARGET_TRIPLET` `x64-windows-static-md`.
- Before running the program, you might need to adjust some parameters in the DRVViewPlugin/volumeRenderer.h file:
- _fullGPUMemorySize = Tells the program how much VRAM it can use (mainly important for the full data pipeline mode, apart from some warnings). The default is 2 GB
- _hnswIndexFolder = Folder path where it saves/loads the constructed index to/from when using the hnsw ANN library, default: "C:/hnsw_index/" (TODO make this a CMAKE parameter)
- _hnswIndexFolder = Folder path where it saves/loads the constructed index to/from when using the hnsw ANN library, default: "C:/hnsw_index/" (TODO: make this a CMAKE parameter)
- _hnswM, _hnswEfConstruction, _hwnsEfSearch = Parameters for the ANN algorithm library that is used for the full data pipeline rendermode
- (only if you use FAISS) _nlist, _nprobe, _useFaissANN = Again, parameters for the FAISS ANN algorithms used in the full data pipeline rendermode
- You still need to add at least a dimensionality reduction plugin for this plugin to be usable, e.g., [t-SNE](https://github.com/ManiVaultStudio/t-SNE-Analysis) or [UMAP](https://github.com/ManiVaultStudio/UMAP-Plugin)
Expand Down
19 changes: 19 additions & 0 deletions vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "volumeprojectorplugin",
"version": "1.0.0",
"dependencies": [
"faiss",
"hnswlib"
],
"builtin-baseline": "c01dc6ea7353758f2ed70df0bc29c97dfc650b3a",
"overrides": [
{
"name": "faiss",
"version": "1.14.0#0"
},
{
"name": "hnswlib",
"version": "0.8.0#0"
}
]
}