\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.12.1 - 2D Segment Delaunay Graphs
SegmentDelaunayGraphStorageSite_2 Concept Reference

Definition

The concept SegmentDelaunayGraphStorageSite_2 provides the requirements for the storage sites of a segment Delaunay graph. The storage sites are sites that are used to store the information of a site in a more compact form (that uses less storage). This is achieved by storing handles to points instead of points.

Refines:

DefaultConstructible

CopyConstructible

Assignable

Has Models:
CGAL::Segment_Delaunay_graph_storage_site_2<Gt>
See also
SegmentDelaunayGraphTraits_2
CGAL::Segment_Delaunay_graph_site_2<K>
CGAL::Segment_Delaunay_graph_storage_site_2<Gt>
CGAL::Segment_Delaunay_graph_traits_2<K,MTag>
CGAL::Segment_Delaunay_graph_traits_without_intersections_2<K,MTag>
CGAL::Segment_Delaunay_graph_filtered_traits_2<CK,CM,EK,EM,FK,FM>
CGAL::Segment_Delaunay_graph_filtered_traits_without_intersections_2<CK,CM,EK,EM,FK,FM>

Types

typedef unspecified_type Site_2
 The site type.
 
typedef std::set< typename Site_2::Point_2 >::iterator Point_handle
 The type for a handle to a point.
 

Creation

In addition to the default and copy constructors, the following static methods should be available for constructing sites:

SegmentDelaunayGraphStorageSite_2 construct_storage_site_2 (Point_handle hp)
 Constructs a storage site from a point handle. More...
 
SegmentDelaunayGraphStorageSite_2 construct_storage_site_2 (Point_handle hp1, Point_handle hp2)
 Constructs a storage site from two point handles. More...
 
SegmentDelaunayGraphStorageSite_2 construct_storage_site_2 (Point_handle hp1, Point_handle hp2, Point_handle hq1, Point_handle hq2)
 Constructs a storage site from four point handles. More...
 
SegmentDelaunayGraphStorageSite_2 construct_storage_site_2 (Point_handle hp1, Point_handle hp2, Point_handle hq1, Point_handle hq2, bool b)
 Constructs a site from four point handles and a Boolean. More...
 
SegmentDelaunayGraphStorageSite_2 construct_storage_site_2 (Point_handle hp1, Point_handle hp2, Point_handle hq1, Point_handle hq2, Point_handle hr1, Point_handle hr2)
 Constructs a storage site from six point handles. More...
 

Predicates

bool is_defined ()
 Returns true if the storage site represents a valid point or segment.
 
bool is_point ()
 Returns true if the storage site represents a point.
 
bool is_segment ()
 Returns true if the storage site represents a segment.
 
bool is_input ()
 Returns true if the storage site represents an input point or a segment defined by two input points. More...
 
bool is_input (unsigned int i)
 Returns true if the i-th endpoint of the corresponding site is an input point. More...
 

Access Functions

SegmentDelaunayGraphStorageSite_2 supporting_site ()
 Returns a storage site object representing the segment that supports the segment represented by the storage site. More...
 
SegmentDelaunayGraphStorageSite_2 source_site ()
 Returns a storage site that represents the first endpoint of the represented segment. More...
 
SegmentDelaunayGraphStorageSite_2 target_site ()
 Returns a storage site that represents the second endpoint of the represented segment. More...
 
SegmentDelaunayGraphStorageSite_2 supporting_site (unsigned int i)
 Returns a storage site object representing the i-th segment that supports the point of intersection represented by the storage site. More...
 
SegmentDelaunayGraphStorageSite_2 crossing_site (unsigned int i)
 Returns a storage site object representing the i-th segment that supports the \( i\)-th endpoint of the site which is not the supporting segment of the site. More...
 
Site_2 site ()
 Returns the site represented by the storage site.
 
Point_handle point ()
 Returns a handle associated with the represented point. More...
 
Point_handle source_of_supporting_site ()
 Returns a handle to the source point of the supporting site of the this site. More...
 
Point_handle target_of_supporting_site ()
 Returns a handle to the target point of the supporting site of the this site. More...
 
Point_handle source_of_supporting_site (unsigned int i)
 Returns a handle to the source point of the i-th supporting site of the this site. More...
 
Point_handle target_of_supporting_site (unsigned int i)
 Returns a handle to the target point of the i-th supporting site of the this site. More...
 
Point_handle source_of_crossing_site (unsigned int i)
 Returns a handle to the source point of the i-th crossing site of the this site. More...
 
Point_handle target_of_crossing_site (unsigned int i)
 Returns a handle to the target point of the i-th supporting site of the this site. More...
 

Member Function Documentation

◆ construct_storage_site_2() [1/5]

SegmentDelaunayGraphStorageSite_2 SegmentDelaunayGraphStorageSite_2::construct_storage_site_2 ( Point_handle  hp)

Constructs a storage site from a point handle.

The storage site represents the point associated with the point handle hp.

◆ construct_storage_site_2() [2/5]

SegmentDelaunayGraphStorageSite_2 SegmentDelaunayGraphStorageSite_2::construct_storage_site_2 ( Point_handle  hp1,
Point_handle  hp2 
)

Constructs a storage site from two point handles.

The storage site represents the segment the endpoints of which are the points associated with the point handles hp1 and hp2.

◆ construct_storage_site_2() [3/5]

SegmentDelaunayGraphStorageSite_2 SegmentDelaunayGraphStorageSite_2::construct_storage_site_2 ( Point_handle  hp1,
Point_handle  hp2,
Point_handle  hq1,
Point_handle  hq2 
)

Constructs a storage site from four point handles.

The storage site represents the point of intersection of the segments the endpoints of which are the points associated with the point handles hp1, hp2 and hq1 and hq2, respectively.

◆ construct_storage_site_2() [4/5]

SegmentDelaunayGraphStorageSite_2 SegmentDelaunayGraphStorageSite_2::construct_storage_site_2 ( Point_handle  hp1,
Point_handle  hp2,
Point_handle  hq1,
Point_handle  hq2,
bool  b 
)

Constructs a site from four point handles and a Boolean.

The storage site represents a segment. If b is true, the first endpoint of the segment is the point associated with the handle hp1 and the second endpoint is the point of intersection of the segments the endpoints of which are the point associated with the point handles hp1, hp2 and hq1, hq2, respectively. If b is false, the first endpoint of the represented segment is the one mentioned above, whereas the second endpoint if the point associated with the point handle hp2.

◆ construct_storage_site_2() [5/5]

SegmentDelaunayGraphStorageSite_2 SegmentDelaunayGraphStorageSite_2::construct_storage_site_2 ( Point_handle  hp1,
Point_handle  hp2,
Point_handle  hq1,
Point_handle  hq2,
Point_handle  hr1,
Point_handle  hr2 
)

Constructs a storage site from six point handles.

The storage site represents of segment the endpoints of which are points of intersection of two pairs of segments, the endpoints of which are hp1, hp2/hq1, hq2 and hp1, hp2/hr1, hr2, respectively.

◆ crossing_site()

SegmentDelaunayGraphStorageSite_2 SegmentDelaunayGraphStorageSite_2::crossing_site ( unsigned int  i)

Returns a storage site object representing the i-th segment that supports the \( i\)-th endpoint of the site which is not the supporting segment of the site.

The returned storage site represents a site, both endpoints of which are input points.

Precondition
i must be at most \( 1\), ss.is_segment() must be true and ss.is_input(i) must be false.

◆ is_input() [1/2]

bool SegmentDelaunayGraphStorageSite_2::is_input ( )

Returns true if the storage site represents an input point or a segment defined by two input points.

Returns false if it represents a point of intersection of two segments, or if it represents a segment, at least one endpoint of which is a point of intersection of two segments.

◆ is_input() [2/2]

bool SegmentDelaunayGraphStorageSite_2::is_input ( unsigned int  i)

Returns true if the i-th endpoint of the corresponding site is an input point.

Returns false if the i-th endpoint of the corresponding site is the intersection of two segments.

Precondition
i must be at most \( 1\), and ss.is_segment() must be true.

◆ point()

Point_handle SegmentDelaunayGraphStorageSite_2::point ( )

Returns a handle associated with the represented point.

Precondition
is_point() and is_input() must both be true.

◆ source_of_crossing_site()

Point_handle SegmentDelaunayGraphStorageSite_2::source_of_crossing_site ( unsigned int  i)

Returns a handle to the source point of the i-th crossing site of the this site.

Precondition
is_segment() must be true, is_input(i) must be false and i must either be 0 or 1.

◆ source_of_supporting_site() [1/2]

Point_handle SegmentDelaunayGraphStorageSite_2::source_of_supporting_site ( )

Returns a handle to the source point of the supporting site of the this site.

Precondition
is_segment() must be true.

◆ source_of_supporting_site() [2/2]

Point_handle SegmentDelaunayGraphStorageSite_2::source_of_supporting_site ( unsigned int  i)

Returns a handle to the source point of the i-th supporting site of the this site.

Precondition
is_point() must be true, is_input() must be false and i must either be 0 or 1.

◆ source_site()

SegmentDelaunayGraphStorageSite_2 SegmentDelaunayGraphStorageSite_2::source_site ( )

Returns a storage site that represents the first endpoint of the represented segment.

Precondition
ss.is_segment() must be true.

◆ supporting_site() [1/2]

SegmentDelaunayGraphStorageSite_2 SegmentDelaunayGraphStorageSite_2::supporting_site ( )

Returns a storage site object representing the segment that supports the segment represented by the storage site.

The returned storage site represents a site, both endpoints of which are input points.

Precondition
ss.is_segment() must be true.

◆ supporting_site() [2/2]

SegmentDelaunayGraphStorageSite_2 SegmentDelaunayGraphStorageSite_2::supporting_site ( unsigned int  i)

Returns a storage site object representing the i-th segment that supports the point of intersection represented by the storage site.

The returned storage site represents a site, both endpoints of which are input points.

Precondition
i must be at most \( 1\), ss.is_point() must be true and ss.is_input() must be false.

◆ target_of_crossing_site()

Point_handle SegmentDelaunayGraphStorageSite_2::target_of_crossing_site ( unsigned int  i)

Returns a handle to the target point of the i-th supporting site of the this site.

Precondition
is_segment() must be true, is_input(i) must be false and i must either be 0 or 1.

◆ target_of_supporting_site() [1/2]

Point_handle SegmentDelaunayGraphStorageSite_2::target_of_supporting_site ( )

Returns a handle to the target point of the supporting site of the this site.

Precondition
is_segment() must be true.

◆ target_of_supporting_site() [2/2]

Point_handle SegmentDelaunayGraphStorageSite_2::target_of_supporting_site ( unsigned int  i)

Returns a handle to the target point of the i-th supporting site of the this site.

Precondition
is_point() must be true, is_input() must be false and i must either be 0 or 1.

◆ target_site()

SegmentDelaunayGraphStorageSite_2 SegmentDelaunayGraphStorageSite_2::target_site ( )

Returns a storage site that represents the second endpoint of the represented segment.

Precondition
ss.is_segment() must be true.