X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fexample%2Fmetaballs.cpp;h=874d7f9ef8e39226c98149e7f402bacf0c8dbd49;hb=6dfd55be0cb07c9358695aa5e1b0015d2f5d97bf;hp=c689449257347ad16477b7d076eef4de50c9e5e5;hpb=4dc57ca027fbe1dce954961812788703f0feeb8a;p=synfig.git diff --git a/synfig-core/trunk/src/modules/example/metaballs.cpp b/synfig-core/trunk/src/modules/example/metaballs.cpp index c689449..874d7f9 100644 --- a/synfig-core/trunk/src/modules/example/metaballs.cpp +++ b/synfig-core/trunk/src/modules/example/metaballs.cpp @@ -66,7 +66,10 @@ SYNFIG_LAYER_SET_CVS_ID(Metaballs,"$Id$"); Metaballs::Metaballs(): Layer_Composite(1.0,Color::BLEND_STRAIGHT), - gradient(Color::black(), Color::white()) + gradient(Color::black(), Color::white()), + threshold(0), + threshold2(1), + positive(false) { centers.push_back(Point( 0, -1.5)); radii.push_back(2.5); weights.push_back(1); centers.push_back(Point(-2, 1)); radii.push_back(2.5); weights.push_back(1); @@ -96,6 +99,8 @@ Metaballs::set_param(const String & param, const ValueBase &value) IMPORT(gradient); IMPORT(threshold); + IMPORT(threshold2); + IMPORT(positive); return Layer_Composite::set_param(param,value); } @@ -109,6 +114,8 @@ Metaballs::get_param(const String ¶m)const EXPORT(weights); EXPORT(centers); EXPORT(threshold); + EXPORT(threshold2); + EXPORT(positive); EXPORT_NAME(); EXPORT_VERSION(); @@ -138,7 +145,15 @@ Metaballs::get_param_vocab()const ); ret.push_back(ParamDesc("threshold") - .set_local_name(_("Threshold")) + .set_local_name(_("Gradient Left")) + ); + + ret.push_back(ParamDesc("threshold2") + .set_local_name(_("Gradient Right")) + ); + + ret.push_back(ParamDesc("positive") + .set_local_name(_("Positive Only")) ); return ret; @@ -150,6 +165,7 @@ static inline Real densityfunc(const synfig::Point &p, const synfig::Point &c, R const Real dy = p[1] - c[1]; const Real n = (1 - (dx*dx + dy*dy)/(R*R)); + if (positive && n < 0) return 0; return (n*n*n); /* @@ -171,7 +187,7 @@ Metaballs::totaldensity(const Point &pos) const for(unsigned int i=0;i