X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fexample%2Fmetaballs.cpp;h=9d555189da7f56e4b792fbf9ca708940714b8e6b;hb=e23107e333ebe9065caf164c7a974dd75d0f179a;hp=c0a9a50dd1d8fca428041e67b74b688eec491b8b;hpb=5ddcf36f04cfbd10fabda4e3c5633cb27cdd4c0a;p=synfig.git diff --git a/synfig-core/trunk/src/modules/example/metaballs.cpp b/synfig-core/trunk/src/modules/example/metaballs.cpp index c0a9a50..9d55518 100644 --- a/synfig-core/trunk/src/modules/example/metaballs.cpp +++ b/synfig-core/trunk/src/modules/example/metaballs.cpp @@ -1,8 +1,8 @@ /* === S Y N F I G ========================================================= */ /*! \file metaballs.cpp -** \brief Implements metaballs +** \brief Implementation of the "Metaballs" layer ** -** $Id: metaballs.cpp,v 1.1.1.1 2005/01/04 01:23:09 darco Exp $ +** $Id$ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley @@ -53,10 +53,10 @@ using namespace synfig; SYNFIG_LAYER_INIT(Metaballs); SYNFIG_LAYER_SET_NAME(Metaballs,"metaballs"); -SYNFIG_LAYER_SET_LOCAL_NAME(Metaballs,_("Metaballs")); -SYNFIG_LAYER_SET_CATEGORY(Metaballs,_("Default")); +SYNFIG_LAYER_SET_LOCAL_NAME(Metaballs,N_("Metaballs")); +SYNFIG_LAYER_SET_CATEGORY(Metaballs,N_("Default")); SYNFIG_LAYER_SET_VERSION(Metaballs,"0.1"); -SYNFIG_LAYER_SET_CVS_ID(Metaballs,"$Id: metaballs.cpp,v 1.1.1.1 2005/01/04 01:23:09 darco Exp $"); +SYNFIG_LAYER_SET_CVS_ID(Metaballs,"$Id$"); /* === P R O C E D U R E S ================================================= */ @@ -73,19 +73,19 @@ Metaballs::Metaballs(): bool Metaballs::set_param(const String & param, const ValueBase &value) { - if( param=="centers" && value.same_as(centers)) + if( param=="centers" && value.same_type_as(centers)) { centers = value; return true; } - if( param=="weights" && value.same_as(weights)) + if( param=="weights" && value.same_type_as(weights)) { weights = value; return true; } - if( param=="radii" && value.same_as(radii)) + if( param=="radii" && value.same_type_as(radii)) { radii = value; return true; @@ -166,9 +166,7 @@ Metaballs::totaldensity(const Point &pos) const //sum up weighted functions for(unsigned int i=0;i= threshold) + if (totaldensity(pos) >= threshold) return color; else return context.get_color(pos); @@ -188,27 +184,14 @@ bool Metaballs::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const { // Width and Height of a pixel - const Point br(renddesc.get_br()), - tl(renddesc.get_tl()); - - const int w = renddesc.get_w(), - h = renddesc.get_h(); - - Real pw = renddesc.get_pw(); - Real ph = renddesc.get_ph(); + const Point br(renddesc.get_br()), tl(renddesc.get_tl()); + const int w(renddesc.get_w()), h(renddesc.get_h()); + const Real pw(renddesc.get_pw()), ph(renddesc.get_ph()); SuperCallback supercb(cb,0,9000,10000); - if(!context.accelerated_render(surface,quality,renddesc,&supercb)) - { - if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); - return false; - } - Point pos(tl[0],tl[1]); - Real dens; - if(!context.accelerated_render(surface,quality,renddesc,&supercb)) { if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); @@ -219,14 +202,8 @@ Metaballs::accelerated_render(Context context,Surface *surface,int quality, cons { pos[0] = tl[0]; for(int x = 0; x < w; x++, pos[0] += pw) - { - dens = totaldensity(pos); - - if(dens >= threshold) - { + if (totaldensity(pos) >= threshold) (*surface)[y][x] = Color::blend(color,(*surface)[y][x],get_amount(),get_blend_method()); - } - } } // Mark our progress as finished