35 int2 calibration_size)
36 : camera(camera),
size(
size), type(type), calibration_size(calibration_size)
61 &movie_clip->
tracking, calibration_size.x, calibration_size.y);
84 const int2 extended_size =
size +
int2(right_delta + left_delta, bottom_delta + top_delta);
108 distortion_grid_[texel.y *
int64_t(extended_size.x) + texel.x] = coordinates /
114 if (context.use_gpu()) {
138 map_.remove_if([](
auto item) {
return !item.value->needed; });
142 for (
auto &
value : map_.values()) {
143 value->needed =
false;
165 auto &distortion_grid = *map_.lookup_or_add_cb(
key, [&]() {
166 return std::make_unique<DistortionGrid>(context, movie_clip,
size, type, calibration_size);
169 distortion_grid.needed =
true;
170 return distortion_grid.result;
void BKE_movieclip_user_set_frame(struct MovieClipUser *user, int framenr)
void BKE_movieclip_get_size(struct MovieClip *clip, const struct MovieClipUser *user, int *r_width, int *r_height)
void BKE_tracking_distortion_undistort_v2(struct MovieDistortion *distortion, const float co[2], float r_co[2])
void BKE_tracking_distortion_distort_v2(struct MovieDistortion *distortion, const float co[2], float r_co[2])
bool BKE_tracking_camera_distortion_equal(const struct MovieTrackingCamera *a, const struct MovieTrackingCamera *b)
void BKE_tracking_distortion_free(struct MovieDistortion *distortion)
uint64_t BKE_tracking_camera_distortion_hash(const struct MovieTrackingCamera *camera)
struct MovieDistortion * BKE_tracking_distortion_new(struct MovieTracking *tracking, int calibration_width, int calibration_height)
void BKE_tracking_distortion_bounds_deltas(MovieDistortion *distortion, const int size[2], const int calibration_size[2], const bool undistort, int *r_right, int *r_left, int *r_bottom, int *r_top)
#define DNA_struct_default_get(struct_name)
void GPU_texture_update(GPUTexture *texture, eGPUDataFormat data_format, const void *data)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Result & get(Context &context, MovieClip *movie_clip, int2 size, DistortionType type, int frame_number)
MovieTrackingCamera camera
DistortionGridKey(const MovieTrackingCamera &camera, int2 size, DistortionType type, int2 calibration_size)
DistortionGrid(Context &context, MovieClip *movie_clip, int2 size, DistortionType type, int2 calibration_size)
void allocate_texture(Domain domain, bool from_pool=true)
void wrap_external(GPUTexture *texture)
bool operator==(const BokehKernelKey &a, const BokehKernelKey &b)
static int2 get_movie_clip_size(MovieClip *movie_clip, int frame_number)
void parallel_for(const int2 range, const Function &function)
T min(const T &a, const T &b)
uint64_t get_default_hash(const T &v, const Args &...args)
VecBase< int32_t, 2 > int2
VecBase< float, 2 > float2
unsigned __int64 uint64_t
struct MovieTracking tracking
MovieTrackingCamera camera