\( \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.8 - 2D Polyline Simplification

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members | Public Member Functions
PolylineSimplificationCostFunction Concept Reference
Concepts

## Definition

Models of this concept are passed to the polyline simplification algorithm to calculate the cost of removing a vertex. Such a cost represents some measure of the deviation error between the polyline sets before and after removal. The smaller the error the lower the cost. The algorithm processes vertices in increasing cost order to preserve the overall polyline set shape as much as possible.

Refines:

  `CopyConstructible`

  `Assignable`

Has Models:

  `CGAL::Polyline_simplification_2::Hybrid_squared_distance_cost`

  `CGAL::Polyline_simplification_2::Scaled_squared_distance_cost`

  `CGAL::Polyline_simplification_2::Squared_distance_cost`

## Public Member Functions
template<typename CDT >
boost::optional < CDT::Geom_traits::FT > | operator() (CGAL::Constrained_triangulation_plus_2< CDT > const &ct, CGAL::Constrained_triangulation_plus_2< CDT >::Vertices_in_constraint_iterator viq) const
| Given a vertex in constraint iterator `viq` computes `vip=std::prev(viq)` and `vir=std::next(vir)`, and the cost of removing vertex `*viq`, replacing edges `(*vip,*viq)` and `(*viq,*vir)` with edge `(*vip,*vir)`. More...

## Member Function Documentation

template<typename CDT >

boost::optional<CDT::Geom_traits::FT> PolylineSimplificationCostFunction::operator() | ( | CGAL::Constrained_triangulation_plus_2< CDT > const & | ct,
|  | CGAL::Constrained_triangulation_plus_2< CDT >::Vertices_in_constraint_iterator | viq
| ) |  | const

Given a vertex in constraint iterator `viq` computes `vip=std::prev(viq)` and `vir=std::next(vir)`, and the cost of removing vertex `*viq`, replacing edges `(*vip,*viq)` and `(*viq,*vir)` with edge `(*vip,*vir)`.

Parameters

  ct | The underlying constrained Delaunay triangulation which embeds the polyline constraints
  viq | The vertex in constraint iterator of the vertex to remove

Returns
  The cost for removing `*viq`. The value `boost::none` can be returned to indicate an infinite or uncomputable cost.

Template Parameters

  CDT | must be `CGAL::Constrained_triangulation_plus_2` with a vertex type that is model of `PolylineSimplificationVertexBase_2`. `CDT::Geom_traits` must be model of the concept `ConstrainedDelaunayTriangulationTraits_2`.