CGAL 5.4.5 - Shape Regularization

Models and functions that can be used when regularizing contours.

Classes

class  CGAL::Shape_regularization::Contours::Longest_direction_2< GeomTraits, InputRange, PointMap >
 Estimates the longest principal direction of the contour. More...
 
class  CGAL::Shape_regularization::Contours::Multiple_directions_2< GeomTraits, InputRange, PointMap >
 Estimates possibly multiple principal directions of the contour based on the user-specified minimum length and maximum angle bounds. More...
 
class  CGAL::Shape_regularization::Contours::User_defined_directions_2< GeomTraits, InputRange, PointMap >
 Sets multiple user-specified principal directions of the contour. More...
 

Functions

template<typename InputRange , typename ContDirections , typename OutIterator , typename NamedParameters >
OutIterator CGAL::Shape_regularization::Contours::regularize_closed_contour (const InputRange &input_range, const ContDirections &directions, OutIterator contour, const NamedParameters &np)
 regularizes closed contours. More...
 
template<typename InputRange , typename OutIterator >
OutIterator CGAL::Shape_regularization::Contours::regularize_closed_contour (const InputRange &input_range, OutIterator contour)
 regularizes closed contours. More...
 
template<typename InputRange , typename ContDirections , typename OutIterator , typename NamedParameters >
OutIterator CGAL::Shape_regularization::Contours::regularize_open_contour (const InputRange &input_range, const ContDirections &directions, OutIterator contour, const NamedParameters &np)
 regularizes open contours. More...
 
template<typename InputRange , typename OutIterator >
OutIterator CGAL::Shape_regularization::Contours::regularize_open_contour (const InputRange &input_range, OutIterator contour)
 regularizes open contours. More...
 

Function Documentation

◆ regularize_closed_contour() [1/2]

template<typename InputRange , typename ContDirections , typename OutIterator , typename NamedParameters >
OutIterator CGAL::Shape_regularization::Contours::regularize_closed_contour ( const InputRange &  input_range,
const ContDirections &  directions,
OutIterator  contour,
const NamedParameters &  np 
)

#include <CGAL/Shape_regularization/regularize_contours.h>

regularizes closed contours.

Given a set of ordered 2D points connected by segments, which form a closed contour, this function enables to reinforce three types of regularities among consecutive edges of this contour:

  • Parallelism: contour edges, which are detected as near parallel, are made exactly parallel.
  • Orthogonality: contour edges, which are detected as near orthogonal, are made exactly orthogonal.
  • Collinearity: parallel contour edges, which are detected as near collinear, are made exactly collinear.

The principal directions of the contour are provided via the concept ContourDirections.

Template Parameters
InputRangea model of ConstRange whose iterator type is RandomAccessIterator
ContDirectionsa model of ContourDirections
OutIteratora model of OutputIterator that accepts points of type GeomTraits::Point_2
NamedParametersa sequence of Named Parameters
Parameters
input_rangea const range of ordered points, which form a contour
directionsestimated contour directions towards which the contour edges are oriented
contouran output iterator with points of the regularized contour
npan optional sequence of Named Parameters among the ones listed below; this parameter can be omitted, the default values are then used
Optional Named Parameters
  • maximum allowed orthogonal distance between two parallel and consecutive contour edges such that they are considered to be collinear
  • Type: GeomTraits::FT
  • Default: 0.5 unit length
  • a property map that maps an item from input_range to GeomTraits::Point_2
  • Type: a model of ReadablePropertyMap whose key type is the value type of the input range and value type is GeomTraits::Point_2
  • Default: CGAL::Identity_property_map
Returns
an output iterator to the element in the destination range, one past the last contour vertex stored
Precondition
input_range.size() >= 3
Examples:
Shape_regularization/regularize_closed_contour.cpp, and Shape_regularization/regularize_contour.cpp.

◆ regularize_closed_contour() [2/2]

template<typename InputRange , typename OutIterator >
OutIterator CGAL::Shape_regularization::Contours::regularize_closed_contour ( const InputRange &  input_range,
OutIterator  contour 
)

#include <CGAL/Shape_regularization/regularize_contours.h>

regularizes closed contours.

This function regularizes a closed contour with respect to the longest edge of this contour.

◆ regularize_open_contour() [1/2]

template<typename InputRange , typename ContDirections , typename OutIterator , typename NamedParameters >
OutIterator CGAL::Shape_regularization::Contours::regularize_open_contour ( const InputRange &  input_range,
const ContDirections &  directions,
OutIterator  contour,
const NamedParameters &  np 
)

#include <CGAL/Shape_regularization/regularize_contours.h>

regularizes open contours.

Given a set of ordered 2D points connected by segments, which form an open contour, this function enables to reinforce three types of regularities among consecutive edges of this contour:

  • Parallelism: contour edges, which are detected as near parallel, are made exactly parallel.
  • Orthogonality: contour edges, which are detected as near orthogonal, are made exactly orthogonal.
  • Collinearity: parallel contour edges, which are detected as near collinear, are made exactly collinear.

The principal directions of the contour are provided via the concept ContourDirections.

Template Parameters
InputRangea model of ConstRange whose iterator type is RandomAccessIterator
ContDirectionsa model of ContourDirections
OutIteratora model of OutputIterator that accepts points of type GeomTraits::Point_2
NamedParametersa sequence of Named Parameters
Parameters
input_rangea const range of ordered points, which form a contour
directionsestimated contour directions towards which the contour edges are oriented
contouran output iterator with points of the regularized contour
npan optional sequence of Named Parameters among the ones listed below; this parameter can be omitted, the default values are then used
Optional Named Parameters
  • maximum allowed orthogonal distance between two parallel and consecutive contour edges such that they are considered to be collinear
  • Type: GeomTraits::FT
  • Default: 0.5 unit length
  • a property map that maps an item from input_range to GeomTraits::Point_2
  • Type: a model of ReadablePropertyMap whose key type is the value type of the input range and value type is GeomTraits::Point_2
  • Default: CGAL::Identity_property_map
Returns
an output iterator to the element in the destination range, one past the last contour vertex stored
Precondition
input_range.size() >= 2
Examples:
Shape_regularization/regularize_open_contour.cpp.

◆ regularize_open_contour() [2/2]

template<typename InputRange , typename OutIterator >
OutIterator CGAL::Shape_regularization::Contours::regularize_open_contour ( const InputRange &  input_range,
OutIterator  contour 
)

#include <CGAL/Shape_regularization/regularize_contours.h>

regularizes open contours.

This function regularizes an open contour with respect to the longest edge of this contour.