// Copyright (c) 2005,2006,2007,2009,2010,2011 Tel-Aviv University (Israel). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL$ // $Id$ // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein // (based on old version by Michal Meyerovitch and Ester Ezra) #ifndef CGAL_ARR_IOSTREAM_H #define CGAL_ARR_IOSTREAM_H #include /*! \file * Definition of the I/O operators for the class-template * Arrangement_on_surface_2. */ #include #include #include #include #include namespace CGAL { namespace IO { /*! * 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_on_surface_2& arr, std::ostream& os, Formatter& format) { typedef Arrangement_on_surface_2 Arrangement_2; typedef Arrangement_2_writer Arr_writer; Arr_writer writer (arr); format.set_out (os); writer (format); return (os); } } // namespace IO /*! * Output operator (importer). * \param os The output stream. * \param arr The arrangement. */ template std::ostream& operator<< (std::ostream& os, const Arrangement_on_surface_2& arr) { typedef Arrangement_on_surface_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); } namespace IO { /*! * 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_on_surface_2& arr, std::istream& is, Formatter& format) { typedef Arrangement_on_surface_2 Arrangement_2; typedef Arrangement_2_reader Arr_reader; Arr_reader reader(arr); format.set_in (is); reader (format); return (is); } } // namespace IO /*! * Output operator (exporter). * \param is The input stream. * \param arr The arrangement. */ template std::istream& operator>> (std::istream& is, Arrangement_on_surface_2& arr) { typedef Arrangement_on_surface_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); } #ifndef CGAL_NO_DEPRECATED_CODE using IO::read; using IO::write; #endif } //namespace CGAL #endif