// 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/Pm_drawer.h,v $ // $Revision: 1.4 $ $Date: 2003/09/18 10:24:42 $ // $Name: $ // // Author(s) : Eti Ezra #ifndef CGAL_IO_PM_DRAWER_H #define CGAL_IO_PM_DRAWER_H #ifndef CGAL_PROTECT_IOSTREAM #include #define CGAL_PROTECT_IOSTREAM #endif #ifndef CGAL_PROTECT_CSTDDEF #include #define CGAL_PROTECT_CSTDDEF #endif CGAL_BEGIN_NAMESPACE template class Pm_drawer { public: typedef PM_ PM; typedef typename PM::Vertex_iterator Vertex_iterator; typedef typename PM::Halfedge_iterator Halfedge_iterator; typedef typename PM::Face_iterator Face_iterator; typedef typename PM::Vertex_const_iterator Vertex_const_iterator; typedef typename PM::Halfedge_const_iterator Halfedge_const_iterator; typedef typename PM::Face_const_iterator Face_const_iterator; typedef typename PM::Vertex_handle Vertex_handle; typedef typename PM::Halfedge_handle Halfedge_handle; typedef typename PM::Face_handle Face_handle; typedef typename PM::Vertex_const_handle Vertex_const_handle; typedef typename PM::Halfedge_const_handle Halfedge_const_handle; typedef typename PM::Face_const_handle Face_const_handle; typedef Window_ Window; Pm_drawer (Window& w) { m_window = &w; } Window& window() { return *m_window; } //void draw_vertex_attributes(const Point& p) {} void draw_vertex(Vertex_handle v) { window() << v->point(); } void draw_vertex(Vertex_const_handle v) { window() << v->point(); } //void draw_halfedge_attributes(const Curve& cv) {} void draw_halfedge(Halfedge_handle h) { window() << h->curve(); } void draw_halfedge(Halfedge_const_handle h) { window() << h->curve(); } void draw_face(Face_handle f) {} void draw_face(Face_const_handle f) {} void draw_vertices(Vertex_iterator Vertices_begin, Vertex_iterator Vertices_end) { for (Vertex_iterator v_iter = Vertices_begin; v_iter != Vertices_end; v_iter++) draw_vertex(v_iter); } void draw_vertices(Vertex_const_iterator Vertices_begin, Vertex_const_iterator Vertices_end) { for (Vertex_const_iterator v_iter = Vertices_begin; v_iter != Vertices_end; v_iter++) draw_vertex(v_iter); } void draw_halfedges(Halfedge_iterator Halfedges_begin, Halfedge_iterator Halfedges_end) { for (Halfedge_iterator h_iter = Halfedges_begin; h_iter != Halfedges_end; h_iter++) draw_halfedge(h_iter); } void draw_halfedges(Halfedge_const_iterator Halfedges_begin, Halfedge_const_iterator Halfedges_end) { for (Halfedge_const_iterator h_iter = Halfedges_begin; h_iter != Halfedges_end; h_iter++) draw_halfedge(h_iter); } void draw_faces(Face_iterator Faces_begin, Face_iterator Faces_end) { for (Face_iterator f_iter = Faces_begin; f_iter != Faces_end; f_iter++) draw_face(f_iter); } void draw_faces(Face_const_iterator Faces_begin, Face_const_iterator Faces_end) { for (Face_const_iterator f_iter = Faces_begin; f_iter != Faces_end; f_iter++) draw_face(f_iter); } protected: Window *m_window; }; CGAL_END_NAMESPACE #endif // CGAL_IO_PM_DRAWER_H