Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void camera_3d::update()
- {
- kv_vector_ = vector_n_ * (1 / vector_n_.norm());
- iv_vector_ = vector_t_.vector_product(vector_n_) * (1 / vector_t_.vector_product(vector_n_).norm());
- jv_vector_ = kv_vector_.vector_product(iv_vector_);
- const auto world_to_view = new matrix<double>(std::vector<std::vector<double>>{
- {iv_vector_.x(), iv_vector_.y(), iv_vector_.z(), -point_ov_.scalar_product(iv_vector_)},
- { jv_vector_.x(), jv_vector_.y(), jv_vector_.z(), -point_ov_.scalar_product(jv_vector_) },
- { kv_vector_.x(), kv_vector_.y(), kv_vector_.z(), -point_ov_.scalar_product(kv_vector_) },
- { 0, 0, 0, 1 }
- });
- matrix<double>* view_to_projection;
- if (f_ > 1000)
- {
- view_to_projection = new matrix<double>(std::vector<std::vector<double>>{
- {1, 0, 0, 0},
- { 0, 1, 0, 0 },
- { 0, 0, 0, 1 }
- });
- }
- else
- {
- view_to_projection = new matrix<double>(std::vector<std::vector<double>>{
- {1, 0, 0, 0},
- { 0, 1, 0, 0 },
- { 0, 0, -1 / f_, 1 }
- });
- }
- world_to_projection_matrix_ = *view_to_projection * *world_to_view;
- }
Add Comment
Please, Sign In to add comment