00001 /*************************************************************************** 00002 * Copyright (C) 2004 by Rick L. Vinyard, Jr. * 00003 * rvinyard@cs.nmsu.edu * 00004 * * 00005 * This file is part of the papyrus library. * 00006 * * 00007 * papyrus is free software; you can redistribute it and/or modify * 00008 * it under the terms of the GNU Lesser General Public License * 00009 * version 3.0 as published by the Free Software Foundation. * 00010 * * 00011 * papyrus is distributed in the hope that it will be useful, * 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00014 * GNU Lesser General Public License version 3.0 for more details. * 00015 * * 00016 * You should have received a copy of the GNU Lesser General Public * 00017 * License along with the papyrus library. If not, see * 00018 * <http://www.gnu.org/licenses/>. * 00019 ***************************************************************************/ 00020 #ifndef PAPYRUSPOLYGON_H 00021 #define PAPYRUSPOLYGON_H 00022 00023 #include <papyrus/polyline.h> 00024 00055 namespace Papyrus 00056 { 00057 00061 class Polygon : public Polyline 00062 { 00063 protected: 00064 00065 Polygon ( const Glib::ustring& id, const Vertices& vertices, Fill::pointer fill, Stroke::pointer stroke ); 00066 00067 public: 00068 PAPYRUS_DRAWABLE(Polygon); 00069 00070 static pointer create ( const Vertices& vertices=Vertices(), 00071 Fill::pointer fill = Fill::pointer(), 00072 Stroke::pointer stroke = Stroke::pointer() ); 00073 00074 static pointer create ( const Glib::ustring& id, 00075 const Vertices& vertices=Vertices(), 00076 Fill::pointer fill = Fill::pointer(), 00077 Stroke::pointer stroke = Stroke::pointer() ); 00078 00079 virtual ~Polygon(); 00080 00081 virtual void draw_shape ( Context& cairo ) const; 00082 00083 }; 00084 00085 } 00086 00087 #endif