Files
dragonpilot/common/modeldata.h
Shane Smiskol 26064196d0 ui: smooth wide cam transition (#28277)
* horribly messy

* bit simpler

* is this right?

* simpler and should work?

* used to be int/frames, but added easing so treat as float

* end slow (start fast)

* little faster

* clean up

* not needed

* try ease in/ease out and fix

* remove debugging print

* fix

* revert to previous curve

* based on speed

* not right

* fix

* fix

* this kinda works

* Revert zoom by speed

Revert "this kinda works"

This reverts commit 48aa30b945148b8eb79fbe33eb58e3fc3a6a7009.

Revert "fix"

This reverts commit 4ff2d33486231727d7cd68d366342c2273e3a315.

Revert "fix"

This reverts commit 15b22f8e8284eb017000856abb05b5e8973a6c0e.

Revert "not right"

This reverts commit 378b9965e14250c57ed39e1976de60d89054c2c8.

Revert "based on speed"

This reverts commit 1f7bfa5d73a2dee3740096da64eda24b33288b51.

Revert "Revert "not right""

This reverts commit 1beeb402534a755208d19771eb4a2afdc69b8739.

* better curve

* revert

* use constants and fixes

* up here too

* feels more intuitive to make zoom_transition=1 be zoomed in

* rm line

* fix

* cmt

* better handling

* better name

* zoom if ANY other stream is requested

* Update selfdrive/ui/qt/widgets/cameraview.cc
2023-05-24 17:28:33 -07:00

50 lines
1.7 KiB
C++

#pragma once
#include <array>
#include "common/mat.h"
#include "system/hardware/hw.h"
const int TRAJECTORY_SIZE = 33;
const int LAT_MPC_N = 16;
const int LON_MPC_N = 32;
const float MIN_DRAW_DISTANCE = 10.0;
const float MAX_DRAW_DISTANCE = 100.0;
template <typename T, size_t size>
constexpr std::array<T, size> build_idxs(float max_val) {
std::array<T, size> result{};
for (int i = 0; i < size; ++i) {
result[i] = max_val * ((i / (double)(size - 1)) * (i / (double)(size - 1)));
}
return result;
}
constexpr auto T_IDXS = build_idxs<double, TRAJECTORY_SIZE>(10.0);
constexpr auto T_IDXS_FLOAT = build_idxs<float, TRAJECTORY_SIZE>(10.0);
constexpr auto X_IDXS = build_idxs<double, TRAJECTORY_SIZE>(192.0);
constexpr auto X_IDXS_FLOAT = build_idxs<float, TRAJECTORY_SIZE>(192.0);
const mat3 fcam_intrinsic_matrix = (mat3){{2648.0, 0.0, 1928.0 / 2,
0.0, 2648.0, 1208.0 / 2,
0.0, 0.0, 1.0}};
// tici ecam focal probably wrong? magnification is not consistent across frame
// Need to retrain model before this can be changed
const mat3 ecam_intrinsic_matrix = (mat3){{567.0, 0.0, 1928.0 / 2,
0.0, 567.0, 1208.0 / 2,
0.0, 0.0, 1.0}};
// zoom multiplier between cameras
const float ecam_to_fcam_zoom = fcam_intrinsic_matrix.v[0] / ecam_intrinsic_matrix.v[0];
static inline mat3 get_model_yuv_transform() {
float db_s = 1.0;
const mat3 transform = (mat3){{
1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0
}};
// Can this be removed since scale is 1?
return transform_scale_buffer(transform, db_s);
}