X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=FDM%2FLaRCsim.cxx;h=bd7570b4d673786cfc208e7d814b03ca608b6ec5;hb=87a670d524da5755c03f9d556420d7aae13deb73;hp=1f2d0694290d69e30158812abff53b05ed89cfb7;hpb=f7bdff08ce0420d05aa771db7bc7f324a2f4529c;p=flightgear.git diff --git a/FDM/LaRCsim.cxx b/FDM/LaRCsim.cxx index 1f2d06942..bd7570b4d 100644 --- a/FDM/LaRCsim.cxx +++ b/FDM/LaRCsim.cxx @@ -262,179 +262,129 @@ int fgFlight_2_LaRCsim (fgFLIGHT& f) { // Convert from the LaRCsim generic_ struct to the fgFLIGHT struct int fgLaRCsim_2_Flight (fgFLIGHT& f) { + // Mass properties and geometry values f.set_Inertias( Mass, I_xx, I_yy, I_zz, I_xz ); + f.set_Pilot_Location( Dx_pilot, Dy_pilot, Dz_pilot ); + f.set_CG_Position( Dx_cg, Dy_cg, Dz_cg ); - /* - f.get_Dx_pilot() = Dx_pilot; - f.get_Dy_pilot() = Dy_pilot; - f.get_Dz_pilot() = Dz_pilot; - f.get_Dx_cg() = Dx_cg; - f.get_Dy_cg() = Dy_cg; - f.get_Dz_cg() = Dz_cg; - f.get_F_X() = F_X; - f.get_F_Y() = F_Y; - f.get_F_Z() = F_Z; - f.get_F_north() = F_north; - f.get_F_east() = F_east; - f.get_F_down() = F_down; - f.get_F_X_aero() = F_X_aero; - f.get_F_Y_aero() = F_Y_aero; - f.get_F_Z_aero() = F_Z_aero; - f.get_F_X_engine() = F_X_engine; - f.get_F_Y_engine() = F_Y_engine; - f.get_F_Z_engine() = F_Z_engine; - f.get_F_X_gear() = F_X_gear; - f.get_F_Y_gear() = F_Y_gear; - f.get_F_Z_gear() = F_Z_gear; - f.get_M_l_rp() = M_l_rp; - f.get_M_m_rp() = M_m_rp; - f.get_M_n_rp() = M_n_rp; - f.get_M_l_cg() = M_l_cg; - f.get_M_m_cg() = M_m_cg; - f.get_M_n_cg() = M_n_cg; - f.get_M_l_aero() = M_l_aero; - f.get_M_m_aero() = M_m_aero; - f.get_M_n_aero() = M_n_aero; - f.get_M_l_engine() = M_l_engine; - f.get_M_m_engine() = M_m_engine; - f.get_M_n_engine() = M_n_engine; - f.get_M_l_gear() = M_l_gear; - f.get_M_m_gear() = M_m_gear; - f.get_M_n_gear() = M_n_gear; - f.get_V_dot_north() = V_dot_north; - f.get_V_dot_east() = V_dot_east; - f.get_V_dot_down() = V_dot_down; - f.get_U_dot_body() = U_dot_body; - f.get_V_dot_body() = V_dot_body; - f.get_W_dot_body() = W_dot_body; - f.get_A_X_cg() = A_X_cg; - f.get_A_Y_cg() = A_Y_cg; - f.get_A_Z_cg() = A_Z_cg; - f.get_A_X_pilot() = A_X_pilot; - f.get_A_Y_pilot() = A_Y_pilot; - f.get_A_Z_pilot() = A_Z_pilot; - f.get_N_X_cg() = N_X_cg; - f.get_N_Y_cg() = N_Y_cg; - f.get_N_Z_cg() = N_Z_cg; - f.get_N_X_pilot() = N_X_pilot; - f.get_N_Y_pilot() = N_Y_pilot; - f.get_N_Z_pilot() = N_Z_pilot; - f.get_P_dot_body() = P_dot_body; - f.get_Q_dot_body() = Q_dot_body; - f.get_R_dot_body() = R_dot_body; - f.get_V_north() = V_north; - f.get_V_east() = V_east; - f.get_V_down() = V_down; - f.get_V_north_rel_ground() = V_north_rel_ground; - f.get_V_east_rel_ground() = V_east_rel_ground; - f.get_V_down_rel_ground() = V_down_rel_ground; - f.get_V_north_airmass() = V_north_airmass; - f.get_V_east_airmass() = V_east_airmass; - f.get_V_down_airmass() = V_down_airmass; - f.get_V_north_rel_airmass() = V_north_rel_airmass; - f.get_V_east_rel_airmass() = V_east_rel_airmass; - f.get_V_down_rel_airmass() = V_down_rel_airmass; - f.get_U_gust() = U_gust; - f.get_V_gust() = V_gust; - f.get_W_gust() = W_gust; - f.get_U_body() = U_body; - f.get_V_body() = V_body; - f.get_W_body() = W_body; - f.get_V_rel_wind() = V_rel_wind; - f.get_V_true_kts() = V_true_kts; - f.get_V_rel_ground() = V_rel_ground; - f.get_V_inertial() = V_inertial; - f.get_V_ground_speed() = V_ground_speed; - f.get_V_equiv() = V_equiv; - f.get_V_equiv_kts() = V_equiv_kts; - f.get_V_calibrated() = V_calibrated; - f.get_V_calibrated_kts() = V_calibrated_kts; - f.get_P_body() = P_body; - f.get_Q_body() = Q_body; - f.get_R_body() = R_body; - f.get_P_local() = P_local; - f.get_Q_local() = Q_local; - f.get_R_local() = R_local; - f.get_P_total() = P_total; - f.get_Q_total() = Q_total; - f.get_R_total() = R_total; - f.get_Phi_dot() = Phi_dot; - f.get_Theta_dot() = Theta_dot; - f.get_Psi_dot() = Psi_dot; - f.get_Latitude_dot() = Latitude_dot; - f.get_Longitude_dot() = Longitude_dot; - f.get_Radius_dot() = Radius_dot; - f.get_Lat_geocentric() = Lat_geocentric; - f.get_Lon_geocentric() = Lon_geocentric; - f.get_Radius_to_vehicle() = Radius_to_vehicle; - f.get_Latitude() = Latitude; - f.get_Longitude() = Longitude; - f.get_Altitude() = Altitude; - f.get_Phi() = Phi; - f.get_Theta() = Theta; - f.get_Psi() = Psi; - f.get_T_local_to_body_11() = T_local_to_body_11; - f.get_T_local_to_body_12() = T_local_to_body_12; - f.get_T_local_to_body_13() = T_local_to_body_13; - f.get_T_local_to_body_21() = T_local_to_body_21; - f.get_T_local_to_body_22() = T_local_to_body_22; - f.get_T_local_to_body_23() = T_local_to_body_23; - f.get_T_local_to_body_31() = T_local_to_body_31; - f.get_T_local_to_body_32() = T_local_to_body_32; - f.get_T_local_to_body_33() = T_local_to_body_33; - f.get_Gravity() = Gravity; - f.get_Centrifugal_relief() = Centrifugal_relief; - f.get_Alpha() = Alpha; - f.get_Beta() = Beta; - f.get_Alpha_dot() = Alpha_dot; - f.get_Beta_dot() = Beta_dot; - f.get_Cos_alpha() = Cos_alpha; - f.get_Sin_alpha() = Sin_alpha; - f.get_Cos_beta() = Cos_beta; - f.get_Sin_beta() = Sin_beta; - f.get_Cos_phi() = Cos_phi; - f.get_Sin_phi() = Sin_phi; - f.get_Cos_theta() = Cos_theta; - f.get_Sin_theta() = Sin_theta; - f.get_Cos_psi() = Cos_psi; - f.get_Sin_psi() = Sin_psi; - f.get_Gamma_vert_rad() = Gamma_vert_rad; - f.get_Gamma_horiz_rad() = Gamma_horiz_rad; - f.get_Sigma() = Sigma; - f.get_Density() = Density; - f.get_V_sound() = V_sound; - f.get_Mach_number() = Mach_number; - f.get_Static_pressure() = Static_pressure; - f.get_Total_pressure() = Total_pressure; - f.get_Impact_pressure() = Impact_pressure; - f.get_Dynamic_pressure() = Dynamic_pressure; - f.get_Static_temperature() = Static_temperature; - f.get_Total_temperature() = Total_temperature; - f.get_Sea_level_radius() = Sea_level_radius; - f.get_Earth_position_angle() = Earth_position_angle; - f.get_Runway_altitude() = Runway_altitude; - f.get_Runway_latitude() = Runway_latitude; - f.get_Runway_longitude() = Runway_longitude; - f.get_Runway_heading() = Runway_heading; - f.get_Radius_to_rwy() = Radius_to_rwy; - f.get_D_cg_north_of_rwy() = D_cg_north_of_rwy; - f.get_D_cg_east_of_rwy() = D_cg_east_of_rwy; - f.get_D_cg_above_rwy() = D_cg_above_rwy; - f.get_X_cg_rwy() = X_cg_rwy; - f.get_Y_cg_rwy() = Y_cg_rwy; - f.get_H_cg_rwy() = H_cg_rwy; - f.get_D_pilot_north_of_rwy() = D_pilot_north_of_rwy; - f.get_D_pilot_east_of_rwy() = D_pilot_east_of_rwy; - f.get_D_pilot_above_rwy() = D_pilot_above_rwy; - f.get_X_pilot_rwy() = X_pilot_rwy; - f.get_Y_pilot_rwy() = Y_pilot_rwy; - f.get_H_pilot_rwy() = H_pilot_rwy; - */ - return ( 0 ); + // Forces + f.set_Forces_Body_Total( F_X, F_Y, F_Z ); + f.set_Forces_Local_Total( F_north, F_east, F_down ); + f.set_Forces_Aero( F_X_aero, F_Y_aero, F_Z_aero ); + f.set_Forces_Engine( F_X_engine, F_Y_engine, F_Z_engine ); + f.set_Forces_Gear( F_X_gear, F_Y_gear, F_Z_gear ); + + // Moments + f.set_Moments_Total_RP( M_l_rp, M_m_rp, M_n_rp ); + f.set_Moments_Total_CG( M_l_cg, M_m_cg, M_n_cg ); + f.set_Moments_Aero( M_l_aero, M_m_aero, M_n_aero ); + f.set_Moments_Engine( M_l_engine, M_m_engine, M_n_engine ); + f.set_Moments_Gear( M_l_gear, M_m_gear, M_n_gear ); + + // Accelerations + f.set_Accels_Local( V_dot_north, V_dot_east, V_dot_down ); + f.set_Accels_Body( U_dot_body, V_dot_body, W_dot_body ); + f.set_Accels_CG_Body( A_X_cg, A_Y_cg, A_Z_cg ); + f.set_Accels_Pilot_Body( A_X_pilot, A_Y_pilot, A_Z_pilot ); + f.set_Accels_CG_Body_N( N_X_cg, N_Y_cg, N_Z_cg ); + f.set_Accels_Pilot_Body_N( N_X_pilot, N_Y_pilot, N_Z_pilot ); + f.set_Accels_Omega( P_dot_body, Q_dot_body, R_dot_body ); + + // Velocities + f.set_Velocities_Local( V_north, V_east, V_down ); + f.set_Velocities_Ground( V_north_rel_ground, V_east_rel_ground, + V_down_rel_ground ); + f.set_Velocities_Local_Airmass( V_north_airmass, V_east_airmass, + V_down_airmass ); + f.set_Velocities_Local_Rel_Airmass( V_north_rel_airmass, V_east_rel_airmass, + V_down_rel_airmass ); + f.set_Velocities_Gust( U_gust, V_gust, W_gust ); + f.set_Velocities_Wind_Body( U_body, V_body, W_body ); + + f.set_V_rel_wind( V_rel_wind ); + f.set_V_true_kts( V_true_kts ); + f.set_V_rel_ground( V_rel_ground ); + f.set_V_inertial( V_inertial ); + f.set_V_ground_speed( V_ground_speed ); + f.set_V_equiv( V_equiv ); + f.set_V_equiv_kts( V_equiv_kts ); + f.set_V_calibrated( V_calibrated ); + f.set_V_calibrated_kts( V_calibrated_kts ); + + f.set_Omega_Body( P_body, Q_body, R_body ); + f.set_Omega_Local( P_local, Q_local, R_local ); + f.set_Omega_Total( P_total, Q_total, R_total ); + + f.set_Euler_Rates( Phi_dot, Theta_dot, Psi_dot ); + f.set_Geocentric_Rates( Latitude_dot, Longitude_dot, Radius_dot ); + + // Positions + f.set_Geocentric_Position( Lat_geocentric, Lon_geocentric, + Radius_to_vehicle ); + f.set_Geodetic_Position( Latitude, Longitude, Altitude ); + f.set_Euler_Angles( Phi, Theta, Psi ); + + // Miscellaneous quantities + f.set_T_Local_to_Body(T_local_to_body_m); + f.set_Gravity( Gravity ); + f.set_Centrifugal_relief( Centrifugal_relief ); + + f.set_Alpha( Alpha ); + f.set_Beta( Beta ); + f.set_Alpha_dot( Alpha_dot ); + f.set_Beta_dot( Beta_dot ); + + f.set_Cos_alpha( Cos_alpha ); + f.set_Sin_alpha( Sin_alpha ); + f.set_Cos_beta( Cos_beta ); + f.set_Sin_beta( Sin_beta ); + + f.set_Cos_phi( Cos_phi ); + f.set_Sin_phi( Sin_phi ); + f.set_Cos_theta( Cos_theta ); + f.set_Sin_theta( Sin_theta ); + f.set_Cos_psi( Cos_psi ); + f.set_Sin_psi( Sin_psi ); + + f.set_Gamma_vert_rad( Gamma_vert_rad ); + f.set_Gamma_horiz_rad( Gamma_horiz_rad ); + + f.set_Sigma( Sigma ); + f.set_Density( Density ); + f.set_V_sound( V_sound ); + f.set_Mach_number( Mach_number ); + + f.set_Static_pressure( Static_pressure ); + f.set_Total_pressure( Total_pressure ); + f.set_Impact_pressure( Impact_pressure ); + f.set_Dynamic_pressure( Dynamic_pressure ); + + f.set_Static_temperature( Static_temperature ); + f.set_Total_temperature( Total_temperature ); + + f.set_Sea_level_radius( Sea_level_radius ); + f.set_Earth_position_angle( Earth_position_angle ); + + f.set_Runway_altitude( Runway_altitude ); + f.set_Runway_latitude( Runway_latitude ); + f.set_Runway_longitude( Runway_longitude ); + f.set_Runway_heading( Runway_heading ); + f.set_Radius_to_rwy( Radius_to_rwy ); + + f.set_CG_Rwy_Local( D_cg_north_of_rwy, D_cg_east_of_rwy, D_cg_above_rwy ); + f.set_CG_Rwy_Rwy( X_cg_rwy, Y_cg_rwy, H_cg_rwy ); + f.set_Pilot_Rwy_Local( D_pilot_north_of_rwy, D_pilot_east_of_rwy, + D_pilot_above_rwy ); + f.set_Pilot_Rwy_Rwy( X_pilot_rwy, Y_pilot_rwy, H_pilot_rwy ); + + return 0; } // $Log$ +// Revision 1.5 1998/12/03 04:25:02 curt +// Working on fixing up new fgFLIGHT class. +// // Revision 1.4 1998/12/03 01:16:37 curt // Converted fgFLIGHT to a class. //