Advertisement
575

2 - data_making

575
Apr 22nd, 2023
763
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.90 KB | None | 0 0
  1. #pragma once
  2. #ifndef DATAMAKING_H
  3. #define DATAMAKING_H
  4.  
  5. #include "file_structs.h"
  6. #include "missile.h"
  7. #include "target.h"
  8. #include "functions.h"
  9. #include <fstream>
  10.  
  11. std::vector <raw_data> MakeRawData(std::string filename) {
  12.     std::ifstream in(filename);
  13.     raw_data temp;
  14.     std::vector <raw_data> res;
  15.    
  16.     for (int i = 0; i < 100; ++i) {
  17.         //1
  18.         in >> temp.n >> temp.pr_c >> temp.epr >> temp.pr_r >> temp.kim >> temp.dov >> temp.rbv;
  19.         //2
  20.         in >> temp.time_to_mp >> temp.rel_v >> temp.beta_ast >> temp.time_start_homing;
  21.         //3
  22.         in >> temp.mis_coord_n.x >> temp.mis_coord_n.y >> temp.mis_coord_n.z >> temp.mis_v_proj_n.x >> temp.mis_v_proj_n.y >> temp.mis_v_proj_n.z;
  23.         //4
  24.         in >> temp.yaw_angle >> temp.pitch_angle >> temp.bank_angle >> temp.angle_of_attack >> temp.flow_angle;
  25.         //5
  26.         in >> temp.v_obj >> temp.path_obj >> temp.pitch_obj >> temp.coord_n_obj.x >> temp.coord_n_obj.y >> temp.coord_n_obj.z;
  27.         //6
  28.         in >> temp.proj_mp_miss.x >> temp.proj_mp_miss.y >> temp.proj_mp_miss.z >> temp.rel_v_n >> temp.tau_kin;
  29.         //7
  30.         in >> temp.nc_y >> temp.nc_z >> temp.t_dov >> temp.t_bv >> temp.t_sbv;
  31.         //8
  32.         in >> temp.proj_nsm_miss.x >> temp.proj_nsm_miss.y >> temp.proj_nsm_miss.z >> temp.delta_V01 >> temp.delta_V02 >> temp.beta_y;
  33.         //9
  34.         in >> temp.from_n_to_apa.c11 >> temp.from_n_to_apa.c12 >> temp.from_n_to_apa.c13 >> temp.proj_dov_miss.x >> temp.proj_dov_miss.y >> temp.proj_dov_miss.z;
  35.         //10
  36.         in >> temp.bank >> temp.pitch >> temp.ant_course >> temp.delta_gamma.inf >> temp.delta_gamma.exec >> temp.delta_gamma.sum;
  37.         //11
  38.         in >> temp.from_n_to_apa.c21 >> temp.from_n_to_apa.c22 >> temp.from_n_to_apa.c23 >> temp.from_n_to_apa.c31 >> temp.from_n_to_apa.c32 >> temp.from_n_to_apa.c33;
  39.  
  40.         res.push_back(temp);
  41.     }
  42.     return res;
  43. }
  44.  
  45. missile_data MakeDataMissile(raw_data T) {
  46.     missile_data res;
  47.  
  48.     res.coord_n.x = T.mis_coord_n.x;
  49.     res.coord_n.y = T.mis_coord_n.y;
  50.     res.coord_n.z = T.mis_coord_n.z;
  51.  
  52.     res.v_proj_n.x = T.mis_v_proj_n.x;
  53.     res.v_proj_n.y = T.mis_v_proj_n.y;
  54.     res.v_proj_n.z = T.mis_v_proj_n.z;
  55.  
  56.     res.yaw_angle = T.yaw_angle;
  57.     res.pitch_angle = T.pitch_angle;
  58.  
  59.     res.r = 0.5;
  60.  
  61.     return res;
  62. }
  63.  
  64. target_data ModifyCoords(target_data T, missile_data M) {
  65.     T.coord_n_obj -= M.coord_n;
  66.     return T;
  67. }
  68.  
  69. target_data MakeDataTarget(raw_data T) {
  70.     target_data res;
  71.     coordinates basis_x, basis_y, basis_z;
  72.  
  73.     res.coord_n_obj = T.coord_n_obj;
  74.     res.path_obj = T.path_obj;
  75.     res.pitch_obj = T.pitch_obj;
  76.     res.v_obj = 69.44;
  77.  
  78.     basis_x.x = 1.0;
  79.     basis_x.y = 0.0;
  80.     basis_x.z = 0.0;
  81.  
  82.     basis_y.x = 0.0;
  83.     basis_y.y = 1.0;
  84.     basis_y.z = 0.0;
  85.  
  86.     basis_z.x = 0.0;
  87.     basis_z.y = 0.0;
  88.     basis_z.z = 1.0;
  89.  
  90.     basis_x = MakeRotation(basis_x, res.path_obj, res.pitch_obj);
  91.     basis_y = MakeRotation(basis_y, res.path_obj, res.pitch_obj);
  92.     basis_z = MakeRotation(basis_z, res.path_obj, res.pitch_obj);
  93.  
  94.     res.basis_x = basis_x;
  95.     res.basis_y = basis_y;
  96.     res.basis_z = basis_z;
  97.  
  98.     return res;
  99. }
  100.  
  101. #endif
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement