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
10
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
static double angle(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2)
Definition IK_Math.h:125
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a or normal between camera
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
ListBase tracks
Definition tracking.cc:70
float max
uint8_t flag
Definition wm_window.cc:138