CGAL 6.0 - Shape Regularization
Loading...
Searching...
No Matches
CGAL::Shape_regularization::Contours::Longest_direction_2< GeomTraits, InputRange, PointMap > Class Template Reference

#include <CGAL/Shape_regularization/Contours/Longest_direction_2.h>

Definition

template<typename GeomTraits, typename InputRange, typename PointMap = CGAL::Identity_property_map<typename GeomTraits::Point_2>>
class CGAL::Shape_regularization::Contours::Longest_direction_2< GeomTraits, InputRange, PointMap >

Estimates the longest principal direction of the contour.

This algorithm finds the longest contour edge and sets its direction as the principal direction of the contour.

Template Parameters
GeomTraitsa model of Kernel
InputRangea model of ConstRange whose iterator type is RandomAccessIterator
PointMapa model of ReadablePropertyMap whose key type is the value type of the input range and value type is GeomTraits::Point_2. The default is CGAL::Identity_property_map<typename GeomTraits::Point_2>.
Is model of
ContourDirections
Examples
Shape_regularization/regularize_open_contour.cpp.

Initialization

template<typename NamedParameters = parameters::Default_named_parameters>
 Longest_direction_2 (const InputRange &input_range, const bool is_closed, const NamedParameters &np=parameters::default_values())
 initializes all internal data structures.
 

Directions

void orient (const std::size_t query_index, Segment_2 &segment) const
 orients a given segment with the index query_index towards the longest principal direction.
 

Miscellaneous

std::size_t number_of_directions () const
 returns the number of principal directions of the contour.
 

Constructor & Destructor Documentation

◆ Longest_direction_2()

template<typename GeomTraits , typename InputRange , typename PointMap = CGAL::Identity_property_map<typename GeomTraits::Point_2>>
template<typename NamedParameters = parameters::Default_named_parameters>
CGAL::Shape_regularization::Contours::Longest_direction_2< GeomTraits, InputRange, PointMap >::Longest_direction_2 ( const InputRange &  input_range,
const bool  is_closed,
const NamedParameters &  np = parameters::default_values() 
)

initializes all internal data structures.

Template Parameters
NamedParametersa sequence of Named Parameters
Parameters
input_rangea const range of ordered 2D points, which form a contour
is_closedindicates whether the contour is closed or open
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
  • an instance of PointMap that maps an item from input_range to GeomTraits::Point_2
  • Default: PointMap()
Precondition
input_range.size() >= 3 for closed contours
input_range.size() >= 2 for open contours

Member Function Documentation

◆ number_of_directions()

template<typename GeomTraits , typename InputRange , typename PointMap = CGAL::Identity_property_map<typename GeomTraits::Point_2>>
std::size_t CGAL::Shape_regularization::Contours::Longest_direction_2< GeomTraits, InputRange, PointMap >::number_of_directions ( ) const

returns the number of principal directions of the contour.

The returned number is always one.

◆ orient()

template<typename GeomTraits , typename InputRange , typename PointMap = CGAL::Identity_property_map<typename GeomTraits::Point_2>>
void CGAL::Shape_regularization::Contours::Longest_direction_2< GeomTraits, InputRange, PointMap >::orient ( const std::size_t  query_index,
Segment_2 segment 
) const

orients a given segment with the index query_index towards the longest principal direction.

Parameters
query_indexan index of the contour vertex that emits the contour edge being segment
segmenta segment to be rotated
Precondition
query_index >= 0 && query_index < input_range.size() for closed contours
query_index >= 0 && query_index < input_range.size() - 1 for open contours