An instance of data type Hyperplane_d is an oriented hyperplane in - dimensional space. A hyperplane is represented by coefficients of type RT. At least one of to must be non-zero. The plane equation is , where to are Cartesian point coordinates. For a particular the sign of determines the position of a point with respect to the hyperplane (on the hyperplane, on the negative side, or on the positive side).
There are two equality predicates for hyperplanes. The (weak) equality predicate (weak_equality) declares two hyperplanes equal if they consist of the same set of points, the strong equality predicate (operator==) requires in addition that the negative halfspaces agree. In other words, two hyperplanes are strongly equal if their coefficient vectors are positive multiples of each other and they are (weakly) equal if their coefficient vectors are multiples of each other.
| |
the ring type.
| |
| |
the field type.
| |
| |
the linear algebra layer.
| |
| |
a read-only iterator for the
coefficients.
|
| |||
introduces a variable
h of type Hyperplane_d<Kernel>.
| |||
| |||
| |||
introduces a
variable h of type Hyperplane_d<Kernel> initialized to the
hyperplane with coefficients set [first,last) and D. Precondition: size [first,last) == d. Requirement: The value type of InputIterator is RT.
| |||
| |||
| |||
introduces a variable
h of type Hyperplane_d<Kernel> initialized to the hyperplane
with coefficients set [first,last). Precondition: size [first,last) == d+1. Requirement: The value type of InputIterator is RT.
| |||
| |||
| |||
constructs
some hyperplane that passes through the points in set [first,last). If side is ON_POSITIVE_SIDE or
ON_NEGATIVE_SIDE then o is on that side of the
constructed hyperplane. Precondition: A hyperplane with the stated properties must exist. Requirement: The value type of ForwardIterator is Point_d<Kernel>.
| |||
| |||
constructs the hyperplane with normal direction dir that
passes through . The direction dir points into the positive
side. Precondition: p.dimension()==dir.dimension() and dir is not degenerate.
| |||
| |||
introduces a
variable h of type Hyperplane_d<Kernel> in -dimensional
space with equation .
| |||
| |||
introduces a
variable h of type Hyperplane_d<Kernel> in -dimensional
space with equation .
|
|
| returns the dimension of h. |
|
|
returns the -th coefficient of
h. Precondition: . |
|
| |
returns the -th coefficient of
h. Precondition: . | ||
| ||
| ||
returns an iterator pointing to the first coefficient. | ||
| ||
| ||
returns an iterator pointing beyond the last coefficient. | ||
|
| |
returns the orthogonal vector of h. It points from the negative halfspace into the positive halfspace and its homogeneous coordinates are . | ||
| ||
| ||
returns the orthogonal direction of h. It points from the negative halfspace into the positive halfspace. | ||
|
| |
returns
the side of the hyperplane h containing . Precondition: h.dimension() == p.dimension(). | ||
|
| |
returns true iff point
p lies on the hyperplane h. Precondition: h.dimension() == p.dimension(). | ||
|
| |
returns true
iff point p lies on the boundary of hyperplane h. Precondition: h.dimension() == p.dimension(). | ||
|
| |
returns
true iff point p lies on the positive side of hyperplane
h. Precondition: h.dimension() == p.dimension(). | ||
|
| |
returns
true iff point p lies on the negative side of hyperplane
h. Precondition: h.dimension() == p.dimension(). | ||
| ||
| ||
returns . Precondition: h.dimension() == t.dimension(). |
|
| |
test for weak equality. Precondition: h1.dimension() == h2.dimension(). |
Hyperplanes are implemented by arrays of integers as an item type. All operations like creation, initialization, tests, vector arithmetic, input and output on a hyperplane take time . coordinate access and dimension() take constant time. The space requirement is .