Subject: CGAL users discussion list
List archive
- From: Sterpa <>
- To:
- Subject: [cgal-discuss] halfedge->target()->point() segmentation fault
- Date: Sun, 8 Nov 2009 12:17:08 +0100 (CET)
Halfedge_handle getHalfedge(Arrangement_2 arr, Line_2 l) {
Edge_iterator i = arr.edges_begin();
while(i != arr.edges_end()) {
if(i->curve().line() == l) {
if(i->direction() == CGAL::ARR_RIGHT_TO_LEFT) return
i->twin();
return i;
}
i++;
}
return i;
}
void algorithm_2(vector<Point_2> P, int k) {
vector<Line_2> lines = linesFromPoints(P);
Edge_iterator ei;
int n = P.size();
vector<Halfedge> levels[n];
vector<Segment_2> corridors;
Arrangement_2 arr = getArrangement(lines);
sort(lines.begin(), lines.end(), lineComparison);
for(int i = 0;i < lines.size();i++) {
Line_2 l_1 = lines[i];
std::vector<CGAL::Object> list;
Face_handle face;
Vertex_handle vertex;
Halfedge_handle halfedge;
int level = i;
halfedge = getHalfedge(arr, l_1);
if(halfedge->target()->is_at_open_boundary())
levels[level].push_back(*halfedge);
else while(true) {
levels[level].push_back(*halfedge);
Vertex_handle v = halfedge->target();
Point_2 p = v->point();
cout << p << endl; /* segmentation fault */
Arrangement_2::Halfedge_around_vertex_circulator
v_circ
= v->incident_halfedges();
if(v_circ->curve().line() == l_1) v_circ++;
Line_2 l_2 = v_circ->curve().line();
Line_2 l_vertical = Line_2(-1, 0, x + 1);
Point_2 p_1, p_2;
if(CGAL::do_intersect(l_1, l_vertical)) p_1 =
intersection(l_1, l_vertical);
if(CGAL::do_intersect(l_1, l_vertical)) p_2 =
intersection(l_2, l_vertical);
if(p_1.y() < p_2.y()) level--;
else level++;
Arrangement_2::Halfedge_around_vertex_circulator circ
=
v->incident_halfedges();
while(circ->curve().line() == l_1 || circ->direction()
== halfedge->direction()) circ++;
halfedge = circ;
if(halfedge->direction() == CGAL::ARR_RIGHT_TO_LEFT)
halfedge = halfedge->twin();
if(halfedge->target()->is_at_open_boundary()) {
levels[level].push_back(*halfedge);
break;
}
}
}
I got a segmentation fault trying to access halfedge->target()->point(), but
in
the function getHalfedge() I can access it, how can it be?
- [cgal-discuss] halfedge->target()->point() segmentation fault, Sterpa, 11/08/2009
Archive powered by MHonArc 2.6.16.