X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fgradient.h;fp=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fgradient.h;h=6bfe0a1b14dfd8c734afbe8a67d641940d5cea46;hb=e3acc0b267b14fda5db3c7bbb2f218b993ef84b3;hp=0000000000000000000000000000000000000000;hpb=ced68168d8518aac837f20e73bcd1e84a6bd6178;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/gradient.h b/synfig-core/trunk/src/synfig/gradient.h new file mode 100644 index 0000000..6bfe0a1 --- /dev/null +++ b/synfig-core/trunk/src/synfig/gradient.h @@ -0,0 +1,102 @@ +/* === S I N F G =========================================================== */ +/*! \file gradient.h +** \brief Color Gradient Class +** +** $Id: gradient.h,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $ +** +** \legal +** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** +** This software and associated documentation +** are CONFIDENTIAL and PROPRIETARY property of +** the above-mentioned copyright holder. +** +** You may not copy, print, publish, or in any +** other way distribute this software without +** a prior written agreement with +** the copyright holder. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SINFG_GRADIENT_H +#define __SINFG_GRADIENT_H + +/* === H E A D E R S ======================================================= */ + +#include "real.h" +#include "color.h" +#include +#include +#include "uniqueid.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace sinfg { + +/*! \struct GradientCPoint +** \brief \todo +*/ +struct GradientCPoint : public UniqueID +{ + Real pos; + Color color; + + bool operator<(const GradientCPoint &rhs)const { return pos +{ +public: + typedef GradientCPoint CPoint; +private: + +public: + Gradient() { } + + //! Two-Tone Color Gradient Convience Constructor + Gradient(const Color &c1, const Color &c2); + + //! Three-Tone Color Gradient Convience Constructor + Gradient(const Color &c1, const Color &c2, const Color &c3); + + //! Alias for sort (Implemented for consistancy) + void sync() { sort(); } + + //! You should call this function after changing stuff. + void sort(); + + Color operator()(const Real &x, float supersample=0)const; + + //! Returns the iterator of the CPoint closest to \a x + iterator proximity(const Real &x); + + //! Returns the const_iterator of the CPoint closest to \a x + const_iterator proximity(const Real &x)const; + + //! 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 + +/* === E N D =============================================================== */ + +#endif