X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fgradient.h;h=bc4c1e820972dc4f9baa35e1e603bde1be141da6;hb=cf1a6e2a6f015914a56e5f539da2e14146ce4c20;hp=6bfe0a1b14dfd8c734afbe8a67d641940d5cea46;hpb=e3acc0b267b14fda5db3c7bbb2f218b993ef84b3;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/gradient.h b/synfig-core/trunk/src/synfig/gradient.h index 6bfe0a1..bc4c1e8 100644 --- a/synfig-core/trunk/src/synfig/gradient.h +++ b/synfig-core/trunk/src/synfig/gradient.h @@ -1,28 +1,29 @@ -/* === S I N F G =========================================================== */ +/* === S Y N F I G ========================================================= */ /*! \file gradient.h ** \brief Color Gradient Class ** -** $Id: gradient.h,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. ** \endlegal */ /* ========================================================================= */ /* === S T A R T =========================================================== */ -#ifndef __SINFG_GRADIENT_H -#define __SINFG_GRADIENT_H +#ifndef __SYNFIG_GRADIENT_H +#define __SYNFIG_GRADIENT_H /* === H E A D E R S ======================================================= */ @@ -38,7 +39,7 @@ /* === C L A S S E S & S T R U C T S ======================================= */ -namespace sinfg { +namespace synfig { /*! \struct GradientCPoint ** \brief \todo @@ -47,39 +48,58 @@ struct GradientCPoint : public UniqueID { Real pos; Color color; - + bool operator<(const GradientCPoint &rhs)const { return pos +using namespace std; +class Gradient { public: typedef GradientCPoint CPoint; + typedef vector::const_iterator const_iterator; + typedef vector::iterator iterator; + typedef vector::const_reverse_iterator const_reverse_iterator; + typedef vector::reverse_iterator reverse_iterator; private: - + vector cpoints; public: Gradient() { } - - //! Two-Tone Color Gradient Convience Constructor + + //! Two-Tone Color Gradient Convenience Constructor Gradient(const Color &c1, const Color &c2); - //! Three-Tone Color Gradient Convience Constructor + //! Three-Tone Color Gradient Convenience Constructor Gradient(const Color &c1, const Color &c2, const Color &c3); - //! Alias for sort (Implemented for consistancy) + //! Alias for sort (Implemented for consistency) void sync() { sort(); } //! You should call this function after changing stuff. void sort(); - + + void push_back(const GradientCPoint cpoint) { cpoints.push_back(cpoint); } + iterator erase(iterator iter) { return cpoints.erase(iter); } + bool empty()const { return cpoints.empty(); } + size_t size()const { return cpoints.size(); } + + iterator begin() { return cpoints.begin(); } + iterator end() { return cpoints.end(); } + reverse_iterator rbegin() { return cpoints.rbegin(); } + reverse_iterator rend() { return cpoints.rend(); } + const_iterator begin()const { return cpoints.begin(); } + const_iterator end()const { return cpoints.end(); } + const_reverse_iterator rbegin()const { return cpoints.rbegin(); } + const_reverse_iterator rend()const { return cpoints.rend(); } + Color operator()(const Real &x, float supersample=0)const; //! Returns the iterator of the CPoint closest to \a x @@ -90,12 +110,12 @@ public: //! Returns the iterator of the CPoint with UniqueID \a id iterator find(const UniqueID &id); - + //! Returns the const_iterator of the CPoint with UniqueID \a id const_iterator find(const UniqueID &id)const; }; // END of class Gradient - -}; // END of namespace sinfg + +}; // END of namespace synfig /* === E N D =============================================================== */