Discrete mesh offsetting based on half-space Voronoi diagrams and Power diagrams.
Dependencies are downloaded automatically by CMake at configuration time. To compile the code, just type:
mkdir build
cd build
cmake ..
cmake --build . -j8 --config Release
See possible options with:
./offset3d -h
Example usage:
./offset3d filigree.ply -n 512 -p 10 -r 5 -x dilation
Takes a .svg file as input, and saves the result of the dilation as a quad-mesh (.obj).
Takes a triangle mesh as input (.stl, .obj, .off), and saves the dilated output as a mesh (quad-mesh with .obj, hex-mesh with .mesh, etc.)
Offset3D
Usage: ./offset3d [OPTIONS] input [output]
Positionals:
input TEXT Input model
output TEXT=output.obj Output model
Options:
-h,--help Print this help message and exit
-i,--input TEXT Input model
-o,--output TEXT=output.obj Output model
-j,--json TEXT Output json file
-d,--dexels_size FLOAT=1 Size of a dexel (in mm)
-n,--num_dexels INT=256 Number of dexels (-1 to use dexel size instead)
-p,--padding INT Padding (in #dexels)
-t,--num_thread UINT=6 Number of threads
-r,--radius FLOAT=8 Dilation/erosion radius (in #dexels)
-m,--method TEXT in {brute_force,ours}
The method to use
-x,--apply TEXT in {closing,dilation,erosion,noop,opening}=dilation
Morphological operation to apply
-f,--force Overwrite output file
-u,--radius_in_mm Radius is given in mm instead
Head over to the scripts/ folder for further instructions.