![]() |
The class Triangulation_euclidean_traits_xy_3<K> is a geometric traits class which allows to triangulate a terrain. This traits class is designed to build a two dimensional triangulation embedded in 3D space, i.e. a triangulated surface, such that its on the xy plane is a Delaunay triangulation. This is a usual construction for GIS terrains. Instead of really projecting the 3D points and maintaining a mapping between each point and its projection (which costs space and is error prone) the class Triangulation_euclidean_traits_xy_3<K> supplies geometric predicates that ignore the z-coordinate of the points.
The class is a model of the concept DelaunayTriangulationTraits_2 except that it does not provide the type and constructors required to build the dual Voronoi diagram. The class is also a model of the concept ConstrainedTriangulationTraits_2.
#include <CGAL/Triangulation_euclidean_traits_xy_3.h>
|
|
|
|
|
|
|
|
|
|
|
The following predicates and constructor types are provided
| |||
A constructor object for
Segment_2. Provides : Segment_2 operator()(Point_2 p,Point_2 q), which constructs a segment from two points.
| |||
| |||
A constructor object for
Triangle_2. Provides : Triangle_2 operator()(Point_2 p,Point_2 q,Point_2 r ), which constructs a triangle from three points.
| |||
| |||
A constructor object for
Line_2. Provides : Line_2 operator()(Point_2 p,Point_2 q), which constructs a line from two points.
| |||
| |||
A construction object.
Provides the operator : RT operator()(Line_2 l, Point_2 p); which returns the squared distance between the projection of p and the projection of l.
| |||
| |||
A construction object.
Provides the operator : Object_2 operator()(Segment_2 s1, Segment_2 s2); which returns the intersection of the projection of s1 and the projection of s2 embedded in 3D. If the intersection is a segment, the z-coordinates of its extremities is 0. If the intersection is a point p, let p1 and p2 be the points on s1 and s2 respectively, such that their projections are p. The point returned is the middle of the segment p1p2.
| |||
| |||
Predicate object. Provides
the operator : Comparison_result operator()(Point_2 p, Point_2 q) which returns SMALLER, EQUAL or LARGER according to the x-ordering of points p and q.
| |||
| |||
Predicate object. Provides
the operator : Comparison_result operator()(Point_2 p, Point_2 q) which returns (SMALLER, EQUAL or LARGER) according to the y-ordering of points p and q.
| |||
| |||
Predicate object. Provides
the operator : Orientation operator()(Point_2 p, Point_2 q, Point_2 r) which returns LEFT_TURN, RIGHT_TURN or COLLINEAR according to the position of the projection of r with respect to the projection of the oriented line pq.
| |||
| |||
Predicate object.
Provides the operator :
Oriented_side operator()(Point_2 p, Point_2 q, Point_2 r, Point_2 s)
which takes four points p, q, r, s as arguments and returns
ON_POSITIVE_SIDE, ON_NEGATIVE_SIDE or,
ON_ORIENTED_BOUNDARY according to the position of
the projection of points
with respect to the oriented circle through the projections of p,q
and r.
| |||
| |||
Predicate object. Provides
the operator : Comparison_result operator()(Point_2 p, Point_2 q, Point_2 r) which returns SMALLER, EQUAL or LARGER according to the distance between the projection of p and the projection of q being smaller, equal or larger than the distance between the projection of p and the projection of r.
|
| |
default constructor.
| |
| |
Copy constructor.
|
| ||
| ||
Assignment operator. |
Cgal provides also predefined geometric traits class Triangulation_euclidean_traits_yz_3<K> and Triangulation_euclidean_traits_zx_3<K> to deal with projections on the xz- or the yz-plane, respectively.
#include <CGAL/Triangulation_euclidean_traits_xz_3.h>
#include <CGAL/Triangulation_euclidean_traits_yz_3.h>