Navigation: Up, Table of Contents, Bibliography, Index, Title Page

CGAL::Iso_rectangle_2<R>

Definition

An object s of the data type Iso_rectangle_2<R> is a rectangle in the Euclidean plane 2 with sides parallel to the x and y axis of the coordinate system.

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.

Creation

Iso_rectangle_2<R> r ( Point_2<R> p, Point_2<R> 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<R> r ( RT min_hx,
RT min_hy,
RT max_hx,
RT max_hy,
RT hw = R::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). If the last argument is not explicitly given, it defaults to R::RT(1).
Precondition: hw R::RT(0)

Operations

bool r.operator== ( r2)
Test for equality: two iso-oriented rectangles are equal, iff their lower left and their upper right vertices are equal.

bool r.operator!= ( r2)
Test for inequality.

Point_2<R> r.vertex ( int i) returns the i'th vertex modulo 4 of r in counterclockwise order, starting with the lower left vertex.

Point_2<R> r.operator[] ( int i)
returns vertex(i).

Point_2<R> r.min () returns the lower left vertex of r (= vertex(0)).

Point_2<R> r.max () returns the upper right vertex of r (= vertex(2)).

Point_2<R> r.xmin () returns the x coordinate of lower left vertex of r.
Point_2<R> r.ymin () returns the y coordinate of lower left vertex of r.
Point_2<R> r.xmax () returns the x coordinate of upper right vertex of r.
Point_2<R> r.ymax () returns the y coordinate of upper right vertex of r.

Point_2<R> r.min_coord ( int i)
returns the i'th Cartesian coordinate of the lower left vertex of r.
Precondition: 0 i 1.

Point_2<R> r.max_coord ( int i)
returns the i'th Cartesian coordinate of the upper right vertex of r.
Precondition: 0 i 1.

Predicates

bool r.is_degenerate () r is degenerate, if all vertices are collinear.

Bounded_side r.bounded_side ( Point_2<R> p)
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<R> p)
bool r.has_on_bounded_side ( Point_2<R> p)
bool r.has_on_unbounded_side ( Point_2<R> p)

Miscellaneous

FT r.area () returns the area of r.

Bbox r.bbox () returns a bounding box containing r.

Iso_rectangle_2<R> r.transform ( Aff_transformation_2<R> t)
returns the iso-oriented rectangle obtained by applying t on the lower left and the upper right corner of r.
Precondition: The angle at a rotation must be a multiple of /2, otherwise the resulting rectangle does not have the same side length. Note that rotating about an arbitrary angle can even result in a degenerate iso-oriented rectangle.

See Also

Kernel::IsoRectangle_2


Next: Line_2<R>
Navigation: Up, Table of Contents, Bibliography, Index, Title Page
www.cgal.org. Aug 13, 2001.