ionflux.org | Impressum

CairoPathIterator.hpp

Go to the documentation of this file.
00001 #ifndef IONFLUX_TOOLS_CAIRO_PATHITERATOR
00002 #define IONFLUX_TOOLS_CAIRO_PATHITERATOR
00003 /* ==========================================================================
00004  * Ionflux Tools
00005  * Copyright (c) 2005 Joern P. Meier
00006  * mail@ionflux.org
00007  * --------------------------------------------------------------------------
00008  * PathIterator.hpp                  Cairo path iterator.
00009  * ==========================================================================
00010  * 
00011  * This file is part of Ionflux Tools.
00012  * 
00013  * Ionflux Tools is free software; you can redistribute it and/or modify it
00014  * under the terms of the GNU General Public License as published by the 
00015  * Free Software Foundation; either version 2 of the License, or (at your 
00016  * option) any later version.
00017  * 
00018  * Ionflux Tools is distributed in the hope that it will be useful, but 
00019  * WITHOUT ANY WARRANTY; without even the implied warranty of 
00020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
00021  * General Public License for more details.
00022  * 
00023  * You should have received a copy of the GNU General Public License along 
00024  * with Ionflux Tools; if not, write to the Free Software Foundation, Inc.,
00025  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00026  * 
00027  * ========================================================================== */
00028 
00029 #include "ionflux/CairoPathData.hpp"
00030 
00031 namespace Ionflux
00032 {
00033 
00034 namespace Tools
00035 {
00036 
00037 namespace Cairo
00038 {
00039 
00040 class Path;
00041 
00050 class PathIterator
00051 {
00052     private:
00053         
00054     protected:
00056         Path* path;
00058         unsigned int elementIndex;
00059         
00060     public:
00061         
00066         PathIterator();
00067         
00074         PathIterator(const PathIterator& initPathIterator);
00075         
00083         PathIterator(Path& initPath, unsigned int initIndex = 0);
00084         
00089         virtual ~PathIterator();
00090         
00097         virtual PathData& operator*();
00098         
00105         virtual PathData& operator++();
00106         
00115         virtual PathData& operator++(int dummy);
00116         
00123         virtual PathData& operator--();
00124         
00133         virtual PathData& operator--(int dummy);
00134         
00143         virtual bool operator==(const PathIterator& other);
00144         
00154         virtual bool operator!=(const PathIterator& other);
00155         
00164         virtual PathIterator& operator=(const PathIterator& newPathIterator);
00165         
00172         virtual void setPath(Path* newPath);
00173         
00180         virtual void setElementIndex(unsigned int newElementIndex);
00181         
00186         virtual Path* getPath() const;
00187         
00192         virtual unsigned int getElementIndex() const;
00193 };
00194 
00195 }
00196 
00197 }
00198 
00199 }
00200 
00204 #endif

Generated on Tue Mar 14 20:58:29 2006 for Ionflux Tools Class Library (iftools) by  doxygen 1.4.6