// ====================================================================== // // Copyright (c) 1999 The CGAL Consortium // // This software and related documentation is part of an INTERNAL release // of the Computational Geometry Algorithms Library (CGAL). It is not // intended for general use. // // ---------------------------------------------------------------------- // // release : // release_date : // // file : Iso_rectangle_2.h // package : _2 // revision : $Revision$ // revision_date : $Date$ // author(s) : Andreas Fabri // // coordinator : MPI, Saarbruecken () // ====================================================================== #ifndef CGAL_ISO_RECTANGLE_2_H #define CGAL_ISO_RECTANGLE_2_H #ifndef CGAL_REP_CLASS_DEFINED #error no representation class defined #endif #if defined CGAL_HOMOGENEOUS_H || defined CGAL_SIMPLE_HOMOGENEOUS_H #include #endif #if defined CGAL_CARTESIAN_H || defined CGAL_SIMPLE_CARTESIAN_H #include #endif #include CGAL_BEGIN_NAMESPACE template class Iso_rectangle_2 : public R_::Iso_rectangle_2_base { public: typedef R_ R; typedef typename R::RT RT; typedef typename R::FT FT; typedef typename R::Iso_rectangle_2_base RIso_rectangle_2; Iso_rectangle_2() : RIso_rectangle_2() {} Iso_rectangle_2(const CGAL::Iso_rectangle_2 &r) : RIso_rectangle_2(r) {} Iso_rectangle_2(const RIso_rectangle_2& r) : RIso_rectangle_2(r) {} Iso_rectangle_2(const CGAL::Point_2 &p, const CGAL::Point_2 &q) : RIso_rectangle_2(p,q) {} Iso_rectangle_2(const RT& min_hx, const RT& min_hy, const RT& max_hx, const RT& max_hy) : RIso_rectangle_2(min_hx, min_hy, max_hx, max_hy) {} Iso_rectangle_2(const RT& min_hx, const RT& min_hy, const RT& max_hx, const RT& max_hy, const RT& hw) : RIso_rectangle_2(min_hx, min_hy, max_hx, max_hy, hw) {} bool operator==(const CGAL::Iso_rectangle_2 &r) const { return vertex(0) == r.vertex(0) && vertex(2) == r.vertex(2); } bool operator!=(const CGAL::Iso_rectangle_2 &r) const { return !(*this == r); } CGAL::Point_2 min() const { return RIso_rectangle_2::min(); } CGAL::Point_2 max() const { return RIso_rectangle_2::max(); } FT xmin() const { return RIso_rectangle_2::xmin(); } FT ymin() const { return RIso_rectangle_2::ymin(); } FT xmax() const { return RIso_rectangle_2::xmax(); } FT ymax() const { return RIso_rectangle_2::ymax(); } FT min_coord(int i) const { return RIso_rectangle_2::min_coord(i); } FT max_coord(int i) const { return RIso_rectangle_2::max_coord(i); } CGAL::Point_2 vertex(int i) const { return RIso_rectangle_2::vertex(i); } CGAL::Point_2 operator[](int i) const { return vertex(i); } Bounded_side bounded_side(const CGAL::Point_2 &p) const { return RIso_rectangle_2::bounded_side(p); } bool has_on_boundary(const CGAL::Point_2 &p) const { return RIso_rectangle_2::has_on_boundary(p); } bool has_on_bounded_side(const CGAL::Point_2 &p) const { return RIso_rectangle_2::has_on_bounded_side(p); } bool has_on_unbounded_side(const CGAL::Point_2 &p) const { return RIso_rectangle_2::has_on_unbounded_side(p); } bool is_degenerate() const { return RIso_rectangle_2::is_degenerate(); } CGAL::Iso_rectangle_2 transform(const CGAL::Aff_transformation_2 &t) const { return RIso_rectangle_2::transform(t); } FT area() const { return RIso_rectangle_2::area(); } }; #ifndef CGAL_NO_OSTREAM_INSERT_ISO_RECTANGLE_2 template < class R > std::ostream & operator<<(std::ostream &os, const Iso_rectangle_2 &r) { typedef typename R::Iso_rectangle_2_base RIso_rectangle_2; return os << (const RIso_rectangle_2&)r; } #endif // CGAL_NO_OSTREAM_INSERT_ISO_RECTANGLE_2 #ifndef CGAL_NO_ISTREAM_EXTRACT_ISO_RECTANGLE_2 template < class R > std::istream & operator>>(std::istream &is, Iso_rectangle_2 &r) { typedef typename R::Iso_rectangle_2_base RIso_rectangle_2; is >> (RIso_rectangle_2&)r; return is; } #endif // CGAL_NO_ISTREAM_EXTRACT_ISO_RECTANGLE_2 CGAL_END_NAMESPACE #endif // CGAL_ISO_RECTANGLE_2_H