Smoothing of Curves on Polyhedral Surface Meshes by using Penalty Potentials and Geodesics
master | |||
Current |
Language Standard: | C++20 |
Compiler: | GCC |
Build System: | build2 |
Operating System: | Linux |
Dependencies: |
Geometry Central Libigl Assimp GLM SFML glbinding |
Currently, only the development mode is supported.
For the development and the proper handling of multiple configurations, it is recommend to clone the repository into its own directory.
mkdir hyperreflex && cd hyperreflex
git clone https://github.com/lyrahgames/hyperreflex.git
cd hyperreflex
To create a basic target configuration with the name default
with the system's default GCC compiler and enabled optimization flags, run the following command.
bdep init -C \ # Create a new configuration for initialization.
@default \ # Name the configuration 'default'.
cc \ # Load the `cc` module to properly handle C and C++.
config.cxx=g++ \ # Use the system's default GCC C++ compiler.
config.cxx.coptions="-O3 -march=native" \ # Enable optimization.
-- "sys:assimp/*" # Mark 'assimp' as system dependency.
During the creation and initialization of a new target configuration all dependencies except assimp
are fetched and downloaded from package repositories.
The assimp
dependency needs to be fulfilled by the system itself.
As the compilation of some dependencies, such as glbinding
and sfml-graphics
, takes some time, you might consider marking these as system dependencies, too, by either appending "?sys:glbinding/*"
and "?sys:libsfml-graphics/*"
to the previous command or running the following commands after a successful initialization.
bdep sync "?sys:glbinding/*"
bdep sync "?sys:libsfml-graphics/*"
The first compilation will also compile all dependencies and will require more time. To compile the program run one of the following commands.
b
bdep update @default
If you need to clean up after a compilation attempt, run one of the following commands.
b clean
bdep clean @default
If the compilation was successful it should be possible to run the following command with a surface mesh file.
hyperreflex/hyperreflex <surface mesh file>
- Escape: Quit the program.
- Left Mouse Click + Mouse Move: Rotate the camera around the surface.
- Shift + Left Mouse Click + Mouse Move: Move the surface.
- Mouse Wheel: Zoom in or out.
- Mouse Wheel Click: Focus intersection point with surface.
- Right Mouse Click and Move on Surface Mesh: Draw initial curve.
- Space: Generate smoothed curve.
- H: Toggle visualization of penalty potential.
- G: Generate shortest geodesic based on initial curve.
- S: Toggle rendering of smoothed curve.
Please, refer to the slides.