Effector fall-off power was off by one for spherical, magnet, harmonic and charge fields. For example a square fall-off was reduced to linear etc.
This commit is contained in:
@@ -406,12 +406,15 @@ void do_physical_effector(Object *ob, float *opco, short type, float force_val,
|
||||
else
|
||||
VecCopyf(mag_vec,vec_to_part);
|
||||
|
||||
Normalize(mag_vec);
|
||||
|
||||
VecMulf(mag_vec,force_val*falloff);
|
||||
VecAddf(field,field,mag_vec);
|
||||
break;
|
||||
|
||||
case PFIELD_VORTEX:
|
||||
Crossf(mag_vec,eff_vel,vec_to_part);
|
||||
|
||||
Normalize(mag_vec);
|
||||
|
||||
VecMulf(mag_vec,force_val*distance*falloff);
|
||||
@@ -425,6 +428,8 @@ void do_physical_effector(Object *ob, float *opco, short type, float force_val,
|
||||
/* magnetic field of a moving charge */
|
||||
Crossf(temp,eff_vel,vec_to_part);
|
||||
|
||||
Normalize(temp);
|
||||
|
||||
Crossf(temp2,velocity,temp);
|
||||
VecAddf(mag_vec,mag_vec,temp2);
|
||||
|
||||
@@ -437,6 +442,8 @@ void do_physical_effector(Object *ob, float *opco, short type, float force_val,
|
||||
else
|
||||
VecCopyf(mag_vec,vec_to_part);
|
||||
|
||||
Normalize(mag_vec);
|
||||
|
||||
VecMulf(mag_vec,force_val*falloff);
|
||||
VecSubf(field,field,mag_vec);
|
||||
|
||||
@@ -451,6 +458,8 @@ void do_physical_effector(Object *ob, float *opco, short type, float force_val,
|
||||
else
|
||||
VecCopyf(mag_vec,vec_to_part);
|
||||
|
||||
Normalize(mag_vec);
|
||||
|
||||
VecMulf(mag_vec,charge*force_val*falloff);
|
||||
VecAddf(field,field,mag_vec);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user