1 // gyro.cxx - simple implementation of a spinning gyro model.
17 Gyro::update (double delta_time_sec)
19 // spin decays 0.5% every second
20 _spin_norm -= 0.005 * delta_time_sec;
22 // power can increase spin by 25%
23 // every second, but only up to the
24 // level of power available
26 double step = 0.25 * _power_norm * delta_time_sec;
27 if ((_spin_norm + step) <= _power_norm)
31 // clamp the spin to 0.0:1.0
34 else if (_spin_norm > 1.0)
39 Gyro::set_power_norm (double power_norm)
41 _power_norm = power_norm;
45 Gyro::get_spin_norm () const
51 Gyro::set_spin_norm (double spin_norm)
53 _spin_norm = spin_norm;
57 Gyro::is_serviceable () const
63 Gyro::set_serviceable (bool serviceable)
65 _serviceable = serviceable;