mlivesu / cinolib

A generic programming header only C++ library for processing polygonal and polyhedral meshes
MIT License
930 stars 101 forks source link

All-hexahedral meshing? #157

Closed cesss closed 1 year ago

cesss commented 1 year ago

Reading your paper Optimal Dual Schemes for Adaptive Grid Based Hexmeshing, it mentions that it's implemented in cinolib (in hex_transition_schemes.h), but does cinolib come "with batteries included" for obtaining a fully automatic hexmesh from, for example, a trimesh stored in OBJ? I'm asking this question because I found the repository used for the paper (https://github.com/cg3hci/Gen-Adapt-Ref-for-Hexmeshing) but however that code has quite a few external dependencies that I'd like to avoid.

If cinolib has all the necessary stuff, can you show some example for hexmeshing a triangle mesh? (I suppose the first step would be generating an adaptive grid, but that can be done with cinolib as well, can't it?

mlivesu commented 1 year ago

So, the project you mentioned (generalized adaptive refinement) internally solves a sequence of integer linear problems using Gurobi, which is not included in cinolib for obvious license reasons. The optimal dual schemes and all the code necessary to install them into a given refined grid are indeed encoded in cinolib. What is missing in the library right now is the generation of an adaptively refined grid, with all the pairing and balancing that is necessary to ensure that schemes can actually be installed. This part is inside the repo that you linked. Eventually I will import all the parts that do not depend on Gurobi into the library, but this is not a top priority for me at the moment. Meanwhile, you may want to comment out the Gurobi part from that code and use the complete end to end pipeline for your project