file_header.h
来自「CGAL is a collaborative effort of severa」· C头文件 代码 · 共 128 行
H
128 行
// Copyright (c) 1997 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.//// $Source: /CVSROOT/CGAL/Packages/Planar_map/include/CGAL/IO/File_header.h,v $// $Revision: 1.4 $ $Date: 2003/09/18 10:24:39 $// $Name: $//// Author(s) : Eti Ezra <estere@post.tau.ac.il>#ifndef CGAL_IO_FILE_HEADER_H#define CGAL_IO_FILE_HEADER_H 1#ifndef CGAL_PROTECT_IOSTREAM#include <iostream>#define CGAL_PROTECT_IOSTREAM#endifCGAL_BEGIN_NAMESPACE// Info structure for PM file headers// ===================================class File_header {private: // Publicly accessible file informations. std::size_t n_vertices; std::size_t n_halfedges; std::size_t n_faces; bool m_verbose; // printing a format that a 'human' can read. bool m_no_comments; // no comments in output. bool m_ascii; // ascii format. int m_offset; // index offset for vertices, usually 0. // Publicly accessible but not that well supported file informations. bool m_colors; // COFF detected. // More privately used file informations to scan the file. int m_dim; // dimension for PM (will not be supported).public: typedef File_header Self; File_header(bool verbose = false, bool no_comments = false, bool ascii = true, int offset = 0, bool colors = false, int dim = 2) : n_vertices(0), n_halfedges(0), n_faces(0), m_verbose(verbose), m_no_comments(no_comments), m_ascii(ascii), m_offset(offset), m_colors(colors), m_dim(dim) {} // copy constructor File_header(const Self & file_header): n_vertices(file_header.number_of_vertices()), n_halfedges(file_header.number_of_halfedges()), n_faces(file_header.number_of_faces()), m_verbose(file_header.verbose()), m_no_comments(file_header.no_comments()), m_ascii(file_header.ascii()), m_offset(file_header.index_offset()), m_colors(file_header.has_colors()), m_dim(file_header.dimension()) {} /*Self& operator= ( const Base& base) { (Base&)(*this) = base; return *this; }*/ std::size_t number_of_vertices() const { return n_vertices; } std::size_t number_of_halfedges() const { return n_halfedges; } std::size_t number_of_faces() const { return n_faces; } bool verbose() const { return m_verbose; } bool ascii() const { return m_ascii; } // ASCII format. bool no_comments() const { return m_no_comments; } bool comments() const { return ! m_no_comments; } int index_offset() const { return m_offset; } bool has_colors() const { return m_colors; } // COFF detected. int dimension() const { return m_dim; } void set_number_of_vertices( std::size_t n) { n_vertices = n; } void set_number_of_halfedges( std::size_t n) { n_halfedges = n; } void set_number_of_faces( std::size_t n) { n_faces = n; } void set_verbose( bool b) { m_verbose = b; } void set_ascii( bool b) { m_ascii = b; } void set_no_comments( bool b) { m_no_comments = b; } void set_index_offset( int i) { m_offset = i; } void set_colors( bool b) { m_colors = b; } void set_dimension( int i) { m_dim = i; } // ---- io functions for header file ---- // istream modifier skips chars until end of line. inline std::istream& skip_until_EOL( std::istream& in) { char c; while ( in.get(c) && c != '\n') ; return in; } // istream modifier that checks for OFF comments and removes them. inline std::istream& skip_comment_OFF( std::istream& in) { char c; while( (in >> c) && c == '#') skip_until_EOL(in); in.putback(c); return in; }};CGAL_END_NAMESPACE#endif // CGAL_IO_FILE_HEADER_PM_H //
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?