Fix bugs in previous commit that caused FTBFS in synfig and ETL FTBFS with older...
[synfig.git] / synfig-core / tags / stable / src / modules / mod_particle / random.h
index 4dcbd83..943a1cd 100644 (file)
@@ -1,32 +1,33 @@
-/* === S I N F G =========================================================== */
-/*!    \file noise.h
+/* === S Y N F I G ========================================================= */
+/*!    \file mod_particle/random.h
 **     \brief Template Header
 **
-**     $Id: random.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
+**     Copyright (c) 2007 Chris Moore
 **
-**     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_RANDOM_H
-#define __SINFG_RANDOM_H
+#ifndef __SYNFIG_RANDOM_H
+#define __SYNFIG_RANDOM_H
 
 /* === H E A D E R S ======================================================= */
 
-
 /* === M A C R O S ========================================================= */
 
 /* === T Y P E D E F S ===================================================== */
@@ -39,16 +40,26 @@ class Random
 {
        int pool_[POOL_SIZE];
        int seed_;
-       
+
        int x_mask, y_mask, t_mask;
-       
+
 public:
-       
+
        void set_seed(int x);
        int get_seed()const { return seed_; }
-       
-       float operator()(int subseed,int x,int y=0, int t=0)const;      
-       float operator()(int smooth,int subseed,float x,float y=0, float t=0)const;     
+
+       enum SmoothType
+       {
+               SMOOTH_DEFAULT          = 0,
+               SMOOTH_LINEAR           = 1,
+               SMOOTH_COSINE           = 2,
+               SMOOTH_SPLINE           = 3,
+               SMOOTH_CUBIC            = 4,
+               SMOOTH_FAST_SPLINE      = 5,
+       };
+
+       float operator()(int salt,int x,int y=0, int t=0)const;
+       float operator()(SmoothType smooth,int subseed,float x,float y=0, float t=0)const;
 };
 
 /* === E N D =============================================================== */