Blender V4.3
tracking.cc File Reference
#include <climits>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <memory.h>
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
#include "DNA_camera_types.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_legacy_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_hash.hh"
#include "BLI_listbase.h"
#include "BLI_math_base.h"
#include "BLI_math_geom.h"
#include "BLI_math_matrix.h"
#include "BLI_math_vector.h"
#include "BLI_math_vector_types.hh"
#include "BLI_string.h"
#include "BLI_string_utils.hh"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "BKE_fcurve.hh"
#include "BKE_layer.hh"
#include "BKE_lib_id.hh"
#include "BKE_movieclip.h"
#include "BKE_object.hh"
#include "BKE_scene.hh"
#include "BKE_tracking.h"
#include "IMB_imbuf.hh"
#include "IMB_imbuf_types.hh"
#include "RNA_access.hh"
#include "RNA_prototypes.hh"
#include "libmv-capi.h"
#include "tracking_private.h"

Go to the source code of this file.

Classes

struct  MovieDistortion
 
struct  TrackingCopyContext
 
struct  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 *tracking_object)
 
static void tracking_objects_free (ListBase *objects)
 
static void tracking_dopesheet_free (MovieTrackingDopesheet *dopesheet)
 
void BKE_tracking_free (MovieTracking *tracking)
 
static TrackingCopyContext tracking_copy_context_new ()
 
static void tracking_copy_context_delete (TrackingCopyContext *ctx)
 
static void tracking_tracks_copy (TrackingCopyContext *ctx, ListBase *tracks_dst, const ListBase *tracks_src, const int flag)
 
static void tracking_plane_tracks_copy (TrackingCopyContext *ctx, ListBase *plane_tracks_list_dst, const ListBase *plane_tracks_list_src, const int flag)
 
static void tracking_reconstruction_copy (TrackingCopyContext *, MovieTrackingReconstruction *reconstruction_dst, const MovieTrackingReconstruction *reconstruction_src, const int)
 
static void tracking_stabilization_copy (MovieTrackingStabilization *stabilization_dst, const MovieTrackingStabilization *stabilization_src, const int)
 
static void tracking_object_copy (MovieTrackingObject *tracking_object_dst, const MovieTrackingObject *tracking_object_src, const int flag)
 
static void tracking_objects_copy (ListBase *tracking_objects_dst, const ListBase *tracking_objects_src, const int flag)
 
void BKE_tracking_copy (MovieTracking *tracking_dst, const MovieTracking *tracking_src, const int flag)
 
void BKE_tracking_settings_init (MovieTracking *tracking)
 
void BKE_tracking_get_camera_object_matrix (const Object *camera_object, float mat[4][4])
 
void BKE_tracking_get_projection_matrix (MovieTracking *tracking, MovieTrackingObject *tracking_object, int framenr, int winx, int winy, float mat[4][4])
 
void BKE_tracking_clipboard_free ()
 
void BKE_tracking_clipboard_copy_tracks (MovieTracking *, MovieTrackingObject *tracking_object)
 
bool BKE_tracking_clipboard_has_tracks ()
 
void BKE_tracking_clipboard_paste_tracks (MovieTracking *, MovieTrackingObject *tracking_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_for_selection_index (MovieTracking *tracking, int selection_index, ListBase **r_tracksbase)
 
static bGPDlayertrack_mask_gpencil_layer_get (const 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 (const int frame_width, const int frame_height, const float region_min[2], const bGPDlayer *layer, float *mask, const int mask_width, const int mask_height)
 
floattracking_track_get_mask_for_region (const int frame_width, const int frame_height, const float region_min[2], const float region_max[2], const MovieTrackingTrack *track)
 
floatBKE_tracking_track_get_mask (const int frame_width, const int frame_height, const MovieTrackingTrack *track, const 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 (MovieTrackingTrack *track, const MovieTrackingMarker *anchor_marker, const int direction)
 
bool BKE_tracking_marker_get_interpolated (MovieTrackingTrack *track, const int framenr, 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)
 
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 *tracking_object)
 
void BKE_tracking_object_unique_name (MovieTracking *tracking, MovieTrackingObject *tracking_object)
 
MovieTrackingObjectBKE_tracking_object_get_named (MovieTracking *tracking, const char *name)
 
MovieTrackingObjectBKE_tracking_object_get_active (const MovieTracking *tracking)
 
MovieTrackingObjectBKE_tracking_object_get_camera (const MovieTracking *tracking)
 
MovieTrackingTrackBKE_tracking_object_find_track_with_name (MovieTrackingObject *tracking_object, const char *name)
 
MovieTrackingPlaneTrackBKE_tracking_object_find_plane_track_with_name (MovieTrackingObject *tracking_object, const char *name)
 
static int reconstructed_camera_index_get (MovieTrackingReconstruction *reconstruction, int framenr, bool nearest)
 
static void reconstructed_camera_scale_set (const MovieTrackingObject *tracking_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 *, MovieTrackingObject *tracking_object, int framenr)
 
void BKE_tracking_camera_get_reconstructed_interpolate (MovieTracking *, MovieTrackingObject *tracking_object, float framenr, float mat[4][4])
 
void BKE_tracking_camera_principal_point_pixel_get (MovieClip *clip, float r_principal_point_pixel[2])
 
void BKE_tracking_camera_principal_point_pixel_set (MovieClip *clip, const float principal_point_pixel[2])
 
bool BKE_tracking_camera_distortion_equal (const MovieTrackingCamera *a, const MovieTrackingCamera *b)
 
uint64_t BKE_tracking_camera_distortion_hash (const MovieTrackingCamera *camera)
 
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, const int image_width, const int image_height, const rcti *rect, const bool undistort, float r_delta[2])
 
static void disable_imbuf_channels (ImBuf *ibuf, const MovieTrackingTrack *track, const bool grayscale)
 
ImBufBKE_tracking_sample_pattern (const int frame_width, const int frame_height, const ImBuf *search_ibuf, const MovieTrackingTrack *track, const MovieTrackingMarker *marker, const bool from_anchor, const bool use_mask, const int num_samples_x, const int num_samples_y, float pos[2])
 
ImBufBKE_tracking_get_pattern_imbuf (const ImBuf *ibuf, const MovieTrackingTrack *track, const MovieTrackingMarker *marker, const bool anchored, const bool disable_channels)
 
ImBufBKE_tracking_get_search_imbuf (const ImBuf *ibuf, const MovieTrackingTrack *track, const MovieTrackingMarker *marker, const bool anchored, const 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)
 
MovieTrackingObjectBKE_tracking_find_object_for_plane_track (const MovieTracking *tracking, const MovieTrackingPlaneTrack *plane_track)
 
void BKE_tracking_get_rna_path_for_track (const MovieTracking *tracking, const MovieTrackingTrack *track, char *rna_path, size_t rna_path_maxncpy)
 
void BKE_tracking_get_rna_path_prefix_for_track (const MovieTracking *tracking, const MovieTrackingTrack *track, char *rna_path, size_t rna_path_maxncpy)
 
void BKE_tracking_get_rna_path_for_plane_track (const MovieTracking *tracking, const MovieTrackingPlaneTrack *plane_track, char *rna_path, size_t rna_path_maxncpy)
 
void BKE_tracking_get_rna_path_prefix_for_plane_track (const MovieTracking *tracking, const MovieTrackingPlaneTrack *plane_track, char *rna_path, size_t rna_path_maxncpy)
 

Variables

struct { 
 
   ListBase   tracks 
 
tracking_clipboard 
 

Function Documentation

◆ accumulate_marker()

◆ BKE_tracking_camera_distortion_equal()

◆ BKE_tracking_camera_distortion_hash()

◆ BKE_tracking_camera_get_reconstructed()

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

◆ BKE_tracking_camera_get_reconstructed_interpolate()

◆ BKE_tracking_camera_principal_point_pixel_get()

void BKE_tracking_camera_principal_point_pixel_get ( MovieClip * clip,
float r_principal_point_pixel[2] )

◆ BKE_tracking_camera_principal_point_pixel_set()

void BKE_tracking_camera_principal_point_pixel_set ( MovieClip * clip,
const float principal_point_pixel[2] )

◆ 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 2102 of file tracking.cc.

References tracking_principal_point_normalized_to_pixel().

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 )

Definition at line 2115 of file tracking.cc.

References BKE_tracking_camera_shift_get(), and CAMERA_SENSOR_FIT_HOR.

Referenced by solve_camera_freejob().

◆ BKE_tracking_clipboard_copy_tracks()

void BKE_tracking_clipboard_copy_tracks ( struct MovieTracking * tracking,
struct MovieTrackingObject * tracking_object )

Copy selected tracks from specified object to the clipboard.

Definition at line 460 of file tracking.cc.

References BKE_tracking_clipboard_free(), BKE_tracking_track_duplicate(), BLI_addtail(), LISTBASE_FOREACH, TRACK_HIDDEN, TRACK_SELECTED, tracking_clipboard, and MovieTrackingObject::tracks.

Referenced by copy_tracks_exec().

◆ BKE_tracking_clipboard_free()

void BKE_tracking_clipboard_free ( void )

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

Definition at line 443 of file tracking.cc.

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 476 of file tracking.cc.

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 * tracking_object )

Paste tracks from clipboard to specified object.

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

Definition at line 481 of file tracking.cc.

References MovieTrackingObject::active_track, BKE_tracking_track_duplicate(), BKE_tracking_track_unique_name(), BLI_addtail(), LISTBASE_FOREACH, tracking_clipboard, and MovieTrackingObject::tracks.

Referenced by paste_tracks_exec().

◆ BKE_tracking_copy()

◆ 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 629 of file tracking.cc.

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 2876 of file tracking.cc.

References b, ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IB_RECT_INVALID, ImBuf::userflags, ImBuf::x, x, 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()

◆ 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()

◆ BKE_tracking_distortion_free()

◆ BKE_tracking_distortion_new()

◆ BKE_tracking_distortion_set_threads()

void BKE_tracking_distortion_set_threads ( MovieDistortion * distortion,
int threads )

Definition at line 2308 of file tracking.cc.

References libmv_cameraIntrinsicsSetThreads().

Referenced by do_movie_proxy().

◆ 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()

◆ BKE_tracking_dopesheet_update()

◆ 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_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 160 of file tracking.cc.

References BKE_tracking_distortion_free(), tracking_dopesheet_free(), and tracking_objects_free().

Referenced by movie_clip_free_data().

◆ BKE_tracking_get_camera_object_matrix()

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

Definition at line 370 of file tracking.cc.

References BKE_object_where_is_calc_mat4(), and BLI_assert.

◆ BKE_tracking_get_pattern_imbuf()

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

◆ BKE_tracking_get_plane_imbuf()

◆ BKE_tracking_get_projection_matrix()

void BKE_tracking_get_projection_matrix ( struct MovieTracking * tracking,
struct MovieTrackingObject * tracking_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 386 of file tracking.cc.

References BKE_tracking_camera_get_reconstructed(), BKE_tracking_camera_shift_get(), camera, copy_m4_m4(), float, invert_m4_m4(), left, min_ii(), mul_m4_m4m4(), perspective_m4(), 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 MovieTracking * tracking,
const MovieTrackingPlaneTrack * plane_track,
char * rna_path,
size_t rna_path_maxncpy )

◆ BKE_tracking_get_rna_path_for_track()

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

◆ BKE_tracking_get_rna_path_prefix_for_plane_track()

void BKE_tracking_get_rna_path_prefix_for_plane_track ( const MovieTracking * tracking,
const MovieTrackingPlaneTrack * plane_track,
char * rna_path,
size_t rna_path_maxncpy )

◆ BKE_tracking_get_rna_path_prefix_for_track()

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

◆ BKE_tracking_get_search_imbuf()

◆ 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 1308 of file tracking.cc.

References 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 1338 of file tracking.cc.

References 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 1327 of file tracking.cc.

References 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()

◆ 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 1358 of file tracking.cc.

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

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(), circle_select_exec(), clip_draw_grease_pencil(), blender::compositor::KeyingScreenOperation::compute_marker_points(), blender::realtime_compositor::compute_marker_points(), blender::nodes::node_composite_trackpos_cc::TrackPositionOperation::compute_marker_position_at_frame(), do_lasso_select_marker(), draw_tracking_tracks(), ED_clip_select_all(), ed_tracking_pick_point_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(), tracking_context_get_reference_ibuf(), tracking_get_keyframed_marker(), tracking_has_selection(), and uiTemplateMarker().

◆ BKE_tracking_marker_get_exact()

◆ 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 1437 of file tracking.cc.

References BKE_tracking_marker_get(), MovieTrackingMarker::flag, float, MovieTrackingMarker::framenr, get_usable_marker_for_interpolation(), interp_v2_v2v2(), MARKER_DISABLED, 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()

◆ BKE_tracking_marker_insert()

◆ BKE_tracking_marker_pattern_minmax()

◆ BKE_tracking_max_distortion_delta_across_bound()

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

◆ BKE_tracking_object_add()

◆ BKE_tracking_object_delete()

bool BKE_tracking_object_delete ( MovieTracking * tracking,
MovieTrackingObject * tracking_object )

◆ BKE_tracking_object_find_plane_track_with_name()

MovieTrackingPlaneTrack * BKE_tracking_object_find_plane_track_with_name ( MovieTrackingObject * tracking_object,
const char * name )

◆ BKE_tracking_object_find_track_with_name()

◆ BKE_tracking_object_get_active()

◆ BKE_tracking_object_get_camera()

MovieTrackingObject * BKE_tracking_object_get_camera ( const MovieTracking * tracking)

Definition at line 1982 of file tracking.cc.

References LISTBASE_FOREACH, and TRACKING_OBJECT_CAMERA.

◆ BKE_tracking_object_get_named()

◆ BKE_tracking_object_unique_name()

void BKE_tracking_object_unique_name ( MovieTracking * tracking,
MovieTrackingObject * tracking_object )

Definition at line 1956 of file tracking.cc.

References BLI_uniquename(), DATA_, MovieTrackingObject::name, and offsetof.

Referenced by BKE_tracking_object_add().

◆ 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()

◆ 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 1837 of file tracking.cc.

References BKE_tracking_plane_marker_get(), and MovieTrackingPlaneMarker::framenr.

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

◆ BKE_tracking_plane_marker_insert()

◆ BKE_tracking_plane_track_add()

◆ 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 1625 of file tracking.cc.

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_has_point_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 1634 of file tracking.cc.

References LISTBASE_FOREACH.

Referenced by add_marker(), and average_tracks_exec().

◆ BKE_tracking_plane_tracks_remove_point_track()

◆ BKE_tracking_plane_tracks_replace_point_track()

◆ BKE_tracking_sample_pattern()

ImBuf * BKE_tracking_sample_pattern ( const int frame_width,
const int frame_height,
const ImBuf * search_ibuf,
const MovieTrackingTrack * track,
const MovieTrackingMarker * marker,
const bool from_anchor,
const bool use_mask,
const int num_samples_x,
const 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 646 of file tracking.cc.

References BKE_tracking_count_selected_tracks_in_active_object(), BKE_tracking_object_get_active(), LISTBASE_FOREACH, TRACK_SELECTED, and MovieTrackingObject::tracks.

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 329 of file tracking.cc.

References BKE_tracking_object_add(), CAMERA_UNITS_MM, DATA_, REFINE_NO_INTRINSICS, 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, 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 525 of file tracking.cc.

References BKE_tracking_marker_insert(), BKE_tracking_track_add_empty(), copy_v2_v2(), MovieTrackingMarker::framenr, negate_v2_v2(), MovieTrackingMarker::pattern_corners, MovieTrackingMarker::pos, MovieTrackingMarker::search_max, MovieTrackingMarker::search_min, x, and y.

Referenced by add_marker(), and detect_retrieve_libmv_features().

◆ BKE_tracking_track_add_empty()

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

Duplicate the specified track, result will no belong to any list.

Definition at line 566 of file tracking.cc.

References MovieTrackingTrack::flag, MovieTrackingTrack::markers, MEM_dupallocN, MovieTrackingTrack::next, and MovieTrackingTrack::prev.

Referenced by BKE_tracking_clipboard_copy_tracks(), BKE_tracking_clipboard_paste_tracks(), and tracks_map_merge().

◆ 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 675 of file tracking.cc.

References flag, 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 596 of file tracking.cc.

References MovieTrackingTrack::markers, and MEM_freeN().

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

◆ BKE_tracking_track_get_for_selection_index()

MovieTrackingTrack * BKE_tracking_track_get_for_selection_index ( MovieTracking * tracking,
int selection_index,
ListBase ** r_tracksbase )

Definition at line 1025 of file tracking.cc.

References LISTBASE_FOREACH, and TRACK_HAS_BUNDLE.

Referenced by ed_object_select_pick_camera_track().

◆ BKE_tracking_track_get_mask()

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

◆ BKE_tracking_track_get_weight_for_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 714 of file tracking.cc.

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 709 of file tracking.cc.

References BKE_tracking_marker_get_exact().

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 586 of file tracking.cc.

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

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 1013 of file tracking.cc.

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 613 of file tracking.cc.

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

Referenced by tracking_average_markers().

◆ BKE_tracking_tracks_join()

◆ 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()

◆ channels_alpha_inverse_sort()

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

Definition at line 3060 of file tracking.cc.

References 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

Definition at line 3078 of file tracking.cc.

References b, and channels_longest_segment_sort().

Referenced by tracking_dopesheet_channels_sort().

◆ 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 3069 of file tracking.cc.

References 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,
const MovieTrackingTrack * track,
const bool grayscale )
static

◆ get_usable_marker_for_interpolation()

static const MovieTrackingMarker * get_usable_marker_for_interpolation ( 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()

◆ 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 2786 of file tracking.cc.

References 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 ( const MovieTrackingObject * tracking_object,
float mat[4][4] )
static

◆ track_mask_gpencil_layer_get()

static bGPDlayer * track_mask_gpencil_layer_get ( const MovieTrackingTrack * track)
static

◆ track_mask_gpencil_layer_rasterize()

static void track_mask_gpencil_layer_rasterize ( const int frame_width,
const int frame_height,
const float region_min[2],
const bGPDlayer * layer,
float * mask,
const int mask_width,
const 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 1090 of file tracking.cc.

References TrackMaskSetPixelData::mask_width, and x.

Referenced by track_mask_gpencil_layer_rasterize().

◆ tracking_average_markers()

◆ tracking_average_tracks()

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

Definition at line 1001 of file tracking.cc.

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

Referenced by BKE_tracking_tracks_average().

◆ tracking_copy_context_delete()

static void tracking_copy_context_delete ( TrackingCopyContext * ctx)
static

◆ tracking_copy_context_new()

static TrackingCopyContext tracking_copy_context_new ( )
static

◆ tracking_dopesheet_calc_coverage()

◆ tracking_dopesheet_channels_calc()

◆ tracking_dopesheet_channels_segments_calc()

static void tracking_dopesheet_channels_segments_calc ( MovieTrackingDopesheetChannel * channel)
static

◆ tracking_dopesheet_channels_sort()

◆ tracking_dopesheet_free()

◆ tracking_object_copy()

◆ tracking_object_free()

◆ tracking_objects_copy()

static void tracking_objects_copy ( ListBase * tracking_objects_dst,
const ListBase * tracking_objects_src,
const int flag )
static

Definition at line 296 of file tracking.cc.

References BLI_addtail(), BLI_listbase_clear(), flag, LISTBASE_FOREACH, and tracking_object_copy().

Referenced by BKE_tracking_copy().

◆ tracking_objects_free()

static void tracking_objects_free ( ListBase * objects)
static

Definition at line 122 of file tracking.cc.

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

Referenced by BKE_tracking_free().

◆ tracking_plane_tracks_copy()

◆ tracking_plane_tracks_free()

static void tracking_plane_tracks_free ( ListBase * plane_tracks)
static

Definition at line 88 of file tracking.cc.

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

Referenced by tracking_object_free().

◆ tracking_reconstruction_copy()

static void tracking_reconstruction_copy ( TrackingCopyContext * ,
MovieTrackingReconstruction * reconstruction_dst,
const MovieTrackingReconstruction * reconstruction_src,
const int  )
static

Definition at line 246 of file tracking.cc.

References MovieTrackingReconstruction::cameras, and MEM_dupallocN.

Referenced by tracking_object_copy().

◆ tracking_reconstruction_free()

static void tracking_reconstruction_free ( MovieTrackingReconstruction * reconstruction)
static

Definition at line 102 of file tracking.cc.

References MEM_freeN(), and reconstruction.

Referenced by tracking_object_free().

◆ tracking_stabilization_copy()

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

Definition at line 259 of file tracking.cc.

Referenced by BKE_tracking_copy().

◆ tracking_track_get_mask_for_region()

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

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

Definition at line 1136 of file tracking.cc.

References mask(), 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()

◆ tracking_tracks_free()

static void tracking_tracks_free ( ListBase * tracks)
static

Definition at line 78 of file tracking.cc.

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

Referenced by tracking_object_free().

Variable Documentation

◆ [struct]

◆ tracks