I need to contract(offset) a mesh by a small amount(around 5mm), the mesh itself is quite big (say, 1000mm). The problem is that, I need to contract it based on local mean curvature. That is, for places with higher mean curvature(protruding) less contraction is wanted; and vice versa.

The best approximation I can find now is CGAL's mesh skeletonization. The skeletonization is done with iterative contraction by mean curvature. So instead of contraction many times, I contract only once, and get what I need.

The problem with this approach is that the intermediate mesh is not garanteed to be self-intersection free, forbidding further processing. I don't have reliable way to automatically repair intersection.

I can of course, compute mean curvature at vertices myself and contract accordingly. Problem is I don't know to which direction I should offset a vertex. If I just use the vertex normal, the resulted mesh is very messy(not smooth).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.