Blender  V3.3
Classes
tracking_ops.c File Reference
#include "MEM_guardedalloc.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "BLI_blenlib.h"
#include "BLI_ghash.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_image.h"
#include "BKE_movieclip.h"
#include "BKE_report.h"
#include "BKE_tracking.h"
#include "DEG_depsgraph.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_clip.h"
#include "ED_screen.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "BLT_translation.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "clip_intern.h"
#include "tracking_ops_intern.h"

Go to the source code of this file.

Classes

struct  SlideMarkerData
 

Functions

Add Marker Operator
static bool add_marker (const bContext *C, float x, float y)
 
static int add_marker_exec (bContext *C, wmOperator *op)
 
static int add_marker_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void CLIP_OT_add_marker (wmOperatorType *ot)
 
static int add_marker_at_click_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
static int add_marker_at_click_modal (bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
 
void CLIP_OT_add_marker_at_click (wmOperatorType *ot)
 
Delete Track Operator
static int delete_track_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_delete_track (wmOperatorType *ot)
 
Delete Marker Operator
static int delete_marker_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_delete_marker (wmOperatorType *ot)
 
Clear Track Operator
static int clear_track_path_exec (bContext *C, wmOperator *op)
 
void CLIP_OT_clear_track_path (wmOperatorType *ot)
 
Set Principal Center Operator
static int set_center_principal_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_set_center_principal (wmOperatorType *ot)
 
Hide Tracks Operator
static int hide_tracks_exec (bContext *C, wmOperator *op)
 
void CLIP_OT_hide_tracks (wmOperatorType *ot)
 
Hide Tracks Clear Operator
static int hide_tracks_clear_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_hide_tracks_clear (wmOperatorType *ot)
 
Frame Jump Operator
static bool frame_jump_poll (bContext *C)
 
static int frame_jump_exec (bContext *C, wmOperator *op)
 
void CLIP_OT_frame_jump (wmOperatorType *ot)
 
Join Tracks Operator
static int join_tracks_exec (bContext *C, wmOperator *op)
 
void CLIP_OT_join_tracks (wmOperatorType *ot)
 
Average Tracks Operator
static int average_tracks_exec (bContext *C, wmOperator *op)
 
static int average_tracks_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
void CLIP_OT_average_tracks (wmOperatorType *ot)
 
Track Copy Color Operator
static int track_copy_color_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_track_copy_color (wmOperatorType *ot)
 
Clean Tracks Operator
static bool is_track_clean (MovieTrackingTrack *track, int frames, int del)
 
static int clean_tracks_exec (bContext *C, wmOperator *op)
 
static int clean_tracks_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
void CLIP_OT_clean_tracks (wmOperatorType *ot)
 
Add Tracking Object
static int tracking_object_new_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_tracking_object_new (wmOperatorType *ot)
 
Remove Tracking Object
static int tracking_object_remove_exec (bContext *C, wmOperator *op)
 
void CLIP_OT_tracking_object_remove (wmOperatorType *ot)
 
Copy Tracks to Clipboard Operator
static int copy_tracks_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_copy_tracks (wmOperatorType *ot)
 
Paste Tracks From Clipboard Operator
static bool paste_tracks_poll (bContext *C)
 
static int paste_tracks_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_paste_tracks (wmOperatorType *ot)
 
Insert Track Keyframe Operator
static void keyframe_set_flag (bContext *C, bool set)
 
static int keyframe_insert_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_keyframe_insert (wmOperatorType *ot)
 
Delete Track Keyframe Operator
static int keyframe_delete_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_keyframe_delete (wmOperatorType *ot)
 
Image from plane track marker
static ImBufsample_plane_marker_image_for_operator (bContext *C)
 
static bool new_image_from_plane_marker_poll (bContext *C)
 
static int new_image_from_plane_marker_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_new_image_from_plane_marker (wmOperatorType *ot)
 
static bool update_image_from_plane_marker_poll (bContext *C)
 
static int update_image_from_plane_marker_exec (bContext *C, wmOperator *UNUSED(op))
 
void CLIP_OT_update_image_from_plane_marker (wmOperatorType *ot)
 

Slide Marker Operator

enum  eSlideAction {
  SLIDE_ACTION_NONE , SLIDE_ACTION_POS , SLIDE_ACTION_SIZE , SLIDE_ACTION_OFFSET ,
  SLIDE_ACTION_TILT_SIZE
}
 
typedef enum eSlideAction eSlideAction
 
static void slide_marker_tilt_slider_relative (const float pattern_corners[4][2], float r_slider[2])
 
static void slide_marker_tilt_slider (const float marker_pos[2], const float pattern_corners[4][2], float r_slider[2])
 
static SlideMarkerDatacreate_slide_marker_data (SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, const wmEvent *event, int area, int corner, eSlideAction action, int width, int height)
 
static float mouse_to_slide_zone_distance_squared (const float co[2], const float slide_zone[2], int width, int height)
 
static float mouse_to_search_corner_distance_squared (const MovieTrackingMarker *marker, const float co[2], int corner, int width, int height)
 
static float mouse_to_closest_pattern_corner_distance_squared (const MovieTrackingMarker *marker, const float co[2], int width, int height, int *r_corner)
 
static float mouse_to_offset_distance_squared (const MovieTrackingTrack *track, const MovieTrackingMarker *marker, const float co[2], int width, int height)
 
static int mouse_to_tilt_distance_squared (const MovieTrackingMarker *marker, const float co[2], int width, int height)
 
static bool slide_check_corners (float(*corners)[2])
 
static MovieTrackingTracktracking_marker_check_slide (bContext *C, const float co[2], int *r_area, eSlideAction *r_action, int *r_corner)
 
struct MovieTrackingTracktracking_find_slidable_track_in_proximity (struct bContext *C, const float co[2])
 
static voidslide_marker_customdata (bContext *C, const wmEvent *event)
 
static int slide_marker_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static void cancel_mouse_slide (SlideMarkerData *data)
 
static void apply_mouse_slide (bContext *C, SlideMarkerData *data)
 
static void free_slide_data (SlideMarkerData *data)
 
static int slide_marker_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
void CLIP_OT_slide_marker (wmOperatorType *ot)
 

Disable Markers Operator

enum  { MARKER_OP_DISABLE = 0 , MARKER_OP_ENABLE = 1 , MARKER_OP_TOGGLE = 2 }
 
static int disable_markers_exec (bContext *C, wmOperator *op)
 
void CLIP_OT_disable_markers (wmOperatorType *ot)
 

Lock Tracks Operator

enum  { TRACK_ACTION_LOCK = 0 , TRACK_ACTION_UNLOCK = 1 , TRACK_ACTION_TOGGLE = 2 }
 
static int lock_tracks_exec (bContext *C, wmOperator *op)
 
void CLIP_OT_lock_tracks (wmOperatorType *ot)
 

Set Keyframe Operator

enum  { SOLVER_KEYFRAME_A = 0 , SOLVER_KEYFRAME_B = 1 }
 
static int set_solver_keyframe_exec (bContext *C, wmOperator *op)
 
void CLIP_OT_set_solver_keyframe (wmOperatorType *ot)
 

Typedef Documentation

◆ eSlideAction

typedef enum eSlideAction eSlideAction

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MARKER_OP_DISABLE 
MARKER_OP_ENABLE 
MARKER_OP_TOGGLE 

Definition at line 1023 of file tracking_ops.c.

◆ anonymous enum

anonymous enum
Enumerator
TRACK_ACTION_LOCK 
TRACK_ACTION_UNLOCK 
TRACK_ACTION_TOGGLE 

Definition at line 1547 of file tracking_ops.c.

◆ anonymous enum

anonymous enum
Enumerator
SOLVER_KEYFRAME_A 
SOLVER_KEYFRAME_B 

Definition at line 1613 of file tracking_ops.c.

◆ eSlideAction

Enumerator
SLIDE_ACTION_NONE 
SLIDE_ACTION_POS 
SLIDE_ACTION_SIZE 
SLIDE_ACTION_OFFSET 
SLIDE_ACTION_TILT_SIZE 

Definition at line 343 of file tracking_ops.c.

Function Documentation

◆ add_marker()

static bool add_marker ( const bContext C,
float  x,
float  y 
)
static

◆ add_marker_at_click_invoke()

static int add_marker_at_click_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ add_marker_at_click_modal()

static int add_marker_at_click_modal ( bContext C,
wmOperator UNUSEDop,
const wmEvent event 
)
static

◆ add_marker_exec()

static int add_marker_exec ( bContext C,
wmOperator op 
)
static

◆ add_marker_invoke()

static int add_marker_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ apply_mouse_slide()

static void apply_mouse_slide ( bContext C,
SlideMarkerData data 
)
static

◆ average_tracks_exec()

static int average_tracks_exec ( bContext C,
wmOperator op 
)
static

◆ average_tracks_invoke()

static int average_tracks_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ cancel_mouse_slide()

static void cancel_mouse_slide ( SlideMarkerData data)
static

◆ clean_tracks_exec()

static int clean_tracks_exec ( bContext C,
wmOperator op 
)
static

◆ clean_tracks_invoke()

static int clean_tracks_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ clear_track_path_exec()

static int clear_track_path_exec ( bContext C,
wmOperator op 
)
static

◆ CLIP_OT_add_marker()

void CLIP_OT_add_marker ( wmOperatorType ot)

◆ CLIP_OT_add_marker_at_click()

void CLIP_OT_add_marker_at_click ( wmOperatorType ot)

◆ CLIP_OT_average_tracks()

void CLIP_OT_average_tracks ( wmOperatorType ot)

◆ CLIP_OT_clean_tracks()

void CLIP_OT_clean_tracks ( wmOperatorType ot)

◆ CLIP_OT_clear_track_path()

void CLIP_OT_clear_track_path ( wmOperatorType ot)

◆ CLIP_OT_copy_tracks()

void CLIP_OT_copy_tracks ( wmOperatorType ot)

◆ CLIP_OT_delete_marker()

void CLIP_OT_delete_marker ( wmOperatorType ot)

◆ CLIP_OT_delete_track()

void CLIP_OT_delete_track ( wmOperatorType ot)

◆ CLIP_OT_disable_markers()

void CLIP_OT_disable_markers ( wmOperatorType ot)

◆ CLIP_OT_frame_jump()

void CLIP_OT_frame_jump ( wmOperatorType ot)

◆ CLIP_OT_hide_tracks()

void CLIP_OT_hide_tracks ( wmOperatorType ot)

◆ CLIP_OT_hide_tracks_clear()

void CLIP_OT_hide_tracks_clear ( wmOperatorType ot)

◆ CLIP_OT_join_tracks()

void CLIP_OT_join_tracks ( wmOperatorType ot)

◆ CLIP_OT_keyframe_delete()

void CLIP_OT_keyframe_delete ( wmOperatorType ot)

◆ CLIP_OT_keyframe_insert()

void CLIP_OT_keyframe_insert ( wmOperatorType ot)

◆ CLIP_OT_lock_tracks()

void CLIP_OT_lock_tracks ( wmOperatorType ot)

◆ CLIP_OT_new_image_from_plane_marker()

void CLIP_OT_new_image_from_plane_marker ( wmOperatorType ot)

◆ CLIP_OT_paste_tracks()

void CLIP_OT_paste_tracks ( wmOperatorType ot)

◆ CLIP_OT_set_center_principal()

void CLIP_OT_set_center_principal ( wmOperatorType ot)

◆ CLIP_OT_set_solver_keyframe()

void CLIP_OT_set_solver_keyframe ( wmOperatorType ot)

◆ CLIP_OT_slide_marker()

void CLIP_OT_slide_marker ( wmOperatorType ot)

◆ CLIP_OT_track_copy_color()

void CLIP_OT_track_copy_color ( wmOperatorType ot)

◆ CLIP_OT_tracking_object_new()

void CLIP_OT_tracking_object_new ( wmOperatorType ot)

◆ CLIP_OT_tracking_object_remove()

void CLIP_OT_tracking_object_remove ( wmOperatorType ot)

◆ CLIP_OT_update_image_from_plane_marker()

void CLIP_OT_update_image_from_plane_marker ( wmOperatorType ot)

◆ copy_tracks_exec()

static int copy_tracks_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ create_slide_marker_data()

static SlideMarkerData* create_slide_marker_data ( SpaceClip sc,
MovieTrackingTrack track,
MovieTrackingMarker marker,
const wmEvent event,
int  area,
int  corner,
eSlideAction  action,
int  width,
int  height 
)
static

◆ delete_marker_exec()

static int delete_marker_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ delete_track_exec()

static int delete_track_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ disable_markers_exec()

static int disable_markers_exec ( bContext C,
wmOperator op 
)
static

◆ frame_jump_exec()

static int frame_jump_exec ( bContext C,
wmOperator op 
)
static

◆ frame_jump_poll()

static bool frame_jump_poll ( bContext C)
static

Definition at line 1252 of file tracking_ops.c.

References C, CTX_wm_space_clip(), and NULL.

Referenced by CLIP_OT_frame_jump().

◆ free_slide_data()

static void free_slide_data ( SlideMarkerData data)
static

Definition at line 739 of file tracking_ops.c.

References data, MEM_freeN, and NULL.

Referenced by slide_marker_modal().

◆ hide_tracks_clear_exec()

static int hide_tracks_clear_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ hide_tracks_exec()

static int hide_tracks_exec ( bContext C,
wmOperator op 
)
static

◆ is_track_clean()

static bool is_track_clean ( MovieTrackingTrack track,
int  frames,
int  del 
)
static

◆ join_tracks_exec()

static int join_tracks_exec ( bContext C,
wmOperator op 
)
static

◆ keyframe_delete_exec()

static int keyframe_delete_exec ( bContext C,
wmOperator UNUSEDop 
)
static

Definition at line 2198 of file tracking_ops.c.

References C, keyframe_set_flag(), and OPERATOR_FINISHED.

Referenced by CLIP_OT_keyframe_delete().

◆ keyframe_insert_exec()

static int keyframe_insert_exec ( bContext C,
wmOperator UNUSEDop 
)
static

Definition at line 2171 of file tracking_ops.c.

References C, keyframe_set_flag(), and OPERATOR_FINISHED.

Referenced by CLIP_OT_keyframe_insert().

◆ keyframe_set_flag()

static void keyframe_set_flag ( bContext C,
bool  set 
)
static

◆ lock_tracks_exec()

static int lock_tracks_exec ( bContext C,
wmOperator op 
)
static

◆ mouse_to_closest_pattern_corner_distance_squared()

static float mouse_to_closest_pattern_corner_distance_squared ( const MovieTrackingMarker marker,
const float  co[2],
int  width,
int  height,
int *  r_corner 
)
static

◆ mouse_to_offset_distance_squared()

static float mouse_to_offset_distance_squared ( const MovieTrackingTrack track,
const MovieTrackingMarker marker,
const float  co[2],
int  width,
int  height 
)
static

◆ mouse_to_search_corner_distance_squared()

static float mouse_to_search_corner_distance_squared ( const MovieTrackingMarker marker,
const float  co[2],
int  corner,
int  width,
int  height 
)
static

◆ mouse_to_slide_zone_distance_squared()

static float mouse_to_slide_zone_distance_squared ( const float  co[2],
const float  slide_zone[2],
int  width,
int  height 
)
static

◆ mouse_to_tilt_distance_squared()

static int mouse_to_tilt_distance_squared ( const MovieTrackingMarker marker,
const float  co[2],
int  width,
int  height 
)
static

◆ new_image_from_plane_marker_exec()

static int new_image_from_plane_marker_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ new_image_from_plane_marker_poll()

static bool new_image_from_plane_marker_poll ( bContext C)
static

◆ paste_tracks_exec()

static int paste_tracks_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ paste_tracks_poll()

static bool paste_tracks_poll ( bContext C)
static

◆ sample_plane_marker_image_for_operator()

static ImBuf* sample_plane_marker_image_for_operator ( bContext C)
static

◆ set_center_principal_exec()

static int set_center_principal_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ set_solver_keyframe_exec()

static int set_solver_keyframe_exec ( bContext C,
wmOperator op 
)
static

◆ slide_check_corners()

static bool slide_check_corners ( float(*)  corners[2])
static

◆ slide_marker_customdata()

static void* slide_marker_customdata ( bContext C,
const wmEvent event 
)
static

◆ slide_marker_invoke()

static int slide_marker_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ slide_marker_modal()

static int slide_marker_modal ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ slide_marker_tilt_slider()

static void slide_marker_tilt_slider ( const float  marker_pos[2],
const float  pattern_corners[4][2],
float  r_slider[2] 
)
static

Definition at line 375 of file tracking_ops.c.

References add_v2_v2(), and slide_marker_tilt_slider_relative().

Referenced by mouse_to_tilt_distance_squared().

◆ slide_marker_tilt_slider_relative()

static void slide_marker_tilt_slider_relative ( const float  pattern_corners[4][2],
float  r_slider[2] 
)
static

Definition at line 370 of file tracking_ops.c.

References add_v2_v2v2().

Referenced by slide_marker_modal(), and slide_marker_tilt_slider().

◆ track_copy_color_exec()

static int track_copy_color_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ tracking_find_slidable_track_in_proximity()

struct MovieTrackingTrack* tracking_find_slidable_track_in_proximity ( struct bContext C,
const float  co[2] 
)

Definition at line 642 of file tracking_ops.c.

References C, NULL, and tracking_marker_check_slide().

Referenced by select_exec().

◆ tracking_marker_check_slide()

static MovieTrackingTrack* tracking_marker_check_slide ( bContext C,
const float  co[2],
int *  r_area,
eSlideAction r_action,
int *  r_corner 
)
static

◆ tracking_object_new_exec()

static int tracking_object_new_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ tracking_object_remove_exec()

static int tracking_object_remove_exec ( bContext C,
wmOperator op 
)
static

◆ update_image_from_plane_marker_exec()

static int update_image_from_plane_marker_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ update_image_from_plane_marker_poll()

static bool update_image_from_plane_marker_poll ( bContext C)
static