Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] 3D triangulation: absolute minimum of facets

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] 3D triangulation: absolute minimum of facets


Chronological Thread 
  • From: KL <>
  • To: "" <>
  • Subject: Re: [cgal-discuss] 3D triangulation: absolute minimum of facets
  • Date: Tue, 05 Jul 2022 18:30:40 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:lg67bKGLAr6xDkgGpLqFe5HXdLJyesId70hD6qkvc3Fom52j/f xGws5x6fatskdoZJhSo6H6BEDgewKUyXcR2+Us1NiZLW3bUQeTTb2KqLGSugEIeBeOvtK1t5 0QFJSWYeeYZTcVsS+52njfLz9K+qjlzEncv5a6854bd3AJV0gP1WdEIzfeNnczaBhNBJI/Gp bZzNFAvSCcdXMeadn+LmUZXsDYzue73q7OUFojPVoK+QOOhTSn5PrRCB6DxCoTVDtJ3PML7X XFqQrk/a+u2svLhyM0llWjo6i+quGRhOerN/b8y/T97Q+cyjpAUb4RFIFqegpF491Hpmxa0u Uk6C1QRfibo0mhA11d5yGdkDUImQxel0PK2BuWh2Durtf+Qy9/A81dhZhBeh+c8EY4uspguZ g7q15xmqAnfy8oph6NkuTgRlVvjA65sHAimekcgzhWVpYfcqZYqcga8FlOGJkNESrm4MR/ed Meev309bJTaxeXfnrZtm5gzJilWWkyBA6PRgwHttaO2zZbkXhlxw8TxdAZnH0H6JUhIqM0kN jsI+BtjvVDX8UWZaVyCKMIRta2EHXERVbWPGebMT3cZdI60rL22u7KCZkOlZ+XkcYzveQPcb z6ISJliVI=
  • Ironport-phdr: A9a23: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 EVlMHHVTrRdgqsmc2132le0hA==
  • Ironport-sdr: oHgK1c9BH4GzzliL4301LNVxvPt3f7d4Dh+cvgeSxGsSPrsqdfPnKvjkRja1tYim/SPEn1G7tH e9FQinXU/ATEeKIFi81tH8AJSQKK3BWqYCusi/zk24PRqgPN6BlApXtnafugKvDXYy5O9ui+C+ 12bB2dQ7HqJSFBO+VEheV7jBR6WX4hwkP0bMKLLF64+PFQnitiPwbnBl4qHrCQOty/V9JzjIQz OJxzRupDz8VJpBVtYAfxOZ90Iu5P77xIy4hFvhrDZ4btmSdBfoS2qLTO8sqnCM5UBYwlIFaM5p mfnKs+i7qqzCGHJtz33eolP9

Well,
I am not even sure about the wording anymore, too complicated.
I don't even understand which API I should use.
 
The context is 3D triangulation from an array of 3D points.
 
A high level triangulation function -> inject your points and get the minimum number of triangles from those, would be very handy.
This is the only thing I want.
 
Iterating over vertices is not good either because you don't have the logic of the triangles.
 
From there, I may create a 3D object.
Hence the associated constraint to have an optimized number of resulting triangles.
 
So, Sebastian, where should I look to achieve that ?
 
I am a lost sailor,
-- 
MKL
 
 
 
05.07.2022, 17:21, "Sebastien Loriot ( via cgal-discuss Mailing List)" <>:

I'm not sure to understand what is your problem. A minimal self
contained example that we can run and that shows your problem would
be perfect.

What I can tell from the code I see:
You are computing a 3 triangulations that consists of tetrahedra.
`finite_facets()` provides the range of face that are not connected
to the infinite vertex. A facet is given a std::pair of a Cell_handle
(tetrahedron) and the id of the vertex in the cell opposite to the
facet. About the access to the vertices of a facet, the %4 is here so
that the index stays in [0,3] while ignoring pair.second (that might or
might not be infinite).

HTH,

Sebastien.

On 7/5/22 14:46, KL ( via cgal-discuss Mailing List)
wrote:

 Hi,
 The issue: while the code below works, it returns too many triangles for
 a simple shape.
 So, for a square, instead of two triangles made by one of the diagonal
 of the square, I get four tris, because the two diagonals are connecting.
 I get my vertices using:
 using K = CGAL::Exact_predicates_inexact_constructions_kernel;
 using Triangulation = CGAL::Triangulation_3 <K>;
 using Cell_handle = Triangulation::Cell_handle;
 using Vertex_handle = Triangulation::Vertex_handle;
 using Locate_type = Triangulation::Locate_type;
 using Point_CGAL = Triangulation::Point;
 ...
 Triangulation tri;
 ...
 // load data
 ...
 //loop
 for ( auto &e : tri.finite_facets() ){
          auto &vert = *( e.first );
          auto starter_id = e.second;
          for ( u32 x = 1; x < 4; x += 1 ){
                  auto &pt = *( vert.vertex( ( starter_id + x ) % 4 )
 );                 // saw that line on the stackoverflow -> 3 finite
 vertices and 1 infinite vertice, hence the 4.
                  // store my result
          }
 }
 I need the triangulation to be the minimum number of tris for any given
 shape. A square should have 2 tris.
 I read the doc, but it is not among the easiest to wrap one's head around.
 What should I modify, please?
 Thanks
 --
 MKL
 
 --
 You are currently subscribed to cgal-discuss.
 To unsubscribe or access the archives, go to
 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