Although they are represented in a canonical form by only two vertices, namely the lower left and the upper right vertex, we provide functions for ``accessing'' the other vertices as well. The vertices are returned in counterclockwise order.
Iso-oriented rectangles and bounding boxes are quite similar. The difference however is that bounding boxes have always double coordinates, whereas the coordinate type of an iso-oriented rectangle is chosen by the user.
Iso_rectangle_2<Kernel> r ( Point_2<Kernel> p, Point_2<Kernel> q); | |||
introduces an iso-oriented rectangle r with diagonal
opposite vertices p and q. Note that the object is
brought in the canonical form.
| |||
Iso_rectangle_2<Kernel> r ( Point_2<Kernel> p, Point_2<Kernel> q, int); | |||
introduces an iso-oriented rectangle r with diagonal
opposite vertices p and q. The int argument value
is only used to distinguish the two overloaded functions.
| |||
Iso_rectangle_2<Kernel> r ( Point_2<Kernel> left, Point_2<Kernel> right, Point_2<Kernel> bottom, Point_2<Kernel> top); | |||
introduces an iso-oriented rectangle r whose
minimal x coordinate is the one of left, the
maximal x coordinate is the one of right, the
minimal y coordinate is the one of bottom, the
maximal y coordinate is the one of top.
| |||
Iso_rectangle_2<Kernel> r ( Kernel::RT min_hx, Kernel::RT min_hy, Kernel::RT max_hx, Kernel::RT max_hy, Kernel::RT hw = RT(1)); | |||
introduces an iso-oriented rectangle r with diagonal
opposite vertices (min_hx/hw, min_hy/hw) and
(max_hx/hw, max_hy/hw).
|
bool | r.operator== ( r2) const | Test for equality: two iso-oriented rectangles are equal, iff their lower left and their upper right vertices are equal. | ||
bool | r.operator!= ( r2) const | Test for inequality. | ||
Point_2<Kernel> | r.vertex ( int i) const | returns the i'th vertex modulo 4 of r in counterclockwise order, starting with the lower left vertex. | ||
Point_2<Kernel> | r.operator[] ( int i) const | returns vertex(i). | ||
Point_2<Kernel> | r.min () const | returns the lower left vertex of r (= vertex(0)). | ||
Point_2<Kernel> | r.max () const | returns the upper right vertex of r (= vertex(2)). | ||
Kernel::FT | r.xmin () const | returns the x coordinate of lower left vertex of r. | ||
Kernel::FT | r.ymin () const | returns the y coordinate of lower left vertex of r. | ||
Kernel::FT | r.xmax () const | returns the x coordinate of upper right vertex of r. | ||
Kernel::FT | r.ymax () const | returns the y coordinate of upper right vertex of r. | ||
Kernel::FT | r.min_coord ( int i) const |
returns the i'th
Cartesian
coordinate of the
lower left vertex of r.
| ||
Kernel::FT | r.max_coord ( int i) const |
returns the i'th
Cartesian
coordinate of the
upper right vertex of r.
|
bool | r.is_degenerate () const | r is degenerate, if all vertices are collinear. |
Bounded_side | r.bounded_side ( Point_2<Kernel> p) const | |
returns either ON_UNBOUNDED_SIDE, ON_BOUNDED_SIDE, or the constant ON_BOUNDARY, depending on where point p is. | ||
bool | r.has_on_boundary ( Point_2<Kernel> p) const | |
bool | r.has_on_bounded_side ( Point_2<Kernel> p) const | |
bool | r.has_on_unbounded_side ( Point_2<Kernel> p) const |
Kernel::FT | r.area () const | returns the area of r. | ||
Bbox | r.bbox () const | returns a bounding box containing r. | ||
Iso_rectangle_2<Kernel> | r.transform ( Aff_transformation_2<Kernel> t) const | |||
returns the iso-oriented rectangle obtained by applying t on
the lower left and the upper right corner of r.
|