X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fmod_noise%2Fnoise.cpp;h=ce9852ccbeae5a5aea599d39d8c1abd45b2570a6;hb=44bccb5e0f65738a88be04586da0a5f452a25fc6;hp=aef6eadd622857e8ce2985d14124b9f13dfd5f2b;hpb=28f28705612902c15cd0702cc891fba35bf2d2df;p=synfig.git diff --git a/synfig-core/trunk/src/modules/mod_noise/noise.cpp b/synfig-core/trunk/src/modules/mod_noise/noise.cpp index aef6ead..ce9852c 100644 --- a/synfig-core/trunk/src/modules/mod_noise/noise.cpp +++ b/synfig-core/trunk/src/modules/mod_noise/noise.cpp @@ -2,19 +2,20 @@ /*! \file noise.cpp ** \brief blehh ** -** $Id: noise.cpp,v 1.2 2005/01/13 06:48:39 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 */ /* ========================================================================= */ @@ -54,7 +55,7 @@ SYNFIG_LAYER_SET_NAME(Noise,"noise"); SYNFIG_LAYER_SET_LOCAL_NAME(Noise,_("Noise Gradient")); SYNFIG_LAYER_SET_CATEGORY(Noise,_("Gradients")); SYNFIG_LAYER_SET_VERSION(Noise,"0.0"); -SYNFIG_LAYER_SET_CVS_ID(Noise,"$Id: noise.cpp,v 1.2 2005/01/13 06:48:39 darco Exp $"); +SYNFIG_LAYER_SET_CVS_ID(Noise,"$Id$"); /* === P R O C E D U R E S ================================================= */ @@ -81,22 +82,22 @@ inline Color Noise::color_func(const Point &point, float pixel_size,Context context)const { Color ret(0,0,0,0); - + float x(point[0]/size[0]*(1<1)amount=1; - + if(super_sample&&pixel_size) { amount2=random(smooth,0+(detail-i)*5,x2,y,t)+amount2*0.5; @@ -126,19 +127,19 @@ Noise::color_func(const Point &point, float pixel_size,Context context)const x2*=0.5f; y2*=0.5f; } - + if(do_alpha) { alpha=random(smooth,3+(detail-i)*5,x,y,t)+alpha*0.5; if(alpha<-1)alpha=-1;if(alpha>1)alpha=1; } - + if(turbulent) { amount=abs(amount); alpha=abs(alpha); } - + x*=0.5f; y*=0.5f; //t*=0.5f; @@ -155,7 +156,7 @@ Noise::color_func(const Point &point, float pixel_size,Context context)const amount3=amount3/2.0f+0.5f; } } - + if(super_sample && pixel_size) ret=gradient(amount,max(amount3,max(amount,amount2))-min(amount3,min(amount,amount2))); else @@ -215,8 +216,8 @@ Noise::set_param(const String & param, const ValueBase &value) IMPORT(gradient); IMPORT(turbulent); IMPORT(super_sample); - - return Layer_Composite::set_param(param,value); + + return Layer_Composite::set_param(param,value); } ValueBase @@ -230,20 +231,20 @@ Noise::get_param(const String & param)const EXPORT(detail); EXPORT(do_alpha); EXPORT(gradient); - EXPORT(turbulent) + EXPORT(turbulent) EXPORT(super_sample); - + EXPORT_NAME(); EXPORT_VERSION(); - - return Layer_Composite::get_param(param); + + return Layer_Composite::get_param(param); } Layer::Vocab Noise::get_param_vocab()const { Layer::Vocab ret(Layer_Composite::get_param_vocab()); - + ret.push_back(ParamDesc("gradient") .set_local_name(_("Gradient")) ); @@ -278,7 +279,7 @@ Noise::get_param_vocab()const ret.push_back(ParamDesc("super_sample") .set_local_name(_("Super Sampling")) ); - + return ret; } @@ -310,7 +311,7 @@ Noise::accelerated_render(Context context,Surface *surface,int quality, const Re return true; } - + int x,y; Surface::pen pen(surface->begin()); @@ -322,7 +323,7 @@ Noise::accelerated_render(Context context,Surface *surface,int quality, const Re float supersampleradius((abs(pw)+abs(ph))*0.5f); if(quality>=8) supersampleradius=0; - + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) { for(y=0,pos[1]=tl[1];y