% +------------------------------------------------------------------------+ % | Reference manual page: Triangulation_traits_2.tex % +------------------------------------------------------------------------+ % | 06.04.2000 Author % | Package: Package % | \RCSdef{\RCSTriangulationtraitsRev}{$Id$} \RCSdefDate{\RCSTriangulationtraitsDate}{$Date$} % | %%RefPage: end of header, begin of main body % +------------------------------------------------------------------------+ \begin{ccRefConcept}{TriangulationTraits_2} %% \ccHtmlCrossLink{} %% add further rules for cross referencing links %% \ccHtmlIndexC[concept]{} %% add further index entries \ccDefinition The concept \ccRefName\ describes the set of requirements to be fulfilled by any class used to instantiate the first template parameter of the class \ccc{Triangulation_2}. This concept provides the types of the geometric primitives used in the triangulation and some function object types for the required predicates on those primitives. \ccTypes \ccNestedType{Point_2}{The point type.} \ccGlue \ccNestedType{Segment_2}{The segment type.} \ccGlue \ccNestedType{Triangle_2}{The triangle type.} \ccNestedType{Construct_segment_2} {A constructor object for \ccc{Segment_2}. Provides~: \\ \ccc{Segment_2 operator()(Point_2 p,Point_2 q)}, \\ which constructs a segment from two points.} \ccGlue \ccNestedType{Construct_triangle_2} {A constructor object for \ccc{Triangle_2}. Provides~: \\ \ccc{Triangle_2 operator()(Point_2 p,Point_2 q,Point_2 r )}, \\ which constructs a triangle from three points.} \ccNestedType{Less_x_2}{Predicate object. Provides the operator~: \\ \ccc{bool operator()(Point p, Point q)} \\ which returns \ccc{true} if \ccc{p} is before \ccc{q} according to the $x$-ordering of points.} \ccGlue \ccNestedType{Less_y_2}{Predicate object. Provides the operator~: \\ \ccc{bool operator()(Point p, Point q)} \\ which returns \ccc{true} if \ccc{p} is before \ccc{q} according to the $y$-ordering of points.} \ccGlue \ccNestedType{Compare_x_2}{Predicate object. Provides the operator~: \\ \ccc{Comparison_result operator()(Point p, Point q)} \\ which returns \ccc{SMALLER, EQUAL} or \ccc{ LARGER} according to the $x$-ordering of points \ccc{p} and \ccc{q}.} \ccGlue \ccNestedType{Compare_y_2}{Predicate object. Provides the operator~: \\ \ccc{Comparison_result operator()(Point p, Point q)}\\ which returns (\ccc{SMALLER, EQUAL} or \ccc{ LARGER}) according to the $y$-ordering of points \ccc{p} and \ccc{q}.} \ccGlue \ccNestedType{Orientation_2}{Predicate object. Provides the operator~: \\ \ccc{Orientation operator()(Point p, Point q, Point r)}\\ which returns \ccc{LEFT_TURN}, \ccc{RIGHT_TURN} or \ccc{COLLINEAR} depending on $r$ being, with respect to the oriented line \ccc{pq}, on the left side , on the right side or on the line.} \ccGlue \ccNestedType{Side_of_oriented_circle_2}{Predicate object. Must provide the operator \ccc{Oriented_side operator()(Point p, Point q, Point r, Point s)} which takes four points $p, q, r, s$ as arguments and returns \ccc{ON_POSITIVE_SIDE}, \ccc{ON_NEGATIVE_SIDE} or, \ccc{ON_ORIENTED_BOUNDARY} according to the position of points \ccc{s} with respect to the oriented circle through through $p,q$ and $r$. This type is required only if the function \ccc{side_of_oriented_circle(Face_handle f, Point p)} is called.} \ccGlue \ccNestedType{Construct_circumcenter_2}{Constructor object. Provides the operator~: \\ \ccc{ Point operator()(Point p, Point q, Point r)} \\ which returns the circumcenter of the three points \ccc{p, q} and \ccc{r}. This type is required only if the function \ccc{Point circumcenter(Face_handle f)}is called.} \ccCreation \ccCreationVariable{traits} %% choose variable name Only a default constructor, copy constructor and an assignment operator are required. Note that further constructors can be provided. \ccThree{TriangulationTraits_2}{traits=gtrxx }{} \ccConstructor{TriangulationTraits_2();}{default constructor.} \ccGlue \ccConstructor{TriangulationTraits_2(TriangulationTraits_2 gtr);} {Copy constructor} \ccMethod{TriangulationTraits_2 operator=(TriangulationTraits_2 gtr);} {Assignment operator.} \ccHeading{Predicate functions} \ccThree{Construct_circumcenter_2}{traits.construct_circumcenter_2_object();} {} The following functions give access to the predicate and constructor objects. \ccThree{Construct_segment_2}{gt.compare_x(Point p0, Point p1)x}{} \ccMethod{Construct_segment_2 construct_segment_2_object();}{} \ccGlue \ccMethod{Construct_triangle_2 construct_triangle_2_object();}{} \ccGlue \ccMethod{Comparison_x_2 compare_x_2_object();}{} \ccGlue \ccMethod{Comparison_y_2 compare_y_2_object();}{} \ccGlue \ccMethod{Orientation_2 orientation_2_object();}{} \ccGlue \ccMethod{Side_of_oriented_circle_2 side_of_oriented_circle_2_object();} {Required only if \ccc{side_of_oriented_circle} is called called.} \ccGlue \ccMethod{Construct_circumcenter_2 construct_circumcenter_2_object();} {Required only if \ccc{circumcenter} is called.} \ccHasModels All the \cgal\ Kernels \\ \ccRefIdfierPage{CGAL::Triangulation_euclidean_traits_2} \\ \ccRefIdfierPage{CGAL::Projection_traits_xy_3}\\ \ccc{CGAL::Projection_traits_yz_3}\\ \ccc{CGAL::Projection_traits_zx_3} \begin{ccDeprecated} \ccRefIdfierPage{CGAL::Triangulation_euclidean_traits_xy_3}, \\ \ccc{CGAL::Triangulation_euclidean_traits_yz_3}, \\ \ccc{CGAL::Triangulation_euclidean_traits_zx_3}. \end{ccDeprecated} \ccSeeAlso \ccc{CGAL::Triangulation_2} \end{ccRefConcept} % +------------------------------------------------------------------------+ %%RefPage: end of main body, begin of footer % EOF % +------------------------------------------------------------------------+