\( \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 Straight Skeleton and Polygon Offsetting
PolygonOffsetBuilderTraits_2 Concept Reference

Definition

The concept PolygonOffsetBuilderTraits_2 describes the requirements for the geometric traits class required by the algorithm class Polygon_offset_builder_2<Ss,Gt,Polygon_2>.

Has Models:
CGAL::Polygon_offset_builder_traits_2
See also
CGAL::Polygon_offset_builder_2<Ss,Gt,Polygon_2>
CGAL::Polygon_offset_builder_traits_2<K>

Types

typedef unspecified_type Kernel
 A model of the Kernel concept.
 
typedef unspecified_type FT
 A model of the FieldWithSqrt concept provided by the kernel. More...
 
typedef unspecified_type Point_2
 A 2D point type.
 
typedef unspecified_type Compare_offset_against_event_time_2
 A predicate object type. More...
 
typedef unspecified_type Construct_offset_point_2
 A construction object type. More...
 
typedef unspecified_type Construct_ss_vertex_2
 A construction object type. More...
 
typedef unspecified_type Construct_ss_edge_2
 A construction object type. More...
 
typedef unspecified_type Construct_ss_triedge_2
 A construction object type. More...
 
boost::tuple< FT, FTVertex
 A pair of (x,y) coordinates representing a 2D Cartesian point.
 
boost::tuple< Vertex, VertexEdge
 A pair of vertices representing an edge.
 
boost::tuple< Edge, Edge, EdgeEdgeTriple
 A triple of edges representing an event.
 

Member Typedef Documentation

◆ Compare_offset_against_event_time_2

A predicate object type.

Must provide Comparison_result operator()( FT d, EdgeTriple const& et) const, which compares the Euclidean distance d with the event time for et. Such event time is the Euclidean distance at which the offset lines intersect in a single point. The source of such offset lines is given by the 3 oriented lines defined by the edge-triple et

Precondition
et must be an edge-triple corresponding to an event that actually exist (that is, there must exist an offset distance t > 0 at which the offset lines do intersect at a single point.

◆ Construct_offset_point_2

A construction object type.

Must provide boost::optional<Point_2> operator()( FT t, Edge const& x, Edge const& y) const, which constructs the point of intersection of the lines obtained by offsetting the oriented lines given by x and y an Euclidean distance t. If the point cannot be computed, not even approximately (because of overflow for instance), an empty optional must be returned.

Precondition
x and y must intersect in a single point

◆ Construct_ss_edge_2

A construction object type.

Must provide Edge operator()( Point_2 const& s, Point_2 const& t), which given source and target points s and t returns an Edge encapsulating the corresponding input segment (in Cartesian coordinates.)

◆ Construct_ss_triedge_2

A construction object type.

Must provide Triedge operator()( Edge const& e0, Edge const& e1, Edge const& e2), which given the 3 edges that define an event, e0, e1 and e2, returns a Triedge encapsulating them.

◆ Construct_ss_vertex_2

A construction object type.

Must provide Vertex operator()( Point_2 const& p), which given a Point_2 p returns a Vertex encapsulating the corresponding (x,y) pair of Cartesian coordinates.

◆ FT

A model of the FieldWithSqrt concept provided by the kernel.

This type is used to represent the coordinates of the input points and to specify the desired offset distance.