\( \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.10 - 2D and 3D Linear Geometry Kernel
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Triangle_2< Kernel > Class Template Reference

#include <CGAL/Triangle_2.h>

Definition

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< Kernelvertex (int i) const
 returns the i'th vertex modulo 3 of t.
 
Point_2< Kerneloperator[] (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. More...
 
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. More...
 
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< Kernelopposite ()
 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< Kerneltransform (const Aff_transformation_2< Kernel > &at) const
 returns the triangle obtained by applying \( at\) on the three vertices of t.
 

Member Function Documentation

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.
template<typename Kernel >
bool CGAL::Triangle_2< Kernel >::has_on_unbounded_side ( const Point_2< Kernel > &  p) const
Precondition
t is not degenerate.
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.