//
// _ShipMM.gol
//

class ShipMotionModel
{
	float steering_degrees_per_second;
	PiecewiseLinearFloatToFloatMapping steering_time_multiplier;
	PiecewiseLinearFloatToFloatMapping steering_speed_multiplier;
	PiecewiseLinearFloatToFloatMapping steering_forward_angle_multiplier;
	PiecewiseLinearFloatToFloatMapping steering_upright_angle_multiplier;

	float steering_return_degrees_per_second;
	PiecewiseLinearFloatToFloatMapping steering_return_time_multiplier;
	PiecewiseLinearFloatToFloatMapping steering_return_speed_multiplier;
	PiecewiseLinearFloatToFloatMapping steering_return_forward_angle_multiplier;
	PiecewiseLinearFloatToFloatMapping steering_return_upright_angle_multiplier;

	float side_thrust;
	PiecewiseLinearFloatToFloatMapping side_thrust_time_multiplier;
	PiecewiseLinearFloatToFloatMapping side_thrust_speed_multiplier;
	PiecewiseLinearFloatToFloatMapping side_thrust_forward_angle_multiplier;
	PiecewiseLinearFloatToFloatMapping side_thrust_upright_angle_multiplier;

	float forward_thrust;
	PiecewiseLinearFloatToFloatMapping forward_thrust_time_multiplier;
	PiecewiseLinearFloatToFloatMapping forward_thrust_speed_multiplier;
	PiecewiseLinearFloatToFloatMapping forward_thrust_forward_angle_multiplier;
	PiecewiseLinearFloatToFloatMapping forward_thrust_upright_angle_multiplier;

	float brake;
	PiecewiseLinearFloatToFloatMapping brake_time_multiplier;
	PiecewiseLinearFloatToFloatMapping brake_speed_multiplier;
	PiecewiseLinearFloatToFloatMapping brake_forward_angle_multiplier;
	PiecewiseLinearFloatToFloatMapping brake_upright_angle_multiplier;

	float position_perturbation_intensity = 0;
	float position_perturbation_frequency = 0;
	float orientation_perturbation_intensity = 0;
	float orientation_perturbation_frequency = 0;
	PiecewiseLinearFloatToFloatMapping perturbation_speed_multiplier;

	PiecewiseLinearFloatToFloatMapping rate_of_alignment;
	PiecewiseLinearFloatToFloatMapping six_o_clock;
	PiecewiseLinearFloatToFloatMapping airborne_nose_rotation;
	float nose_up_intensity = 0;
	bool tube_relative_thrust = 1;
}
