+ _type = Type;
+ _from_model = from_model;
+ _from_model_index = from_model_index;
+ _at_model = at_model;
+ _at_model_index = at_model_index;
+
+ _internal = internal;
+
+ if (damp_roll > 0.0)
+ _damp_roll = 1.0 / pow(10, fabs(damp_roll));
+ if (damp_pitch > 0.0)
+ _damp_pitch = 1.0 / pow(10, fabs(damp_pitch));
+ if (damp_heading > 0.0)
+ _damp_heading = 1.0 / pow(10, fabs(damp_heading));
+
+ _x_offset_m = x_offset_m;
+ _y_offset_m = y_offset_m;
+ _z_offset_m = z_offset_m;
+ _heading_offset_deg = heading_offset_deg;
+ _pitch_offset_deg = pitch_offset_deg;
+ _roll_offset_deg = roll_offset_deg;
+ _goal_heading_offset_deg = heading_offset_deg;
+ _goal_pitch_offset_deg = pitch_offset_deg;
+ _goal_roll_offset_deg = roll_offset_deg;
+ if (fov_deg > 0) {
+ _fov_deg = fov_deg;
+ } else {
+ _fov_deg = 55;
+ }
+ _target_x_offset_m = target_x_offset_m;
+ _target_y_offset_m = target_y_offset_m;
+ _target_z_offset_m = target_z_offset_m;
+ _ground_level_nearplane_m = near_m;
+ // a reasonable guess for init, so that the math doesn't blow up