CGAL 6.1 - 2D and 3D Linear Geometry Kernel

Loading...
Searching...
No Matches
List of all members
CGAL::Triangle_2< Kernel > Class Template Reference
Reference Manual » 2D Kernel Objects

`#include <CGAL/Triangle_2.h>`

## Definition

template<typename Kernel>
class CGAL::Triangle_2< Kernel >

An object `t` of the class `Triangle_2` is a triangle in the two-dimensional Euclidean plane \( \E^2\).

Triangle `t` is oriented, i.e., its boundary has clockwise or counterclockwise orientation. We call the side to the left of the boundary the positive side and the side to the right of the boundary the negative side.

The boundary of a triangle splits the plane in two open regions, a bounded one and an unbounded one.

Is model of
  `Kernel::Triangle_2`

## Creation
| Triangle_2 (const Point_2< Kernel > &p, const Point_2< Kernel > &q, const Point_2< Kernel > &r)
| introduces a triangle `t` with vertices `p`, `q` and `r`.

## Operations
bool | operator== (const Triangle_2< Kernel > &t2) const
| Test for equality: two triangles are equal, iff there exists a cyclic permutation of the vertices of \( t2\), such that they are equal to the vertices of `t`.
bool | operator!= (const Triangle_2< Kernel > &t2) const
| Test for inequality.
Point_2< Kernel > | vertex (int i) const
| returns the i-th vertex modulo 3 of `t`.
Point_2< Kernel > | operator[] (int i) const
| returns `vertex(i)`.

## Predicates
For convenience we provide the following Boolean functions:
bool | is_degenerate () const
| triangle `t` is degenerate, if the vertices are collinear.
Orientation | orientation () const
| returns the orientation of `t`.
Oriented_side | oriented_side (const Point_2< Kernel > &p) const
| returns `ON_ORIENTED_BOUNDARY`, or `POSITIVE_SIDE`, or the constant `ON_NEGATIVE_SIDE`, determined by the position of point `p`.
Bounded_side | bounded_side (const Point_2< Kernel > &p) const
| returns the constant `ON_BOUNDARY`, `ON_BOUNDED_SIDE`, or else `ON_UNBOUNDED_SIDE`, depending on where point `p` is.
bool | has_on_positive_side (const Point_2< Kernel > &p) const
bool | has_on_negative_side (const Point_2< Kernel > &p) const
bool | has_on_boundary (const Point_2< Kernel > &p) const
bool | has_on_bounded_side (const Point_2< Kernel > &p) const
bool | has_on_unbounded_side (const Point_2< Kernel > &p) const

## Miscellaneous
Triangle_2< Kernel > | opposite ()
| returns a triangle where the boundary is oriented the other way round (this flips the positive and the negative side, but not the bounded and unbounded side).
Kernel::FT | area () const
| returns the signed area of `t`.
Bbox_2 | bbox () const
| returns a bounding box containing `t`.
Triangle_2< Kernel > | transform (const Aff_transformation_2< Kernel > &at) const
| returns the triangle obtained by applying \( at\) on the three vertices of `t`.

## Constructor & Destructor Documentation

## ◆ Triangle_2()

template<typename Kernel >

CGAL::Triangle_2< Kernel >::Triangle_2 | ( | const Point_2< Kernel > & | p,
|  | const Point_2< Kernel > & | q,
|  | const Point_2< Kernel > & | r
| ) |  |

introduces a triangle `t` with vertices `p`, `q` and `r`.

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.

## Member Function Documentation

## ◆ bbox()

template<typename Kernel >

Bbox_2 CGAL::Triangle_2< Kernel >::bbox | ( |  | ) | const

returns a bounding box containing `t`.

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.

## ◆ bounded_side()

template<typename Kernel >

Bounded_side CGAL::Triangle_2< Kernel >::bounded_side | ( | const Point_2< Kernel > & | p | ) | const

returns the constant `ON_BOUNDARY`, `ON_BOUNDED_SIDE`, or else `ON_UNBOUNDED_SIDE`, depending on where point `p` is.

Precondition
  `t` is not degenerate.

## ◆ has_on_unbounded_side()

template<typename Kernel >

bool CGAL::Triangle_2< Kernel >::has_on_unbounded_side | ( | const Point_2< Kernel > & | p | ) | const

Precondition
  `t` is not degenerate.

## ◆ operator[]()

template<typename Kernel >

Point_2< Kernel > CGAL::Triangle_2< Kernel >::operator[] | ( | int | i | ) | const

returns `vertex(i)`.

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.

## ◆ opposite()

template<typename Kernel >

Triangle_2< Kernel > CGAL::Triangle_2< Kernel >::opposite | ( |  | ) |

returns a triangle where the boundary is oriented the other way round (this flips the positive and the negative side, but not the bounded and unbounded side).

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.

## ◆ oriented_side()

template<typename Kernel >

Oriented_side CGAL::Triangle_2< Kernel >::oriented_side | ( | const Point_2< Kernel > & | p | ) | const

returns `ON_ORIENTED_BOUNDARY`, or `POSITIVE_SIDE`, or the constant `ON_NEGATIVE_SIDE`, determined by the position of point `p`.

Precondition
  `t` is not degenerate.

## ◆ vertex()

template<typename Kernel >

Point_2< Kernel > CGAL::Triangle_2< Kernel >::vertex | ( | int | i | ) | const

returns the i-th vertex modulo 3 of `t`.

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.