⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arr_with_history_text_formatter.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
字号:
// 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: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.3-branch/Arrangement_2/include/CGAL/IO/Arr_with_history_text_formatter.h $// $Id: Arr_with_history_text_formatter.h 28567 2006-02-16 14:30:13Z lsaboret $// //// Author(s)     : Ron Wein           <wein@post.tau.ac.il>#ifndef CGAL_ARR_WITH_HISTORY_TEXT_FORMATTER_H#define CGAL_ARR_WITH_HISTORY_TEXT_FORMATTER_H/*! \file * The header file for the text-formatter classes. */#include <CGAL/basic.h>#include <iostream>CGAL_BEGIN_NAMESPACE/*! \class * A class defining a textual (ASCII) input/output format for arrangements * with history and supports reading and writing an arrangement from or to * input/output streams. */template <class ArrFormatter_>class Arr_with_history_text_formatter : public ArrFormatter_{public:  typedef ArrFormatter_                                   Base;  typedef Arr_with_history_text_formatter<Base>           Self;  typedef typename Base::Arrangement_2                    Arr_with_history_2;  typedef typename Arr_with_history_2::Size                             Size;  typedef typename Arr_with_history_2::Dcel                             Dcel;  typedef typename Arr_with_history_2::Traits_2           Traits_2;  typedef typename Arr_with_history_2::Curve_2            Curve_2;  typedef typename Arr_with_history_2::X_monotone_curve_2 X_monotone_curve_2;  typedef typename Arr_with_history_2::Point_2            Point_2;  typedef typename Arr_with_history_2::Vertex_handle      Vertex_handle;  typedef typename Arr_with_history_2::Halfedge_handle    Halfedge_handle;  typedef typename Arr_with_history_2::Face_handle        Face_handle;  typedef typename Arr_with_history_2::Vertex_const_handle                                                       Vertex_const_handle;  typedef typename Arr_with_history_2::Halfedge_const_handle                                                      Halfedge_const_handle;  typedef typename Arr_with_history_2::Face_const_handle                                                         Face_const_handle;  /*! Default constructor.*/  Arr_with_history_text_formatter ():    Base ()  {}  /*! Construct an output formatter. */  Arr_with_history_text_formatter (std::ostream& os) :    Base (os)  {}  /*! Construct an input formatter. */  Arr_with_history_text_formatter (std::istream& is) :    Base (is)  {}  /// \name Functions for writing curves.  //@{  /*! Write a begin-curves comment. */  void write_curves_begin ()  {    __write_comment ("BEGIN CURVES");    return;  }  /*! Write an end-curves comment. */  void write_curves_end ()  {    __write_comment ("END CURVES");    return;  }  /*! Write a specific curve. */  void write_curve_begin ()  {}  void write_curve_end ()  {}    void write_curve (const Curve_2& c)  {    this->out() << c << std::endl;    return;  }  void write_induced_edges_begin ()  {}  void write_induced_edges_end ()  {    this->out() << std::endl;  }  //@}  /// \name Functions for reading curves.  //@{  /*! Start reading the curves. */  void read_curves_begin ()   {    __skip_comments();  }  /*! Read the end-curves message. */  void read_curves_end()   {    __skip_comments();  }  /*! Read a specific curve. */  void read_curve_begin ()  {}    void read_curve_end ()  {}  void read_curve (Curve_2& c)   {    this->in() >> c;    __skip_until_EOL();    return;  }  void read_induced_edges_begin ()  {}  void read_induced_edges_end ()  {     __skip_until_EOL();  }  //@}private:  /*! Write a comment line. */  void __write_comment (const char *str)  {    this->out() << "# " << str << std::endl;    return;  }  /*! Skip until end of line. */  void __skip_until_EOL ()   {    int     c;    while ((c = this->in().get()) != EOF && c != '\n');    return;  }    /*! Skip comment lines. */  void __skip_comments ()   {    int     c;    while ((c = this->in().get()) != EOF && c == '#')      __skip_until_EOL();    this->in().putback (c);    return;  }};CGAL_END_NAMESPACE#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -