StraightSkeletonVertex_2

Definition

The concept StraightSkeletonVertex_2 describes the requirements for the vertex type of the StraightSkeleton_2 concept. It is a refinement of the HalfedgeDSVertex concept with support for storage of the incident halfedge. The StraightSkeletonVertex_2 concept requires the geometric embedding to be a 2D point.

Refines

HalfedgeDSVertex

Types

StraightSkeletonVertex_2::Point_2
The type of the 2D point being the geometric embedding of the vertex

StraightSkeletonVertex_2::FT
A model of the SqrtFieldNumberType concept representing the time of a vertex (an Euclidean distance)

StraightSkeletonVertex_2::Halfedge_around_vertex_const_circulator
StraightSkeletonVertex_2::Halfedge_around_vertex_circulator
The circulator type used to visit all the incident halfedges around a vertex

StraightSkeletonVertex_2::Defining_contour_halfedge_const_circulator
StraightSkeletonVertex_2::Defining_contour_halfedge_circulator
The circulator type used to visit all the defining contour halfedges of a vertex

Creation

StraightSkeletonVertex_2 v;
Default constructor

StraightSkeletonVertex_2 v ( int id, Point_2 p);
Constructs a contour vertex with ID number id, at the point p

StraightSkeletonVertex_2 v ( int id, Point_2 p, FT time);
Constructs a skeleton vertex with ID number id, at point p and time time.

Access Functions

int v.id () const The ID of the vertex.
Point_2 v.point () const The vertex point.
FT v.time () const The time of the vertex: the distance from the vertex point to the lines supporting the defining contour edges
Halfedge_handle v.primary_bisector ()
Halfedge_const_handle v.primary_bisector () const Returns the skeleton halfedge incident upon the vertex (called the primary bisector).
Halfedge_around_vertex_circulator v.halfedge_around_vertex_begin ()
Halfedge_around_vertex_const_circulator
v.halfedge_around_vertex_begin () const
Returns a bi-directional circulator pointing to one of the incident halfedges (which one is unspecified).
There will always be as many incident halfedges as the degree of the vertex.
If this is a contour vertex, its degree is exactly 3, and from the halfedges pointed to by the circulator, 2 are contour and 1 is a bisector.
If this is an skeleton vertex, its degree is at least 3 and all of the halfedges pointed to by the circulator are bisectors.
Each halfedge pointed to by this circulator is the one which is oriented towards the vertex (according to the geometric embedding).
Defining_contour_halfedge_circulator
v.defining_contour_halfedges_begin ()
Defining_contour_halfedge_const_circulator
v.defining_contour_halfedges_begin () const
Returns a bi-directional circulator pointing to one of the defining contour halfedges of the vertex (which one is unspecified).
There will always be as many incident defining contour halfedges as the degree of the vertex.
Each halfedge pointed to by this circulator is the one having its left side facing inwards (which happens to be the contour halfedge for which is_border() is false).

Queries

bool v.is_contour () const Returns true iff this is a contour vertex.
bool v.is_skeleton () const Returns true iff this is a skeleton vertex.

Has Models

CGAL::Straight_skeleton_vertex_base_2<Refs,Point,FT>.

See Also

StraightSkeleton_2
StraightSkeletonHalfedge_2
CGAL::Straight_skeleton_vertex_base_2<Refs,Point,FT>
CGAL::Straight_skeleton_halfedge_base_2<Refs>