Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Create a 3D mesh as coarse as possible

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Create a 3D mesh as coarse as possible


Chronological Thread 
  • From: Sebastien Loriot <>
  • To:
  • Subject: Re: [cgal-discuss] Create a 3D mesh as coarse as possible
  • Date: Tue, 5 Jul 2022 12:02:22 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23:jKT0a61w0DCg466vh/bD5eF3kn2cJEfYwER7XKvMYLTBsI5bpzQEn GFMUGmGaKyLM2H9c4txOtu+oUgFsZCBzdU2SwU43Hw8FHgiRejtVY3IdB+oV8+xBpSeFxw/t 512hv3odp1coqr0/0/1WlTZhSAgk/nOHNIQMcacUsxLbVYMpBwJ1FQywYbVvqYy2YLjW1zV5 IuryyHiEAbNNwBcYjp8B52r80sHUMTa4Fv0aXRjDRzjlAa2e0g9VPrzF4npR5fLatU88tqBe gr25OrRElU1UPsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0o2HKJ0VKtZt9mGt40uy v9wlq7hcDkwOKrT38gQDUB/DT4raMWq+JefSZS+mcmazkmDbH61hvszUAc5OooX/usxCmZLn RAaAGpVP1bT2qTvmuL9F7UEascLdKEHOKsEvnZ6zDbFS/MiaZ/GSqTOo9Rf2V/cg+gXTauBP JVDOVKDajzZehd2NlwoJK4fs/+vl0v1NA1ppxGa8P9fD2/7lVQtitABKuH9cdODQYBZn12Tu 3nd13/oBwkTct2Z0zuMtHy27tIjhgv+UYMWUaK9r7tk3QHVyWsUBxkbE1C8pJFVl3JSRfoCd E4+xwkc/JEM7UqsUZ7RUkPhh2Cb60t0t8VrL8U27wSEy6zx6gmfB3QZQjMpVDDAnJ9mLdDN/ g/Z9+4FFQCDo5XOFi3Arub8QSeafHlKfTVbNEfoWCNcu4G7yLzfmC4jWTqKLUJYptj8GDW13 DXT6SZj2/MciskE06j99lfC695NmnQrZl5ljuk0djj9hu+cWGJDT9LxgbQ8xagZRLt1tnHb4 BA5dzG2tYji962lmi2XW/kqF7q0/fuDOzC0qQcxQsdwqmXxoCX4ItE4DNRCyKFBYpZsldjBM B+7hO+tzMI70IaCNvIoP9rqV6zGM4C5TI25DJg4keaikrAoLFPdlM2fTUGX2G/pnSARfVIXa P+mnTKXJS9CU8xPlWLoL89EiOND7n1gmAv7GM+jpzz6gOL2TCPEEt8tbQreBshntv/siFuOq L53aZDaoyizpcWkPUE7B6ZIfQ5URZX6bLiqw/Fqmhmre1Y5Rjh8U6WOmdvMueVNxsxoqwsBx VnlMmcw9bY1rSKvxdyiZi8xZbXxc4x4qH5nbyUgMUz5iXcmaIerqqwYcsJvL7Ug8eViy99yT uUEK53QWKQRFmyf9mRPd4T5oaxjaA+v2lCDMi+jVz41IMxtSgnPzdn7c1a97yIJFCe26ZAzr uT4hAPWSJYOXSp4C8PSZK79xl+9pylPl+d7Xk+OKd5WIR2+/I9vIi33r/k2P8BccUWZlmXGj 16bWE5Kq/PMrok59MjyqZqF94r5QfFjGkd6HnXA6enkOCTf+F2ly9ASXeuNewfbSzqoqqivY ONiz8b8PucCq1BEvtcuCL1s168/u4LiqrIGnARpGHLHMwaiBr96eCLU2MBOsuhSw+Yct1bqH E2I/dZeNPOCP8a8SAwdIw8sb+Ki0/AIm2mNsa5kfh2ivCInrqCaVUhyPgWXjHAPJrVCNo54k /wqv9Qb6lDihxd2YMyKiDtYqzaFInAaCf51s5gbBMr0j1NuxAweJ5PbDSDy7deEbNAVahsmJ TqdhazjgbVAxxqdLyBiSyCVhecN144TvB1qzUMZIwjbkNTygPJqjgZa9i46T1gIwxhKuw6p1 rOH66GoyWSyEzZUaAxrWmmtH0ReAUTc9BGtjVQOk2LdQg+jUWmlwKjR/wqS1Bhxzo6eVmEzE HKkJKLNXjPjfcW31Sw3MaKgg+K2VsR/r2Uuh+j+d/lo3PAGjf7NjaqnZG5OoBziaS/0aIsru sEylNtNhWbH2eL8bkH150R2FVjddfxcGFF/fA==
  • Ironport-hdrordr: A9a23:j1YSAqxtjDdxdjR8TY7kKrPwD71zdoMgy1knxilNoG9uA6qlfq eV7YgmPH7P+UsssRQb8+xoV5PwI080maQFmrX5eI3SJjUO21HYSb2Kj7GSoAEIcheWnoU86U 4jSdkHNDSZNzlHZK3BkW6F+rgbsaC6GeyT9IPjJrRWIT2CqZsM0+60MGmm+4RNKjV7OQ==
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: vH4O4h4DHloB8lJl3sLjXyMxF9D4EtE4+PjR2yQdym0AMFwncfl9N9nCDzL0rixzobwIi7aMlL L3DMnLVZdNrvNBD7VxzHbvMMh1lrOwoLkJ9l4kVpNMQf6zUFejn3MIUZyLQgFrlsAzBqM+dPW1 CHRKQHAZcitmv//3yCz8eDB+322XsTwUnJhyVXpnkdaS4rqU70KdmBM1InFxegwGEvRpo/+7jv Z+wbSBa+wkeebwZ3Jx+a8BmpcQVu6XciYZgun+zhU2P99lRkgmJ9GAcoEt/mUcSRKDa8hqzoYE DHvqZ1l1m/XN8Rdr8VY5c4R2

There is no better solution that iterating over cells in the complex
and using a std::set/std:unordered to track already seen vertices.

Best,

Sebastien.

On 5/12/22 17:50, Bob Bill ( via cgal-discuss Mailing List) wrote:
Sorry for posting again, but I have a related question about this: how can I get all the vertices inside the domain? So far the only way I can come up with is to use `cells_in_complex_begin()` and get each vertex by looping over each tetrahedron, like the following:

for(auto iter = c3t3.cells_in_complex_begin(); it!=c3t3.cells_in_complex_end();++it){
    for(int j=0;j<4;++j) auto p = it->vertex(j)->point();
}

Of course by doing this way there'll be a lot of duplication and I'd have to use an std::set.

Is there some other way to do this?

Best,
Bob


Il martedì 10 maggio 2022, 15:55:52 CEST, Bob Bill <> ha scritto:


Here's the link to the minimal working example on Gist: https://gist.github.com/boblukas/603c16f4aceca0d7a5b46fa8150fae29 <https://gist.github.com/boblukas/603c16f4aceca0d7a5b46fa8150fae29> (The cube.off is taken from CGAL repo: https://github.com/CGAL/cgal/blob/master/Data/data/meshes/cube.off <https://github.com/CGAL/cgal/blob/master/Data/data/meshes/cube.off> )
The output shows 52 cells, which are way too many for my application.


Thanks a lot for your time,
Bob
Il martedì 10 maggio 2022, 15:27:41 CEST, Sebastien Loriot" ( via cgal-discuss Mailing List) <> ha scritto:


The number of input triangles does no affect the number of output cells.

Note that a simple working example that we can compile and run on
gist.github.com would most probably understand your problem.
Right now I can only guess that the number of output cells is the one
needed to preserve the topological criteria.

Best,

Sebastien.

On 5/10/22 15:23, Bob Bill ( <> via cgal-discuss Mailing
List) wrote:
> Unfortunately the result is more or less the same, but I think I
> identified the issue: my original surface mesh is not triangulated, so
> maybe CGAL::triangulate_faces() is adding  too many triangles, right?
> The following snippet highlights what I am referring to. Is there any
> way to have a "minimal" triangulation for the faces when calling
> triangulate_faces()?
>
> Best,
> Bob
>
> CGAL::Polygon_mesh_processing::triangulate_faces(surface_mesh);
> Mesh_domain domain(surface_mesh);
> domain.detect_features();
> Mesh_criteria criteria(CGAL::parameters::facet_size = 0,
> CGAL::parameters::facet_distance = 0,
> CGAL::parameters::cell_radius_edge_ratio = 2,
> CGAL::parameters::cell_size = 0);
> C3t3 triangulation = CGAL::make_mesh_3<C3t3>(domain,
> criteria,
> CGAL::parameters::no_perturb(),
> CGAL::parameters::no_exude());
>
> Il martedì 10 maggio 2022, 09:29:46 CEST, Sebastien Loriot"
> ( <> via cgal-discuss Mailing List)
> < <>> ha scritto:
>
>
> If you put facet_size=0, facet_distance=0, cell_radius_edge_ratio=2 and
> cell_size=0 then there is no geometric criteria applied to refine the
> mesh (only the topological one). If you mesh is too coarse then you
> can change those values to match the level of detail you are expecting.
>
> Best,
>
> Sebastien.
>
> On 5/9/22 14:51, Bob Bill ( <>
> < <>> via cgal-discuss Mailing
> List) wrote:
>  > Dear all,
>  >
>  > I successfully applied the function make_mesh_3() to fill a 3D mesh. So
>  > far the result is too refined, and I'd like to let my C3t3 to be as
>  > coarse as possible, i.e. I want only few tets inside.
>  >
>  > If I use the default constructor
>  >
>  > Mesh_criteria criteria;
>  >
>  > then the result is non-sense. Is there any way to have something like
>  > the bottom left figure here
>  > (https://doc.cgal.org/latest/Mesh_3/index.html#fig__figureparameters <https://doc.cgal.org/latest/Mesh_3/index.html#fig__figureparameters >
> <https://doc.cgal.org/latest/Mesh_3/index.html#fig__figureparameters <https://doc.cgal.org/latest/Mesh_3/index.html#fig__figureparameters>>) ,
>  > but without specifying the parameters for every situation?
>  >
>  > Bob
>  >
>  > --
>  > You are currently subscribed to cgal-discuss.
>  > To unsubscribe or access the archives, go to
>  > https://sympa.inria.fr/sympa/info/cgal-discuss <https://sympa.inria.fr/sympa/info/cgal-discuss >
> <https://sympa.inria.fr/sympa/info/cgal-discuss <https://sympa.inria.fr/sympa/info/cgal-discuss>>

>
>  >
>
> --
> You are currently subscribed to cgal-discuss.
> To unsubscribe or access the archives, go to
> https://sympa.inria.fr/sympa/info/cgal-discuss <https://sympa.inria.fr/sympa/info/cgal-discuss >
> <https://sympa.inria.fr/sympa/info/cgal-discuss <https://sympa.inria.fr/sympa/info/cgal-discuss>>
>
>
>
> --
> You are currently subscribed to cgal-discuss.
> To unsubscribe or access the archives, go to
> https://sympa.inria.fr/sympa/info/cgal-discuss <https://sympa.inria.fr/sympa/info/cgal-discuss>
>

--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss <https://sympa.inria.fr/sympa/info/cgal-discuss>



--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss




Archive powered by MHonArc 2.6.19+.

Top of Page