Blender  V3.3
Macros | Typedefs | Enumerations | Functions
BKE_tracking.h File Reference
#include "BLI_sys_types.h"

Go to the source code of this file.

Macros

#define TRACK_SELECTED(track)    ((track)->flag & SELECT || (track)->pat_flag & SELECT || (track)->search_flag & SELECT)
 
#define TRACK_AREA_SELECTED(track, area)
 
#define TRACK_VIEW_SELECTED(sc, track)
 
#define PLANE_TRACK_VIEW_SELECTED(plane_track)    ((((plane_track)->flag & PLANE_TRACK_HIDDEN) == 0) && ((plane_track)->flag & SELECT))
 
#define MARKER_VISIBLE(sc, track, marker)
 

Typedefs

typedef enum eTrackArea eTrackArea
 
typedef enum eTrackClearAction eTrackClearAction
 

Enumerations

enum  eTrackArea {
  TRACK_AREA_POINT = (1 << 0) , TRACK_AREA_PAT = (1 << 1) , TRACK_AREA_SEARCH = (1 << 2) , TRACK_AREA_NONE = 0 ,
  TRACK_AREA_ALL = (TRACK_AREA_POINT | TRACK_AREA_PAT | TRACK_AREA_SEARCH)
}
 
enum  eTrackClearAction { TRACK_CLEAR_UPTO , TRACK_CLEAR_REMAINED , TRACK_CLEAR_ALL }
 

Functions

void BKE_tracking_free (struct MovieTracking *tracking)
 
void BKE_tracking_copy (struct MovieTracking *tracking_dst, const struct MovieTracking *tracking_src, int flag)
 
void BKE_tracking_settings_init (struct MovieTracking *tracking)
 
struct ListBaseBKE_tracking_get_active_tracks (struct MovieTracking *tracking)
 
struct ListBaseBKE_tracking_get_active_plane_tracks (struct MovieTracking *tracking)
 
struct MovieTrackingReconstructionBKE_tracking_get_active_reconstruction (struct MovieTracking *tracking)
 
void BKE_tracking_get_camera_object_matrix (struct Object *camera_object, float mat[4][4])
 
void BKE_tracking_get_projection_matrix (struct MovieTracking *tracking, struct MovieTrackingObject *object, int framenr, int winx, int winy, float mat[4][4])
 
void BKE_tracking_clipboard_free (void)
 
void BKE_tracking_clipboard_copy_tracks (struct MovieTracking *tracking, struct MovieTrackingObject *object)
 
bool BKE_tracking_clipboard_has_tracks (void)
 
void BKE_tracking_clipboard_paste_tracks (struct MovieTracking *tracking, struct MovieTrackingObject *object)
 
struct MovieTrackingTrackBKE_tracking_track_add_empty (struct MovieTracking *tracking, struct ListBase *tracks_list)
 
struct MovieTrackingTrackBKE_tracking_track_add (struct MovieTracking *tracking, struct ListBase *tracksbase, float x, float y, int framenr, int width, int height)
 
struct MovieTrackingTrackBKE_tracking_track_duplicate (struct MovieTrackingTrack *track)
 
void BKE_tracking_track_unique_name (struct ListBase *tracksbase, struct MovieTrackingTrack *track)
 
void BKE_tracking_track_free (struct MovieTrackingTrack *track)
 
void BKE_tracking_track_first_last_frame_get (const struct MovieTrackingTrack *track, int *r_first_frame, int *r_last_frame)
 
void BKE_tracking_tracks_first_last_frame_minmax (struct MovieTrackingTrack **tracks, int num_tracks, int *r_first_frame, int *r_last_frame)
 
int BKE_tracking_count_selected_tracks_in_list (const struct ListBase *tracks_list)
 
int BKE_tracking_count_selected_tracks_in_active_object (struct MovieTracking *tracking)
 
struct MovieTrackingTrack ** BKE_tracking_selected_tracks_in_active_object (struct MovieTracking *tracking, int *r_num_tracks)
 
void BKE_tracking_track_flag_set (struct MovieTrackingTrack *track, int area, int flag)
 
void BKE_tracking_track_flag_clear (struct MovieTrackingTrack *track, int area, int flag)
 
bool BKE_tracking_track_has_marker_at_frame (struct MovieTrackingTrack *track, int framenr)
 
bool BKE_tracking_track_has_enabled_marker_at_frame (struct MovieTrackingTrack *track, int framenr)
 
void BKE_tracking_track_path_clear (struct MovieTrackingTrack *track, int ref_frame, eTrackClearAction action)
 
void BKE_tracking_tracks_join (struct MovieTracking *tracking, struct MovieTrackingTrack *dst_track, struct MovieTrackingTrack *src_track)
 
void BKE_tracking_tracks_average (struct MovieTrackingTrack *dst_track, struct MovieTrackingTrack **src_tracks, int num_src_tracks)
 
struct MovieTrackingTrackBKE_tracking_track_get_named (struct MovieTracking *tracking, struct MovieTrackingObject *object, const char *name)
 
struct MovieTrackingTrackBKE_tracking_track_get_indexed (struct MovieTracking *tracking, int tracknr, struct ListBase **r_tracksbase)
 
struct MovieTrackingTrackBKE_tracking_track_get_active (struct MovieTracking *tracking)
 
floatBKE_tracking_track_get_mask (int frame_width, int frame_height, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker)
 
float BKE_tracking_track_get_weight_for_marker (struct MovieClip *clip, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker)
 
void BKE_tracking_track_select (struct ListBase *tracksbase, struct MovieTrackingTrack *track, int area, bool extend)
 
void BKE_tracking_track_deselect (struct MovieTrackingTrack *track, int area)
 
void BKE_tracking_tracks_deselect_all (struct ListBase *tracksbase)
 
struct MovieTrackingMarkerBKE_tracking_marker_insert (struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker)
 
void BKE_tracking_marker_delete (struct MovieTrackingTrack *track, int framenr)
 
void BKE_tracking_marker_clamp_pattern_position (struct MovieTrackingMarker *marker)
 
void BKE_tracking_marker_clamp_search_size (struct MovieTrackingMarker *marker)
 
void BKE_tracking_marker_clamp_search_position (struct MovieTrackingMarker *marker)
 
struct MovieTrackingMarkerBKE_tracking_marker_get (struct MovieTrackingTrack *track, int framenr)
 
struct MovieTrackingMarkerBKE_tracking_marker_get_exact (struct MovieTrackingTrack *track, int framenr)
 
struct MovieTrackingMarkerBKE_tracking_marker_ensure (struct MovieTrackingTrack *track, int framenr)
 
bool BKE_tracking_marker_get_interpolated (struct MovieTrackingTrack *track, int framenr, struct MovieTrackingMarker *r_marker)
 
void BKE_tracking_marker_pattern_minmax (const struct MovieTrackingMarker *marker, float min[2], float max[2])
 
void BKE_tracking_marker_get_subframe_position (struct MovieTrackingTrack *track, float framenr, float pos[2])
 
struct MovieTrackingPlaneTrackBKE_tracking_plane_track_add (struct MovieTracking *tracking, struct ListBase *plane_tracks_base, struct ListBase *tracks, int framenr)
 
void BKE_tracking_plane_track_unique_name (struct ListBase *plane_tracks_base, struct MovieTrackingPlaneTrack *plane_track)
 
void BKE_tracking_plane_track_free (struct MovieTrackingPlaneTrack *plane_track)
 
bool BKE_tracking_plane_track_has_marker_at_frame (struct MovieTrackingPlaneTrack *plane_track, int framenr)
 
bool BKE_tracking_plane_track_has_enabled_marker_at_frame (struct MovieTrackingPlaneTrack *plane_track, int framenr)
 
struct MovieTrackingPlaneTrackBKE_tracking_plane_track_get_named (struct MovieTracking *tracking, struct MovieTrackingObject *object, const char *name)
 
struct MovieTrackingPlaneTrackBKE_tracking_plane_track_get_active (struct MovieTracking *tracking)
 
void BKE_tracking_plane_tracks_deselect_all (struct ListBase *plane_tracks_base)
 
bool BKE_tracking_plane_track_has_point_track (struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingTrack *track)
 
bool BKE_tracking_plane_track_remove_point_track (struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingTrack *track)
 
void BKE_tracking_plane_tracks_remove_point_track (struct MovieTracking *tracking, struct MovieTrackingTrack *track)
 
void BKE_tracking_plane_track_replace_point_track (struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingTrack *old_track, struct MovieTrackingTrack *new_track)
 
void BKE_tracking_plane_tracks_replace_point_track (struct MovieTracking *tracking, struct MovieTrackingTrack *old_track, struct MovieTrackingTrack *new_track)
 
struct MovieTrackingPlaneMarkerBKE_tracking_plane_marker_insert (struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingPlaneMarker *plane_marker)
 
void BKE_tracking_plane_marker_delete (struct MovieTrackingPlaneTrack *plane_track, int framenr)
 
struct MovieTrackingPlaneMarkerBKE_tracking_plane_marker_get (struct MovieTrackingPlaneTrack *plane_track, int framenr)
 
struct MovieTrackingPlaneMarkerBKE_tracking_plane_marker_get_exact (struct MovieTrackingPlaneTrack *plane_track, int framenr)
 
struct MovieTrackingPlaneMarkerBKE_tracking_plane_marker_ensure (struct MovieTrackingPlaneTrack *plane_track, int framenr)
 
void BKE_tracking_plane_marker_get_subframe_corners (struct MovieTrackingPlaneTrack *plane_track, float framenr, float corners[4][2])
 
struct MovieTrackingObjectBKE_tracking_object_add (struct MovieTracking *tracking, const char *name)
 
bool BKE_tracking_object_delete (struct MovieTracking *tracking, struct MovieTrackingObject *object)
 
void BKE_tracking_object_unique_name (struct MovieTracking *tracking, struct MovieTrackingObject *object)
 
struct MovieTrackingObjectBKE_tracking_object_get_named (struct MovieTracking *tracking, const char *name)
 
struct MovieTrackingObjectBKE_tracking_object_get_active (struct MovieTracking *tracking)
 
struct MovieTrackingObjectBKE_tracking_object_get_camera (struct MovieTracking *tracking)
 
struct ListBaseBKE_tracking_object_get_tracks (struct MovieTracking *tracking, struct MovieTrackingObject *object)
 
struct ListBaseBKE_tracking_object_get_plane_tracks (struct MovieTracking *tracking, struct MovieTrackingObject *object)
 
struct MovieTrackingReconstructionBKE_tracking_object_get_reconstruction (struct MovieTracking *tracking, struct MovieTrackingObject *object)
 
void BKE_tracking_camera_shift_get (struct MovieTracking *tracking, int winx, int winy, float *shiftx, float *shifty)
 
void BKE_tracking_camera_to_blender (struct MovieTracking *tracking, struct Scene *scene, struct Camera *camera, int width, int height)
 
struct MovieReconstructedCameraBKE_tracking_camera_get_reconstructed (struct MovieTracking *tracking, struct MovieTrackingObject *object, int framenr)
 
void BKE_tracking_camera_get_reconstructed_interpolate (struct MovieTracking *tracking, struct MovieTrackingObject *object, float framenr, float mat[4][4])
 
struct MovieDistortionBKE_tracking_distortion_new (struct MovieTracking *tracking, int calibration_width, int calibration_height)
 
void BKE_tracking_distortion_update (struct MovieDistortion *distortion, struct MovieTracking *tracking, int calibration_width, int calibration_height)
 
void BKE_tracking_distortion_set_threads (struct MovieDistortion *distortion, int threads)
 
struct MovieDistortionBKE_tracking_distortion_copy (struct MovieDistortion *distortion)
 
struct ImBufBKE_tracking_distortion_exec (struct MovieDistortion *distortion, struct MovieTracking *tracking, struct ImBuf *ibuf, int width, int height, float overscan, bool undistort)
 
void BKE_tracking_distortion_distort_v2 (struct MovieDistortion *distortion, const float co[2], float r_co[2])
 
void BKE_tracking_distortion_undistort_v2 (struct MovieDistortion *distortion, const float co[2], float r_co[2])
 
void BKE_tracking_distortion_free (struct MovieDistortion *distortion)
 
void BKE_tracking_distort_v2 (struct MovieTracking *tracking, int image_width, int image_height, const float co[2], float r_co[2])
 
void BKE_tracking_undistort_v2 (struct MovieTracking *tracking, int image_width, int image_height, const float co[2], float r_co[2])
 
struct ImBufBKE_tracking_undistort_frame (struct MovieTracking *tracking, struct ImBuf *ibuf, int calibration_width, int calibration_height, float overscan)
 
struct ImBufBKE_tracking_distort_frame (struct MovieTracking *tracking, struct ImBuf *ibuf, int calibration_width, int calibration_height, float overscan)
 
void BKE_tracking_max_distortion_delta_across_bound (struct MovieTracking *tracking, int image_width, int image_height, struct rcti *rect, bool undistort, float delta[2])
 
struct ImBufBKE_tracking_sample_pattern (int frame_width, int frame_height, struct ImBuf *search_ib, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker, bool from_anchor, bool use_mask, int num_samples_x, int num_samples_y, float pos[2])
 
struct ImBufBKE_tracking_get_pattern_imbuf (struct ImBuf *ibuf, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker, bool anchored, bool disable_channels)
 
struct ImBufBKE_tracking_get_search_imbuf (struct ImBuf *ibuf, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker, bool anchored, bool disable_channels)
 
struct ImBufBKE_tracking_get_plane_imbuf (const struct ImBuf *frame_ibuf, const struct MovieTrackingPlaneMarker *plane_marker)
 
void BKE_tracking_disable_channels (struct ImBuf *ibuf, bool disable_red, bool disable_green, bool disable_blue, bool grayscale)
 
void BKE_tracking_refine_marker (struct MovieClip *clip, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker, bool backwards)
 
struct AutoTrackContextBKE_autotrack_context_new (struct MovieClip *clip, struct MovieClipUser *user, bool is_backwards)
 
void BKE_autotrack_context_start (struct AutoTrackContext *context)
 
bool BKE_autotrack_context_step (struct AutoTrackContext *context)
 
void BKE_autotrack_context_sync (struct AutoTrackContext *context)
 
void BKE_autotrack_context_sync_user (struct AutoTrackContext *context, struct MovieClipUser *user)
 
void BKE_autotrack_context_finish (struct AutoTrackContext *context)
 
void BKE_autotrack_context_free (struct AutoTrackContext *context)
 
void BKE_tracking_track_plane_from_existing_motion (struct MovieTrackingPlaneTrack *plane_track, int start_frame)
 
void BKE_tracking_retrack_plane_from_existing_motion_at_segment (struct MovieTrackingPlaneTrack *plane_track, int start_frame)
 
void BKE_tracking_homography_between_two_quads (float reference_corners[4][2], float corners[4][2], float H[3][3])
 
bool BKE_tracking_reconstruction_check (struct MovieTracking *tracking, struct MovieTrackingObject *object, char *error_msg, int error_size)
 
struct MovieReconstructContextBKE_tracking_reconstruction_context_new (struct MovieClip *clip, struct MovieTrackingObject *object, int keyframe1, int keyframe2, int width, int height)
 
void BKE_tracking_reconstruction_context_free (struct MovieReconstructContext *context)
 
void BKE_tracking_reconstruction_solve (struct MovieReconstructContext *context, short *stop, short *do_update, float *progress, char *stats_message, int message_size)
 
bool BKE_tracking_reconstruction_finish (struct MovieReconstructContext *context, struct MovieTracking *tracking)
 
void BKE_tracking_reconstruction_report_error_message (struct MovieReconstructContext *context, const char *error_message)
 
const char * BKE_tracking_reconstruction_error_message_get (const struct MovieReconstructContext *context)
 
void BKE_tracking_reconstruction_scale (struct MovieTracking *tracking, float scale[3])
 
void BKE_tracking_detect_fast (struct MovieTracking *tracking, struct ListBase *tracksbase, struct ImBuf *ibuf, int framenr, int margin, int min_trackness, int min_distance, struct bGPDlayer *layer, bool place_outside_layer)
 
void BKE_tracking_detect_harris (struct MovieTracking *tracking, struct ListBase *tracksbase, struct ImBuf *ibuf, int framenr, int margin, float threshold, int min_distance, struct bGPDlayer *layer, bool place_outside_layer)
 
void BKE_tracking_stabilization_data_get (struct MovieClip *clip, int framenr, int width, int height, float translation[2], float *scale, float *angle)
 
struct ImBufBKE_tracking_stabilize_frame (struct MovieClip *clip, int framenr, struct ImBuf *ibuf, float translation[2], float *scale, float *angle)
 
void BKE_tracking_stabilization_data_to_mat4 (int width, int height, float aspect, float translation[2], float scale, float angle, float mat[4][4])
 
void BKE_tracking_dopesheet_tag_update (struct MovieTracking *tracking)
 
void BKE_tracking_dopesheet_update (struct MovieTracking *tracking)
 
struct MovieTrackingObjectBKE_tracking_find_object_for_track (const struct MovieTracking *tracking, const struct MovieTrackingTrack *track)
 
struct ListBaseBKE_tracking_find_tracks_list_for_track (struct MovieTracking *tracking, const struct MovieTrackingTrack *track)
 
struct MovieTrackingObjectBKE_tracking_find_object_for_plane_track (const struct MovieTracking *tracking, const struct MovieTrackingPlaneTrack *plane_track)
 
struct ListBaseBKE_tracking_find_tracks_list_for_plane_track (struct MovieTracking *tracking, const struct 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)
 

Macro Definition Documentation

◆ MARKER_VISIBLE

#define MARKER_VISIBLE (   sc,
  track,
  marker 
)
Value:
(((marker)->flag & MARKER_DISABLED) == 0 || ((sc)->flag & SC_HIDE_DISABLED) == 0 || \
((sc)->clip->tracking.act_track == track))
@ SC_HIDE_DISABLED
@ MARKER_DISABLED

Definition at line 840 of file BKE_tracking.h.

◆ PLANE_TRACK_VIEW_SELECTED

#define PLANE_TRACK_VIEW_SELECTED (   plane_track)     ((((plane_track)->flag & PLANE_TRACK_HIDDEN) == 0) && ((plane_track)->flag & SELECT))

Definition at line 837 of file BKE_tracking.h.

◆ TRACK_AREA_SELECTED

#define TRACK_AREA_SELECTED (   track,
  area 
)
Value:
(track)->flag & SELECT : \
((area) == TRACK_AREA_PAT ? (track)->pat_flag & SELECT : (track)->search_flag & SELECT))
@ TRACK_AREA_POINT
Definition: BKE_tracking.h:38
@ TRACK_AREA_PAT
Definition: BKE_tracking.h:39
#define SELECT
static void area(int d1, int d2, int e1, int e2, float weights[2])

Definition at line 826 of file BKE_tracking.h.

◆ TRACK_SELECTED

#define TRACK_SELECTED (   track)     ((track)->flag & SELECT || (track)->pat_flag & SELECT || (track)->search_flag & SELECT)

Definition at line 823 of file BKE_tracking.h.

◆ TRACK_VIEW_SELECTED

#define TRACK_VIEW_SELECTED (   sc,
  track 
)
Value:
((((track)->flag & TRACK_HIDDEN) == 0) && \
@ TRACK_AREA_SEARCH
Definition: BKE_tracking.h:40
#define TRACK_AREA_SELECTED(track, area)
Definition: BKE_tracking.h:826
@ SC_SHOW_MARKER_SEARCH
@ SC_SHOW_MARKER_PATTERN
@ TRACK_HIDDEN

Definition at line 831 of file BKE_tracking.h.

Typedef Documentation

◆ eTrackArea

typedef enum eTrackArea eTrackArea

◆ eTrackClearAction

Clear track's path.

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

Enumeration Type Documentation

◆ eTrackArea

enum eTrackArea
Enumerator
TRACK_AREA_POINT 
TRACK_AREA_PAT 
TRACK_AREA_SEARCH 
TRACK_AREA_NONE 
TRACK_AREA_ALL 

Definition at line 37 of file BKE_tracking.h.

◆ eTrackClearAction

Clear track's path.

Note
frame number should be in clip space, not scene space.
Enumerator
TRACK_CLEAR_UPTO 
TRACK_CLEAR_REMAINED 
TRACK_CLEAR_ALL 

Definition at line 231 of file BKE_tracking.h.

Function Documentation

◆ BKE_autotrack_context_finish()

void BKE_autotrack_context_finish ( struct AutoTrackContext context)

◆ BKE_autotrack_context_free()

void BKE_autotrack_context_free ( struct AutoTrackContext context)

◆ BKE_autotrack_context_new()

struct AutoTrackContext* BKE_autotrack_context_new ( struct MovieClip clip,
struct MovieClipUser user,
bool  is_backwards 
)

◆ BKE_autotrack_context_start()

void BKE_autotrack_context_start ( struct AutoTrackContext context)

◆ BKE_autotrack_context_step()

bool BKE_autotrack_context_step ( struct AutoTrackContext context)

◆ BKE_autotrack_context_sync()

void BKE_autotrack_context_sync ( struct AutoTrackContext context)

◆ BKE_autotrack_context_sync_user()

void BKE_autotrack_context_sync_user ( struct AutoTrackContext context,
struct MovieClipUser user 
)

Definition at line 825 of file tracking_auto.c.

References blender::compositor::context, and MovieClipUser::framenr.

Referenced by clip_main_region_draw().

◆ BKE_tracking_camera_get_reconstructed()

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

◆ BKE_tracking_camera_get_reconstructed_interpolate()

void BKE_tracking_camera_get_reconstructed_interpolate ( struct MovieTracking tracking,
struct 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 ( struct MovieTracking tracking,
struct Scene scene,
struct 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 ( struct MovieTracking tracking_dst,
const struct MovieTracking tracking_src,
int  flag 
)

Copy tracking structure content.

Referenced by movie_clip_copy_data().

◆ BKE_tracking_count_selected_tracks_in_active_object()

int BKE_tracking_count_selected_tracks_in_active_object ( struct MovieTracking tracking)

◆ BKE_tracking_count_selected_tracks_in_list()

int BKE_tracking_count_selected_tracks_in_list ( const struct ListBase tracks_list)

◆ BKE_tracking_detect_fast()

void BKE_tracking_detect_fast ( struct MovieTracking tracking,
struct ListBase tracksbase,
struct ImBuf ibuf,
int  framenr,
int  margin,
int  min_trackness,
int  min_distance,
struct bGPDlayer layer,
bool  place_outside_layer 
)

Detect features using FAST detector.

Definition at line 135 of file tracking_detect.c.

References LIBMV_DETECTOR_FAST, options, and run_configured_detector().

◆ BKE_tracking_detect_harris()

void BKE_tracking_detect_harris ( struct MovieTracking tracking,
struct ListBase tracksbase,
struct ImBuf ibuf,
int  framenr,
int  margin,
float  threshold,
int  min_distance,
struct bGPDlayer layer,
bool  place_outside_layer 
)

Detect features using Harris detector.

Definition at line 156 of file tracking_detect.c.

References LIBMV_DETECTOR_HARRIS, options, run_configured_detector(), and threshold.

Referenced by detect_features_exec().

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

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

◆ BKE_tracking_distort_v2()

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

◆ BKE_tracking_distortion_copy()

struct MovieDistortion* BKE_tracking_distortion_copy ( struct MovieDistortion distortion)

◆ BKE_tracking_distortion_distort_v2()

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

◆ BKE_tracking_distortion_exec()

struct ImBuf* BKE_tracking_distortion_exec ( struct MovieDistortion distortion,
struct MovieTracking tracking,
struct ImBuf ibuf,
int  width,
int  height,
float  overscan,
bool  undistort 
)

◆ BKE_tracking_distortion_free()

void BKE_tracking_distortion_free ( struct MovieDistortion distortion)

◆ BKE_tracking_distortion_new()

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

◆ BKE_tracking_distortion_set_threads()

void BKE_tracking_distortion_set_threads ( struct MovieDistortion distortion,
int  threads 
)

◆ BKE_tracking_distortion_undistort_v2()

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

◆ BKE_tracking_distortion_update()

void BKE_tracking_distortion_update ( struct MovieDistortion distortion,
struct 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()

struct MovieTrackingObject* BKE_tracking_find_object_for_plane_track ( const struct MovieTracking tracking,
const struct MovieTrackingPlaneTrack plane_track 
)
Note
Returns NULL if the track comes from camera object,.

◆ BKE_tracking_find_object_for_track()

struct MovieTrackingObject* BKE_tracking_find_object_for_track ( const struct MovieTracking tracking,
const struct MovieTrackingTrack track 
)
Note
Returns NULL if the track comes from camera object,.

◆ BKE_tracking_find_tracks_list_for_plane_track()

struct ListBase* BKE_tracking_find_tracks_list_for_plane_track ( struct MovieTracking tracking,
const struct MovieTrackingPlaneTrack plane_track 
)

◆ BKE_tracking_find_tracks_list_for_track()

struct ListBase* BKE_tracking_find_tracks_list_for_track ( struct MovieTracking tracking,
const struct 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 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()

struct ListBase* BKE_tracking_get_active_plane_tracks ( struct MovieTracking tracking)

◆ BKE_tracking_get_active_reconstruction()

struct MovieTrackingReconstruction* BKE_tracking_get_active_reconstruction ( struct MovieTracking tracking)

◆ BKE_tracking_get_active_tracks()

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

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

◆ BKE_tracking_get_plane_imbuf()

struct ImBuf* BKE_tracking_get_plane_imbuf ( const struct ImBuf frame_ibuf,
const struct 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()

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

◆ BKE_tracking_homography_between_two_quads()

void BKE_tracking_homography_between_two_quads ( float  reference_corners[4][2],
float  corners[4][2],
float  H[3][3] 
)

◆ 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 ( struct MovieTrackingTrack track,
int  framenr 
)

◆ BKE_tracking_marker_ensure()

struct MovieTrackingMarker* BKE_tracking_marker_ensure ( struct MovieTrackingTrack track,
int  framenr 
)

◆ BKE_tracking_marker_get()

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

struct MovieTrackingMarker* BKE_tracking_marker_get_exact ( struct 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 ( struct MovieTrackingTrack track,
float  framenr,
float  pos[2] 
)

◆ BKE_tracking_marker_insert()

struct MovieTrackingMarker* BKE_tracking_marker_insert ( struct MovieTrackingTrack track,
struct MovieTrackingMarker marker 
)

◆ BKE_tracking_marker_pattern_minmax()

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

◆ BKE_tracking_max_distortion_delta_across_bound()

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

◆ BKE_tracking_object_add()

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

◆ BKE_tracking_object_delete()

bool BKE_tracking_object_delete ( struct MovieTracking tracking,
struct MovieTrackingObject object 
)

◆ BKE_tracking_object_get_active()

struct MovieTrackingObject* BKE_tracking_object_get_active ( struct MovieTracking tracking)

◆ BKE_tracking_object_get_camera()

struct MovieTrackingObject* BKE_tracking_object_get_camera ( struct MovieTracking tracking)

◆ BKE_tracking_object_get_named()

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

◆ BKE_tracking_object_get_plane_tracks()

struct ListBase* BKE_tracking_object_get_plane_tracks ( struct MovieTracking tracking,
struct MovieTrackingObject object 
)

◆ BKE_tracking_object_get_reconstruction()

struct MovieTrackingReconstruction* BKE_tracking_object_get_reconstruction ( struct MovieTracking tracking,
struct MovieTrackingObject object 
)

◆ BKE_tracking_object_get_tracks()

struct ListBase* BKE_tracking_object_get_tracks ( struct MovieTracking tracking,
struct MovieTrackingObject object 
)

◆ BKE_tracking_object_unique_name()

void BKE_tracking_object_unique_name ( struct MovieTracking tracking,
struct MovieTrackingObject object 
)

◆ BKE_tracking_plane_marker_delete()

void BKE_tracking_plane_marker_delete ( struct MovieTrackingPlaneTrack plane_track,
int  framenr 
)

◆ BKE_tracking_plane_marker_ensure()

struct MovieTrackingPlaneMarker* BKE_tracking_plane_marker_ensure ( struct MovieTrackingPlaneTrack plane_track,
int  framenr 
)

◆ BKE_tracking_plane_marker_get()

struct MovieTrackingPlaneMarker* BKE_tracking_plane_marker_get ( struct MovieTrackingPlaneTrack plane_track,
int  framenr 
)

◆ BKE_tracking_plane_marker_get_exact()

struct 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 ( struct MovieTrackingPlaneTrack plane_track,
float  framenr,
float  corners[4][2] 
)

◆ BKE_tracking_plane_marker_insert()

struct MovieTrackingPlaneMarker* BKE_tracking_plane_marker_insert ( struct MovieTrackingPlaneTrack plane_track,
struct MovieTrackingPlaneMarker plane_marker 
)

◆ BKE_tracking_plane_track_add()

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

struct MovieTrackingPlaneTrack* BKE_tracking_plane_track_get_active ( struct MovieTracking tracking)

◆ BKE_tracking_plane_track_get_named()

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

◆ BKE_tracking_plane_track_has_enabled_marker_at_frame()

bool BKE_tracking_plane_track_has_enabled_marker_at_frame ( struct MovieTrackingPlaneTrack plane_track,
int  framenr 
)

◆ BKE_tracking_plane_track_has_marker_at_frame()

bool BKE_tracking_plane_track_has_marker_at_frame ( struct MovieTrackingPlaneTrack plane_track,
int  framenr 
)

◆ BKE_tracking_plane_track_has_point_track()

bool BKE_tracking_plane_track_has_point_track ( struct MovieTrackingPlaneTrack plane_track,
struct MovieTrackingTrack track 
)

◆ BKE_tracking_plane_track_remove_point_track()

bool BKE_tracking_plane_track_remove_point_track ( struct MovieTrackingPlaneTrack plane_track,
struct MovieTrackingTrack track 
)

◆ BKE_tracking_plane_track_replace_point_track()

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

◆ BKE_tracking_plane_track_unique_name()

void BKE_tracking_plane_track_unique_name ( struct ListBase plane_tracks_base,
struct MovieTrackingPlaneTrack plane_track 
)

◆ BKE_tracking_plane_tracks_deselect_all()

void BKE_tracking_plane_tracks_deselect_all ( struct 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 ( struct MovieTracking tracking,
struct MovieTrackingTrack track 
)

◆ BKE_tracking_plane_tracks_replace_point_track()

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

◆ BKE_tracking_reconstruction_check()

bool BKE_tracking_reconstruction_check ( struct MovieTracking tracking,
struct MovieTrackingObject object,
char *  error_msg,
int  error_size 
)

◆ BKE_tracking_reconstruction_context_free()

void BKE_tracking_reconstruction_context_free ( struct MovieReconstructContext context)

Free memory used by a reconstruction process.

Definition at line 428 of file tracking_solver.c.

References blender::compositor::context, libmv_reconstructionDestroy(), libmv_tracksDestroy(), MEM_freeN, NULL, and tracks_map_free().

Referenced by solve_camera_freejob().

◆ BKE_tracking_reconstruction_context_new()

struct MovieReconstructContext* BKE_tracking_reconstruction_context_new ( struct MovieClip clip,
struct MovieTrackingObject object,
int  keyframe1,
int  keyframe2,
int  width,
int  height 
)

◆ BKE_tracking_reconstruction_error_message_get()

const char* BKE_tracking_reconstruction_error_message_get ( const struct MovieReconstructContext context)

Referenced by solve_camera_freejob().

◆ BKE_tracking_reconstruction_finish()

bool BKE_tracking_reconstruction_finish ( struct MovieReconstructContext context,
struct MovieTracking tracking 
)

◆ BKE_tracking_reconstruction_report_error_message()

void BKE_tracking_reconstruction_report_error_message ( struct MovieReconstructContext context,
const char *  error_message 
)

Definition at line 413 of file tracking_solver.c.

References BLI_strncpy(), and blender::compositor::context.

Referenced by BKE_tracking_reconstruction_finish().

◆ BKE_tracking_reconstruction_scale()

void BKE_tracking_reconstruction_scale ( struct MovieTracking tracking,
float  scale[3] 
)

Apply scale on all reconstructed cameras and bundles, used by camera scale apply operator.

Definition at line 577 of file tracking_solver.c.

References BKE_tracking_object_get_reconstruction(), BKE_tracking_object_get_tracks(), LISTBASE_FOREACH, MovieTracking::objects, reconstruction, and tracking_scale_reconstruction().

Referenced by apply_objects_internal().

◆ BKE_tracking_reconstruction_solve()

void BKE_tracking_reconstruction_solve ( struct MovieReconstructContext context,
short *  stop,
short *  do_update,
float progress,
char *  stats_message,
int  message_size 
)

Solve camera/object motion and reconstruct 3D markers position from a prepared reconstruction context.

stop is not actually used at this moment, so reconstruction job could not be stopped.

do_update, progress and stat_message are set by reconstruction callback in libmv side and passing to an interface.

Definition at line 467 of file tracking_solver.c.

References blender::compositor::context, ReconstructProgressData::do_update, error(), libmv_ReconstructionOptions::keyframe1, libmv_ReconstructionOptions::keyframe2, libmv_reprojectionError(), libmv_solveModal(), libmv_solveReconstruction(), ReconstructProgressData::message_size, ReconstructProgressData::progress, reconstruct_update_solve_cb(), reconstructionOptionsFromContext(), ReconstructProgressData::stats_message, ReconstructProgressData::stop, and TRACKING_MOTION_MODAL.

Referenced by solve_camera_startjob().

◆ BKE_tracking_refine_marker()

void BKE_tracking_refine_marker ( struct MovieClip clip,
struct MovieTrackingTrack track,
struct MovieTrackingMarker marker,
bool  backwards 
)

◆ BKE_tracking_retrack_plane_from_existing_motion_at_segment()

void BKE_tracking_retrack_plane_from_existing_motion_at_segment ( struct MovieTrackingPlaneTrack plane_track,
int  start_frame 
)

◆ BKE_tracking_sample_pattern()

struct ImBuf* BKE_tracking_sample_pattern ( int  frame_width,
int  frame_height,
struct ImBuf search_ib,
struct MovieTrackingTrack track,
struct 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()

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

void BKE_tracking_stabilization_data_get ( struct MovieClip clip,
int  framenr,
int  width,
int  height,
float  translation[2],
float scale,
float angle 
)

Get stabilization data (translation, scaling and angle) for a given frame. Returned data describes how to compensate the detected movement, but with any chosen scale factor already applied and any target frame position already compensated. In case stabilization fails or is disabled, neutral values are returned.

Parameters
framenris a frame number, relative to the clip (not relative to the scene timeline).
widthis an effective width of the canvas (square pixels), used to scale the determined translation.

Outputs:

Parameters
translationof the lateral shift, absolute canvas coordinates (square pixels).
scaleof the scaling to apply.
angleof the rotation angle, relative to the frame center.

TODO(sergey): Use r_ prefix for output parameters here.

Definition at line 1240 of file tracking_stabilize.c.

References angle(), MovieTracking::camera, compensate_rotation_center(), discard_stabilization_working_context(), enabled, MovieTrackingStabilization::flag, float(), height, init_stabilizer(), NULL, MovieTrackingCamera::pixel_aspect, size(), MovieTracking::stabilization, stabilization_calculate_data(), stabilization_determine_offset_for_frame(), MovieClip::tracking, TRACKING_2D_STABILIZATION, width, and zero_v2().

Referenced by BKE_tracking_stabilize_frame(), blender::compositor::MovieClipNode::convert_to_operations(), and get_stable_cached_frame().

◆ BKE_tracking_stabilization_data_to_mat4()

void BKE_tracking_stabilization_data_to_mat4 ( int  width,
int  height,
float  aspect,
float  translation[2],
float  scale,
float  angle,
float  mat[4][4] 
)

Build a 4x4 transformation matrix based on the given 2D stabilization data. mat is a 4x4 matrix in homogeneous coordinates, adapted to the final image buffer size and compensated for pixel aspect ratio, ready for direct OpenGL drawing.

TODO(sergey): The signature of this function should be changed. we actually don't need the dimensions of the image buffer. Instead we should consider to provide the pivot point of the rotation as a further stabilization data parameter.

Definition at line 1413 of file tracking_stabilize.c.

References angle(), and stabilization_data_to_mat4().

Referenced by BKE_tracking_stabilize_frame(), and clip_draw_main().

◆ BKE_tracking_stabilize_frame()

struct ImBuf* BKE_tracking_stabilize_frame ( struct MovieClip clip,
int  framenr,
struct ImBuf ibuf,
float  translation[2],
float scale,
float angle 
)

◆ BKE_tracking_track_add()

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

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

◆ BKE_tracking_track_deselect()

void BKE_tracking_track_deselect ( struct MovieTrackingTrack track,
int  area 
)

◆ BKE_tracking_track_duplicate()

struct MovieTrackingTrack* BKE_tracking_track_duplicate ( struct MovieTrackingTrack track)

◆ BKE_tracking_track_first_last_frame_get()

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

Get frame numbers of the very first and last markers. There is no check on whether the marker is enabled or not.

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

struct MovieTrackingTrack* BKE_tracking_track_get_active ( struct MovieTracking tracking)

◆ BKE_tracking_track_get_indexed()

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

◆ BKE_tracking_track_get_mask()

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

◆ BKE_tracking_track_get_named()

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

◆ BKE_tracking_track_get_weight_for_marker()

float BKE_tracking_track_get_weight_for_marker ( struct MovieClip clip,
struct MovieTrackingTrack track,
struct 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 ( struct MovieTrackingTrack track,
int  ref_frame,
eTrackClearAction  action 
)

◆ BKE_tracking_track_plane_from_existing_motion()

void BKE_tracking_track_plane_from_existing_motion ( struct MovieTrackingPlaneTrack plane_track,
int  start_frame 
)

◆ 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 ( struct MovieTrackingTrack dst_track,
struct MovieTrackingTrack **  src_tracks,
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 ( struct 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 ( struct MovieTracking tracking,
struct MovieTrackingTrack dst_track,
struct MovieTrackingTrack src_track 
)

◆ BKE_tracking_undistort_frame()

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

◆ BKE_tracking_undistort_v2()

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