Вот как получить очки, но они не сортируются:
std::vector<Point> result;
for(Alpha_shape_2::Alpha_shape_vertices_iterator it = alpha_shape.Alpha_shape_vertices_begin();
it != alpha_shape.Alpha_shape_vertices_end();
++it){
Alpha_shape_2::Vertex_handle handle = *it;
Point p = handle->point();
result.push_back(p);
}
Вы должны начать прочитать manual on official website понять некоторые понятия. Простые примеры в CGAL не имеют такого объяснения и функциональности. Вам нужно больше узнать о реальной структуре CGAL.
Вот как получить сегменты по краям. Но сегменты не отсортированы, вам нужно будет сделать это самостоятельно.
for(Alpha_shape_2::Alpha_shape_edges_iterator it = alpha_shape.Alpha_shape_edges_begin();
it != alpha_shape.alpha_shape_edges_end();
++it){
CGAL::Kernel::Segment segment = alpha_shape.segment(*it);
Point p1 = segment.vertex(0);
Point p2 = segment.vertex(1);
// so here you will get p1 and p2 of segment, which is part of shape.
.....
}
вы получите что-то вроде этого: 
То есть после моей функции сортировки (. Извините не могу разделить, но это не так сложно, чтобы написать): 
UPDATE Я нашел this source, может быть, будет полезно.
Что вы называете граничными вершинами? – sloriot