Remember that Kernel::RT and Kernel::FT denote a RingNumberType and a FieldNumberType, respectively. For the kernel model Cartesian<T>, the two types are the same. For the kernel model Homogeneous<T>, Kernel::RT is equal to T, and Kernel::FT is equal to Quotient<T>.
| |
An iterator for enumerating the
Cartesian
coordinates of a point.
|
| |
introduces a variable p with
Cartesian
coordinates
.
| |
| |
introduces a point p initialized to . Precondition: hw Kernel::RT(0)
|
|
| |
Test for equality. Two points are equal, iff their and coordinates are equal. The point can be compared with ORIGIN. | ||
|
| |
Test for inequality. The point can be compared with ORIGIN. |
There are two sets of coordinate access functions, namely to the homogeneous and to the Cartesian coordinates. They can be used independently from the chosen kernel model.
|
| returns the homogeneous coordinate. |
|
| returns the homogeneous coordinate. |
|
| returns the homogenizing coordinate. |
Note that you do not loose information with the homogeneous representation, because the FieldNumberType is a quotient.
|
| returns the Cartesian coordinate, that is . |
|
| returns the Cartesian coordinate, that is . |
The following operations are for convenience and for compatibility with higher dimensional points. Again they come in a Cartesian and in a homogeneous flavor.
|
| |
returns the i'th homogeneous coordinate of p, starting with 0. Precondition: . | ||
|
| |
returns the i'th
Cartesian
coordinate of p, starting with 0. Precondition: . | ||
|
| |
returns cartesian(i). Precondition: . | ||
| ||
| ||
returns an iterator to the Cartesian coordinates of p, starting with the 0th coordinate. | ||
| ||
| returns an off the end iterator to the Cartesian coordinates of p. | |
|
| returns the dimension (the constant 2). |
|
| returns a bounding box containing p. Note that bounding boxes are not parameterized with whatsoever. |
|
| |
returns the point obtained by applying on p. |
The following operations can be applied on points:
|
| |
returns true iff p is lexicographically smaller than q, i.e. either if p.x() < q.x() or if p.x() == q.x() and p.y() < q.y(). | ||
|
| |
returns true iff p is lexicographically greater than q. | ||
|
| |
returns true iff p is lexicographically smaller or equal to q. | ||
|
| |
returns true iff p is lexicographically greater or equal to q. | ||
|
| |
returns the difference vector between q and p. You can substitute ORIGIN for either p or q, but not for both. | ||
|
| |
returns the point obtained by translating p by the vector v. | ||
|
| |
returns the point obtained by translating p by the vector -v. |
The following declaration creates two points with Cartesian double coordinates.
Point_2< Cartesian<double> > p, q(1.0, 2.0);
The variable p is uninitialized and should first be used on the left hand side of an assignment.
p = q; std::cout << p.x() << " " << p.y() << std::endl;