\( \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.11 - 2D Minkowski Sums
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL Namespace Reference

Namespaces

 cpp11
 
 IO
 
 Scale_space_reconstruction_3
 
 Shape_detection_3
 
 Surface_mesh_parameterization
 

Classes

class  Aff_transformation_2
 
class  Aff_transformation_3
 
class  Identity_transformation
 
class  Reflection
 
class  Rotation
 
class  Scaling
 
class  Translation
 
class  Bbox_2
 
class  Bbox_3
 
class  Cartesian
 
class  Cartesian_converter
 
class  Circle_2
 
class  Circle_3
 
class  Ambient_dimension
 
class  Dimension_tag
 
class  Dynamic_dimension_tag
 
class  Feature_dimension
 
class  Direction_2
 
class  Direction_3
 
class  Exact_predicates_exact_constructions_kernel
 
class  Exact_predicates_exact_constructions_kernel_with_kth_root
 
class  Exact_predicates_exact_constructions_kernel_with_root_of
 
class  Exact_predicates_exact_constructions_kernel_with_sqrt
 
class  Exact_predicates_inexact_constructions_kernel
 
class  Filtered_kernel_adaptor
 
class  Filtered_kernel
 
class  Filtered_predicate
 
class  Homogeneous
 
class  Homogeneous_converter
 
class  Iso_cuboid_3
 
class  Iso_rectangle_2
 
class  Kernel_traits
 
class  Line_2
 
class  Line_3
 
class  Null_vector
 
class  Origin
 
class  Plane_3
 
class  Point_2
 
class  Point_3
 
class  Projection_traits_xy_3
 
class  Projection_traits_xz_3
 
class  Projection_traits_yz_3
 
class  Ray_2
 
class  Ray_3
 
class  Segment_2
 
class  Segment_3
 
class  Simple_cartesian
 
class  Simple_homogeneous
 
class  Sphere_3
 
class  Tetrahedron_3
 
class  Triangle_2
 
class  Triangle_3
 
class  Vector_2
 
class  Vector_3
 
class  Weighted_point_2
 
class  Weighted_point_3
 
struct  Construct_array
 
class  CC_safe_handle
 
class  Compact_container_base
 
class  Compact_container
 
class  Compact_container_traits
 
class  Compact
 
class  Fast
 
class  Concurrent_compact_container_traits
 
class  Concurrent_compact_container
 
class  Default
 
class  Fourtuple
 
class  Cast_function_object
 
class  Compare_to_less
 
class  Creator_1
 
class  Creator_2
 
class  Creator_3
 
class  Creator_4
 
class  Creator_5
 
class  Creator_uniform_2
 
class  Creator_uniform_3
 
class  Creator_uniform_4
 
class  Creator_uniform_5
 
class  Creator_uniform_6
 
class  Creator_uniform_7
 
class  Creator_uniform_8
 
class  Creator_uniform_9
 
class  Creator_uniform_d
 
class  Dereference
 
class  Get_address
 
class  Identity
 
class  Project_facet
 
class  Project_next
 
class  Project_next_opposite
 
class  Project_normal
 
class  Project_opposite_prev
 
class  Project_plane
 
class  Project_point
 
class  Project_prev
 
class  Project_vertex
 
class  In_place_list_base
 
class  In_place_list
 
class  Const_oneset_iterator
 
class  Counting_iterator
 
class  Dispatch_or_drop_output_iterator
 
class  Dispatch_output_iterator
 
class  Emptyset_iterator
 
class  Filter_iterator
 
class  Insert_iterator
 
class  Inverse_index
 
class  Join_input_iterator_1
 
class  Join_input_iterator_2
 
class  Join_input_iterator_3
 
class  N_step_adaptor
 
class  Oneset_iterator
 
class  Random_access_adaptor
 
class  Random_access_value_adaptor
 
class  Iterator_range
 
class  Location_policy
 
class  Multiset
 
class  Object
 
class  Sixtuple
 
class  Spatial_lock_grid_3
 
class  Boolean_tag
 
struct  Null_functor
 
struct  Sequential_tag
 
struct  Parallel_tag
 
class  Null_tag
 
class  Threetuple
 
class  Twotuple
 
class  Uncertain
 
class  Quadruple
 
class  Triple
 
struct  value_type_traits
 
struct  value_type_traits< std::back_insert_iterator< Container > >
 
struct  value_type_traits< std::insert_iterator< Container > >
 
struct  value_type_traits< std::front_insert_iterator< Container > >
 
class  Algebraic_structure_traits
 
class  Euclidean_ring_tag
 
class  Field_tag
 
class  Field_with_kth_root_tag
 
class  Field_with_root_of_tag
 
class  Field_with_sqrt_tag
 
class  Integral_domain_tag
 
class  Integral_domain_without_division_tag
 
class  Unique_factorization_domain_tag
 
class  Coercion_traits
 
class  Fraction_traits
 
class  Real_embeddable_traits
 
class  Circulator_from_container
 
class  Circulator_from_iterator
 
class  Circulator_traits
 
class  Container_from_circulator
 
struct  Circulator_tag
 
struct  Iterator_tag
 
struct  Forward_circulator_tag
 
struct  Bidirectional_circulator_tag
 
struct  Random_access_circulator_tag
 
struct  Circulator_base
 
struct  Forward_circulator_base
 
struct  Bidirectional_circulator_base
 
struct  Random_access_circulator_base
 
class  Forward_circulator_ptrbase
 
class  Bidirectional_circulator_ptrbase
 
class  Random_access_circulator_ptrbase
 
class  Color
 
class  Input_rep
 
class  Output_rep
 
class  Istream_iterator
 
class  Ostream_iterator
 
class  Verbose_ostream
 
class  Arr_accessor
 
class  Arr_algebraic_segment_traits_2
 
class  Arr_Bezier_curve_traits_2
 
class  Arr_circle_segment_traits_2
 
class  Arr_circular_arc_traits_2
 
class  Arr_circular_line_arc_traits_2
 
class  Arr_conic_traits_2
 
class  Arr_consolidated_curve_data_traits_2
 
class  Arr_curve_data_traits_2
 
class  Arr_dcel_base
 
class  Arr_default_dcel
 
class  Arr_default_overlay_traits
 
class  Arr_face_overlay_traits
 
class  Arr_extended_dcel
 
class  Arr_extended_face
 
class  Arr_extended_halfedge
 
class  Arr_extended_vertex
 
class  Arr_face_extended_dcel
 
class  Arr_face_index_map
 
class  Arr_landmarks_point_location
 
class  Arr_line_arc_traits_2
 
class  Arr_linear_traits_2
 
class  Arr_naive_point_location
 
class  Arr_non_caching_segment_basic_traits_2
 
class  Arr_non_caching_segment_traits_2
 
class  Arr_observer
 
class  Arr_point_location_result
 
class  Arr_polycurve_traits_2
 
class  Arr_polyline_traits_2
 
class  Arr_rational_function_traits_2
 
class  Arr_segment_traits_2
 
class  Arr_oblivious_side_tag
 
class  Arr_open_side_tag
 
class  Arr_trapezoid_ric_point_location
 
class  Arr_vertex_index_map
 
class  Arr_walk_along_line_point_location
 
class  Arrangement_2
 
class  Arrangement_with_history_2
 
class  Arr_extended_dcel_text_formatter
 
class  Arr_face_extended_text_formatter
 
class  Arr_text_formatter
 
class  Arr_with_history_text_formatter
 
class  Polygon_2
 
class  Polygon_with_holes_2
 
class  General_polygon_with_holes_2
 
class  Partition_is_valid_traits_2
 
class  Partition_traits_2
 
class  Is_convex_2
 
class  Is_vacuously_valid
 
class  Is_y_monotone_2
 
class  Gps_face_base
 
class  Gps_halfedge_base
 
class  Gps_default_dcel
 
class  General_polygon_2
 
class  General_polygon_set_2
 
class  Gps_circle_segment_traits_2
 
class  Gps_segment_traits_2
 
class  Gps_traits_2
 
class  Polygon_set_2
 
class  Protect_FPU_rounding
 
class  Set_ieee_double_precision
 
class  Gmpfi
 
class  Gmpfr
 
class  Gmpq
 
class  Gmpz
 
class  Gmpzf
 
class  Interval_nt
 
class  Lazy_exact_nt
 
class  MP_Float
 
class  Mpzf
 
class  NT_converter
 
class  Number_type_checker
 
class  Quotient
 
class  Rational_traits
 
class  Root_of_traits
 
class  Sqrt_extension
 
class  Is_valid
 
class  Max
 
class  Min
 
class  AABB_polyhedron_segment_primitive
 
class  AABB_face_graph_triangle_primitive
 
class  AABB_traits
 
class  AABB_polyhedron_triangle_primitive
 
struct  AABB_primitive
 
class  AABB_segment_primitive
 
class  AABB_tree
 
class  AABB_halfedge_graph_segment_primitive
 
class  AABB_triangle_primitive
 
class  Constrained_Delaunay_triangulation_2
 
struct  No_intersection_tag
 
struct  Exact_intersections_tag
 
struct  Exact_predicates_tag
 
class  Constrained_triangulation_2
 
class  Constrained_triangulation_face_base_2
 
class  Constrained_triangulation_plus_2
 
class  Delaunay_triangulation_2
 
class  Regular_triangulation_2
 
class  Regular_triangulation_euclidean_traits_2
 
class  Regular_triangulation_face_base_2
 
class  Regular_triangulation_filtered_traits_2
 
class  Regular_triangulation_vertex_base_2
 
class  Triangulation_2
 
class  Triangulation_cw_ccw_2
 
class  Triangulation_euclidean_traits_2
 
class  Triangulation_face_base_2
 
class  Triangulation_face_base_with_info_2
 
class  Triangulation_hierarchy_2
 
class  Triangulation_hierarchy_vertex_base_2
 
class  Triangulation_vertex_base_2
 
class  Triangulation_vertex_base_with_info_2
 
class  Weighted_point
 
class  Greene_convex_decomposition_2
 The Greene_convex_decomposition_2 class implements the approximation algorithm of Greene for the decomposition of an input polygon into convex sub-polygons. More...
 
class  Hertel_Mehlhorn_convex_decomposition_2
 The Hertel_Mehlhorn_convex_decomposition_2 class implements the approximation algorithm of Hertel and Mehlhorn for decomposing a polygon into convex sub-polygons. More...
 
class  Optimal_convex_decomposition_2
 The Optimal_convex_decomposition_2 class provides an implementation of Greene's dynamic programming algorithm for optimal decomposition of a polygon into convex sub-polygons. More...
 
class  Polygon_nop_decomposition_2
 The Polygon_nop_decomposition_2 class implements a convex decomposition of a polygon, which merely passes the input polygon to the list of output convex polygons. More...
 
class  Polygon_triangulation_decomposition_2
 The Polygon_triangulation_decomposition_2 class implements a convex decomposition of a polygon or a polygon with holes into triangles using the Delaunay constrained triangulation functionality of the 2D Triangulation package. More...
 
class  Polygon_vertical_decomposition_2
 The Polygon_vertical_decomposition_2 class implements a convex decompistion of a polygon or a polygon with holes into pseudo trapezoids utilizing the CGAL::decompose() free function of the 2D Arrangements package. More...
 
class  Small_side_angle_bisector_decomposition_2
 The Small_side_angle_bisector_decomposition_2 class implements a simple yet efficient heuristic for decomposing an input polygon into convex sub-polygons. More...
 

Functions

template<class Kernel , class Container , class OutputIterator >
OutputIterator approximated_inset_2 (const Polygon_2< Kernel, Container > &pgn, const typename Kernel::FT &r, const double &eps, OutputIterator oi)
 Provides a guaranteed approximation of the inset, or inner offset, of the given polygon P by a given radius r. More...
 
template<class Kernel , class Container >
Gps_circle_segment_traits_2
< Kernel >
::Polygon_with_holes_2 
approximated_offset_2 (const Polygon_2< Kernel, Container > &P, const typename Kernel::FT &r, const double &eps)
 Provides a guaranteed approximation of the offset of the given polygon P by a given radius r - namely, the function computes the Minkowski sum \( P \oplus B_r\), where \( B_r\) is a disc of radius r centered at the origin. More...
 
template<class Kernel , class Container >
Gps_circle_segment_traits_2
< Kernel >
::Polygon_with_holes_2 
approximated_offset_2 (const Polygon_with_holes_2< Kernel, Container > &wh, const typename Kernel::FT &r, const double &eps)
 Provides a guaranteed approximation of offset the given polygon with holes pwh by a given radius r, such that the approximation error is bounded by eps. More...
 
template<class Kernel , class Container , class DecompositionStrategy >
Gps_circle_segment_traits_2
< Kernel >
::Polygon_with_holes_2 
approximated_offset_2 (const Polygon_2< Kernel, Container > &P, const typename Kernel::FT &r, const double &eps, const DecompositionStrategy &decomp)
 Provides a guaranteed approximation of the offset of the given polygon P by a radius r, as described above. More...
 
template<typename Kernel , typename Container >
Polygon_with_holes_2< Kernel,
Container > 
minkowski_sum_2 (const PolygonType1< Kernel, Container > &P, const PolygonType2< Kernel, Container > &Q)
 Computes the Minkowski sum \( P \oplus Q\) of two given polygons (which may have holes). More...
 
template<typename Kernel , typename Container >
Polygon_with_holes_2< Kernel,
Container > 
minkowski_sum_by_reduced_convolution_2 (const PolygonType1< Kernel, Container > &P, const PolygonType2< Kernel, Container > &Q)
 Computes the Minkowski sum \( P \oplus Q\) of the two given polygons. More...
 
template<typename Kernel , typename Container >
Polygon_with_holes_2< Kernel,
Container > 
minkowski_sum_by_full_convolution_2 (const Polygon_2< Kernel, Container > &P, const Polygon_2< Kernel, Container > &Q)
 Computes the Minkowski sum \( P \oplus Q\) of the two given polygons. More...
 
template<typename Kernel , typename Container , typename PolygonConvexDecompositionP_2_ , typename PolygonConvexDecompositionQ_2_ >
Polygon_with_holes_2< Kernel,
Container > 
minkowski_sum_2 (const PolygonType1< Kernel, Container > &P, const PolygonType2< Kernel, Container > &Q, const PolygonConvexDecompositionP_2_ &decomp_P, const PolygonConvexDecompositionQ_2_ &decomp_Q, const Gps_segment_traits_2 &traits=Gps_segment_traits_2< Kernel, Container, Arr_segment_traits >())
 Computes the Minkowski sum \( P \oplus Q\) of the two given polygons. More...
 
template<typename Kernel , typename Container , typename PolygonConvexDecomposition_2_ >
Polygon_with_holes_2< Kernel,
Container > 
minkowski_sum_2 (const PolygonType1< Kernel, Container > &P, const PolygonType2< Kernel, Container > &Q, const PolygonConvexDecomposition_2_ &decomp, const Gps_segment_traits_2 &traits=Gps_segment_traits_2< Kernel, Container, Arr_segment_traits >())
 Computes the Minkowski sum \( P \oplus Q\) of the two given polygons. More...
 
template<typename Kernel , typename Container , typename PolygonNoHolesConvexDecomposition_2_ , typename PolygonWithHolesConvexDecomposition_2_ >
Polygon_with_holes_2< Kernel,
Container > 
minkowski_sum_by_decomposition_2 (const PolygonType1< Kernel, Container > &P, const PolygonType2< Kernel, Container > &Q, const PolygonNoHolesConvexDecomposition_2_ &no_holes_decomp, const PolygonWithHolesConvexDecomposition_2_ &with_holes_decomp, const Gps_segment_traits_2 &traits=Gps_segment_traits_2< Kernel, Container, Arr_segment_traits >())
 Computes the Minkowski sum \( P \oplus Q\) of the two given polygons using the decomposition strategy. More...
 
template<class ConicTraits , class Container , class OutputIterator >
OutputIterator inset_polygon_2 (const Polygon_2< typename ConicTraits::Rat_kernel, Container > &P, const typename ConicTraits::Rat_kernel::FT &r, const ConicTraits &traits, OutputIterator oi)
 Computes the inset, or inner offset, of the given polygon P by a given radius r - namely, the function computes the set of points inside the polygon whose distance from \( P\)'s boundary is at least \( r\): \( \{ p \in P \;|\; {\rm dist}(p, \partial P) \geq r \}\). More...
 
template<class ConicTraits , class Container >
Gps_traits_2< ConicTraits >
::Polygon_with_holes_2 
offset_polygon_2 (const Polygon_2< typename ConicTraits::Rat_kernel, Container > &P, const typename ConicTraits::Rat_kernel::FT &r, const ConicTraits &traits)
 Computes the offset of the given polygon P by a given radius r - namely, the function computes the Minkowski sum \( P \oplus B_r\), where \( B_r\) is a disc of radius r centered at the origin. More...
 
template<class ConicTraits , class Container >
Gps_traits_2< ConicTraits >
::Polygon_with_holes_2 
offset_polygon_2 (const Polygon_with_holes_2< typename ConicTraits::Rat_kernel, Container > &pwh, const typename ConicTraits::Rat_kernel::FT &r, const ConicTraits &traits)
 Computes the offset of the given polygon with holes pwh by a given radius r. More...
 
template<class ConicTraits , class Container , class DecompositionStrategy >
Gps_traits_2< ConicTraits >
::Polygon_with_holes_2 
offset_polygon_2 (const Polygon_2< typename ConicTraits::Rat_kernel, Container > &P, const typename ConicTraits::Rat_kernel::FT &r, const DecompositionStrategy &decomp, const ConicTraits &traits)
 Computes the exact representation of the offset of the given polygon P by a radius r, as described above. More...