// Copyright (c) 2005 Tel-Aviv University (Israel). // All rights reserved. // // This file is part of CGAL (www.cgal.org); you may redistribute it under // the terms of the Q Public License version 1.0. // See the file LICENSE.QPL distributed with CGAL. // // Licensees holding a valid commercial license may use this file in // accordance with the commercial license agreement provided with the software. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // // $URL$ // $Id$ // // // Author(s) : Michal Meyerovitch // Ron Wein // (based on old version by Ester Ezra) #ifndef CGAL_ARR_IOSTREAM_H #define CGAL_ARR_IOSTREAM_H /*! \file * Definition of the I/O operators for the Arrangement_2 class. */ #include #include #include #include #include CGAL_BEGIN_NAMESPACE /*! * Write an arrangement to an output stream using a given formatter. * \param arr The arrangement. * \param os The output stream. * \param format The formatter. */ template std::ostream& write (const Arrangement_2& arr, std::ostream& os, Formatter& format) { typedef Arrangement_2 Arrangement_2; typedef Arrangement_2_writer Arr_writer; Arr_writer writer (arr); format.set_out (os); writer (format); return (os); } /*! * Output operator (importer). * \param os The output stream. * \param arr The arrangement. */ template std::ostream& operator<< (std::ostream& os, const Arrangement_2& arr) { typedef Arrangement_2 Arrangement_2; typedef Arrangement_2_writer Arr_writer; typedef Arr_text_formatter Text_formatter; Text_formatter text_format (os); Arr_writer writer (arr); writer (text_format); return (os); } /*! * Read an arrangement from an input stream using a given formatter. * \param arr The arrangement. * \param os The output stream. * \param format The formatter. */ template std::istream& read (Arrangement_2& arr, std::istream& is, Formatter& format) { typedef Arrangement_2 Arrangement_2; typedef Arrangement_2_reader Arr_reader; Arr_reader reader(arr); format.set_in (is); reader (format); return (is); } /*! * Output operator (exporter). * \param is The input stream. * \param arr The arrangement. */ template std::istream& operator>> (std::istream& is, Arrangement_2& arr) { typedef Arrangement_2 Arrangement_2; typedef Arrangement_2_reader Arr_reader; typedef Arr_text_formatter Text_formatter; Text_formatter text_format (is); Arr_reader reader(arr); reader (text_format); return (is); } CGAL_END_NAMESPACE #endif