Blender V4.3
BKE_tracking.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11#include "BLI_sys_types.h"
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17struct Camera;
18struct ImBuf;
19struct ListBase;
20struct MovieClipUser;
21struct MovieDistortion;
23struct MovieTracking;
30struct Object;
31struct Scene;
32struct bGPDlayer;
33struct rcti;
34
35/* --------------------------------------------------------------------
36 * Common types and constants.
37 */
38
47
48/* --------------------------------------------------------------------
49 * Common functions.
50 */
51
58void BKE_tracking_free(struct MovieTracking *tracking);
62void BKE_tracking_copy(struct MovieTracking *tracking_dst,
63 const struct MovieTracking *tracking_src,
64 int flag);
65
70void BKE_tracking_settings_init(struct MovieTracking *tracking);
71
72/* Matrices for constraints and drawing. */
73
78void BKE_tracking_get_camera_object_matrix(const struct Object *camera_object, float mat[4][4]);
86 struct MovieTrackingObject *tracking_object,
87 int framenr,
88 int winx,
89 int winy,
90 float mat[4][4]);
91
92/* --------------------------------------------------------------------
93 * Clipboard.
94 */
95
104 struct MovieTrackingObject *tracking_object);
115 struct MovieTrackingObject *tracking_object);
116
117/* **** Track **** */
118
125 struct ListBase *tracks_list);
136 struct ListBase *tracksbase,
137 float x,
138 float y,
139 int framenr,
140 int width,
141 int height);
151void BKE_tracking_track_unique_name(struct ListBase *tracksbase, struct MovieTrackingTrack *track);
159
165 int *r_first_frame,
166 int *r_last_frame);
167
172 int num_tracks,
173 int *r_first_frame,
174 int *r_last_frame);
175
178
184 struct MovieTracking *tracking, int *r_num_tracks);
185
192void BKE_tracking_track_flag_set(struct MovieTrackingTrack *track, int area, int flag);
199void BKE_tracking_track_flag_clear(struct MovieTrackingTrack *track, int area, int flag);
200
206bool BKE_tracking_track_has_marker_at_frame(struct MovieTrackingTrack *track, int framenr);
213
219typedef enum eTrackClearAction {
220 /* Clear path from `ref_frame+1` up to the. */
222 /* Clear path from the beginning up to `ref_frame-1`. */
224 /* Only marker at frame `ref_frame` will remain. */
228 int ref_frame,
229 eTrackClearAction action);
230
231void BKE_tracking_tracks_join(struct MovieTracking *tracking,
232 struct MovieTrackingTrack *dst_track,
233 struct MovieTrackingTrack *src_track);
234
236 /*const*/ struct MovieTrackingTrack **src_tracks,
237 int num_src_tracks);
238
240 struct MovieTracking *tracking, int selection_index, struct ListBase **r_tracksbase);
241
242float *BKE_tracking_track_get_mask(int frame_width,
243 int frame_height,
244 const struct MovieTrackingTrack *track,
245 const struct MovieTrackingMarker *marker);
246
248 struct MovieTrackingTrack *track,
249 struct MovieTrackingMarker *marker);
250
251/* --------------------------------------------------------------------
252 * Selection.
253 */
254
258void BKE_tracking_track_select(struct ListBase *tracksbase,
259 struct MovieTrackingTrack *track,
260 int area,
261 bool extend);
262void BKE_tracking_track_deselect(struct MovieTrackingTrack *track, int area);
263void BKE_tracking_tracks_deselect_all(struct ListBase *tracksbase);
264
265/* --------------------------------------------------------------------
266 * Marker.
267 */
268
270 struct MovieTrackingMarker *marker);
272
284
292
302
315 int framenr);
317 int framenr);
318
329 int framenr,
330 struct MovieTrackingMarker *r_marker);
331
333 float min[2],
334 float max[2]);
335
337 float framenr,
338 float pos[2]);
339
340/* --------------------------------------------------------------------
341 * Plane track.
342 */
343
348 struct ListBase *plane_tracks_base,
349 struct ListBase *tracks,
350 int framenr);
351void BKE_tracking_plane_track_unique_name(struct ListBase *plane_tracks_base,
352 struct MovieTrackingPlaneTrack *plane_track);
360
362 int framenr);
364 struct MovieTrackingPlaneTrack *plane_track, int framenr);
365
366void BKE_tracking_plane_tracks_deselect_all(struct ListBase *plane_tracks_base);
367
369 struct MovieTrackingTrack *track);
371 struct MovieTrackingTrack *track);
372
374 struct MovieTrackingTrack *track);
375
377 struct MovieTrackingTrack *old_track,
378 struct MovieTrackingTrack *new_track);
380 struct MovieTrackingTrack *old_track,
381 struct MovieTrackingTrack *new_track);
382
383/* --------------------------------------------------------------------
384 * Plane marker.
385 */
386
388 struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingPlaneMarker *plane_marker);
390
396 struct MovieTrackingPlaneTrack *plane_track, int framenr);
402 struct MovieTrackingPlaneTrack *plane_track, int framenr);
407 struct MovieTrackingPlaneTrack *plane_track, int framenr);
409 float framenr,
410 float corners[4][2]);
411
412/* --------------------------------------------------------------------
413 * Object.
414 */
415
417 const char *name);
418bool BKE_tracking_object_delete(struct MovieTracking *tracking,
419 struct MovieTrackingObject *tracking_object);
420
422 struct MovieTrackingObject *tracking_object);
423
425 const char *name);
426
429
430/* Find point track with the given name in the tracking object.
431 * If such track does not exist NULL is returned. */
433 struct MovieTrackingObject *tracking_object, const char *name);
434
435/* Find plane track with the given name in the tracking object.
436 * If such track does not exist NULL is returned. */
438 struct MovieTrackingObject *tracking_object, const char *name);
439
440/* --------------------------------------------------------------------
441 * Camera.
442 */
443
448 struct MovieTracking *tracking, int winx, int winy, float *shiftx, float *shifty);
450 struct Scene *scene,
451 struct Camera *camera,
452 int width,
453 int height);
454
456 struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object, int framenr);
458 struct MovieTrackingObject *tracking_object,
459 float framenr,
460 float mat[4][4]);
461
462/* Access the principal point in pixels space. */
464 float r_principal_point_pixel[2]);
466 const float principal_point_pixel[2]);
467
468/* Compares distortion related parameters of camera. Ideally, this implementation will be
469 * abstracted away in the future, but for now, one needs to be careful about it and handle any
470 * extra parameters of distortions models. */
472 const struct MovieTrackingCamera *b);
473/* Hashes distortion related parameters of camera. Ideally, this implementation will be
474 * abstracted away in the future, but for now, one needs to be careful about it and handle any
475 * extra parameters of distortions models. */
477
478/* --------------------------------------------------------------------
479 * (Un)distortion.
480 */
481
483 int calibration_width,
484 int calibration_height);
485void BKE_tracking_distortion_update(struct MovieDistortion *distortion,
486 struct MovieTracking *tracking,
487 int calibration_width,
488 int calibration_height);
489void BKE_tracking_distortion_set_threads(struct MovieDistortion *distortion, int threads);
491struct ImBuf *BKE_tracking_distortion_exec(struct MovieDistortion *distortion,
492 struct MovieTracking *tracking,
493 struct ImBuf *ibuf,
494 int width,
495 int height,
496 float overscan,
497 bool undistort);
499 const float co[2],
500 float r_co[2]);
502 const float co[2],
503 float r_co[2]);
504void BKE_tracking_distortion_free(struct MovieDistortion *distortion);
505
506void BKE_tracking_distort_v2(struct MovieTracking *tracking,
507 int image_width,
508 int image_height,
509 const float co[2],
510 float r_co[2]);
511void BKE_tracking_undistort_v2(struct MovieTracking *tracking,
512 int image_width,
513 int image_height,
514 const float co[2],
515 float r_co[2]);
516
517struct ImBuf *BKE_tracking_undistort_frame(struct MovieTracking *tracking,
518 struct ImBuf *ibuf,
519 int calibration_width,
520 int calibration_height,
521 float overscan);
522struct ImBuf *BKE_tracking_distort_frame(struct MovieTracking *tracking,
523 struct ImBuf *ibuf,
524 int calibration_width,
525 int calibration_height,
526 float overscan);
527
529 int image_width,
530 int image_height,
531 const struct rcti *rect,
532 bool undistort,
533 float r_delta[2]);
534
535/* --------------------------------------------------------------------
536 * Image sampling.
537 */
538
539struct ImBuf *BKE_tracking_sample_pattern(int frame_width,
540 int frame_height,
541 const struct ImBuf *search_ib,
542 const struct MovieTrackingTrack *track,
543 const struct MovieTrackingMarker *marker,
544 bool from_anchor,
545 bool use_mask,
546 int num_samples_x,
547 int num_samples_y,
548 float pos[2]);
549struct ImBuf *BKE_tracking_get_pattern_imbuf(const struct ImBuf *ibuf,
550 const struct MovieTrackingTrack *track,
551 const struct MovieTrackingMarker *marker,
552 bool anchored,
553 bool disable_channels);
554struct ImBuf *BKE_tracking_get_search_imbuf(const struct ImBuf *ibuf,
555 const struct MovieTrackingTrack *track,
556 const struct MovieTrackingMarker *marker,
557 bool anchored,
558 bool disable_channels);
559
560/* Create a new image buffer which consists of pixels which the plane marker "sees".
561 * The function will choose best image resolution based on the plane marker size. */
562struct ImBuf *BKE_tracking_get_plane_imbuf(const struct ImBuf *frame_ibuf,
563 const struct MovieTrackingPlaneMarker *plane_marker);
564
571 struct ImBuf *ibuf, bool disable_red, bool disable_green, bool disable_blue, bool grayscale);
572
573/* --------------------------------------------------------------------
574 * 2D tracking.
575 */
576
582void BKE_tracking_refine_marker(struct MovieClip *clip,
583 struct MovieTrackingTrack *track,
584 struct MovieTrackingMarker *marker,
585 bool backwards);
586
587/* --------------------------------------------------------------------
588 * 2D tracking using auto-track pipeline.
589 */
590
592 struct MovieClipUser *user,
593 bool is_backwards);
595bool BKE_autotrack_context_step(struct AutoTrackContext *context);
596void BKE_autotrack_context_sync(struct AutoTrackContext *context);
597void BKE_autotrack_context_sync_user(struct AutoTrackContext *context, struct MovieClipUser *user);
599void BKE_autotrack_context_free(struct AutoTrackContext *context);
600
601/* --------------------------------------------------------------------
602 * Plane tracking.
603 */
604
609 int start_frame);
611 struct MovieTrackingPlaneTrack *plane_track, int start_frame);
612void BKE_tracking_homography_between_two_quads(/*const*/ float reference_corners[4][2],
613 /*const*/ float corners[4][2],
614 float H[3][3]);
615
616/* --------------------------------------------------------------------
617 * Camera solving.
618 */
619
624 struct MovieTrackingObject *tracking_object,
625 char *error_msg,
626 int error_size);
627
634 struct MovieClip *clip,
635 struct MovieTrackingObject *tracking_object,
636 int keyframe1,
637 int keyframe2,
638 int width,
639 int height);
655 bool *stop,
656 bool *do_update,
657 float *progress,
658 char *stats_message,
659 int message_size);
664 struct MovieTracking *tracking);
665
667 const char *error_message);
668
670 const struct MovieReconstructContext *context);
671
675void BKE_tracking_reconstruction_scale(struct MovieTracking *tracking, float scale[3]);
676
677/* **** Feature detection **** */
678
682void BKE_tracking_detect_fast(struct MovieTracking *tracking,
683 struct ListBase *tracksbase,
684 struct ImBuf *ibuf,
685 int framenr,
686 int margin,
687 int min_trackness,
688 int min_distance,
689 struct bGPDlayer *layer,
690 bool place_outside_layer);
691
695void BKE_tracking_detect_harris(struct MovieTracking *tracking,
696 struct ListBase *tracksbase,
697 struct ImBuf *ibuf,
698 int framenr,
699 int margin,
700 float threshold,
701 int min_distance,
702 struct bGPDlayer *layer,
703 bool place_outside_layer);
704
705/* --------------------------------------------------------------------
706 * 2D stabilization.
707 */
708
727 int framenr,
728 int width,
729 int height,
730 float translation[2],
731 float *scale,
732 float *angle);
740struct ImBuf *BKE_tracking_stabilize_frame(struct MovieClip *clip,
741 int framenr,
742 struct ImBuf *ibuf,
743 float translation[2],
744 float *scale,
745 float *angle);
758 int height,
759 float aspect,
760 float translation[2],
761 float scale,
762 float angle,
763 float mat[4][4]);
764
765/* Dope-sheet */
766
774void BKE_tracking_dopesheet_update(struct MovieTracking *tracking);
775
776/* --------------------------------------------------------------------
777 * Query and search.
778 */
779
784 const struct MovieTracking *tracking, const struct MovieTrackingTrack *track);
786 const struct MovieTracking *tracking, const struct MovieTrackingPlaneTrack *plane_track);
787
789 const struct MovieTrackingTrack *track,
790 char *rna_path,
791 size_t rna_path_maxncpy);
793 const struct MovieTrackingTrack *track,
794 char *rna_path,
795 size_t rna_path_maxncpy);
797 const struct MovieTrackingPlaneTrack *plane_track,
798 char *rna_path,
799 size_t rna_path_len);
801 const struct MovieTracking *tracking,
802 const struct MovieTrackingPlaneTrack *plane_track,
803 char *rna_path,
804 size_t rna_path_maxncpy);
805
806/* --------------------------------------------------------------------
807 * Utility macros.
808 */
809
810#define TRACK_SELECTED(track) \
811 ((track)->flag & SELECT || (track)->pat_flag & SELECT || (track)->search_flag & SELECT)
812
813#define TRACK_AREA_SELECTED(track, area) \
814 ((area) == TRACK_AREA_POINT ? \
815 (track)->flag & SELECT : \
816 ((area) == TRACK_AREA_PAT ? (track)->pat_flag & SELECT : (track)->search_flag & SELECT))
817
818#define TRACK_VIEW_SELECTED(sc, track) \
819 ((((track)->flag & TRACK_HIDDEN) == 0) && \
820 (TRACK_AREA_SELECTED(track, TRACK_AREA_POINT) || \
821 (((sc)->flag & SC_SHOW_MARKER_PATTERN) && TRACK_AREA_SELECTED(track, TRACK_AREA_PAT)) || \
822 (((sc)->flag & SC_SHOW_MARKER_SEARCH) && TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH))))
823
824#define PLANE_TRACK_VIEW_SELECTED(plane_track) \
825 ((((plane_track)->flag & PLANE_TRACK_HIDDEN) == 0) && ((plane_track)->flag & SELECT))
826
827#ifdef __cplusplus
828}
829#endif
struct MovieTrackingObject * BKE_tracking_object_get_camera(const struct MovieTracking *tracking)
struct MovieTrackingTrack * BKE_tracking_track_get_for_selection_index(struct MovieTracking *tracking, int selection_index, struct ListBase **r_tracksbase)
Definition tracking.cc:1025
void BKE_tracking_track_path_clear(struct MovieTrackingTrack *track, int ref_frame, eTrackClearAction action)
Definition tracking.cc:776
void BKE_tracking_plane_tracks_remove_point_track(struct MovieTracking *tracking, struct MovieTrackingTrack *track)
Definition tracking.cc:1675
void BKE_tracking_plane_track_free(struct MovieTrackingPlaneTrack *plane_track)
Definition tracking.cc:1625
void BKE_tracking_marker_clamp_pattern_position(struct MovieTrackingMarker *marker)
Definition tracking.cc:1308
void BKE_tracking_get_rna_path_prefix_for_plane_track(const struct MovieTracking *tracking, const struct MovieTrackingPlaneTrack *plane_track, char *rna_path, size_t rna_path_maxncpy)
void BKE_tracking_track_deselect(struct MovieTrackingTrack *track, int area)
Definition tracking.cc:1217
void BKE_tracking_plane_track_replace_point_track(struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingTrack *old_track, struct MovieTrackingTrack *new_track)
Definition tracking.cc:1691
struct MovieTrackingPlaneTrack * BKE_tracking_plane_track_add(struct MovieTracking *tracking, struct ListBase *plane_tracks_base, struct ListBase *tracks, int framenr)
Definition tracking.cc:1542
bool BKE_tracking_plane_track_has_marker_at_frame(struct MovieTrackingPlaneTrack *plane_track, int framenr)
bool BKE_tracking_plane_track_remove_point_track(struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingTrack *track)
Definition tracking.cc:1652
struct ImBuf * BKE_tracking_distort_frame(struct MovieTracking *tracking, struct ImBuf *ibuf, int calibration_width, int calibration_height, float overscan)
Definition tracking.cc:2493
struct MovieTrackingPlaneMarker * BKE_tracking_plane_marker_insert(struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingPlaneMarker *plane_marker)
Definition tracking.cc:1719
struct AutoTrackContext * BKE_autotrack_context_new(struct MovieClip *clip, struct MovieClipUser *user, bool is_backwards)
void BKE_tracking_clipboard_copy_tracks(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object)
Definition tracking.cc:460
void BKE_tracking_get_camera_object_matrix(const struct Object *camera_object, float mat[4][4])
void BKE_tracking_detect_harris(struct MovieTracking *tracking, struct ListBase *tracksbase, struct ImBuf *ibuf, int framenr, int margin, float threshold, int min_distance, struct bGPDlayer *layer, bool place_outside_layer)
void BKE_tracking_reconstruction_context_free(struct MovieReconstructContext *context)
void BKE_tracking_plane_marker_delete(struct MovieTrackingPlaneTrack *plane_track, int framenr)
Definition tracking.cc:1760
struct MovieTrackingPlaneMarker * BKE_tracking_plane_marker_get_exact(struct MovieTrackingPlaneTrack *plane_track, int framenr)
Definition tracking.cc:1837
void BKE_tracking_stabilization_data_to_mat4(int width, int height, float aspect, float translation[2], float scale, float angle, float mat[4][4])
void BKE_tracking_reconstruction_solve(struct MovieReconstructContext *context, bool *stop, bool *do_update, float *progress, char *stats_message, int message_size)
void BKE_autotrack_context_finish(struct AutoTrackContext *context)
struct MovieTrackingTrack * BKE_tracking_track_duplicate(struct MovieTrackingTrack *track)
Definition tracking.cc:566
void BKE_tracking_retrack_plane_from_existing_motion_at_segment(struct MovieTrackingPlaneTrack *plane_track, int start_frame)
void BKE_tracking_reconstruction_report_error_message(struct MovieReconstructContext *context, const char *error_message)
struct MovieTrackingPlaneTrack * BKE_tracking_object_find_plane_track_with_name(struct MovieTrackingObject *tracking_object, const char *name)
Definition tracking.cc:2005
struct MovieTrackingMarker * BKE_tracking_marker_ensure(struct MovieTrackingTrack *track, int framenr)
Definition tracking.cc:1402
void BKE_tracking_track_first_last_frame_get(const struct MovieTrackingTrack *track, int *r_first_frame, int *r_last_frame)
void BKE_tracking_camera_principal_point_pixel_set(struct MovieClip *clip, const float principal_point_pixel[2])
Definition tracking.cc:2186
void BKE_tracking_settings_init(struct MovieTracking *tracking)
Definition tracking.cc:329
void BKE_tracking_track_flag_clear(struct MovieTrackingTrack *track, int area, int flag)
Definition tracking.cc:692
bool BKE_autotrack_context_step(struct AutoTrackContext *context)
struct MovieTrackingObject * BKE_tracking_object_get_named(struct MovieTracking *tracking, const char *name)
Definition tracking.cc:1966
void BKE_tracking_reconstruction_scale(struct MovieTracking *tracking, float scale[3])
void BKE_tracking_disable_channels(struct ImBuf *ibuf, bool disable_red, bool disable_green, bool disable_blue, bool grayscale)
Definition tracking.cc:2876
void BKE_tracking_tracks_average(struct MovieTrackingTrack *dst_track, struct MovieTrackingTrack **src_tracks, int num_src_tracks)
Definition tracking.cc:1013
struct MovieTrackingTrack * BKE_tracking_track_add_empty(struct MovieTracking *tracking, struct ListBase *tracks_list)
Definition tracking.cc:501
bool BKE_tracking_reconstruction_finish(struct MovieReconstructContext *context, struct MovieTracking *tracking)
void BKE_tracking_plane_tracks_deselect_all(struct ListBase *plane_tracks_base)
Definition tracking.cc:1634
eTrackArea
@ TRACK_AREA_POINT
@ TRACK_AREA_ALL
@ TRACK_AREA_PAT
@ TRACK_AREA_SEARCH
@ TRACK_AREA_NONE
void BKE_tracking_track_flag_set(struct MovieTrackingTrack *track, int area, int flag)
Definition tracking.cc:675
void BKE_tracking_plane_track_unique_name(struct ListBase *plane_tracks_base, struct MovieTrackingPlaneTrack *plane_track)
Definition tracking.cc:1614
void BKE_tracking_distortion_undistort_v2(struct MovieDistortion *distortion, const float co[2], float r_co[2])
Definition tracking.cc:2402
float BKE_tracking_track_get_weight_for_marker(struct MovieClip *clip, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker)
Definition tracking.cc:1172
bool BKE_tracking_track_has_enabled_marker_at_frame(struct MovieTrackingTrack *track, int framenr)
Definition tracking.cc:714
void BKE_tracking_clipboard_paste_tracks(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object)
Definition tracking.cc:481
struct ImBuf * BKE_tracking_sample_pattern(int frame_width, int frame_height, const struct ImBuf *search_ib, const struct MovieTrackingTrack *track, const struct MovieTrackingMarker *marker, bool from_anchor, bool use_mask, int num_samples_x, int num_samples_y, float pos[2])
void BKE_tracking_dopesheet_update(struct MovieTracking *tracking)
Definition tracking.cc:3418
void BKE_tracking_track_unique_name(struct ListBase *tracksbase, struct MovieTrackingTrack *track)
Definition tracking.cc:586
void BKE_tracking_tracks_join(struct MovieTracking *tracking, struct MovieTrackingTrack *dst_track, struct MovieTrackingTrack *src_track)
Definition tracking.cc:793
void BKE_tracking_get_rna_path_for_track(const struct MovieTracking *tracking, const struct MovieTrackingTrack *track, char *rna_path, size_t rna_path_maxncpy)
struct ImBuf * BKE_tracking_stabilize_frame(struct MovieClip *clip, int framenr, struct ImBuf *ibuf, float translation[2], float *scale, float *angle)
void BKE_tracking_clipboard_free(void)
Definition tracking.cc:443
void BKE_autotrack_context_free(struct AutoTrackContext *context)
struct MovieDistortion * BKE_tracking_distortion_copy(struct MovieDistortion *distortion)
Definition tracking.cc:2313
struct MovieTrackingMarker * BKE_tracking_marker_get(struct MovieTrackingTrack *track, int framenr)
Definition tracking.cc:1358
void BKE_tracking_marker_clamp_search_position(struct MovieTrackingMarker *marker)
Definition tracking.cc:1338
struct ImBuf * BKE_tracking_undistort_frame(struct MovieTracking *tracking, struct ImBuf *ibuf, int calibration_width, int calibration_height, float overscan)
Definition tracking.cc:2471
void BKE_autotrack_context_sync_user(struct AutoTrackContext *context, struct MovieClipUser *user)
void BKE_tracking_free(struct MovieTracking *tracking)
Definition tracking.cc:160
struct MovieTrackingObject * BKE_tracking_object_get_active(const struct MovieTracking *tracking)
bool BKE_tracking_object_delete(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object)
Definition tracking.cc:1926
bool BKE_tracking_plane_track_has_enabled_marker_at_frame(struct MovieTrackingPlaneTrack *plane_track, int framenr)
void BKE_tracking_plane_tracks_replace_point_track(struct MovieTracking *tracking, struct MovieTrackingTrack *old_track, struct MovieTrackingTrack *new_track)
Definition tracking.cc:1703
void BKE_tracking_camera_to_blender(struct MovieTracking *tracking, struct Scene *scene, struct Camera *camera, int width, int height)
Definition tracking.cc:2115
void BKE_tracking_refine_marker(struct MovieClip *clip, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker, bool backwards)
void BKE_tracking_dopesheet_tag_update(struct MovieTracking *tracking)
Definition tracking.cc:3411
struct MovieTrackingMarker * BKE_tracking_marker_get_exact(struct MovieTrackingTrack *track, int framenr)
Definition tracking.cc:1391
void BKE_tracking_copy(struct MovieTracking *tracking_dst, const struct MovieTracking *tracking_src, int flag)
void BKE_tracking_track_free(struct MovieTrackingTrack *track)
Definition tracking.cc:596
const char * BKE_tracking_reconstruction_error_message_get(const struct MovieReconstructContext *context)
struct ImBuf * BKE_tracking_distortion_exec(struct MovieDistortion *distortion, struct MovieTracking *tracking, struct ImBuf *ibuf, int width, int height, float overscan, bool undistort)
Definition tracking.cc:2324
void BKE_tracking_track_plane_from_existing_motion(struct MovieTrackingPlaneTrack *plane_track, int start_frame)
void BKE_tracking_tracks_deselect_all(struct ListBase *tracksbase)
Definition tracking.cc:1222
void BKE_tracking_track_select(struct ListBase *tracksbase, struct MovieTrackingTrack *track, int area, bool extend)
Definition tracking.cc:1190
eTrackClearAction
@ TRACK_CLEAR_ALL
@ TRACK_CLEAR_REMAINED
@ TRACK_CLEAR_UPTO
void BKE_tracking_max_distortion_delta_across_bound(struct MovieTracking *tracking, int image_width, int image_height, const struct rcti *rect, bool undistort, float r_delta[2])
struct MovieTrackingTrack * BKE_tracking_track_add(struct MovieTracking *tracking, struct ListBase *tracksbase, float x, float y, int framenr, int width, int height)
Definition tracking.cc:525
void BKE_tracking_tracks_first_last_frame_minmax(struct MovieTrackingTrack **tracks, int num_tracks, int *r_first_frame, int *r_last_frame)
Definition tracking.cc:613
void BKE_tracking_distort_v2(struct MovieTracking *tracking, int image_width, int image_height, const float co[2], float r_co[2])
Definition tracking.cc:2421
bool BKE_tracking_reconstruction_check(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object, char *error_msg, int error_size)
void BKE_tracking_distortion_set_threads(struct MovieDistortion *distortion, int threads)
Definition tracking.cc:2308
struct ImBuf * BKE_tracking_get_pattern_imbuf(const struct ImBuf *ibuf, const struct MovieTrackingTrack *track, const struct MovieTrackingMarker *marker, bool anchored, bool disable_channels)
bool BKE_tracking_track_has_marker_at_frame(struct MovieTrackingTrack *track, int framenr)
Definition tracking.cc:709
void BKE_tracking_distortion_distort_v2(struct MovieDistortion *distortion, const float co[2], float r_co[2])
Definition tracking.cc:2384
struct MovieTrackingPlaneMarker * BKE_tracking_plane_marker_ensure(struct MovieTrackingPlaneTrack *plane_track, int framenr)
Definition tracking.cc:1849
struct MovieTrackingObject * BKE_tracking_find_object_for_plane_track(const struct MovieTracking *tracking, const struct MovieTrackingPlaneTrack *plane_track)
void BKE_tracking_stabilization_data_get(struct MovieClip *clip, int framenr, int width, int height, float translation[2], float *scale, float *angle)
bool BKE_tracking_camera_distortion_equal(const struct MovieTrackingCamera *a, const struct MovieTrackingCamera *b)
struct ImBuf * BKE_tracking_get_plane_imbuf(const struct ImBuf *frame_ibuf, const struct MovieTrackingPlaneMarker *plane_marker)
void BKE_tracking_camera_principal_point_pixel_get(struct MovieClip *clip, float r_principal_point_pixel[2])
Definition tracking.cc:2173
struct MovieTrackingObject * BKE_tracking_object_add(struct MovieTracking *tracking, const char *name)
Definition tracking.cc:1897
struct ImBuf * BKE_tracking_get_search_imbuf(const struct ImBuf *ibuf, const struct MovieTrackingTrack *track, const struct MovieTrackingMarker *marker, bool anchored, bool disable_channels)
void BKE_tracking_object_unique_name(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object)
Definition tracking.cc:1956
float * BKE_tracking_track_get_mask(int frame_width, int frame_height, const struct MovieTrackingTrack *track, const struct MovieTrackingMarker *marker)
struct MovieTrackingTrack ** BKE_tracking_selected_tracks_in_active_object(struct MovieTracking *tracking, int *r_num_tracks)
Definition tracking.cc:646
void BKE_tracking_get_rna_path_for_plane_track(const struct MovieTracking *tracking, const struct MovieTrackingPlaneTrack *plane_track, char *rna_path, size_t rna_path_len)
void BKE_tracking_distortion_free(struct MovieDistortion *distortion)
Definition tracking.cc:2414
uint64_t BKE_tracking_camera_distortion_hash(const struct MovieTrackingCamera *camera)
void BKE_tracking_marker_clamp_search_size(struct MovieTrackingMarker *marker)
Definition tracking.cc:1327
int BKE_tracking_count_selected_tracks_in_active_object(struct MovieTracking *tracking)
Definition tracking.cc:640
void BKE_autotrack_context_start(struct AutoTrackContext *context)
void BKE_tracking_distortion_update(struct MovieDistortion *distortion, struct MovieTracking *tracking, int calibration_width, int calibration_height)
Definition tracking.cc:2287
void BKE_tracking_plane_marker_get_subframe_corners(struct MovieTrackingPlaneTrack *plane_track, float framenr, float corners[4][2])
Definition tracking.cc:1866
void BKE_tracking_get_rna_path_prefix_for_track(const struct MovieTracking *tracking, const struct MovieTrackingTrack *track, char *rna_path, size_t rna_path_maxncpy)
bool BKE_tracking_clipboard_has_tracks(void)
Definition tracking.cc:476
void BKE_autotrack_context_sync(struct AutoTrackContext *context)
bool BKE_tracking_plane_track_has_point_track(struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingTrack *track)
Definition tracking.cc:1641
void BKE_tracking_marker_pattern_minmax(const struct MovieTrackingMarker *marker, float min[2], float max[2])
bool BKE_tracking_marker_get_interpolated(struct MovieTrackingTrack *track, int framenr, struct MovieTrackingMarker *r_marker)
Definition tracking.cc:1437
void BKE_tracking_camera_shift_get(struct MovieTracking *tracking, int winx, int winy, float *shiftx, float *shifty)
Definition tracking.cc:2102
struct MovieTrackingPlaneMarker * BKE_tracking_plane_marker_get(struct MovieTrackingPlaneTrack *plane_track, int framenr)
Definition tracking.cc:1791
struct MovieTrackingTrack * BKE_tracking_object_find_track_with_name(struct MovieTrackingObject *tracking_object, const char *name)
Definition tracking.cc:1993
struct MovieTrackingObject * BKE_tracking_find_object_for_track(const struct MovieTracking *tracking, const struct MovieTrackingTrack *track)
struct MovieDistortion * BKE_tracking_distortion_new(struct MovieTracking *tracking, int calibration_width, int calibration_height)
Definition tracking.cc:2263
struct MovieReconstructContext * BKE_tracking_reconstruction_context_new(struct MovieClip *clip, struct MovieTrackingObject *tracking_object, int keyframe1, int keyframe2, int width, int height)
void BKE_tracking_get_projection_matrix(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object, int framenr, int winx, int winy, float mat[4][4])
Definition tracking.cc:386
void BKE_tracking_marker_get_subframe_position(struct MovieTrackingTrack *track, float framenr, float pos[2])
Definition tracking.cc:1507
int BKE_tracking_count_selected_tracks_in_list(const struct ListBase *tracks_list)
void BKE_tracking_undistort_v2(struct MovieTracking *tracking, int image_width, int image_height, const float co[2], float r_co[2])
Definition tracking.cc:2448
void BKE_tracking_detect_fast(struct MovieTracking *tracking, struct ListBase *tracksbase, struct ImBuf *ibuf, int framenr, int margin, int min_trackness, int min_distance, struct bGPDlayer *layer, bool place_outside_layer)
struct MovieTrackingMarker * BKE_tracking_marker_insert(struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker)
Definition tracking.cc:1235
struct MovieReconstructedCamera * BKE_tracking_camera_get_reconstructed(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object, int framenr)
Definition tracking.cc:2133
void BKE_tracking_homography_between_two_quads(float reference_corners[4][2], float corners[4][2], float H[3][3])
void BKE_tracking_marker_delete(struct MovieTrackingTrack *track, int framenr)
Definition tracking.cc:1281
void BKE_tracking_camera_get_reconstructed_interpolate(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object, float framenr, float mat[4][4])
Definition tracking.cc:2146
static constexpr int image_width
static constexpr int image_height
local_group_size(16, 16) .push_constant(Type b
#define H(x, y, z)
#define min(a, b)
Definition sort.c:32
unsigned __int64 uint64_t
Definition stdint.h:90
uint8_t flag
Definition wm_window.cc:138