X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fmod_particle%2Fplant.cpp;h=a7df9260f35a4b8b30b597053273473fd9ba87d1;hb=45d32acc437f1ea60269d51bbbb97845cee2dfc9;hp=3abe14674f31ae68ae8e32a5553ef6de90b456c2;hpb=756c0d29ac1742f231e6615f9a577e574e35a4af;p=synfig.git diff --git a/synfig-core/trunk/src/modules/mod_particle/plant.cpp b/synfig-core/trunk/src/modules/mod_particle/plant.cpp index 3abe146..a7df926 100644 --- a/synfig-core/trunk/src/modules/mod_particle/plant.cpp +++ b/synfig-core/trunk/src/modules/mod_particle/plant.cpp @@ -76,7 +76,7 @@ SYNFIG_LAYER_SET_CVS_ID(Plant,"$Id$"); Plant::Plant(): - offset(0,0), + origin(0,0), split_angle(Angle::deg(10)), gravity(0,-0.1), velocity(0.3), @@ -241,6 +241,9 @@ Plant::sync()const if((((i+1)*sprouts + steps/2) / steps) > branch_count) { Vector branch_velocity(deriv(f).norm()*velocity + deriv(f).perp().norm()*perp_velocity); + if (isnan(branch_velocity[0]) || isnan(branch_velocity[1])) + continue; + branch_velocity[0] += random_factor * random(Random::SMOOTH_COSINE, 1, f*splits, 0.0f, 0.0f); branch_velocity[1] += random_factor * random(Random::SMOOTH_COSINE, 2, f*splits, 0.0f, 0.0f); @@ -284,7 +287,7 @@ Plant::set_param(const String & param, const ValueBase &value) needs_sync_=true; return true; } - IMPORT(offset); + IMPORT(origin); IMPORT_PLUS(split_angle,needs_sync_=true); IMPORT_PLUS(gravity,needs_sync_=true); IMPORT_PLUS(gradient,needs_sync_=true); @@ -311,6 +314,8 @@ Plant::set_param(const String & param, const ValueBase &value) IMPORT(size_as_alpha); IMPORT(reverse); + IMPORT_AS(origin,"offset"); + return Layer_Composite::set_param(param,value); } /* @@ -344,7 +349,7 @@ Plant::get_param(const String& param)const if(param=="seed") return random.get_seed(); EXPORT(bline); - EXPORT(offset); + EXPORT(origin); EXPORT(split_angle); EXPORT(gravity); EXPORT(velocity); @@ -376,12 +381,12 @@ Plant::get_param_vocab()const ret.push_back(ParamDesc("bline") .set_local_name(_("Vertices")) .set_description(_("A list of BLine Points")) - .set_origin("offset") - //.set_scalar("width") + .set_origin("origin") + .set_hint("width") ); - ret.push_back(ParamDesc("offset") - .set_local_name(_("Offset")) + ret.push_back(ParamDesc("origin") + .set_local_name(_("Origin")) ); ret.push_back(ParamDesc("gradient") @@ -481,8 +486,8 @@ Plant::accelerated_render(Context context,Surface *surface,int quality, const Re dest_surface.set_wh(surface->get_w(),surface->get_h()); dest_surface.clear(); - const Point tl(renddesc.get_tl()-offset); - const Point br(renddesc.get_br()-offset); + const Point tl(renddesc.get_tl()-origin); + const Point br(renddesc.get_br()-origin); const int w(renddesc.get_w()); const int h(renddesc.get_h());