Unsolved Mesh offset problem #9460
-
|
Hi, I do not know who to ask, and CGAL is the most professional open-source geometry kernel I know. I have been facing a geometrical problem for almost a decade and still cannot figure out how to solve it. Professional geometry kernels can handle this, but there is no open-source library available, and more affordable CAD modelers like Rhinoceros 3D cannot handle it either: Context:
Problem is that that at the vertex corners the faces intersect. The commercial expensive kernels somehow create little triangles so that the offsets are clean. I did not find any logic how to make this work. The problem that is described in detail:
Does CGAL had any such project before? Do you have any ideas how to solve this problem? |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 19 replies
-
|
You need to precisely define what you want to achieve.
You can compute the Minkowski sum of a mesh with a small cube:
1. Decompose the mesh into convex pieces.
2. Compute the pairwise sums of the pieces with the cube.
3. Compute the union of sums.
If this suits you, I can provide more details.
____ _ ____ _
/_____/_) o /__________ __ //
(____ ( ( ( (_/ (_/-(-'_(/
_/
…On Sun, 3 May 2026 at 13:43, Petras Vestartas ***@***.***> wrote:
Hi,
I do not know who to ask, and CGAL is the most professional open-source
geometry kernel I know.
I have been facing a geometrical problem for almost a decade and still
cannot figure out how to solve it. Professional geometry kernels can handle
this, but there is no open-source library available, and more affordable
CAD modelers like Rhinoceros 3D cannot handle it either.
*Context:*
- You have a planar mesh
- You offset the planar mesh such that the sides of the mesh remain
planar
Problem is that that at the vertex corners the offsets must create small
triangles:
Screenshot.2026-05-03.122159.png (view on web)
<https://github.com/user-attachments/assets/da36f8c7-b8c3-466c-a529-be3240ee42bf>
Screenshot.2026-05-03.122219.png (view on web)
<https://github.com/user-attachments/assets/e24db958-7798-4990-9746-ccddd98b8c1e>
Screenshot.2026-05-03.122339.png (view on web)
<https://github.com/user-attachments/assets/23330540-2dab-4a08-ab53-e4359e13f612>
Does CGAL had any such project before? Do you have any ideas how to solve
this problem?
—
Reply to this email directly, view it on GitHub
<#9460>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABVBNOASDFTNQZ6HTYTQTSL4Y4PELAVCNFSM6AAAAACYO6MOESVHI2DSMVQWIX3LMV43ERDJONRXK43TNFXW4OZZHE4TKNRSHE>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
Inward and outward face offsetting of polyhedral meshes is implemented in #9397. You can in particular specify different weights (speeds) for each face. Here is the simplest example for polyhedral offsetting: https://github.com/MaelRL/cgal/blob/SPS_3-Skeleton_3-GF/Straight_skeleton_3/examples/Straight_skeleton_3/create_offset_polyhedra.cpp Contrary to the paper you cite, the approach is not limited to local offsets and can handle any global combinatorial change. The limitation is that an infinitesimal perturbation must be applied to the input such that the polyhedron is in generic position (i.e., no three face may intersect in more than a point). Is this what you mean? |
Beta Was this translation helpful? Give feedback.
-
|
After super excitement, does it work for open meshes? |
Beta Was this translation helpful? Give feedback.















Inward and outward face offsetting of polyhedral meshes is implemented in #9397. You can in particular specify different weights (speeds) for each face. Here is the simplest example for polyhedral offsetting: https://github.com/MaelRL/cgal/blob/SPS_3-Skeleton_3-GF/Straight_skeleton_3/examples/Straight_skeleton_3/create_offset_polyhedra.cpp
Contrary to the paper you cite, the approach is not limited to local offsets and can handle any global combinatorial change. The limitation is that an infinitesimal perturbation must be applied to the input such that the polyhedron is in generic position (i.e., no three face may intersect in more than a point).
Is this what you mean?