\( \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.3 - 2D Straight Skeleton and Polygon Offsetting

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
PolygonOffsetBuilderTraits_2 Concept Reference
Concepts

## 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, FT > | Vertex
| A pair of (x,y) coordinates representing a 2D Cartesian point.
boost::tuple< Vertex, Vertex > | Edge
| A pair of vertices representing an edge.
boost::tuple< Edge, Edge, Edge > | EdgeTriple
| A triple of edges representing an event.

## Member Typedef Documentation

typedef unspecified_type PolygonOffsetBuilderTraits_2::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.

typedef unspecified_type PolygonOffsetBuilderTraits_2::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

typedef unspecified_type PolygonOffsetBuilderTraits_2::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.)

typedef unspecified_type PolygonOffsetBuilderTraits_2::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.

typedef unspecified_type PolygonOffsetBuilderTraits_2::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.

typedef unspecified_type PolygonOffsetBuilderTraits_2::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.