\begin{ccRefClass} {Triangle_3} \ccDefinition An object $t$ of the class \ccRefName\ is a triangle in the three-dimensional Euclidean space $\E^3$. As the triangle is not a full-dimensional object there is only a test whether a point lies on the triangle or not. \ccCreation \ccCreationVariable{t} \ccHidden \ccConstructor{Triangle_3();} {introduces an uninitialized variable \ccVar.} \ccHidden \ccConstructor{Triangle_3(const Triangle_3 &u);} {copy constructor.} \ccConstructor{Triangle_3(const Point_3 &p, const Point_3 &q, const Point_3 &r);} {introduces a triangle \ccVar\ with vertices $p$, $q$ and $r$.} \ccOperations \ccHidden \ccMethod{Triangle_3 & operator=(const Triangle_3 &t2);} {Assignment.} \ccMethod{bool operator==(const Triangle_3 &t2) const;} {Test for equality: two triangles t and $t_2$ are equal, iff there exists a cyclic permutation of the vertices of $t2$, such that they are equal to the vertices of~\ccVar.} \ccMethod{bool operator!=(const Triangle_3 &t2) const;} {Test for inequality.} \ccMethod{Point_3 vertex(int i) const;} {returns the i'th vertex modulo 3 of~\ccVar.} \ccMethod{Point_3 operator[](int i) const;} {returns \ccStyle{vertex(int i)}.} \ccMethod{Plane_3 supporting_plane();} {returns the supporting plane of \ccVar, with same orientation.} \ccPredicates \ccMethod{bool is_degenerate() const;} {{\ccVar} is degenerate if its vertices are collinear.} \ccMethod{bool has_on(const Point_3 &p) const;} {A point is on \ccVar, if it is on a vertex, an edge or the face of \ccVar.} \ccHeading{Miscellaneous} \ccMethod{Kernel::FT squared_area() const;} {returns a square of the area of \ccVar.} \ccMethod{Bbox_3 bbox() const;} {returns a bounding box containing \ccVar.} \ccMethod{Triangle_3 transform(const Aff_transformation_3 &at) const;} {returns the triangle obtained by applying $at$ on the three vertices of~\ccVar.} \ccSeeAlso \ccRefConceptPage{Kernel::Triangle_3} \\ \end{ccRefClass}