Blender  V3.3
Classes | Typedefs | Functions | Variables
tracking.c File Reference
#include <limits.h>
#include <math.h>
#include <memory.h>
#include <stddef.h>
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
#include "DNA_camera_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_movieclip_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_bitmap_draw_2d.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_math_base.h"
#include "BLI_string.h"
#include "BLI_string_utils.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_fcurve.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_movieclip.h"
#include "BKE_object.h"
#include "BKE_scene.h"
#include "BKE_tracking.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "libmv-capi.h"
#include "tracking_private.h"

Go to the source code of this file.

Classes

struct  MovieDistortion
 
struct  TrackMaskSetPixelData
 

Typedefs

typedef struct MovieDistortion MovieDistortion
 
typedef struct TrackMaskSetPixelData TrackMaskSetPixelData
 

Functions

static void tracking_tracks_free (ListBase *tracks)
 
static void tracking_plane_tracks_free (ListBase *plane_tracks)
 
static void tracking_reconstruction_free (MovieTrackingReconstruction *reconstruction)
 
static void tracking_object_free (MovieTrackingObject *object)
 
static void tracking_objects_free (ListBase *objects)
 
static void tracking_dopesheet_free (MovieTrackingDopesheet *dopesheet)
 
void BKE_tracking_free (MovieTracking *tracking)
 
static void tracking_tracks_copy (ListBase *tracks_dst, const ListBase *tracks_src, GHash *tracks_mapping, const int flag)
 
static void tracking_plane_tracks_copy (ListBase *plane_tracks_list_dst, const ListBase *plane_tracks_list_src, GHash *tracks_mapping, const int flag)
 
static void tracking_reconstruction_copy (MovieTrackingReconstruction *reconstruction_dst, const MovieTrackingReconstruction *reconstruction_src, const int UNUSED(flag))
 
static void tracking_stabilization_copy (MovieTrackingStabilization *stabilization_dst, const MovieTrackingStabilization *stabilization_src, const int UNUSED(flag))
 
static void tracking_object_copy (MovieTrackingObject *object_dst, const MovieTrackingObject *object_src, GHash *tracks_mapping, const int flag)
 
static void tracking_objects_copy (ListBase *objects_dst, const ListBase *objects_src, GHash *tracks_mapping, const int flag)
 
void BKE_tracking_copy (MovieTracking *tracking_dst, const MovieTracking *tracking_src, const int flag)
 
void BKE_tracking_settings_init (MovieTracking *tracking)
 
ListBaseBKE_tracking_get_active_tracks (MovieTracking *tracking)
 
ListBaseBKE_tracking_get_active_plane_tracks (MovieTracking *tracking)
 
MovieTrackingReconstructionBKE_tracking_get_active_reconstruction (MovieTracking *tracking)
 
void BKE_tracking_get_camera_object_matrix (Object *camera_object, float mat[4][4])
 
void BKE_tracking_get_projection_matrix (MovieTracking *tracking, MovieTrackingObject *object, int framenr, int winx, int winy, float mat[4][4])
 
void BKE_tracking_clipboard_free (void)
 
void BKE_tracking_clipboard_copy_tracks (MovieTracking *tracking, MovieTrackingObject *object)
 
bool BKE_tracking_clipboard_has_tracks (void)
 
void BKE_tracking_clipboard_paste_tracks (MovieTracking *tracking, MovieTrackingObject *object)
 
MovieTrackingTrackBKE_tracking_track_add_empty (MovieTracking *tracking, ListBase *tracks_list)
 
MovieTrackingTrackBKE_tracking_track_add (MovieTracking *tracking, ListBase *tracksbase, float x, float y, int framenr, int width, int height)
 
MovieTrackingTrackBKE_tracking_track_duplicate (MovieTrackingTrack *track)
 
void BKE_tracking_track_unique_name (ListBase *tracksbase, MovieTrackingTrack *track)
 
void BKE_tracking_track_free (MovieTrackingTrack *track)
 
void BKE_tracking_track_first_last_frame_get (const MovieTrackingTrack *track, int *r_first_frame, int *r_last_frame)
 
void BKE_tracking_tracks_first_last_frame_minmax (MovieTrackingTrack **tracks, const int num_tracks, int *r_first_frame, int *r_last_frame)
 
int BKE_tracking_count_selected_tracks_in_list (const ListBase *tracks_list)
 
int BKE_tracking_count_selected_tracks_in_active_object (MovieTracking *tracking)
 
MovieTrackingTrack ** BKE_tracking_selected_tracks_in_active_object (MovieTracking *tracking, int *r_num_tracks)
 
void BKE_tracking_track_flag_set (MovieTrackingTrack *track, int area, int flag)
 
void BKE_tracking_track_flag_clear (MovieTrackingTrack *track, int area, int flag)
 
bool BKE_tracking_track_has_marker_at_frame (MovieTrackingTrack *track, int framenr)
 
bool BKE_tracking_track_has_enabled_marker_at_frame (MovieTrackingTrack *track, int framenr)
 
static void path_clear_remained (MovieTrackingTrack *track, const int ref_frame)
 
static void path_clear_up_to (MovieTrackingTrack *track, const int ref_frame)
 
static void path_clear_all (MovieTrackingTrack *track, const int ref_frame)
 
void BKE_tracking_track_path_clear (MovieTrackingTrack *track, const int ref_frame, const eTrackClearAction action)
 
void BKE_tracking_tracks_join (MovieTracking *tracking, MovieTrackingTrack *dst_track, MovieTrackingTrack *src_track)
 
static void accumulate_marker (MovieTrackingMarker *dst_marker, const MovieTrackingMarker *src_marker)
 
static void multiply_marker (MovieTrackingMarker *marker, const float multiplier)
 
static void tracking_average_markers (MovieTrackingTrack *dst_track, MovieTrackingTrack **src_tracks, const int num_src_tracks)
 
static void tracking_average_tracks (MovieTrackingTrack *dst_track, MovieTrackingTrack **src_tracks, const int num_src_tracks)
 
void BKE_tracking_tracks_average (MovieTrackingTrack *dst_track, MovieTrackingTrack **src_tracks, const int num_src_tracks)
 
MovieTrackingTrackBKE_tracking_track_get_named (MovieTracking *tracking, MovieTrackingObject *object, const char *name)
 
MovieTrackingTrackBKE_tracking_track_get_indexed (MovieTracking *tracking, int tracknr, ListBase **r_tracksbase)
 
MovieTrackingTrackBKE_tracking_track_get_active (MovieTracking *tracking)
 
static bGPDlayertrack_mask_gpencil_layer_get (MovieTrackingTrack *track)
 
static void track_mask_set_pixel_cb (int x, int x_end, int y, void *user_data)
 
static void track_mask_gpencil_layer_rasterize (int frame_width, int frame_height, const float region_min[2], bGPDlayer *layer, float *mask, int mask_width, int mask_height)
 
floattracking_track_get_mask_for_region (int frame_width, int frame_height, const float region_min[2], const float region_max[2], MovieTrackingTrack *track)
 
floatBKE_tracking_track_get_mask (int frame_width, int frame_height, MovieTrackingTrack *track, MovieTrackingMarker *marker)
 
float BKE_tracking_track_get_weight_for_marker (MovieClip *clip, MovieTrackingTrack *track, MovieTrackingMarker *marker)
 
void BKE_tracking_track_select (ListBase *tracksbase, MovieTrackingTrack *track, int area, bool extend)
 
void BKE_tracking_track_deselect (MovieTrackingTrack *track, int area)
 
void BKE_tracking_tracks_deselect_all (ListBase *tracksbase)
 
MovieTrackingMarkerBKE_tracking_marker_insert (MovieTrackingTrack *track, MovieTrackingMarker *marker)
 
void BKE_tracking_marker_delete (MovieTrackingTrack *track, int framenr)
 
void BKE_tracking_marker_clamp_pattern_position (MovieTrackingMarker *marker)
 
void BKE_tracking_marker_clamp_search_size (MovieTrackingMarker *marker)
 
void BKE_tracking_marker_clamp_search_position (MovieTrackingMarker *marker)
 
MovieTrackingMarkerBKE_tracking_marker_get (MovieTrackingTrack *track, int framenr)
 
MovieTrackingMarkerBKE_tracking_marker_get_exact (MovieTrackingTrack *track, int framenr)
 
MovieTrackingMarkerBKE_tracking_marker_ensure (MovieTrackingTrack *track, int framenr)
 
static const MovieTrackingMarkerget_usable_marker_for_interpolation (struct MovieTrackingTrack *track, const MovieTrackingMarker *anchor_marker, const int direction)
 
bool BKE_tracking_marker_get_interpolated (struct MovieTrackingTrack *track, const int framenr, struct MovieTrackingMarker *r_marker)
 
void BKE_tracking_marker_pattern_minmax (const MovieTrackingMarker *marker, float min[2], float max[2])
 
void BKE_tracking_marker_get_subframe_position (MovieTrackingTrack *track, float framenr, float pos[2])
 
MovieTrackingPlaneTrackBKE_tracking_plane_track_add (MovieTracking *tracking, ListBase *plane_tracks_base, ListBase *tracks, int framenr)
 
void BKE_tracking_plane_track_unique_name (ListBase *plane_tracks_base, MovieTrackingPlaneTrack *plane_track)
 
void BKE_tracking_plane_track_free (MovieTrackingPlaneTrack *plane_track)
 
MovieTrackingPlaneTrackBKE_tracking_plane_track_get_named (MovieTracking *tracking, MovieTrackingObject *object, const char *name)
 
MovieTrackingPlaneTrackBKE_tracking_plane_track_get_active (struct MovieTracking *tracking)
 
void BKE_tracking_plane_tracks_deselect_all (ListBase *plane_tracks_base)
 
bool BKE_tracking_plane_track_has_point_track (MovieTrackingPlaneTrack *plane_track, MovieTrackingTrack *track)
 
bool BKE_tracking_plane_track_remove_point_track (MovieTrackingPlaneTrack *plane_track, MovieTrackingTrack *track)
 
void BKE_tracking_plane_tracks_remove_point_track (MovieTracking *tracking, MovieTrackingTrack *track)
 
void BKE_tracking_plane_track_replace_point_track (MovieTrackingPlaneTrack *plane_track, MovieTrackingTrack *old_track, MovieTrackingTrack *new_track)
 
void BKE_tracking_plane_tracks_replace_point_track (MovieTracking *tracking, MovieTrackingTrack *old_track, MovieTrackingTrack *new_track)
 
MovieTrackingPlaneMarkerBKE_tracking_plane_marker_insert (MovieTrackingPlaneTrack *plane_track, MovieTrackingPlaneMarker *plane_marker)
 
void BKE_tracking_plane_marker_delete (MovieTrackingPlaneTrack *plane_track, int framenr)
 
MovieTrackingPlaneMarkerBKE_tracking_plane_marker_get (MovieTrackingPlaneTrack *plane_track, int framenr)
 
MovieTrackingPlaneMarkerBKE_tracking_plane_marker_get_exact (MovieTrackingPlaneTrack *plane_track, int framenr)
 
MovieTrackingPlaneMarkerBKE_tracking_plane_marker_ensure (MovieTrackingPlaneTrack *plane_track, int framenr)
 
void BKE_tracking_plane_marker_get_subframe_corners (MovieTrackingPlaneTrack *plane_track, float framenr, float corners[4][2])
 
MovieTrackingObjectBKE_tracking_object_add (MovieTracking *tracking, const char *name)
 
bool BKE_tracking_object_delete (MovieTracking *tracking, MovieTrackingObject *object)
 
void BKE_tracking_object_unique_name (MovieTracking *tracking, MovieTrackingObject *object)
 
MovieTrackingObjectBKE_tracking_object_get_named (MovieTracking *tracking, const char *name)
 
MovieTrackingObjectBKE_tracking_object_get_active (MovieTracking *tracking)
 
MovieTrackingObjectBKE_tracking_object_get_camera (MovieTracking *tracking)
 
ListBaseBKE_tracking_object_get_tracks (MovieTracking *tracking, MovieTrackingObject *object)
 
ListBaseBKE_tracking_object_get_plane_tracks (MovieTracking *tracking, MovieTrackingObject *object)
 
MovieTrackingReconstructionBKE_tracking_object_get_reconstruction (MovieTracking *tracking, MovieTrackingObject *object)
 
static int reconstructed_camera_index_get (MovieTrackingReconstruction *reconstruction, int framenr, bool nearest)
 
static void reconstructed_camera_scale_set (MovieTrackingObject *object, float mat[4][4])
 
void BKE_tracking_camera_shift_get (MovieTracking *tracking, int winx, int winy, float *shiftx, float *shifty)
 
void BKE_tracking_camera_to_blender (MovieTracking *tracking, Scene *scene, Camera *camera, int width, int height)
 
MovieReconstructedCameraBKE_tracking_camera_get_reconstructed (MovieTracking *tracking, MovieTrackingObject *object, int framenr)
 
void BKE_tracking_camera_get_reconstructed_interpolate (MovieTracking *tracking, MovieTrackingObject *object, float framenr, float mat[4][4])
 
MovieDistortionBKE_tracking_distortion_new (MovieTracking *tracking, int calibration_width, int calibration_height)
 
void BKE_tracking_distortion_update (MovieDistortion *distortion, MovieTracking *tracking, int calibration_width, int calibration_height)
 
void BKE_tracking_distortion_set_threads (MovieDistortion *distortion, int threads)
 
MovieDistortionBKE_tracking_distortion_copy (MovieDistortion *distortion)
 
ImBufBKE_tracking_distortion_exec (MovieDistortion *distortion, MovieTracking *tracking, ImBuf *ibuf, int calibration_width, int calibration_height, float overscan, bool undistort)
 
void BKE_tracking_distortion_distort_v2 (MovieDistortion *distortion, const float co[2], float r_co[2])
 
void BKE_tracking_distortion_undistort_v2 (MovieDistortion *distortion, const float co[2], float r_co[2])
 
void BKE_tracking_distortion_free (MovieDistortion *distortion)
 
void BKE_tracking_distort_v2 (MovieTracking *tracking, int image_width, int image_height, const float co[2], float r_co[2])
 
void BKE_tracking_undistort_v2 (MovieTracking *tracking, int image_width, int image_height, const float co[2], float r_co[2])
 
ImBufBKE_tracking_undistort_frame (MovieTracking *tracking, ImBuf *ibuf, int calibration_width, int calibration_height, float overscan)
 
ImBufBKE_tracking_distort_frame (MovieTracking *tracking, ImBuf *ibuf, int calibration_width, int calibration_height, float overscan)
 
void BKE_tracking_max_distortion_delta_across_bound (MovieTracking *tracking, int image_width, int image_height, rcti *rect, bool undistort, float delta[2])
 
static void disable_imbuf_channels (ImBuf *ibuf, MovieTrackingTrack *track, bool grayscale)
 
ImBufBKE_tracking_sample_pattern (int frame_width, int frame_height, ImBuf *search_ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker, bool from_anchor, bool use_mask, int num_samples_x, int num_samples_y, float pos[2])
 
ImBufBKE_tracking_get_pattern_imbuf (ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker, bool anchored, bool disable_channels)
 
ImBufBKE_tracking_get_search_imbuf (ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker, bool anchored, bool disable_channels)
 
BLI_INLINE int plane_marker_size_len_in_pixels (const float a[2], const float b[2], const int frame_width, const int frame_height)
 
ImBufBKE_tracking_get_plane_imbuf (const ImBuf *frame_ibuf, const MovieTrackingPlaneMarker *plane_marker)
 
void BKE_tracking_disable_channels (ImBuf *ibuf, bool disable_red, bool disable_green, bool disable_blue, bool grayscale)
 
static int channels_alpha_sort (const void *a, const void *b)
 
static int channels_total_track_sort (const void *a, const void *b)
 
static int channels_longest_segment_sort (const void *a, const void *b)
 
static int channels_average_error_sort (const void *a, const void *b)
 
static int compare_firstlast_putting_undefined_first (bool inverse, bool a_markerless, int a_value, bool b_markerless, int b_value)
 
static int channels_start_sort (const void *a, const void *b)
 
static int channels_end_sort (const void *a, const void *b)
 
static int channels_alpha_inverse_sort (const void *a, const void *b)
 
static int channels_total_track_inverse_sort (const void *a, const void *b)
 
static int channels_longest_segment_inverse_sort (const void *a, const void *b)
 
static int channels_average_error_inverse_sort (const void *a, const void *b)
 
static int channels_start_inverse_sort (const void *a, const void *b)
 
static int channels_end_inverse_sort (const void *a, const void *b)
 
static void tracking_dopesheet_channels_segments_calc (MovieTrackingDopesheetChannel *channel)
 
static void tracking_dopesheet_channels_calc (MovieTracking *tracking)
 
static void tracking_dopesheet_channels_sort (MovieTracking *tracking, int sort_method, bool inverse)
 
static int coverage_from_count (int count)
 
static void tracking_dopesheet_calc_coverage (MovieTracking *tracking)
 
void BKE_tracking_dopesheet_tag_update (MovieTracking *tracking)
 
void BKE_tracking_dopesheet_update (MovieTracking *tracking)
 
MovieTrackingObjectBKE_tracking_find_object_for_track (const MovieTracking *tracking, const MovieTrackingTrack *track)
 
ListBaseBKE_tracking_find_tracks_list_for_track (MovieTracking *tracking, const MovieTrackingTrack *track)
 
MovieTrackingObjectBKE_tracking_find_object_for_plane_track (const MovieTracking *tracking, const MovieTrackingPlaneTrack *plane_track)
 
ListBaseBKE_tracking_find_tracks_list_for_plane_track (MovieTracking *tracking, const MovieTrackingPlaneTrack *plane_track)
 
void BKE_tracking_get_rna_path_for_track (const struct MovieTracking *tracking, const struct MovieTrackingTrack *track, char *rna_path, size_t rna_path_len)
 
void BKE_tracking_get_rna_path_prefix_for_track (const struct MovieTracking *tracking, const struct MovieTrackingTrack *track, char *rna_path, size_t rna_path_len)
 
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_get_rna_path_prefix_for_plane_track (const struct MovieTracking *tracking, const struct MovieTrackingPlaneTrack *plane_track, char *rna_path, size_t rna_path_len)
 

Variables

struct {
   ListBase   tracks
 
tracking_clipboard
 

Typedef Documentation

◆ MovieDistortion

◆ TrackMaskSetPixelData

Function Documentation

◆ accumulate_marker()

static void accumulate_marker ( MovieTrackingMarker dst_marker,
const MovieTrackingMarker src_marker 
)
static

◆ BKE_tracking_camera_get_reconstructed()

MovieReconstructedCamera* BKE_tracking_camera_get_reconstructed ( MovieTracking tracking,
MovieTrackingObject object,
int  framenr 
)

◆ BKE_tracking_camera_get_reconstructed_interpolate()

void BKE_tracking_camera_get_reconstructed_interpolate ( MovieTracking tracking,
MovieTrackingObject object,
float  framenr,
float  mat[4][4] 
)

◆ BKE_tracking_camera_shift_get()

void BKE_tracking_camera_shift_get ( struct MovieTracking tracking,
int  winx,
int  winy,
float shiftx,
float shifty 
)

Converts principal offset from center to offset of blender's camera.

Definition at line 2225 of file tracking.c.

References MovieTracking::camera, and MovieTrackingCamera::principal.

Referenced by BKE_tracking_camera_to_blender(), and BKE_tracking_get_projection_matrix().

◆ BKE_tracking_camera_to_blender()

void BKE_tracking_camera_to_blender ( MovieTracking tracking,
Scene scene,
Camera camera,
int  width,
int  height 
)

◆ BKE_tracking_clipboard_copy_tracks()

void BKE_tracking_clipboard_copy_tracks ( struct MovieTracking tracking,
struct MovieTrackingObject object 
)

◆ BKE_tracking_clipboard_free()

void BKE_tracking_clipboard_free ( void  )

Free clipboard by freeing memory used by all tracks in it.

Definition at line 448 of file tracking.c.

References BKE_tracking_track_free(), BLI_listbase_clear(), MEM_freeN, MovieTrackingTrack::next, and tracking_clipboard.

Referenced by BKE_tracking_clipboard_copy_tracks(), and WM_exit_ex().

◆ BKE_tracking_clipboard_has_tracks()

bool BKE_tracking_clipboard_has_tracks ( void  )

Check whether there are any tracks in the clipboard.

Definition at line 484 of file tracking.c.

References BLI_listbase_is_empty(), and tracking_clipboard.

Referenced by paste_tracks_poll().

◆ BKE_tracking_clipboard_paste_tracks()

void BKE_tracking_clipboard_paste_tracks ( struct MovieTracking tracking,
struct MovieTrackingObject object 
)

Paste tracks from clipboard to specified object.

Names of new tracks in object are guaranteed to be unique here.

Definition at line 489 of file tracking.c.

References MovieTracking::act_track, BKE_tracking_object_get_tracks(), BKE_tracking_track_duplicate(), BKE_tracking_track_unique_name(), BLI_addtail(), MovieTrackingTrack::next, NULL, MovieTrackingTrack::prev, and tracking_clipboard.

Referenced by paste_tracks_exec().

◆ BKE_tracking_copy()

void BKE_tracking_copy ( MovieTracking tracking_dst,
const MovieTracking tracking_src,
const int  flag 
)

◆ BKE_tracking_count_selected_tracks_in_active_object()

int BKE_tracking_count_selected_tracks_in_active_object ( MovieTracking tracking)

◆ BKE_tracking_count_selected_tracks_in_list()

int BKE_tracking_count_selected_tracks_in_list ( const ListBase tracks_list)

Definition at line 639 of file tracking.c.

References LISTBASE_FOREACH, and TRACK_SELECTED.

Referenced by BKE_tracking_count_selected_tracks_in_active_object().

◆ BKE_tracking_disable_channels()

void BKE_tracking_disable_channels ( struct ImBuf ibuf,
bool  disable_red,
bool  disable_green,
bool  disable_blue,
bool  grayscale 
)

Zap channels from the imbuf that are disabled by the user. this can lead to better tracks sometimes. however, instead of simply zeroing the channels out, do a partial gray-scale conversion so the display is better.

Definition at line 2891 of file tracking.c.

References usdtokens::b(), usdtokens::g(), IB_RECT_INVALID, if(), r, ImBuf::rect, ImBuf::rect_float, ImBuf::userflags, x, ImBuf::x, y, and ImBuf::y.

Referenced by disable_imbuf_channels(), and postprocess_frame().

◆ BKE_tracking_distort_frame()

ImBuf* BKE_tracking_distort_frame ( MovieTracking tracking,
ImBuf ibuf,
int  calibration_width,
int  calibration_height,
float  overscan 
)

◆ BKE_tracking_distort_v2()

void BKE_tracking_distort_v2 ( MovieTracking tracking,
int  image_width,
int  image_height,
const float  co[2],
float  r_co[2] 
)

◆ BKE_tracking_distortion_copy()

MovieDistortion* BKE_tracking_distortion_copy ( MovieDistortion distortion)

◆ BKE_tracking_distortion_distort_v2()

void BKE_tracking_distortion_distort_v2 ( MovieDistortion distortion,
const float  co[2],
float  r_co[2] 
)

◆ BKE_tracking_distortion_exec()

ImBuf* BKE_tracking_distortion_exec ( MovieDistortion distortion,
MovieTracking tracking,
ImBuf ibuf,
int  calibration_width,
int  calibration_height,
float  overscan,
bool  undistort 
)

◆ BKE_tracking_distortion_free()

void BKE_tracking_distortion_free ( MovieDistortion distortion)

◆ BKE_tracking_distortion_new()

MovieDistortion* BKE_tracking_distortion_new ( MovieTracking tracking,
int  calibration_width,
int  calibration_height 
)

◆ BKE_tracking_distortion_set_threads()

void BKE_tracking_distortion_set_threads ( MovieDistortion distortion,
int  threads 
)

◆ BKE_tracking_distortion_undistort_v2()

void BKE_tracking_distortion_undistort_v2 ( MovieDistortion distortion,
const float  co[2],
float  r_co[2] 
)

◆ BKE_tracking_distortion_update()

void BKE_tracking_distortion_update ( MovieDistortion distortion,
MovieTracking tracking,
int  calibration_width,
int  calibration_height 
)

◆ BKE_tracking_dopesheet_tag_update()

void BKE_tracking_dopesheet_tag_update ( struct MovieTracking tracking)

◆ BKE_tracking_dopesheet_update()

void BKE_tracking_dopesheet_update ( struct MovieTracking tracking)

◆ BKE_tracking_find_object_for_plane_track()

MovieTrackingObject* BKE_tracking_find_object_for_plane_track ( const MovieTracking tracking,
const MovieTrackingPlaneTrack plane_track 
)

◆ BKE_tracking_find_object_for_track()

MovieTrackingObject* BKE_tracking_find_object_for_track ( const MovieTracking tracking,
const MovieTrackingTrack track 
)

◆ BKE_tracking_find_tracks_list_for_plane_track()

ListBase* BKE_tracking_find_tracks_list_for_plane_track ( MovieTracking tracking,
const MovieTrackingPlaneTrack plane_track 
)

◆ BKE_tracking_find_tracks_list_for_track()

ListBase* BKE_tracking_find_tracks_list_for_track ( MovieTracking tracking,
const MovieTrackingTrack track 
)

Definition at line 3458 of file tracking.c.

References BKE_tracking_find_object_for_track(), NULL, and MovieTracking::tracks.

◆ BKE_tracking_free()

void BKE_tracking_free ( struct MovieTracking tracking)

Free tracking structure, only frees structure contents (if structure is allocated in heap, it shall be handled outside).

All the pointers inside structure becomes invalid after this call.

Definition at line 150 of file tracking.c.

References BKE_tracking_distortion_free(), MovieTracking::camera, MovieTracking::dopesheet, MovieTrackingCamera::intrinsics, MovieTracking::objects, MovieTracking::plane_tracks, MovieTracking::reconstruction, tracking_dopesheet_free(), tracking_objects_free(), tracking_plane_tracks_free(), tracking_reconstruction_free(), tracking_tracks_free(), and MovieTracking::tracks.

Referenced by movie_clip_free_data().

◆ BKE_tracking_get_active_plane_tracks()

ListBase* BKE_tracking_get_active_plane_tracks ( struct MovieTracking tracking)

◆ BKE_tracking_get_active_reconstruction()

MovieTrackingReconstruction* BKE_tracking_get_active_reconstruction ( struct MovieTracking tracking)

◆ BKE_tracking_get_active_tracks()

ListBase* BKE_tracking_get_active_tracks ( struct MovieTracking tracking)

Get list base of active object's tracks.

Definition at line 346 of file tracking.c.

References BKE_tracking_object_get_active(), MovieTrackingObject::flag, TRACKING_OBJECT_CAMERA, and MovieTracking::tracks.

Referenced by add_marker(), autotrack_context_init_tracks_for_clip(), average_tracks_exec(), BKE_tracking_count_selected_tracks_in_active_object(), BKE_tracking_selected_tracks_in_active_object(), BKE_tracking_track_get_active(), box_select_exec(), blender::compositor::KeyingScreenOperation::build_voronoi_triangulation(), circle_select_exec(), clean_tracks_exec(), clear_solution_exec(), clear_track_path_exec(), clip_delete_track(), clip_graph_tracking_iterate(), clip_graph_tracking_values_iterate(), clip_tracking_clear_invisible_track_selection(), count_selected_bundles(), create_plane_track_tracks_exec(), createTransTrackingCurvesData(), createTransTrackingTracksData(), delete_marker_exec(), delete_track_exec(), detect_features_exec(), disable_markers_exec(), do_lasso_select_marker(), do_set_scale(), draw_tracking_tracks(), ED_clip_select_all(), hide_tracks_clear_exec(), hide_tracks_exec(), join_tracks_exec(), keyframe_set_flag(), lock_tracks_exec(), recalcData_tracking(), refine_marker_exec(), screen_ctx_selected_movieclip_tracks(), select_exec(), select_grouped_exec(), selected_tracking_boundbox(), stabilize_2d_add_exec(), stabilize_2d_remove_exec(), stabilize_2d_rotation_add_exec(), stabilize_2d_rotation_remove_exec(), stabilize_2d_rotation_select_exec(), stabilize_2d_select_exec(), track_copy_color_exec(), track_count_markers(), track_init_markers(), tracking_has_selection(), and tracking_marker_check_slide().

◆ BKE_tracking_get_camera_object_matrix()

void BKE_tracking_get_camera_object_matrix ( struct Object camera_object,
float  mat[4][4] 
)

Get transformation matrix for a given object which is used for parenting motion tracker reconstruction to 3D world.

Definition at line 375 of file tracking.c.

References BKE_object_where_is_calc_mat4(), BLI_assert, and NULL.

Referenced by bundle_midpoint(), camera_view3d_reconstruction(), do_set_scale(), followtrack_evaluate_using_3d_position_camera(), set_axis(), set_origin_exec(), set_plane_exec(), and snapCamera().

◆ BKE_tracking_get_pattern_imbuf()

ImBuf* BKE_tracking_get_pattern_imbuf ( ImBuf ibuf,
MovieTrackingTrack track,
MovieTrackingMarker marker,
bool  anchored,
bool  disable_channels 
)

◆ BKE_tracking_get_plane_imbuf()

ImBuf* BKE_tracking_get_plane_imbuf ( const ImBuf frame_ibuf,
const MovieTrackingPlaneMarker plane_marker 
)

◆ BKE_tracking_get_projection_matrix()

void BKE_tracking_get_projection_matrix ( struct MovieTracking tracking,
struct MovieTrackingObject object,
int  framenr,
int  winx,
int  winy,
float  mat[4][4] 
)

Get projection matrix for camera specified by given tracking object and frame number.

Note
frame number should be in clip space, not scene space.

Definition at line 391 of file tracking.c.

References BKE_tracking_camera_get_reconstructed(), BKE_tracking_camera_shift_get(), bottom, MovieTracking::camera, camera, copy_m4_m4(), float(), MovieTrackingCamera::focal, invert_m4_m4(), left, min_ii(), mul_m4_m4m4(), perspective_m4(), MovieTrackingCamera::pixel_aspect, right, MovieTrackingCamera::sensor_width, and top.

Referenced by calculate_reprojection_error_at_marker(), and draw_tracking_tracks().

◆ BKE_tracking_get_rna_path_for_plane_track()

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 
)

◆ BKE_tracking_get_rna_path_for_track()

void BKE_tracking_get_rna_path_for_track ( const struct MovieTracking tracking,
const struct MovieTrackingTrack track,
char *  rna_path,
size_t  rna_path_len 
)

◆ BKE_tracking_get_rna_path_prefix_for_plane_track()

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_len 
)

◆ BKE_tracking_get_rna_path_prefix_for_track()

void BKE_tracking_get_rna_path_prefix_for_track ( const struct MovieTracking tracking,
const struct MovieTrackingTrack track,
char *  rna_path,
size_t  rna_path_len 
)

◆ BKE_tracking_get_search_imbuf()

ImBuf* BKE_tracking_get_search_imbuf ( ImBuf ibuf,
MovieTrackingTrack track,
MovieTrackingMarker marker,
bool  anchored,
bool  disable_channels 
)

◆ BKE_tracking_marker_clamp_pattern_position()

void BKE_tracking_marker_clamp_pattern_position ( struct MovieTrackingMarker marker)

If the pattern area is outside of the search area its position will be modified in a way that it is within the pattern is within the search area.

If the pattern area is already within the search area nothing happens.

If the pattern area is bigger than the search area the behavior is undefined.

Search area is never modified.

Definition at line 1374 of file tracking.c.

References Freestyle::a, usdtokens::b(), BKE_tracking_marker_pattern_minmax(), MovieTrackingMarker::pattern_corners, MovieTrackingMarker::search_max, and MovieTrackingMarker::search_min.

Referenced by recalcData_tracking().

◆ BKE_tracking_marker_clamp_search_position()

void BKE_tracking_marker_clamp_search_position ( struct MovieTrackingMarker marker)

If the search position is such that pattern area is (partially) outside of the search area move the search area so that the pattern is within the search area.

If the search area is smaller than the pattern the behavior is undefined.

Pattern area is never modified.

Definition at line 1404 of file tracking.c.

References Freestyle::a, BKE_tracking_marker_pattern_minmax(), MovieTrackingMarker::search_max, MovieTrackingMarker::search_min, and sub_v2_v2v2().

Referenced by marker_block_handler(), recalcData_tracking(), and slide_marker_modal().

◆ BKE_tracking_marker_clamp_search_size()

void BKE_tracking_marker_clamp_search_size ( struct MovieTrackingMarker marker)

If the search size is such that pattern area is (partially) outside of the search area make the search area bigger so that the pattern is within the search area.

Pattern area is never modified.

Definition at line 1393 of file tracking.c.

References Freestyle::a, BKE_tracking_marker_pattern_minmax(), max_ff(), min_ff(), MovieTrackingMarker::search_max, and MovieTrackingMarker::search_min.

Referenced by marker_block_handler(), recalcData_tracking(), and slide_marker_modal().

◆ BKE_tracking_marker_delete()

void BKE_tracking_marker_delete ( MovieTrackingTrack track,
int  framenr 
)

◆ BKE_tracking_marker_ensure()

MovieTrackingMarker* BKE_tracking_marker_ensure ( MovieTrackingTrack track,
int  framenr 
)

◆ BKE_tracking_marker_get()

MovieTrackingMarker* BKE_tracking_marker_get ( struct MovieTrackingTrack track,
int  framenr 
)

Get marker closest to the given frame number.

If there is maker with exact frame number it returned. Otherwise, marker with highest frame number but lower than the requested frame is returned if such marker exists. Otherwise, the marker with lowest frame number greater than the requested frame number is returned.

This function has complexity of O(log number_of_markers).

Definition at line 1424 of file tracking.c.

References BLI_assert, BLI_assert_msg, clamp_i(), MovieTrackingMarker::framenr, MovieTrackingTrack::markers, MovieTrackingTrack::markersnr, and NULL.

Referenced by annotation_session_initdata(), autotrack_context_init_markers(), autotrack_is_track_trackable(), BKE_movieclip_update_scopes(), BKE_tracking_marker_ensure(), BKE_tracking_marker_get_exact(), BKE_tracking_marker_get_interpolated(), BKE_tracking_marker_get_subframe_position(), BKE_tracking_plane_track_add(), box_select_exec(), blender::compositor::KeyingScreenOperation::build_voronoi_triangulation(), circle_select_exec(), clip_draw_grease_pencil(), do_lasso_select_marker(), draw_tracking_tracks(), ED_clip_select_all(), find_nearest_track(), mask_parent_set_exec(), path_clear_all(), recalcData_tracking(), refine_marker_exec(), search_closest_marker_index(), select_grouped_exec(), selected_tracking_boundbox(), slide_marker_customdata(), blender::TEST_F(), track_count_markers(), track_mouse_area(), tracking_context_get_reference_ibuf(), tracking_get_keyframed_marker(), tracking_has_selection(), tracking_marker_check_slide(), and uiTemplateMarker().

◆ BKE_tracking_marker_get_exact()

MovieTrackingMarker* BKE_tracking_marker_get_exact ( MovieTrackingTrack track,
int  framenr 
)

◆ BKE_tracking_marker_get_interpolated()

bool BKE_tracking_marker_get_interpolated ( struct MovieTrackingTrack track,
int  framenr,
struct MovieTrackingMarker r_marker 
)

Get marker position, possibly interpolating gap between key-framed/tracked markers.

The result marker frame number is set to the requested frame number. Its flags are 0 if the marker is interpolated, and is set to original marker flag if there were no interpolation involved.

Returns
truth if the result is usable.

Definition at line 1505 of file tracking.c.

References BKE_tracking_marker_get(), MovieTrackingMarker::flag, float(), MovieTrackingMarker::framenr, get_usable_marker_for_interpolation(), interp_v2_v2v2(), MARKER_DISABLED, NULL, MovieTrackingMarker::pattern_corners, MovieTrackingMarker::pos, MovieTrackingMarker::search_max, and MovieTrackingMarker::search_min.

Referenced by blender::TEST_F(), and tracking_average_markers().

◆ BKE_tracking_marker_get_subframe_position()

void BKE_tracking_marker_get_subframe_position ( MovieTrackingTrack track,
float  framenr,
float  pos[2] 
)

◆ BKE_tracking_marker_insert()

MovieTrackingMarker* BKE_tracking_marker_insert ( MovieTrackingTrack track,
MovieTrackingMarker marker 
)

◆ BKE_tracking_marker_pattern_minmax()

void BKE_tracking_marker_pattern_minmax ( const MovieTrackingMarker marker,
float  min[2],
float  max[2] 
)

◆ BKE_tracking_max_distortion_delta_across_bound()

void BKE_tracking_max_distortion_delta_across_bound ( MovieTracking tracking,
int  image_width,
int  image_height,
rcti rect,
bool  undistort,
float  delta[2] 
)

◆ BKE_tracking_object_add()

MovieTrackingObject* BKE_tracking_object_add ( MovieTracking tracking,
const char *  name 
)

◆ BKE_tracking_object_delete()

bool BKE_tracking_object_delete ( MovieTracking tracking,
MovieTrackingObject object 
)

◆ BKE_tracking_object_get_active()

MovieTrackingObject* BKE_tracking_object_get_active ( MovieTracking tracking)

◆ BKE_tracking_object_get_camera()

MovieTrackingObject* BKE_tracking_object_get_camera ( MovieTracking tracking)

◆ BKE_tracking_object_get_named()

MovieTrackingObject* BKE_tracking_object_get_named ( MovieTracking tracking,
const char *  name 
)

◆ BKE_tracking_object_get_plane_tracks()

ListBase* BKE_tracking_object_get_plane_tracks ( MovieTracking tracking,
MovieTrackingObject object 
)

◆ BKE_tracking_object_get_reconstruction()

MovieTrackingReconstruction* BKE_tracking_object_get_reconstruction ( MovieTracking tracking,
MovieTrackingObject object 
)

◆ BKE_tracking_object_get_tracks()

ListBase* BKE_tracking_object_get_tracks ( MovieTracking tracking,
MovieTrackingObject object 
)

◆ BKE_tracking_object_unique_name()

void BKE_tracking_object_unique_name ( MovieTracking tracking,
MovieTrackingObject object 
)

◆ BKE_tracking_plane_marker_delete()

void BKE_tracking_plane_marker_delete ( MovieTrackingPlaneTrack plane_track,
int  framenr 
)

◆ BKE_tracking_plane_marker_ensure()

MovieTrackingPlaneMarker* BKE_tracking_plane_marker_ensure ( struct MovieTrackingPlaneTrack plane_track,
int  framenr 
)

◆ BKE_tracking_plane_marker_get()

MovieTrackingPlaneMarker* BKE_tracking_plane_marker_get ( struct MovieTrackingPlaneTrack plane_track,
int  framenr 
)

◆ BKE_tracking_plane_marker_get_exact()

MovieTrackingPlaneMarker* BKE_tracking_plane_marker_get_exact ( struct MovieTrackingPlaneTrack plane_track,
int  framenr 
)

Get a plane marker at exact given frame, if there's no marker at the frame, NULL will be returned.

Definition at line 1938 of file tracking.c.

References BKE_tracking_plane_marker_get(), MovieTrackingPlaneMarker::framenr, and NULL.

Referenced by BKE_tracking_plane_marker_insert(), cancelTransTracking(), delete_marker_exec(), keyframe_set_flag(), and track_plane_from_existing_motion().

◆ BKE_tracking_plane_marker_get_subframe_corners()

void BKE_tracking_plane_marker_get_subframe_corners ( MovieTrackingPlaneTrack plane_track,
float  framenr,
float  corners[4][2] 
)

◆ BKE_tracking_plane_marker_insert()

MovieTrackingPlaneMarker* BKE_tracking_plane_marker_insert ( MovieTrackingPlaneTrack plane_track,
MovieTrackingPlaneMarker plane_marker 
)

◆ BKE_tracking_plane_track_add()

MovieTrackingPlaneTrack* BKE_tracking_plane_track_add ( struct MovieTracking tracking,
struct ListBase plane_tracks_base,
struct ListBase tracks,
int  framenr 
)

◆ BKE_tracking_plane_track_free()

void BKE_tracking_plane_track_free ( struct MovieTrackingPlaneTrack plane_track)

Free specified plane track, only frees contents of a structure (if track is allocated in heap, it shall be handled outside).

All the pointers inside track becomes invalid after this call.

Definition at line 1694 of file tracking.c.

References MovieTrackingPlaneTrack::markers, MEM_freeN, and MovieTrackingPlaneTrack::point_tracks.

Referenced by BKE_tracking_plane_tracks_remove_point_track(), clip_delete_plane_track(), delete_marker_exec(), and tracking_plane_tracks_free().

◆ BKE_tracking_plane_track_get_active()

MovieTrackingPlaneTrack* BKE_tracking_plane_track_get_active ( struct MovieTracking tracking)

◆ BKE_tracking_plane_track_get_named()

MovieTrackingPlaneTrack* BKE_tracking_plane_track_get_named ( MovieTracking tracking,
MovieTrackingObject object,
const char *  name 
)

◆ BKE_tracking_plane_track_has_point_track()

bool BKE_tracking_plane_track_has_point_track ( MovieTrackingPlaneTrack plane_track,
MovieTrackingTrack track 
)

◆ BKE_tracking_plane_track_remove_point_track()

bool BKE_tracking_plane_track_remove_point_track ( MovieTrackingPlaneTrack plane_track,
MovieTrackingTrack track 
)

◆ BKE_tracking_plane_track_replace_point_track()

void BKE_tracking_plane_track_replace_point_track ( MovieTrackingPlaneTrack plane_track,
MovieTrackingTrack old_track,
MovieTrackingTrack new_track 
)

◆ BKE_tracking_plane_track_unique_name()

void BKE_tracking_plane_track_unique_name ( ListBase plane_tracks_base,
MovieTrackingPlaneTrack plane_track 
)

◆ BKE_tracking_plane_tracks_deselect_all()

void BKE_tracking_plane_tracks_deselect_all ( ListBase plane_tracks_base)

Definition at line 1734 of file tracking.c.

References LISTBASE_FOREACH, and SELECT.

Referenced by add_marker(), and average_tracks_exec().

◆ BKE_tracking_plane_tracks_remove_point_track()

void BKE_tracking_plane_tracks_remove_point_track ( MovieTracking tracking,
MovieTrackingTrack track 
)

◆ BKE_tracking_plane_tracks_replace_point_track()

void BKE_tracking_plane_tracks_replace_point_track ( MovieTracking tracking,
MovieTrackingTrack old_track,
MovieTrackingTrack new_track 
)

◆ BKE_tracking_sample_pattern()

ImBuf* BKE_tracking_sample_pattern ( int  frame_width,
int  frame_height,
ImBuf search_ibuf,
MovieTrackingTrack track,
MovieTrackingMarker marker,
bool  from_anchor,
bool  use_mask,
int  num_samples_x,
int  num_samples_y,
float  pos[2] 
)

◆ BKE_tracking_selected_tracks_in_active_object()

MovieTrackingTrack** BKE_tracking_selected_tracks_in_active_object ( struct MovieTracking tracking,
int *  r_num_tracks 
)

Get array of selected tracks from the current active object in the tracking structure. If nothing is selected then the result is nullptr and r_num_tracks is set to 0.

Definition at line 656 of file tracking.c.

References BKE_tracking_count_selected_tracks_in_active_object(), BKE_tracking_get_active_tracks(), LISTBASE_FOREACH, MEM_malloc_arrayN, NULL, and TRACK_SELECTED.

Referenced by average_tracks_exec().

◆ BKE_tracking_settings_init()

void BKE_tracking_settings_init ( struct MovieTracking tracking)

Initialize motion tracking settings to default values, used when new movie clip data-block is created.

Definition at line 305 of file tracking.c.

References MovieTrackingStabilization::act_rot_track, MovieTrackingStabilization::act_track, MovieTrackingStabilization::anchor_frame, BKE_tracking_object_add(), MovieTracking::camera, CAMERA_UNITS_MM, DATA_, MovieTrackingSettings::default_algorithm_flag, MovieTrackingSettings::default_minimum_correlation, MovieTrackingSettings::default_motion_model, MovieTrackingSettings::default_pattern_size, MovieTrackingSettings::default_search_size, MovieTrackingSettings::default_weight, MovieTrackingSettings::dist, MovieTracking::dopesheet, MovieTrackingStabilization::filter, MovieTrackingStabilization::flag, MovieTrackingDopesheet::flag, MovieTrackingStabilization::locinf, MovieTrackingStabilization::maxscale, MovieTrackingSettings::object_distance, MovieTrackingCamera::pixel_aspect, MovieTrackingSettings::refine_camera_intrinsics, REFINE_NO_INTRINSICS, MovieTrackingStabilization::rotinf, MovieTrackingStabilization::scale, MovieTrackingStabilization::scaleinf, MovieTrackingCamera::sensor_width, MovieTracking::settings, MovieTrackingDopesheet::sort_method, MovieTracking::stabilization, MovieTrackingStabilization::target_pos, MovieTrackingStabilization::target_rot, MovieTrackingStabilization::tot_rot_track, MovieTrackingStabilization::tot_track, TRACK_ALGORITHM_FLAG_USE_BRUTE, TRACK_MOTION_MODEL_TRANSLATION, TRACKING_DOPE_SORT_AVERAGE_ERROR, TRACKING_DOPE_SORT_INVERSE, TRACKING_FILTER_BILINEAR, TRACKING_SHOW_STAB_TRACKS, MovieTrackingCamera::units, and zero_v2().

Referenced by movie_clip_init_data().

◆ BKE_tracking_track_add()

MovieTrackingTrack* BKE_tracking_track_add ( struct MovieTracking tracking,
struct ListBase tracksbase,
float  x,
float  y,
int  framenr,
int  width,
int  height 
)

Add new track to a specified tracks base.

Coordinates are expected to be in normalized 0..1 space, frame number is expected to be in clip space.

Width and height are clip's dimension used to scale track's pattern and search regions.

Definition at line 535 of file tracking.c.

References BKE_tracking_marker_insert(), BKE_tracking_track_add_empty(), copy_v2_v2(), MovieTrackingSettings::default_pattern_size, MovieTrackingSettings::default_search_size, MovieTrackingMarker::framenr, height, negate_v2_v2(), MovieTrackingMarker::pattern_corners, MovieTrackingMarker::pos, MovieTrackingMarker::search_max, MovieTrackingMarker::search_min, MovieTracking::settings, width, x, and y.

Referenced by add_marker(), and detect_retrieve_libmv_features().

◆ BKE_tracking_track_add_empty()

MovieTrackingTrack* BKE_tracking_track_add_empty ( struct MovieTracking tracking,
struct ListBase tracks_list 
)

◆ BKE_tracking_track_deselect()

void BKE_tracking_track_deselect ( MovieTrackingTrack track,
int  area 
)

◆ BKE_tracking_track_duplicate()

MovieTrackingTrack* BKE_tracking_track_duplicate ( struct MovieTrackingTrack track)

◆ BKE_tracking_track_first_last_frame_get()

void BKE_tracking_track_first_last_frame_get ( const MovieTrackingTrack track,
int *  r_first_frame,
int *  r_last_frame 
)

◆ BKE_tracking_track_flag_clear()

void BKE_tracking_track_flag_clear ( struct MovieTrackingTrack track,
int  area,
int  flag 
)

◆ BKE_tracking_track_flag_set()

void BKE_tracking_track_flag_set ( struct MovieTrackingTrack track,
int  area,
int  flag 
)

Set flag for all specified track's areas.

Parameters
areawhich part of marker should be selected. see TRACK_AREA_* constants.
flagflag to be set for areas.

Definition at line 688 of file tracking.c.

References blender::compositor::area(), MovieTrackingTrack::flag, MovieTrackingTrack::pat_flag, MovieTrackingTrack::search_flag, TRACK_AREA_NONE, TRACK_AREA_PAT, TRACK_AREA_POINT, and TRACK_AREA_SEARCH.

Referenced by BKE_tracking_track_select(), box_select_exec(), circle_select_exec(), clean_tracks_exec(), do_lasso_select_marker(), stabilize_2d_rotation_select_exec(), and stabilize_2d_select_exec().

◆ BKE_tracking_track_free()

void BKE_tracking_track_free ( struct MovieTrackingTrack track)

Free specified track, only frees contents of a structure (if track is allocated in heap, it shall be handled outside).

All the pointers inside track becomes invalid after this call.

Definition at line 606 of file tracking.c.

References MovieTrackingTrack::markers, and MEM_freeN.

Referenced by BKE_tracking_clipboard_free(), clean_tracks_exec(), clip_delete_track(), join_tracks_exec(), blender::TEST_F(), tracking_tracks_free(), and tracks_map_free().

◆ BKE_tracking_track_get_active()

MovieTrackingTrack* BKE_tracking_track_get_active ( MovieTracking tracking)

◆ BKE_tracking_track_get_indexed()

MovieTrackingTrack* BKE_tracking_track_get_indexed ( MovieTracking tracking,
int  tracknr,
ListBase **  r_tracksbase 
)

◆ BKE_tracking_track_get_mask()

float* BKE_tracking_track_get_mask ( int  frame_width,
int  frame_height,
MovieTrackingTrack track,
MovieTrackingMarker marker 
)

◆ BKE_tracking_track_get_named()

MovieTrackingTrack* BKE_tracking_track_get_named ( MovieTracking tracking,
MovieTrackingObject object,
const char *  name 
)

◆ BKE_tracking_track_get_weight_for_marker()

float BKE_tracking_track_get_weight_for_marker ( MovieClip clip,
MovieTrackingTrack track,
MovieTrackingMarker marker 
)

◆ BKE_tracking_track_has_enabled_marker_at_frame()

bool BKE_tracking_track_has_enabled_marker_at_frame ( struct MovieTrackingTrack track,
int  framenr 
)

Check whether track has got enabled marker at specified frame.

Note
frame number should be in clip space, not scene space.

Definition at line 727 of file tracking.c.

References BKE_tracking_marker_get_exact(), MovieTrackingMarker::flag, and MARKER_DISABLED.

Referenced by reconstruct_count_tracks_on_both_keyframes().

◆ BKE_tracking_track_has_marker_at_frame()

bool BKE_tracking_track_has_marker_at_frame ( struct MovieTrackingTrack track,
int  framenr 
)

Check whether track has got marker at specified frame.

Note
frame number should be in clip space, not scene space.

Definition at line 722 of file tracking.c.

References BKE_tracking_marker_get_exact(), and NULL.

Referenced by tracking_marker_insert_disabled().

◆ BKE_tracking_track_path_clear()

void BKE_tracking_track_path_clear ( MovieTrackingTrack track,
const int  ref_frame,
const eTrackClearAction  action 
)

◆ BKE_tracking_track_select()

void BKE_tracking_track_select ( struct ListBase tracksbase,
struct MovieTrackingTrack track,
int  area,
bool  extend 
)

◆ BKE_tracking_track_unique_name()

void BKE_tracking_track_unique_name ( struct ListBase tracksbase,
struct MovieTrackingTrack track 
)

Ensure specified track has got unique name, if it's not name of specified track will be changed keeping names of all other tracks unchanged.

Definition at line 596 of file tracking.c.

References BLI_uniquename(), BLT_I18NCONTEXT_ID_MOVIECLIP, CTX_DATA_, and MovieTrackingTrack::name.

Referenced by BKE_tracking_clipboard_paste_tracks(), and BKE_tracking_track_add_empty().

◆ BKE_tracking_tracks_average()

void BKE_tracking_tracks_average ( MovieTrackingTrack dst_track,
MovieTrackingTrack **  src_tracks,
const int  num_src_tracks 
)

Definition at line 1026 of file tracking.c.

References tracking_average_markers(), and tracking_average_tracks().

Referenced by average_tracks_exec().

◆ BKE_tracking_tracks_deselect_all()

void BKE_tracking_tracks_deselect_all ( ListBase tracksbase)

◆ BKE_tracking_tracks_first_last_frame_minmax()

void BKE_tracking_tracks_first_last_frame_minmax ( struct MovieTrackingTrack **  tracks,
int  num_tracks,
int *  r_first_frame,
int *  r_last_frame 
)

Find the minimum starting frame and maximum ending frame within given set of tracks.

Definition at line 623 of file tracking.c.

References BKE_tracking_track_first_last_frame_get(), max_ii(), min_ii(), and tracks.

Referenced by tracking_average_markers().

◆ BKE_tracking_tracks_join()

void BKE_tracking_tracks_join ( MovieTracking tracking,
MovieTrackingTrack dst_track,
MovieTrackingTrack src_track 
)

◆ BKE_tracking_undistort_frame()

ImBuf* BKE_tracking_undistort_frame ( MovieTracking tracking,
ImBuf ibuf,
int  calibration_width,
int  calibration_height,
float  overscan 
)

◆ BKE_tracking_undistort_v2()

void BKE_tracking_undistort_v2 ( MovieTracking tracking,
int  image_width,
int  image_height,
const float  co[2],
float  r_co[2] 
)

◆ channels_alpha_inverse_sort()

static int channels_alpha_inverse_sort ( const void a,
const void b 
)
static

Definition at line 3063 of file tracking.c.

References Freestyle::a, usdtokens::b(), and channels_alpha_sort().

Referenced by tracking_dopesheet_channels_sort().

◆ channels_alpha_sort()

static int channels_alpha_sort ( const void a,
const void b 
)
static

◆ channels_average_error_inverse_sort()

static int channels_average_error_inverse_sort ( const void a,
const void b 
)
static

◆ channels_average_error_sort()

static int channels_average_error_sort ( const void a,
const void b 
)
static

◆ channels_end_inverse_sort()

static int channels_end_inverse_sort ( const void a,
const void b 
)
static

◆ channels_end_sort()

static int channels_end_sort ( const void a,
const void b 
)
static

◆ channels_longest_segment_inverse_sort()

static int channels_longest_segment_inverse_sort ( const void a,
const void b 
)
static

◆ channels_longest_segment_sort()

static int channels_longest_segment_sort ( const void a,
const void b 
)
static

◆ channels_start_inverse_sort()

static int channels_start_inverse_sort ( const void a,
const void b 
)
static

◆ channels_start_sort()

static int channels_start_sort ( const void a,
const void b 
)
static

◆ channels_total_track_inverse_sort()

static int channels_total_track_inverse_sort ( const void a,
const void b 
)
static

Definition at line 3072 of file tracking.c.

References Freestyle::a, usdtokens::b(), and channels_total_track_sort().

Referenced by tracking_dopesheet_channels_sort().

◆ channels_total_track_sort()

static int channels_total_track_sort ( const void a,
const void b 
)
static

◆ compare_firstlast_putting_undefined_first()

static int compare_firstlast_putting_undefined_first ( bool  inverse,
bool  a_markerless,
int  a_value,
bool  b_markerless,
int  b_value 
)
static

◆ coverage_from_count()

static int coverage_from_count ( int  count)
static

◆ disable_imbuf_channels()

static void disable_imbuf_channels ( ImBuf ibuf,
MovieTrackingTrack track,
bool  grayscale 
)
static

◆ get_usable_marker_for_interpolation()

static const MovieTrackingMarker* get_usable_marker_for_interpolation ( struct MovieTrackingTrack track,
const MovieTrackingMarker anchor_marker,
const int  direction 
)
static

◆ multiply_marker()

static void multiply_marker ( MovieTrackingMarker marker,
const float  multiplier 
)
static

◆ path_clear_all()

static void path_clear_all ( MovieTrackingTrack track,
const int  ref_frame 
)
static

◆ path_clear_remained()

static void path_clear_remained ( MovieTrackingTrack track,
const int  ref_frame 
)
static

◆ path_clear_up_to()

static void path_clear_up_to ( MovieTrackingTrack track,
const int  ref_frame 
)
static

◆ plane_marker_size_len_in_pixels()

BLI_INLINE int plane_marker_size_len_in_pixels ( const float  a[2],
const float  b[2],
const int  frame_width,
const int  frame_height 
)

Definition at line 2801 of file tracking.c.

References Freestyle::a, usdtokens::b(), ceilf, and len_v2v2().

Referenced by BKE_tracking_get_plane_imbuf().

◆ reconstructed_camera_index_get()

static int reconstructed_camera_index_get ( MovieTrackingReconstruction reconstruction,
int  framenr,
bool  nearest 
)
static

◆ reconstructed_camera_scale_set()

static void reconstructed_camera_scale_set ( MovieTrackingObject object,
float  mat[4][4] 
)
static

◆ track_mask_gpencil_layer_get()

static bGPDlayer* track_mask_gpencil_layer_get ( MovieTrackingTrack track)
static

◆ track_mask_gpencil_layer_rasterize()

static void track_mask_gpencil_layer_rasterize ( int  frame_width,
int  frame_height,
const float  region_min[2],
bGPDlayer layer,
float mask,
int  mask_width,
int  mask_height 
)
static

◆ track_mask_set_pixel_cb()

static void track_mask_set_pixel_cb ( int  x,
int  x_end,
int  y,
void user_data 
)
static

Definition at line 1148 of file tracking.c.

References data, user_data, x, and y.

Referenced by track_mask_gpencil_layer_rasterize().

◆ tracking_average_markers()

static void tracking_average_markers ( MovieTrackingTrack dst_track,
MovieTrackingTrack **  src_tracks,
const int  num_src_tracks 
)
static

◆ tracking_average_tracks()

static void tracking_average_tracks ( MovieTrackingTrack dst_track,
MovieTrackingTrack **  src_tracks,
const int  num_src_tracks 
)
static

Definition at line 1014 of file tracking.c.

References add_v2_v2(), mul_v2_fl(), MovieTrackingTrack::offset, and zero_v2().

Referenced by BKE_tracking_tracks_average().

◆ tracking_dopesheet_calc_coverage()

static void tracking_dopesheet_calc_coverage ( MovieTracking tracking)
static

◆ tracking_dopesheet_channels_calc()

static void tracking_dopesheet_channels_calc ( MovieTracking tracking)
static

◆ tracking_dopesheet_channels_segments_calc()

static void tracking_dopesheet_channels_segments_calc ( MovieTrackingDopesheetChannel channel)
static

◆ tracking_dopesheet_channels_sort()

static void tracking_dopesheet_channels_sort ( MovieTracking tracking,
int  sort_method,
bool  inverse 
)
static

◆ tracking_dopesheet_free()

static void tracking_dopesheet_free ( MovieTrackingDopesheet dopesheet)
static

◆ tracking_object_copy()

static void tracking_object_copy ( MovieTrackingObject object_dst,
const MovieTrackingObject object_src,
GHash tracks_mapping,
const int  flag 
)
static

◆ tracking_object_free()

static void tracking_object_free ( MovieTrackingObject object)
static

◆ tracking_objects_copy()

static void tracking_objects_copy ( ListBase objects_dst,
const ListBase objects_src,
GHash tracks_mapping,
const int  flag 
)
static

◆ tracking_objects_free()

static void tracking_objects_free ( ListBase objects)
static

Definition at line 112 of file tracking.c.

References BLI_freelistN(), LISTBASE_FOREACH, and tracking_object_free().

Referenced by BKE_tracking_free().

◆ tracking_plane_tracks_copy()

static void tracking_plane_tracks_copy ( ListBase plane_tracks_list_dst,
const ListBase plane_tracks_list_src,
GHash tracks_mapping,
const int  flag 
)
static

◆ tracking_plane_tracks_free()

static void tracking_plane_tracks_free ( ListBase plane_tracks)
static

◆ tracking_reconstruction_copy()

static void tracking_reconstruction_copy ( MovieTrackingReconstruction reconstruction_dst,
const MovieTrackingReconstruction reconstruction_src,
const int   UNUSEDflag 
)
static

Definition at line 215 of file tracking.c.

References MovieTrackingReconstruction::cameras, and MEM_dupallocN.

Referenced by BKE_tracking_copy(), and tracking_object_copy().

◆ tracking_reconstruction_free()

static void tracking_reconstruction_free ( MovieTrackingReconstruction reconstruction)
static

Definition at line 92 of file tracking.c.

References MEM_freeN, and reconstruction.

Referenced by BKE_tracking_free(), and tracking_object_free().

◆ tracking_stabilization_copy()

static void tracking_stabilization_copy ( MovieTrackingStabilization stabilization_dst,
const MovieTrackingStabilization stabilization_src,
const int   UNUSEDflag 
)
static

Definition at line 226 of file tracking.c.

Referenced by BKE_tracking_copy().

◆ tracking_track_get_mask_for_region()

float* tracking_track_get_mask_for_region ( int  frame_width,
int  frame_height,
const float  region_min[2],
const float  region_max[2],
MovieTrackingTrack track 
)

Region is in pixel space, relative to marker's center.

Definition at line 1203 of file tracking.c.

References mask(), MEM_callocN, NULL, track_mask_gpencil_layer_get(), and track_mask_gpencil_layer_rasterize().

Referenced by accessor_get_mask_for_track_callback(), and BKE_tracking_track_get_mask().

◆ tracking_tracks_copy()

static void tracking_tracks_copy ( ListBase tracks_dst,
const ListBase tracks_src,
GHash tracks_mapping,
const int  flag 
)
static

◆ tracking_tracks_free()

static void tracking_tracks_free ( ListBase tracks)
static

Variable Documentation

◆ 

struct { ... } tracking_clipboard

◆ tracks

ListBase tracks