edward4324

update

Dec 29th, 2021 (edited)
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. void camera_3d::update()
  2. {
  3.  
  4.     kv_vector_ = vector_n_ * (1 / vector_n_.norm());
  5.     iv_vector_ = vector_t_.vector_product(vector_n_) * (1 / vector_t_.vector_product(vector_n_).norm());
  6.     jv_vector_ = kv_vector_.vector_product(iv_vector_);
  7.  
  8.     const auto world_to_view = new matrix<double>(std::vector<std::vector<double>>{
  9.         {iv_vector_.x(), iv_vector_.y(), iv_vector_.z(), -point_ov_.scalar_product(iv_vector_)},
  10.         { jv_vector_.x(), jv_vector_.y(), jv_vector_.z(), -point_ov_.scalar_product(jv_vector_) },
  11.         { kv_vector_.x(), kv_vector_.y(), kv_vector_.z(), -point_ov_.scalar_product(kv_vector_) },
  12.         { 0, 0, 0, 1 }
  13.     });
  14.  
  15.     matrix<double>* view_to_projection;
  16.     if (f_ > 1000)
  17.     {
  18.         view_to_projection = new matrix<double>(std::vector<std::vector<double>>{
  19.             {1, 0, 0, 0},
  20.             { 0, 1, 0, 0 },
  21.             { 0, 0, 0, 1 }
  22.         });
  23.     }
  24.     else
  25.     {
  26.         view_to_projection = new matrix<double>(std::vector<std::vector<double>>{
  27.             {1, 0, 0, 0},
  28.             { 0, 1, 0, 0 },
  29.             { 0, 0, -1 / f_, 1 }
  30.         });
  31.     }
  32.  
  33.     world_to_projection_matrix_ = *view_to_projection * *world_to_view;
  34.  
  35. }
  36.  
  37.  
Add Comment
Please, Sign In to add comment