\( \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.7 - 2D Straight Skeleton and Polygon Offsetting
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
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. More...
 
typedef unspecified_type FT
 A model of the FieldWithSqrt concept provided by the kernel. More...
 
typedef unspecified_type Point_2
 A 2D point type. More...
 
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. More...
 
boost::tuple< Vertex, VertexEdge
 A pair of vertices representing an edge. More...
 
boost::tuple< Edge, Edge, EdgeEdgeTriple
 A triple of edges representing an event. More...
 

Member Typedef Documentation

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.

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

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.)

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.

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.

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.

Member Data Documentation

boost::tuple<Vertex,Vertex> PolygonOffsetBuilderTraits_2::Edge

A pair of vertices representing an edge.

boost::tuple<Edge,Edge,Edge> PolygonOffsetBuilderTraits_2::EdgeTriple

A triple of edges representing an event.

boost::tuple<FT,FT> PolygonOffsetBuilderTraits_2::Vertex

A pair of (x,y) coordinates representing a 2D Cartesian point.