Function

CGAL::overlay

Definition

The function overlay computes the overlay of two input arrangement objects, and returns the overlaid arrangement. All three arrangements can be instantiated with different geometric traits classes and different Dcel (encapsulated in the various topology-traits classes) classes. The geometry traits of the resulting arrangement is used to construct the resulting arrangement. This means that all the types (e.g., Traits::Point_2, Traits::Curve_2, and Traits::Point_2) of both input arrangements have to be convertible to the types in the resulting arrangement. A given overlay-traits object is used to properly construct the overlaid Dcel that represents the resulting arrangement.

#include <CGAL/Arr_overlay_2.h>

template <class GeomTraitsA, class GeomTraitsB, class GeomTraitsRes, class TopTraitsA, class TopTraitsB, class TopTraitsRes, class OverlayTraits>
void
overlay ( Arrangement_2<GeomTraitsA, TopTraitsA> arr1,
Arrangement_2<GeomTraitsB, TopTraitsB> arr2,
Arrangement_2<GeomTraitsRes, TopTraitsRes>& arr_res,
OverlayTraits& ovl_tr)
Computes the overlay of two arrangements arr1 and arr2, and sets the output arrangement res to represent the overlaid arrangement.

Precondition

res does not refer to either arr1 or arr2 (that is, ``self overlay'' is not supported).

template <class GeomTraitsA, class GeomTraitsB, class GeomTraitsRes, class TopTraitsA, class TopTraitsB, class TopTraitsRes>
void
overlay ( Arrangement_2<GeomTraitsA, TopTraitsA> arr1,
Arrangement_2<GeomTraitsB, TopTraitsB> arr2,
Arrangement_2<GeomTraitsRes, TopTraitsRes>& arr_res)
Computes the (simple) overlay of two arrangements arr1 and arr2, and sets the output arrangement res to represent the overlaid arrangement. It employs the default overlay-traits, which practically does nothing.

Precondition

res does not refer to either arr1 or arr2 (that is, ``self overlay'' is not supported).

#include <CGAL/Arrangement_with_history_2.h>

template<typename Traits, typename Dcel1, typename Dcel2, typename ResDcel, typename OverlayTraits>
void
overlay ( Arrangement_with_history_2<Traits,Dcel1> arr1,
Arrangement_with_history_2<Traits,Dcel2> arr2,
Arrangement_with_history_2<Traits,ResDcel>& res,
OverlayTraits& ovl_tr)
Computes the overlay of two arrangements with history arr1 and arr2, and sets the output arrangement with history res to represent the overlaid arrangement. The function also constructs a consolidated set of curves that induce res.

Precondition

res does not refer to either arr1 or arr2 (that is, ``self overlay'' is not supported).

template<typename Traits, typename Dcel1, typename Dcel2, typename ResDcel>
void
overlay ( Arrangement_with_history_2<Traits,Dcel1> arr1,
Arrangement_with_history_2<Traits,Dcel2> arr2,
Arrangement_with_history_2<Traits,ResDcel>& res)
Computes the (simple) overlay of two arrangements with history arr1 and arr2, and sets the output arrangement with history res to represent the overlaid arrangement. The function also constructs a consolidated set of curves that induce res. It employs the default overlay-traits, which practically does nothing.

Precondition

res does not refer to either arr1 or arr2 (that is, ``self overlay'' is not supported).

Requirements

See Also

OverlayTraits