CGAL 5.6.3 - 2D Regularized Boolean Set-Operations

Loading...
Searching...
No Matches
Functions
Oriented Side Functions
2D Regularized Boolean Set-Operations Reference

##

There are several overloaded function templates called `Oriented_side()` that compute the relative position of either (i) two polygons or (ii) a point and a polygon. This group of function templates is divided into two subgroups.

Oriented Side of two Polygons

Every function template in the first subgroup accepts two polygons `pgn1` and `pgn2`. It returns `ON_POSITIVE_SIDE` if the two given polygons `pgn1` and `pgn2` intersect in their interiors, `ON_NEGATIVE_SIDE` if `pgn1` and `pgn2` do not intersect at all, and `ON_ORIENTED_BOUNDARY` if `pgn1` and `pgn2` intersect only in their boundaries.

A function template in this subgroup has one of the two following signatures:

1.1. | `Oriented_side oriented_side(const Type1& pgn1, const Type2& pgn2, UsePolylines = Tag_true());`
1.2. | `Oriented_side oriented_side(const Type1& pgn1, const Type2& pgn2);`
2. | `Oriented_side oriented_side(const Type1& pgn1, const Type2& pgn2, const GpsTraits& traits);`

Oriented Side of a Point and a Polygon

The functions in the second group accept a point `p` and a polygon `pgn`. Each function in this group returns `ON_POSITIVE_SIDE` if the point `p` is in the interior of `pgn`, `ON_NEGATIVE_SIDE` if `p` is in the exterior of `pgn`, and `ON_ORIENTED_BOUNDARY` if `p` is on the boundary of `pgn`.

A function in this subgroup has one of the following signatures:

3.1. | `Oriented_side oriented_side(const Point_2& p, const Type& pgn, UsePolylines = Tag_true());`
3.2. | `Oriented_side oriented_side(const Point_2& p, const Type& pgn);`
4. | `Oriented_side oriented_side(const Point_2& p, const Type& pgn, const GpsTraits& traits);`

Template Parameters

  UsePolylines | determines whether the boundaries of the input polygons are treated as cyclic sequences of single ( \(x\)-monotone) segments or as cyclic sequences of ( \(x\)-monotone) polylines. If substituted with `CGAL::Tag_true`, which is the default, the input polygons are converted to general polygons bounded by polylines before the operation is actually performed. If substituted with `CGAL::Tag_false`, the input polygons are used as is. Refer to Traits Selection for more information.

- The types `Type1` and `Type2` of the parameters must be convertible to the types specified in a row in the following table, respectively.
- The types that apply to signature (1.1.) above are restricted to those listed in rows 1–4 in the table below.
- The types that apply to signature (1.2.) above are restricted to those listed in rows 5–8 in the table below.

| Type1 | Type2
--- | --- | ---
1 | `Polygon_2` | `Polygon_2`
2 | `Polygon_2` | `Polygon_with_holes_2`
3 | `Polygon_with_holes_2` | `Polygon_2`
4 | `Polygon_with_holes_2` | `Polygon_with_holes_2`
5 | `General_polygon_2` | `General_polygon_2`
6 | `General_polygon_2` | `General_polygon_with_holes_2`
7 | `General_polygon_with_holes_2` | `General_polygon_2`
8 | `General_polygon_with_holes_2` | `General_polygon_with_holes_2`

- In (3.1.) `Type` must be convertible to either `Polygon_2` or `Polygon_with_holes_2`.
- In (3.2.) `Type` must be convertible to either `General_polygon_2` or `General_polygon_with_holes_2`.
- In (4.) `Type` must be convertible to any of the four types above.

Parameters

  p | the input point.
  pgn | the input polygon.
  pgn1,pgn2 | the input polygons.
  traits | an optional traits object.

See also
  `CGAL::do_intersect()`

## Functions
template<typename Kernel , typename Container >
Oriented_side | CGAL::oriented_side (const Polygon_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2)
| computes the relative position of two polygons.
template<typename Kernel , typename Container , typename UsePolylines >
Oriented_side | CGAL::oriented_side (const Polygon_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, UsePolylines=Tag_true())
| computes the relative position of two polygons.
template<typename Kernel , typename Container >
Oriented_side | CGAL::oriented_side (const Polygon_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2)
| computes the relative position of two polygons.
template<typename Kernel , typename Container , typename UsePolylines >
Oriented_side | CGAL::oriented_side (const Polygon_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, UsePolylines=Tag_true())
| computes the relative position of two polygons.
template<typename Kernel , typename Container >
Oriented_side | CGAL::oriented_side (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2)
| computes the relative position of two polygons.
template<typename Kernel , typename Container , typename UsePolylines >
Oriented_side | CGAL::oriented_side (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, UsePolylines=Tag_true())
| computes the relative position of two polygons.
template<typename Kernel , typename Container >
Oriented_side | CGAL::oriented_side (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2)
| computes the relative position of two polygons.
template<typename Kernel , typename Container , typename UsePolylines >
Oriented_side | CGAL::oriented_side (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, UsePolylines=Tag_true())
| computes the relative position of two polygons.
template<typename ArrTraits >
Oriented_side | CGAL::oriented_side (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_2< ArrTraits > &pgn2)
| computes the relative position of two polygons.
template<typename ArrTraits >
Oriented_side | CGAL::oriented_side (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &pgn2)
| computes the relative position of two polygons.
template<typename ArrTraits >
Oriented_side | CGAL::oriented_side (const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &pgn1, const General_polygon_2< ArrTraits > &pgn2)
| computes the relative position of two polygons.
template<typename Polygon >
Oriented_side | CGAL::oriented_side (const General_polygon_with_holes_2< Polygon > &pgn1, const General_polygon_with_holes_2< Polygon > &pgn2)
| computes the relative position of two polygons.
template<typename Kernel , typename Container , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const Polygon_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, const GpsTraits &traits)
| computes the relative position of two polygons.
template<typename Kernel , typename Container , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const Polygon_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, const GpsTraits &traits)
| computes the relative position of two polygons.
template<typename Kernel , typename Container , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, const GpsTraits &traits)
| computes the relative position of two polygons.
template<typename Kernel , typename Container , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, const GpsTraits &traits)
| computes the relative position of two polygons.
template<typename ArrTraits , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_2< ArrTraits > &pgn2, const GpsTraits &traits)
| computes the relative position of two polygons.
template<typename ArrTraits , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &pgn2, const GpsTraits &traits)
| computes the relative position of two polygons.
template<typename ArrTraits , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &pgn1, const General_polygon_2< ArrTraits > &pgn2, const GpsTraits &traits)
| computes the relative position of two polygons.
template<typename Polygon , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const General_polygon_with_holes_2< Polygon > &pgn1, const General_polygon_with_holes_2< Polygon > &pgn2, const GpsTraits &traits)
| computes the relative position of two polygons.
template<typename Kernel , typename Container >
Oriented_side | CGAL::oriented_side (const Point_2 &p, const Polygon_2< Kernel, Container > &pgn)
| computes the relative position of a point and a polygon.
template<typename Kernel , typename Container >
Oriented_side | CGAL::oriented_side (const Point_2 &p, const Polygon_with_holes_2< Kernel, Container > &pgn)
| computes the relative position of a point and a polygon.
template<typename ArrTraits >
Oriented_side | CGAL::oriented_side (const Point_2 &p, const General_polygon_2< ArrTraits > &pgn)
| computes the relative position of a point and a polygon.
template<typename Polygon >
Oriented_side | CGAL::oriented_side (const Point_2 &p, const General_polygon_with_holes_2< Polygon > &pgn)
| computes the relative position of a point and a polygon.
template<typename Kernel , typename Container , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const Point_2 &p, const Polygon_2< Kernel, Container > &pgn, const GpsTraits &traits)
| computes the relative position of a point and a polygon.
template<typename Kernel , typename Container , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const Point_2 &p, const Polygon_with_holes_2< Kernel, Container > &pgn, const GpsTraits &traits)
| computes the relative position of a point and a polygon.
template<typename ArrTraits , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const Point_2 &p, const General_polygon_2< ArrTraits > &pgn, const GpsTraits &traits)
| computes the relative position of a point and a polygon.
template<typename Polygon , typename GpsTraits >
Oriented_side | CGAL::oriented_side (const Point_2 &p, const General_polygon_with_holes_2< Polygon > &pgn, const GpsTraits &traits)
| computes the relative position of a point and a polygon.

## Function Documentation

## ◆ oriented_side() [1/28]

template<typename ArrTraits >

Oriented_side CGAL::oriented_side | ( | const General_polygon_2< ArrTraits > & | pgn1,
|  | const General_polygon_2< ArrTraits > & | pgn2
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | 1st the input polygon.
  pgn2 | the 2nd input polygon.

Precondition
  `ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`.

## ◆ oriented_side() [2/28]

template<typename ArrTraits , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const General_polygon_2< ArrTraits > & | pgn1,
|  | const General_polygon_2< ArrTraits > & | pgn2,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.
  traits | a traits object.

Precondition
  `ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`.
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [3/28]

template<typename ArrTraits >

Oriented_side CGAL::oriented_side | ( | const General_polygon_2< ArrTraits > & | pgn1,
|  | const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > & | pgn2
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.

Precondition
  `ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`.

## ◆ oriented_side() [4/28]

template<typename ArrTraits , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const General_polygon_2< ArrTraits > & | pgn1,
|  | const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > & | pgn2,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.
  traits | a traits object.

Precondition
  `ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`.
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [5/28]

template<typename ArrTraits >

Oriented_side CGAL::oriented_side | ( | const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > & | pgn1,
|  | const General_polygon_2< ArrTraits > & | pgn2
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.

Precondition
  `ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`.

## ◆ oriented_side() [6/28]

template<typename ArrTraits , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > & | pgn1,
|  | const General_polygon_2< ArrTraits > & | pgn2,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.
  traits | a traits object.

Precondition
  `ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`.
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [7/28]

template<typename Polygon >

Oriented_side CGAL::oriented_side | ( | const General_polygon_with_holes_2< Polygon > & | pgn1,
|  | const General_polygon_with_holes_2< Polygon > & | pgn2
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.

## ◆ oriented_side() [8/28]

template<typename Polygon , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const General_polygon_with_holes_2< Polygon > & | pgn1,
|  | const General_polygon_with_holes_2< Polygon > & | pgn2,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.
  traits | a traits object.

Precondition
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [9/28]

template<typename ArrTraits >

Oriented_side CGAL::oriented_side | ( | const Point_2 & | p,
|  | const General_polygon_2< ArrTraits > & | pgn
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of a point and a polygon.

Parameters

  p | the input point.
  pgn | the input polygon.

Precondition
  `ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`.

## ◆ oriented_side() [10/28]

template<typename ArrTraits , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const Point_2 & | p,
|  | const General_polygon_2< ArrTraits > & | pgn,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of a point and a polygon.

Parameters

  p | the input point.
  pgn | the input polygon.
  traits | a traits object.

Precondition
  `ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`.
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [11/28]

template<typename Polygon >

Oriented_side CGAL::oriented_side | ( | const Point_2 & | p,
|  | const General_polygon_with_holes_2< Polygon > & | pgn
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of a point and a polygon.

Parameters

  p | the input point.
  pgn | the input polygon.

## ◆ oriented_side() [12/28]

template<typename Polygon , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const Point_2 & | p,
|  | const General_polygon_with_holes_2< Polygon > & | pgn,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of a point and a polygon.

Parameters

  p | the input point.
  pgn | the input polygon.
  traits | a traits object.

Precondition
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [13/28]

template<typename Kernel , typename Container >

Oriented_side CGAL::oriented_side | ( | const Point_2 & | p,
|  | const Polygon_2< Kernel, Container > & | pgn
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of a point and a polygon.

Parameters

  p | the input point.
  pgn | the input polygon.

## ◆ oriented_side() [14/28]

template<typename Kernel , typename Container , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const Point_2 & | p,
|  | const Polygon_2< Kernel, Container > & | pgn,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of a point and a polygon.

Parameters

  p | the input point.
  pgn | the input polygon.
  traits | a traits object.

Precondition
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [15/28]

template<typename Kernel , typename Container >

Oriented_side CGAL::oriented_side | ( | const Point_2 & | p,
|  | const Polygon_with_holes_2< Kernel, Container > & | pgn
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of a point and a polygon.

Parameters

  p | the input point.
  pgn | the input polygon.

## ◆ oriented_side() [16/28]

template<typename Kernel , typename Container , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const Point_2 & | p,
|  | const Polygon_with_holes_2< Kernel, Container > & | pgn,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of a point and a polygon.

Parameters

  p | the input point.
  pgn | the input polygon.
  traits | a traits object.

Precondition
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [17/28]

template<typename Kernel , typename Container >

Oriented_side CGAL::oriented_side | ( | const Polygon_2< Kernel, Container > & | pgn1,
|  | const Polygon_2< Kernel, Container > & | pgn2
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.

## ◆ oriented_side() [18/28]

template<typename Kernel , typename Container , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const Polygon_2< Kernel, Container > & | pgn1,
|  | const Polygon_2< Kernel, Container > & | pgn2,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.
  traits | a traits object.

Precondition
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [19/28]

template<typename Kernel , typename Container , typename UsePolylines >

Oriented_side CGAL::oriented_side | ( | const Polygon_2< Kernel, Container > & | pgn1,
|  | const Polygon_2< Kernel, Container > & | pgn2,
|  | UsePolylines | = `Tag_true()`
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Template Parameters

  UsePolylines | determines whether the boundaries of `pgn1` and `pgn2` are treated as cyclic sequences of single ( \(x\)-monotone) segments or as a cyclic sequences of ( \(x\)-monotone) polylines. If substituted with `CGAL::Tag_true`, which is the default, `pgn1` and `pgn2` are converted to a general polygons bounded by polylines before the operation is actually performed. Then, the resulting general polygons with holes are converted back to standard polygons with holes. If substituted with `CGAL::Tag_false`, `pgn1` and `pgn2` are used as is. Refer to Traits Selection for more information.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.

## ◆ oriented_side() [20/28]

template<typename Kernel , typename Container >

Oriented_side CGAL::oriented_side | ( | const Polygon_2< Kernel, Container > & | pgn1,
|  | const Polygon_with_holes_2< Kernel, Container > & | pgn2
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.

## ◆ oriented_side() [21/28]

template<typename Kernel , typename Container , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const Polygon_2< Kernel, Container > & | pgn1,
|  | const Polygon_with_holes_2< Kernel, Container > & | pgn2,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.
  traits | a traits object.

Precondition
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [22/28]

template<typename Kernel , typename Container , typename UsePolylines >

Oriented_side CGAL::oriented_side | ( | const Polygon_2< Kernel, Container > & | pgn1,
|  | const Polygon_with_holes_2< Kernel, Container > & | pgn2,
|  | UsePolylines | = `Tag_true()`
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Template Parameters

  UsePolylines | determines whether the boundaries of `pgn1` and `pgn2` are treated as cyclic sequences of single ( \(x\)-monotone) segments or as a cyclic sequences of ( \(x\)-monotone) polylines. If substituted with `CGAL::Tag_true`, which is the default, `pgn1` and `pgn2` are converted to a general polygon and a general polygon with holes, respectively, bounded by polylines before the operation is actually performed. Then, the resulting general polygons with holes are converted back to standard polygons with holes. If substituted with `CGAL::Tag_false`, `pgn1` and `pgn2` are used as is. Refer to Traits Selection for more information.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.

## ◆ oriented_side() [23/28]

template<typename Kernel , typename Container >

Oriented_side CGAL::oriented_side | ( | const Polygon_with_holes_2< Kernel, Container > & | pgn1,
|  | const Polygon_2< Kernel, Container > & | pgn2
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.

## ◆ oriented_side() [24/28]

template<typename Kernel , typename Container , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const Polygon_with_holes_2< Kernel, Container > & | pgn1,
|  | const Polygon_2< Kernel, Container > & | pgn2,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.
  traits | a traits object.

Precondition
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [25/28]

template<typename Kernel , typename Container , typename UsePolylines >

Oriented_side CGAL::oriented_side | ( | const Polygon_with_holes_2< Kernel, Container > & | pgn1,
|  | const Polygon_2< Kernel, Container > & | pgn2,
|  | UsePolylines | = `Tag_true()`
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Template Parameters

  UsePolylines | determines whether the boundaries of `pgn1` and `pgn2` are treated as cyclic sequences of single ( \(x\)-monotone) segments or as a cyclic sequences of ( \(x\)-monotone) polylines. If substituted with `CGAL::Tag_true`, which is the default, `pgn1` and `pgn2` are converted to a general polygon with holes and a general polygon, respectively, bounded by polylines before the operation is actually performed. Then, the resulting general polygons with holes are converted back to standard polygons with holes. If substituted with `CGAL::Tag_false`, `pgn1` and `pgn2` are used as is. Refer to Traits Selection for more information.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.

## ◆ oriented_side() [26/28]

template<typename Kernel , typename Container >

Oriented_side CGAL::oriented_side | ( | const Polygon_with_holes_2< Kernel, Container > & | pgn1,
|  | const Polygon_with_holes_2< Kernel, Container > & | pgn2
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.

## ◆ oriented_side() [27/28]

template<typename Kernel , typename Container , typename GpsTraits >

Oriented_side CGAL::oriented_side | ( | const Polygon_with_holes_2< Kernel, Container > & | pgn1,
|  | const Polygon_with_holes_2< Kernel, Container > & | pgn2,
|  | const GpsTraits & | traits
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.
  traits | a traits object.

Precondition
  `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.

## ◆ oriented_side() [28/28]

template<typename Kernel , typename Container , typename UsePolylines >

Oriented_side CGAL::oriented_side | ( | const Polygon_with_holes_2< Kernel, Container > & | pgn1,
|  | const Polygon_with_holes_2< Kernel, Container > & | pgn2,
|  | UsePolylines | = `Tag_true()`
| ) |  |

`#include <CGAL/Boolean_set_operations_2.h>`

computes the relative position of two polygons.

Template Parameters

  UsePolylines | determines whether the boundaries of `pgn1` and `pgn2` are treated as cyclic sequences of single ( \(x\)-monotone) segments or as a cyclic sequences of ( \(x\)-monotone) polylines. If substituted with `CGAL::Tag_true`, which is the default, `pgn1` and `pgn2` are converted to general polygons with holes, bounded by polylines before the operation is actually performed. Then, the resulting general polygons with holes are converted back to standard polygons with holes. If substituted with `CGAL::Tag_false`, `pgn1` and `pgn2` are used as is. Refer to Traits Selection for more information.

Parameters

  pgn1 | the 1st input polygon.
  pgn2 | the 2nd input polygon.