void Physics2DDirectBodyState::integrate_forces() { real_t step = get_step(); Vector2 lv = get_linear_velocity(); lv+=get_total_gravity() * step; real_t av = get_angular_velocity(); float damp = 1.0 - step * get_total_linear_damp(); if (damp<0) // reached zero in the given time damp=0; lv*=damp; damp = 1.0 - step * get_total_angular_damp(); if (damp<0) // reached zero in the given time damp=0; av*=damp; set_linear_velocity(lv); set_angular_velocity(av); }
void PhysicsDirectBodyState::integrate_forces() { real_t step = get_step(); Vector3 lv = get_linear_velocity(); lv += get_total_gravity() * step; Vector3 av = get_angular_velocity(); float linear_damp = 1.0 - step * get_total_linear_damp(); if (linear_damp < 0) // reached zero in the given time linear_damp = 0; float angular_damp = 1.0 - step * get_total_angular_damp(); if (angular_damp < 0) // reached zero in the given time angular_damp = 0; lv *= linear_damp; av *= angular_damp; set_linear_velocity(lv); set_angular_velocity(av); }