Third Party Libraries
External Dependencies
Here is a list of third party libraries used in Lagrange. Those external dependencies will be automatically downloaded by our CMake system depending on which Lagrange module is enabled.
Direct vs Indirect Dependencies
This table only lists direct dependencies of various Lagrange modules. Indirect dependencies are not listed there.
Library Name | License | Used By |
---|---|---|
Assimp1 | BSD-3 | IO |
Boost2 | Boost | FS |
CLI11 | BSD-3 | Examples3, Performance Tests (Core) |
Catch2 | Boost | Testing |
Dear ImGui | MIT | UI |
Eigen | MPL2 | Core, UI |
Embree | Apache 2 | Raycasting |
EnTT | MIT | UI |
Filesystem4 | MIT | FS |
GLFW | MIT | UI |
Happly | MIT | IO |
ImGuizmo | MIT | UI |
JSON for Modern C++ | MIT | Examples (Winding), UI |
Libigl | MPL2 | BVH, IO |
METIS | Apache 2 | Partitioning |
MikkTSpace | zlib | Unit Tests (Core) |
MshIO | Apache 2 | IO |
Nanobind | BSD-3 | Python |
OpenSubdiv | Apache 2 | Subdivision |
OpenVDB | MPL2 | Volume |
Portable File Dialogs | WTFPL (public domain) | UI |
StackWalker | BSD-2 | Testing |
Threading Building Blocks | Apache 2 | Core |
Tracy5 | BSD-3 | Core |
WindingNumber | MIT | Unit Tests (Winding), Winding |
gl3w | MIT | UI |
imgui fonts | MIT | UI |
nanoflann | BSD-2 | BVH, UI |
span-lite | Boost | Core |
spdlog | MIT | Core |
stb | Public domain | UI, Unit Tests (IO) |
tinygltf | MIT | IO |
tinyobjloader | MIT | IO |
Bundled Dependencies
Lagrange integrates some third-party code directly into its codebase. Those files have usually been
modified to work with Eigen, and their functions wrapped into the lagrange
namespace. This table
summarize the list of third-party code that is directly bundled into Lagrange, as well as the
appropriate licenses and files that are affected.
-
Assimp is an optional dependency of the IO module. ↩
-
Boost::filesystem is an optional backend of the FS module. ↩
-
CLI11 is used by the examples in the following modules: BVH, Core, IO, Partitioning, Raycasting, Subdivision, UI, Volume, Winding ↩
-
gulrak/filesystem
is only needed when the IO module is compiled in C++14 mode. In C++17 mode, the IO module will defaults tostd::filesystem
. ↩ -
Tracy is an optional dependency of the core module. ↩