Skip to Content.
Sympa Menu

cgal-discuss - [cgal-discuss] Unexpected assertion with arrangement insert_at_vertices

Subject: CGAL users discussion list

List archive

[cgal-discuss] Unexpected assertion with arrangement insert_at_vertices


Chronological Thread 
  • From: "Ch'Gans" <>
  • To:
  • Subject: [cgal-discuss] Unexpected assertion with arrangement insert_at_vertices
  • Date: Fri, 3 Mar 2017 15:53:56 +1300
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:bBFJfB8Yw0Dbrf9uRHKM819IXTAuvvDOBiVQ1KB+1ewcTK2v8tzYMVDF4r011RmSDNidsKkP1rGe8/i5HzdfsdDZ6DFKWacPfiFGoP1epxYnDs+BBB+zB9/RRAt+Iv5/UkR49WqwK0lfFZW2TVTTpnqv8WxaQU2nZkImbtjyT4XdhsDy2+Gp8IDIeC1JgiC8aPV8NkaYtwLU44M9gcRNI6AqgFOdqXtHcuJN7WxuLBSUhRmqtZT4x4Jq7ykF46FpzMVHS6ivJ6k=

Hi there,

I am trying to insert segment whose end points correspond to existing
vertices.
Here is the use case that trigger an assertion:
- insert 4 segment to form a 4 sided face 'F'
- insert a segment S1 to form the first diagonal of 'F' (causing F to
be split in 2)
- insert a segment S2 to form the second diagonal of 'F' (visually speaking)

The 2 diagonals are inserted using
"insert_at_vertices(Segment(v1->point(), v2->point()), v1, v2)"

When inserting the second diagonal i get an assertion:
------------------------------
terminate called after throwing an instance of 'CGAL::Precondition_exception'
what(): CGAL ERROR: precondition violation!
Expr: f == f2
File: /usr/local/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h
Line: 2667
Explanation: The two halfedges must share the same incident face
------------------------------

I get the same results, using CGAL-4.8.1-1build1 and CGAL from git.

Looking at the documentation i cannot see this precondition listed,
here is the list of preconditions:
1. The interior of c is disjoint from all existing arrangement
vertices and edges.
2. c must not be an unbounded curve.
3. v1 and v2 are associated with c's endpoints.
4. If v1 and v2 are already connected by an edge, this edge represents
an x-monotone curve that is interior-disjoint from c).

I'm clearly not violating 2, 3 and 4. Am I violating 1? If so, could
someone shed some light on the meaning of it and what it implies?
If not, then shouldn't the documentation be updated? I'm happy to make
the change and do a pull request for it.

Thanks,
Chris



Archive powered by MHonArc 2.6.18.

Top of Page