CGAL 5.4.4 - 2D Regularized Boolean Set-Operations

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
1Polygon_2 Polygon_2
2Polygon_2 Polygon_with_holes_2
3Polygon_with_holes_2 Polygon_2
4Polygon_with_holes_2 Polygon_with_holes_2
5General_polygon_2 General_polygon_2
6General_polygon_2 General_polygon_with_holes_2
7General_polygon_with_holes_2General_polygon_2
8General_polygon_with_holes_2General_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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

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. More...

## ◆ oriented_side() [1/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() [2/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() [3/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() [4/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() [5/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() [6/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() [7/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() [8/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.

## ◆ oriented_side() [9/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() [10/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() [11/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() [12/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() [13/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() [14/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() [15/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() [16/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() [17/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() [18/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() [19/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() [20/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() [21/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() [22/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() [23/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() [24/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() [25/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() [26/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() [27/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() [28/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.