Add boolean parameter 'Positive Only' to stop negative affect from large distances.
[synfig.git] / synfig-core / trunk / src / modules / example / metaballs.h
index 58db5a0..ee3bda5 100644 (file)
@@ -1,20 +1,21 @@
 /* === S Y N F I G ========================================================= */
 /*!    \file metaballs.h
-**     \brief Declares information for defining Metaballs.
+**     \brief Header file for implementation of the "Metaballs" layer
 **
-**     $Id: metaballs.h,v 1.1.1.1 2005/01/04 01:23:09 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
 */
 /* ========================================================================= */
@@ -27,7 +28,7 @@
 /* === H E A D E R S ======================================================= */
 
 #include <synfig/layer_composite.h>
-#include <synfig/color.h>
+#include <synfig/gradient.h>
 #include <synfig/vector.h>
 #include <synfig/value.h>
 #include <vector>
 class Metaballs : public synfig::Layer_Composite
 {
        SYNFIG_LAYER_MODULE_EXT
-       
+
 private:
 
-       synfig::Color color;
+       synfig::Gradient gradient;
 
        std::vector<synfig::Point>      centers;
        std::vector<synfig::Real>       radii;
        std::vector<synfig::Real>       weights;
 
        synfig::Real    threshold;
-       //Real  threshold2;
-       
+       synfig::Real    threshold2;
+
+       bool positive;
+
        synfig::Real totaldensity(const synfig::Point &pos)const;
 
 public:
-       
+
        Metaballs();
-       
+
        virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value);
 
        virtual synfig::ValueBase get_param(const synfig::String & param)const;
 
        virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const;
-       
+
        virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const;
-       
+
        virtual Vocab get_param_vocab()const;
 }; // END of class Metaballs