double heading_offset_deg, pitch_offset_deg, roll_offset_deg;
double target_x_offset_m, target_y_offset_m, target_z_offset_m;
double near_m;
+ bool internal;
for (int i = 0; i < fgGetInt("/sim/number-views"); i++) {
viewpath = "/sim/view";
nodepath += "/type";
strdata = fgGetString(nodepath.c_str());
+ // find out if this is an internal view (e.g. in cockpit, low near plane)
+ internal = false; // default
+ nodepath = viewpath;
+ nodepath += "/internal";
+ internal = fgGetBool(nodepath.c_str());
+
// FIXME:
// this is assumed to be an aircraft model...we will need to read
// model-from-type as well.
nodepath += "/config/at-model-idx";
at_model_index = fgGetInt(nodepath.c_str());
- // view damping (0.0: no damping; <0.0: all but alt; >0.0: damp all)
- nodepath = viewpath;
- nodepath += "/config/at-model-alt-damping";
- damp_alt = fgGetDouble(nodepath.c_str(), 0.0);
-
nodepath = viewpath;
nodepath += "/config/at-model-roll-damping";
damp_roll = fgGetDouble(nodepath.c_str(), 0.0);
-
nodepath = viewpath;
nodepath += "/config/at-model-pitch-damping";
damp_pitch = fgGetDouble(nodepath.c_str(), 0.0);
-
nodepath = viewpath;
nodepath += "/config/at-model-heading-damping";
damp_heading = fgGetDouble(nodepath.c_str(), 0.0);
if ( strcmp("lookat",strdata.c_str()) == 0 )
add_view(new FGViewer ( FG_LOOKAT, from_model, from_model_index,
at_model, at_model_index,
- damp_alt, damp_roll, damp_pitch, damp_heading,
+ damp_roll, damp_pitch, damp_heading,
x_offset_m, y_offset_m,z_offset_m,
heading_offset_deg, pitch_offset_deg,
roll_offset_deg, fov_deg,
target_x_offset_m, target_y_offset_m,
- target_z_offset_m, near_m ));
+ target_z_offset_m, near_m, internal ));
else
add_view(new FGViewer ( FG_LOOKFROM, from_model, from_model_index,
- false, 0, 0.0, 0.0, 0.0, 0.0,
+ false, 0, 0.0, 0.0, 0.0,
x_offset_m, y_offset_m, z_offset_m,
heading_offset_deg, pitch_offset_deg,
- roll_offset_deg, fov_deg, 0, 0, 0, near_m ));
+ roll_offset_deg, fov_deg, 0, 0, 0, near_m,
+ internal ));
}
copyToCurrent();