Blender V5.0
tracking_ops.cc File Reference
#include "MEM_guardedalloc.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "BLI_listbase.h"
#include "BLI_math_geom.h"
#include "BLI_math_vector.h"
#include "BLI_set.hh"
#include "BLI_utildefines.h"
#include "BKE_context.hh"
#include "BKE_image.hh"
#include "BKE_movieclip.h"
#include "BKE_report.hh"
#include "BKE_tracking.h"
#include "DEG_depsgraph.hh"
#include "UI_interface_icons.hh"
#include "UI_resources.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "ED_clip.hh"
#include "ED_screen.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "BLT_translation.hh"
#include "IMB_imbuf.hh"
#include "IMB_imbuf_types.hh"
#include "clip_intern.hh"
#include "tracking_ops_intern.hh"

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 wmOperatorStatus add_marker_exec (bContext *C, wmOperator *op)
static wmOperatorStatus add_marker_invoke (bContext *C, wmOperator *op, const wmEvent *event)
void CLIP_OT_add_marker (wmOperatorType *ot)
static wmOperatorStatus add_marker_at_click_invoke (bContext *C, wmOperator *op, const wmEvent *)
static wmOperatorStatus add_marker_at_click_modal (bContext *C, wmOperator *, const wmEvent *event)
void CLIP_OT_add_marker_at_click (wmOperatorType *ot)
Delete Track Operator
static wmOperatorStatus delete_track_exec (bContext *C, wmOperator *)
static wmOperatorStatus delete_track_invoke (bContext *C, wmOperator *op, const wmEvent *)
void CLIP_OT_delete_track (wmOperatorType *ot)
Delete Marker Operator
static wmOperatorStatus delete_marker_exec (bContext *C, wmOperator *)
static wmOperatorStatus delete_marker_invoke (bContext *C, wmOperator *op, const wmEvent *)
void CLIP_OT_delete_marker (wmOperatorType *ot)
Clear Track Operator
static wmOperatorStatus clear_track_path_exec (bContext *C, wmOperator *op)
void CLIP_OT_clear_track_path (wmOperatorType *ot)
Hide Tracks Operator
static wmOperatorStatus hide_tracks_exec (bContext *C, wmOperator *op)
void CLIP_OT_hide_tracks (wmOperatorType *ot)
Hide Tracks Clear Operator
static wmOperatorStatus hide_tracks_clear_exec (bContext *C, wmOperator *)
void CLIP_OT_hide_tracks_clear (wmOperatorType *ot)
Frame Jump Operator
static bool frame_jump_poll (bContext *C)
static wmOperatorStatus frame_jump_exec (bContext *C, wmOperator *op)
void CLIP_OT_frame_jump (wmOperatorType *ot)
Join Tracks Operator
static wmOperatorStatus join_tracks_exec (bContext *C, wmOperator *op)
void CLIP_OT_join_tracks (wmOperatorType *ot)
Average Tracks Operator
static wmOperatorStatus average_tracks_exec (bContext *C, wmOperator *op)
static wmOperatorStatus average_tracks_invoke (bContext *C, wmOperator *op, const wmEvent *)
void CLIP_OT_average_tracks (wmOperatorType *ot)
Track Copy Color Operator
static wmOperatorStatus track_copy_color_exec (bContext *C, wmOperator *)
void CLIP_OT_track_copy_color (wmOperatorType *ot)
Clean Tracks Operator
static bool is_track_clean (MovieTrackingTrack *track, int frames, int del)
static wmOperatorStatus clean_tracks_exec (bContext *C, wmOperator *op)
static wmOperatorStatus clean_tracks_invoke (bContext *C, wmOperator *op, const wmEvent *)
void CLIP_OT_clean_tracks (wmOperatorType *ot)
Add Tracking Object
static wmOperatorStatus tracking_object_new_exec (bContext *C, wmOperator *)
void CLIP_OT_tracking_object_new (wmOperatorType *ot)
Remove Tracking Object
static wmOperatorStatus tracking_object_remove_exec (bContext *C, wmOperator *op)
void CLIP_OT_tracking_object_remove (wmOperatorType *ot)
Copy Tracks to Clipboard Operator
static wmOperatorStatus copy_tracks_exec (bContext *C, wmOperator *)
void CLIP_OT_copy_tracks (wmOperatorType *ot)
Paste Tracks From Clipboard Operator
static bool paste_tracks_poll (bContext *C)
static wmOperatorStatus paste_tracks_exec (bContext *C, wmOperator *)
void CLIP_OT_paste_tracks (wmOperatorType *ot)
Insert Track Keyframe Operator
static void keyframe_set_flag (bContext *C, bool set)
static wmOperatorStatus keyframe_insert_exec (bContext *C, wmOperator *)
void CLIP_OT_keyframe_insert (wmOperatorType *ot)
Delete Track Keyframe Operator
static wmOperatorStatus keyframe_delete_exec (bContext *C, wmOperator *)
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 wmOperatorStatus new_image_from_plane_marker_exec (bContext *C, wmOperator *)
void CLIP_OT_new_image_from_plane_marker (wmOperatorType *ot)
static bool update_image_from_plane_marker_poll (bContext *C)
static wmOperatorStatus update_image_from_plane_marker_exec (bContext *C, wmOperator *)
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
}
static void slide_marker_tilt_slider_relative (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 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)
MovieTrackingTracktracking_find_slidable_track_in_proximity (bContext *C, const float co[2])
static SlideMarkerDataslide_marker_customdata (bContext *C, const wmEvent *event)
static wmOperatorStatus 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 wmOperatorStatus 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 wmOperatorStatus 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 wmOperatorStatus 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 wmOperatorStatus set_solver_keyframe_exec (bContext *C, wmOperator *op)
void CLIP_OT_set_solver_keyframe (wmOperatorType *ot)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MARKER_OP_DISABLE 
MARKER_OP_ENABLE 
MARKER_OP_TOGGLE 

Definition at line 951 of file tracking_ops.cc.

◆ anonymous enum

anonymous enum
Enumerator
TRACK_ACTION_LOCK 
TRACK_ACTION_UNLOCK 
TRACK_ACTION_TOGGLE 

Definition at line 1423 of file tracking_ops.cc.

◆ anonymous enum

anonymous enum
Enumerator
SOLVER_KEYFRAME_A 
SOLVER_KEYFRAME_B 

Definition at line 1488 of file tracking_ops.cc.

◆ eSlideAction

Enumerator
SLIDE_ACTION_NONE 
SLIDE_ACTION_POS 
SLIDE_ACTION_SIZE 
SLIDE_ACTION_OFFSET 
SLIDE_ACTION_TILT_SIZE 

Definition at line 378 of file tracking_ops.cc.

Function Documentation

◆ add_marker()

◆ add_marker_at_click_invoke()

wmOperatorStatus add_marker_at_click_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

◆ add_marker_at_click_modal()

◆ add_marker_exec()

◆ add_marker_invoke()

◆ apply_mouse_slide()

◆ average_tracks_exec()

◆ average_tracks_invoke()

◆ cancel_mouse_slide()

◆ clean_tracks_exec()

◆ clean_tracks_invoke()

◆ clear_track_path_exec()

◆ CLIP_OT_add_marker()

◆ CLIP_OT_add_marker_at_click()

◆ CLIP_OT_average_tracks()

◆ CLIP_OT_clean_tracks()

◆ CLIP_OT_clear_track_path()

◆ CLIP_OT_copy_tracks()

void CLIP_OT_copy_tracks ( wmOperatorType * ot)

Definition at line 1920 of file tracking_ops.cc.

References copy_tracks_exec(), ED_space_clip_tracking_poll(), OPTYPE_REGISTER, and ot.

Referenced by clip_operatortypes().

◆ CLIP_OT_delete_marker()

◆ CLIP_OT_delete_track()

◆ CLIP_OT_disable_markers()

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

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

Definition at line 1965 of file tracking_ops.cc.

References OPTYPE_REGISTER, OPTYPE_UNDO, ot, paste_tracks_exec(), and paste_tracks_poll().

Referenced by clip_operatortypes().

◆ CLIP_OT_set_solver_keyframe()

◆ CLIP_OT_slide_marker()

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

◆ create_slide_marker_data()

◆ delete_marker_exec()

◆ delete_marker_invoke()

wmOperatorStatus delete_marker_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

◆ delete_track_exec()

◆ delete_track_invoke()

wmOperatorStatus delete_track_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

◆ disable_markers_exec()

◆ frame_jump_exec()

◆ frame_jump_poll()

bool frame_jump_poll ( bContext * C)
static

Definition at line 1132 of file tracking_ops.cc.

References C, and CTX_wm_space_clip().

Referenced by CLIP_OT_frame_jump().

◆ free_slide_data()

void free_slide_data ( SlideMarkerData * data)
static

Definition at line 666 of file tracking_ops.cc.

References data, and MEM_freeN().

Referenced by slide_marker_modal().

◆ hide_tracks_clear_exec()

◆ hide_tracks_exec()

◆ is_track_clean()

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

◆ join_tracks_exec()

◆ keyframe_delete_exec()

wmOperatorStatus keyframe_delete_exec ( bContext * C,
wmOperator *  )
static

Definition at line 2062 of file tracking_ops.cc.

References C, keyframe_set_flag(), and OPERATOR_FINISHED.

Referenced by CLIP_OT_keyframe_delete().

◆ keyframe_insert_exec()

wmOperatorStatus keyframe_insert_exec ( bContext * C,
wmOperator *  )
static

Definition at line 2035 of file tracking_ops.cc.

References C, keyframe_set_flag(), and OPERATOR_FINISHED.

Referenced by CLIP_OT_keyframe_insert().

◆ keyframe_set_flag()

◆ lock_tracks_exec()

◆ new_image_from_plane_marker_exec()

◆ new_image_from_plane_marker_poll()

◆ paste_tracks_exec()

◆ paste_tracks_poll()

bool paste_tracks_poll ( bContext * C)
static

◆ sample_plane_marker_image_for_operator()

◆ set_solver_keyframe_exec()

◆ slide_check_corners()

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

Definition at line 466 of file tracking_ops.cc.

References cross, cross_v2v2(), fabsf, i, isect_point_quad_v2(), next, sub_v2_v2v2(), and v2.

Referenced by slide_marker_modal().

◆ slide_marker_customdata()

◆ slide_marker_invoke()

◆ slide_marker_modal()

◆ slide_marker_tilt_slider_relative()

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

Definition at line 405 of file tracking_ops.cc.

References add_v2_v2v2().

Referenced by slide_marker_modal().

◆ track_copy_color_exec()

◆ tracking_find_slidable_track_in_proximity()

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

Definition at line 571 of file tracking_ops.cc.

References C, and tracking_marker_check_slide().

◆ tracking_marker_check_slide()

◆ tracking_object_new_exec()

◆ tracking_object_remove_exec()

◆ update_image_from_plane_marker_exec()

◆ update_image_from_plane_marker_poll()