Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Smooth surfaces at image boundary

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Smooth surfaces at image boundary


Chronological Thread 
  • From: Sebastien Loriot <>
  • To:
  • Subject: Re: [cgal-discuss] Smooth surfaces at image boundary
  • Date: Mon, 9 May 2022 16:13:48 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23:DgIkua7QaIBarNGyPZy9cAxRtAvBchMFZxGqfqrLsTDasY5as4F+v mVLCDrVM/+DamL9fohyPdiz9EJTv57QzYc2TgU4+H9kZn8b8sCt6faxfh6hZXvKRiHgZBs6t JtGMoGowOQcFCK0SsKFa+C5xZVE/fjUAOK6UoYoAwgpLeNeYH5JZSlLxqho2+aEvfDjW1nX4 Y6q8pWGULOY82cc3lw8u/rrRCxH56yaVAMw5jTSstgW1LN2vyB94KM3fcldHVOgKmVnNrLSq 9L48V2M1jixEyHBpT+Suu2TnkUiGtY+NOUV45Zcc/DKbhNq/kTe3kunXRYRQR8/ttmHozx+4 IRjmYWZUiUiB4GWtv0dU0Z6SC5jIZQTrdcrIVDn2SCS50jPcn+p3O83SU9rZ8sX/eF4BWwI/ vsdQNwPRkrb1qTmnfThELAq255LwMrDZOvzvll7yTbDDPE6B5XHa6rP7N5cmjw3g6iiGN6FO pFJNWoxN3wsZTVoBFgTApYMvd6FqWT5TBQFmn2knaA4tj27IAtZieCxarI5YOeiTspcmgOUp 3nN4n/iKgoLMcSWjzuD6HOlwOHV9R4XQ6oXHby8s+Fw2RidmzZVBxoRWl+25/K+jyZSRu6zN WRF1AY3hLMQ/3WHFPfkXx3ngiWLowIlDo84//IB1CmBza/d4gC8D2cCTyJcZNFOiCPQbWx6v rNut4O5bQGDoIF5WlrGqejJ9WLa1Tw9aD5dNXVdHGPp9vG6+Nlr5i8jWOqPB0JcszEYMTT5w jTPszJnwrtO14gE0KK0+V2BiDWpznQocuLXzlSONo5GxlkhDGJAW2BOwQaAhRqnBNjCJmRtR FBex6CjABkmVPlhbhClTuQXB62O7P2YKjDailMHN8B/qm71pifzJ9EBuW4WyKJV3iAsKW+Bj Kj76VM52XOvFCbCgVJfON/uU5tyk8AM6/y8DK6PNLKinaSdhCfepH00DaJh92/ql0conMkC1 WSzIK6R4YIhIf0/llKeHr9DuZdyn3xW7T6NGPjTkkv/uZLDNSb9YepUazOmM7FphIva+lm92 4gEbKOilU4PONASlwGNrub/23hRfSZlbX03wuQLHtO+zv1ORT9xVqeNke9wE2Gn9owM/tr1E riGchcw4DLCabfvcG1ms1hvN+HiW4hRt3U+MXB+NFqkwSlxboOm7aNZfJwyJOF1+OtmxP9yb v8EZ8TQWqQVGmqbo2wQPcvnsYhvVBW3ngbRbSeoZT4IeZQ/FQHE/9nTeBTiqXsVBS2tuMpi+ LCtj1uJQZcKSwl4ItzRbfajkwG4sXQHybB9WkLJJp9Yf0C1qNpmLCn4j/kWJcAQKEWblmHKi VrOWRpB/LvDuY449tXNlJuolYbxHrssBFdeEkna8a2yanvX82+l9olKD7SFcDXbY2Xrofnwa OhQycb8B/0JhlN9tYRxTuRwxqUk6tqz/rJXw1g2HHjPaFj3WLpsLmPchptKv6xJg6BD4E64B xjJ9d5dNrGEfsjiFQdJdgYia+2C09ASmyXTvatpehSkvHcv8erVS1hWMjmNlDdZcOl/PrQjz Lpzo8UR8QG+1kcnP4rUlCxS7GjQfHUMX7997cMfCY7vzxUxkxRMPMaaBSjx75WCLd5LNxByc DOTgaPDgZVax1bDIyVvTymThbIFiMRcog1OwX8DO0+NxojPiMgx0UAD6j8wVAlUkkhK3u8b1 rKH7KGpyXhiPguEhfSvm0ipEgBFQQKDown/lgFPm2reQE2lEGfKKQXR/ApLEF8xqwphkvpzp dl0C1oJlR7lecjw2m05XksNRznLU4lq7gOb8Cy4N53tInT5CAYJRoehYGMJr13sBsZZaIgrY wV11L4YVJAX/hL8b0H250d2GFjQpN25yLR+fMxc
  • Ironport-hdrordr: A9a23:t/bayK4yZ1tBsR+v/QPXwOXXdLJyesId70hD6qkDc20tTiX4rb HMoB1/73XJYVkqKRQdcLy7SdO9qDbnhONICOoqTNOftWvdyQmVxehZhOOIowEIWReOjdK1vZ 0AT0EUMqyXMbEVt7eD3OD1KadG/DBFysyVbCXlokuFgTsEV0io1WlENjo=
  • Ironport-phdr: A9a23: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 Z5LVaUCEVJoTLUVDUNqGNFEK5ByDGtMrA==
  • Ironport-sdr: IjF88jNoqBZAFMI/fGXJipb/UUPG4bm0gLEDJ1ow0S+weEh6wWNvIy4ShttPqGmfzS61XzDHZQ 9j5WvkWjcKqbF9C5vUdLlCFVNQIu3hzPFzEdEoOQdr1Lf4h0SpwAZjZoQEu4sJF9qlsVnStAUk GndLakcHLdok9EbKv7j2GiiXDYeO9LMHM8wmXy+uTnODcV4AkF8dYEAn5OgZyoNE2XuIQHmDth SIkaJDVmNQBRy7L8A2Z2sD/gF6T2+Budf6WMAZFYzVKS5jJoIUd7IG5VPmsCOIAUTn2G7vSQDB zMJIXneoOXsXj4E30mcBGUoc

On the attached screenshot, you'll see in read the intersection of
the output mesh with the cube (0 0 0 -> 100 100 100).

So clearly, the mesh is not exactly on the cube.
The initialization (intersection of the image with the cube) is
done with points exactly on the cube. But then, intersection points
are computed by bisection (it is handled as an image).

Snapping could be done by using a dedicated oracle using a different
intersection computation function when the segment intersect the
boundary cube.

Best,

Sebastien.


On 5/9/22 10:43, hello ( via cgal-discuss Mailing List) wrote:
Hello,

sure! Attached is an example source code and the resulting file for the 420 example.

I would have expected, that all nodes on the bounding surfaces are either at x/y/z 0 or 100 (as it is for the edges) but instead they appear roughly at 0 or 100 +-0.05.
It seems to correlate with the relative_error_bound, however I can only make the error smaller but not go away completely. (The attached file is generated with 1e-3)

Best,
Sebastian


On 09.05.22 09:23, Sebastien Loriot ( via cgal-discuss Mailing List) wrote:
Hello,

could you share a minimal example showing the problem?

Thanks,

Sebastien.

On 5/7/22 13:37, Sebastian Bachmann ( via cgal-discuss Mailing List) wrote:
Hello,
No one has an idea? Is it not somehow possible to restrict nodes onto a surface? I.e. if I have the polyline of the surface's boundary, can I specify that all nodes must be on that surface?

For now I have written a function to go over all nodes and check if they are near such a boundary face and then "pull" the nodes onto that surface. However, there are certain edge cases were this then yields collapsed triangles etc. Thus, solving this during meshing would be a great enhancement.

Best,
Sebastian

On 25.04.2022 07:16, Sebastian Bachmann ( via cgal-discuss Mailing List) wrote:
Hello,

I created an image meshing tool, similar to the one given here in this example code: https://doc.cgal.org/latest/Mesh_3/Mesh_3_2mesh_3D_image_with_features_8cpp-example.html with the only difference, that I extract the surface elements and not write the full 3D mesh.
I noticed, that on the image boundary, the vertices would be not exactly on the face but roughly +- the relative error bound given in create_labeled_image_mesh_domain. For examples, nodes on the xy plane at z=0 are not on z=0 but for example -0.01 to 0.01. While the protected polylines are exact and have always z=0.
I created for example a mesh from the 420.inr example with the same meshing criteria as given in the example and can see that behaviour there.

While you can control the maximal deviation using the relative error bound, there will always be some deviation. And if I set the relative error bound too low, it seems the meshing never finishes.
I wonder now, if it is possible to constraint the mesh (similar to the 1d polylines), such that the vertices for facets on the image boundary, are always exactly on the image boundary?

Best,
Sebastian



Attachment: Screenshot from 2022-05-09 15-25-11.png
Description: PNG image




Archive powered by MHonArc 2.6.19+.

Top of Page