diff --git a/Packages/H3/changes.txt b/Packages/H3/changes.txt index 6e045e2b9bd..bb6771ee1e8 100644 --- a/Packages/H3/changes.txt +++ b/Packages/H3/changes.txt @@ -1,5 +1,7 @@ -2.54 -- Added coordinate iterator +2.54 (22 January 2003) +- Add coordinate iterator +- Add new constructor Iso_cuboid_3(left, right, bottom, top, far, close). +- Fixes for newer GCC. 2.53 (20 January 2003) - Remove #ifdef CGAL_CFG_TYPENAME_BUG stuff, as VC6 is not supported anymore. diff --git a/Packages/H3/include/CGAL/Homogeneous/Iso_cuboidH3.h b/Packages/H3/include/CGAL/Homogeneous/Iso_cuboidH3.h index 94464cc4a40..6765f10daa6 100644 --- a/Packages/H3/include/CGAL/Homogeneous/Iso_cuboidH3.h +++ b/Packages/H3/include/CGAL/Homogeneous/Iso_cuboidH3.h @@ -48,6 +48,10 @@ public: Iso_cuboidH3(const Point_3& p, const Point_3& q); + Iso_cuboidH3(const Point_3& left, const Point_3& right, + const Point_3& bottom, const Point_3& top, + const Point_3& far, const Point_3& close); + Iso_cuboidH3(const RT& min_hx, const RT& min_hy, const RT& min_hz, const RT& max_hx, const RT& max_hy, const RT& max_hz, const RT& hw); @@ -138,6 +142,29 @@ Iso_cuboidH3(const typename Iso_cuboidH3::Point_3& p, Point_3(maxx, maxy, maxz, maxw) )); } +template < class R > +CGAL_KERNEL_LARGE_INLINE +Iso_cuboidH3:: +Iso_cuboidH3(const typename Iso_cuboidH3::Point_3& left, + const typename Iso_cuboidH3::Point_3& right, + const typename Iso_cuboidH3::Point_3& bottom, + const typename Iso_cuboidH3::Point_3& top, + const typename Iso_cuboidH3::Point_3& far, + const typename Iso_cuboidH3::Point_3& close) + : base(rep(Point_3(left.hx() * bottom.hw() * far.hw(), + bottom.hy() * left.hw() * far.hw(), + far.hz() * left.hw() * bottom.hw(), + left.hw() * bottom.hw() * far.hw()), + Point_3(right.hx() * top.hw() * close.hw(), + top.hy() * right.hw() * close.hw(), + close.hz() * right.hw() * top.hw(), + right.hw() * top.hw() * close.hw()))) +{ + CGAL_kernel_precondition(!less_x(right, left)); + CGAL_kernel_precondition(!less_y(top, bottom)); + CGAL_kernel_precondition(!less_z(close, far)); +} + template < class R > CGAL_KERNEL_LARGE_INLINE Iso_cuboidH3::