diff options
author | Paul A. Patience <paul@apatience.com> | 2022-09-15 13:16:25 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2022-10-06 15:08:03 +0100 |
commit | 52b9f0ef1e1d80275ea39ba146f286f6a91c9585 (patch) | |
tree | c6ba72f05713cba3da1b35429d4f09807f9fc84d | |
parent | e4593e21145769ff721b70148edb25fd35838834 (diff) | |
download | guix-52b9f0ef1e1d80275ea39ba146f286f6a91c9585.tar.gz guix-52b9f0ef1e1d80275ea39ba146f286f6a91c9585.zip |
gnu: Add discregrid.
* gnu/packages/graphics.scm (discregrid): New variable.
Signed-off-by: Christopher Baines <mail@cbaines.net>
-rw-r--r-- | gnu/packages/graphics.scm | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index fe38e7d03f..93cbb23620 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -2202,6 +2202,75 @@ Features include: ") (license license:gpl3+))) +(define-public discregrid + (let ((commit "4c27e1cc88be828c6ac5b8a05759ac7e01cf79e9") + (revision "0")) + (package + (name "discregrid") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/InteractiveComputerGraphics/Discregrid") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01cwfpw19rc9k5glx9dhnqpihd0is28a9b53qvzp5kgjmdq2v1p0")) + (modules '((guix build utils))) + (snippet + #~(begin + (delete-file-recursively "extern/cxxopts") + (substitute* '("cmd/discrete_field_to_bitmap/main.cpp" + "cmd/generate_density_map/main.cpp" + "cmd/generate_sdf/main.cpp") + (("^#include <cxxopts/cxxopts\\.hpp>") + "#include <cxxopts.hpp>")))))) + (build-system cmake-build-system) + (outputs '("out" "bin")) + (arguments + (list #:tests? #f ; No tests + #:configure-flags + #~(list (string-append "-DCMAKE_INSTALL_BINDIR=" + #$output:bin "/bin") + ;; Bespoke version of BUILD_SHARED_LIBS. + "-DBUILD_AS_SHARED_LIBS=ON") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-cmake + (lambda _ + (let ((port (open-file "cmd/CMakeLists.txt" "a"))) + (display "install(TARGETS + DiscreteFieldToBitmap + GenerateDensityMap + GenerateSDF) +" + port) + (close-port port))))))) + (inputs + (list cxxopts eigen)) + (home-page "https://github.com/InteractiveComputerGraphics/Discregrid") + (synopsis "Discretize functions on regular grids") + (description "Discregrid is a C++ library for the parallel discretization +of (preferably smooth) functions on regular grids. It generates a (cubic) +polynomial discretization given a box-shaped domain, a grid resolution, and a +3D scalar field. The library can also serialize and deserialize the generated +discrete grid, and compute and discretize the signed distance field +corresponding to a triangle mesh. The following programs are included with +Discregrid: + +@itemize +@item @code{GenerateSDF}: Computes a discrete (cubic) signed distance field +from a triangle mesh in OBJ format. + +@item @code{DiscreteFieldToBitmap}: Generates an image in bitmap format of a +two-dimensional slice of a previously computed discretization. + +@item @code{GenerateDensityMap}: Generates a density map from a previously +generated discrete signed distance field using the cubic spline kernel. +@end itemize") + (license license:expat)))) + (define-public mmg (package (name "mmg") |