Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Invalid TDS after inserting vertices and creating cells & neighbors

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Invalid TDS after inserting vertices and creating cells & neighbors


Chronological Thread 
  • From: Monique Teillaud <>
  • To:
  • Subject: Re: [cgal-discuss] Invalid TDS after inserting vertices and creating cells & neighbors
  • Date: Thu, 07 May 2015 18:12:37 +0200

Le 07/05/15 10:17, Adam Getchell a écrit :

On May 6, 2015, at 1:01 AM, Monique Teillaud
<>
wrote:

Hi Adam,

Thank you Monique! Your answers were very useful!

I apologize, but I have two additional questions, the details of which are
below.

Hi,

1. If a vertex is invalid, can this be due to incorrect adjacency relations
on cells it is a member of?

see
http://doc.cgal.org/latest/TDS_3/classTriangulationDSVertexBase__3.html#a491ed1d0fdba06dfaffd355e34bd28d8
actually I see when reading your email further that you found the code of the is_valid function, so you can see there what it does.
It checks that the vertex has an incident cell that is not null (default constructed), and that this cell actually has the vertex as one of its 4 vertices.

2. Is the a constructor for a Vertex that produces a Vertex_handle?

I guess that there are typos in your question, but if I still understand it correctly, the function create_vertex that I mentioned in my previous email is also the answer here

3. Which modifiers affect the validity of the TDS?

the ones I mentioned in my previous email:
look at http://doc.cgal.org/latest/TDS_3/classTriangulationDataStructure__3.html
"Other modifiers
The following modifiers can affect the validity of the triangulation data structure."
the list follows

Yes, thank you, that code was very helpful. I noticed that flip_really()
makes use of set_adjacency(), but I haven’t found documentation for that
function.

It is just internal, not documented.

2. Is there a way to create a vertex without inserting it into the
Delaunay triangulation?

You must certainly not insert a point in the Delaunay triangulation, in
general it cannot give you what you want. You should only use and patch TDS.

Thank you! I now use:

// Insert new vertex
Point p = Point(center_of_X, center_of_Y, center_of_Z);
Vertex_handle v_center = D3->tds().create_vertex();
v_center->set_point(p);

General questions before looking at the technical details that follow in your email: why do you manipulate a Delaunay triangulation and why do you have points?
Unless I am mistaken, the Pachner moves are purely combinatorial, they apply to a TDS. Why don't you just manipulate a TDS?
If you perform a 2-6 move on a Delaunay triangulation, you don't have much chance to obtain a valid Delaunay triangulation.

Maybe I did not guess correctly what you are trying to do. Then I would need a introduction.

look for create_vertex in
http://doc.cgal.org/latest/TDS_3/classTriangulationDataStructure__3.html
Other modifiers
The following modifiers can affect the validity of the triangulation data
structure.

What modifiers?

as mentioned above, just look for these sentences in the manual and you will see the list

--
Monique Teillaud
http://www.loria.fr/~teillaud/
INRIA Nancy - Grand Est, LORIA
Institut National de Recherche en Informatique et Automatique



Archive powered by MHonArc 2.6.18.

Top of Page