Blender V4.3
tracking_ops.cc File Reference
#include "MEM_guardedalloc.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "BLI_ghash.h"
#include "BLI_math_geom.h"
#include "BLI_math_vector.h"
#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 "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 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 *)
 
static int add_marker_at_click_modal (bContext *C, wmOperator *, const wmEvent *event)
 
void CLIP_OT_add_marker_at_click (wmOperatorType *ot)
 
Delete Track Operator
static int delete_track_exec (bContext *C, wmOperator *)
 
static int delete_track_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
void CLIP_OT_delete_track (wmOperatorType *ot)
 
Delete Marker Operator
static int delete_marker_exec (bContext *C, wmOperator *)
 
static int delete_marker_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
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)
 
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 *)
 
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 *)
 
void CLIP_OT_average_tracks (wmOperatorType *ot)
 
Track Copy Color Operator
static int 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 int clean_tracks_exec (bContext *C, wmOperator *op)
 
static int clean_tracks_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
void CLIP_OT_clean_tracks (wmOperatorType *ot)
 
Add Tracking Object
static int tracking_object_new_exec (bContext *C, wmOperator *)
 
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 *)
 
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 *)
 
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 *)
 
void CLIP_OT_keyframe_insert (wmOperatorType *ot)
 
Delete Track Keyframe Operator
static int 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 int 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 int 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 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)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MARKER_OP_DISABLE 
MARKER_OP_ENABLE 
MARKER_OP_TOGGLE 

Definition at line 935 of file tracking_ops.cc.

◆ anonymous enum

anonymous enum
Enumerator
TRACK_ACTION_LOCK 
TRACK_ACTION_UNLOCK 
TRACK_ACTION_TOGGLE 

Definition at line 1409 of file tracking_ops.cc.

◆ anonymous enum

anonymous enum
Enumerator
SOLVER_KEYFRAME_A 
SOLVER_KEYFRAME_B 

Definition at line 1474 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 365 of file tracking_ops.cc.

Function Documentation

◆ add_marker()

◆ add_marker_at_click_invoke()

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

◆ add_marker_at_click_modal()

◆ add_marker_exec()

◆ add_marker_invoke()

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

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

◆ CLIP_OT_delete_marker()

◆ CLIP_OT_delete_track()

◆ CLIP_OT_disable_markers()

◆ CLIP_OT_frame_jump()

◆ CLIP_OT_hide_tracks()

◆ CLIP_OT_hide_tracks_clear()

◆ CLIP_OT_join_tracks()

◆ CLIP_OT_keyframe_delete()

◆ CLIP_OT_keyframe_insert()

◆ CLIP_OT_lock_tracks()

◆ CLIP_OT_new_image_from_plane_marker()

◆ CLIP_OT_paste_tracks()

◆ CLIP_OT_set_solver_keyframe()

◆ CLIP_OT_slide_marker()

◆ CLIP_OT_track_copy_color()

◆ CLIP_OT_tracking_object_new()

◆ CLIP_OT_tracking_object_remove()

◆ CLIP_OT_update_image_from_plane_marker()

◆ copy_tracks_exec()

◆ create_slide_marker_data()

◆ delete_marker_exec()

◆ delete_marker_invoke()

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

◆ delete_track_exec()

◆ delete_track_invoke()

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

◆ disable_markers_exec()

◆ frame_jump_exec()

◆ frame_jump_poll()

static bool frame_jump_poll ( bContext * C)
static

Definition at line 1116 of file tracking_ops.cc.

References CTX_wm_space_clip().

Referenced by CLIP_OT_frame_jump().

◆ free_slide_data()

static void free_slide_data ( SlideMarkerData * data)
static

Definition at line 653 of file tracking_ops.cc.

References MEM_freeN().

Referenced by slide_marker_modal().

◆ hide_tracks_clear_exec()

◆ hide_tracks_exec()

◆ is_track_clean()

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

◆ join_tracks_exec()

◆ keyframe_delete_exec()

static int keyframe_delete_exec ( bContext * C,
wmOperator *  )
static

Definition at line 2048 of file tracking_ops.cc.

References keyframe_set_flag(), and OPERATOR_FINISHED.

Referenced by CLIP_OT_keyframe_delete().

◆ keyframe_insert_exec()

static int keyframe_insert_exec ( bContext * C,
wmOperator *  )
static

Definition at line 2021 of file tracking_ops.cc.

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

static bool paste_tracks_poll ( bContext * C)
static

◆ sample_plane_marker_image_for_operator()

◆ set_solver_keyframe_exec()

◆ slide_check_corners()

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

Definition at line 453 of file tracking_ops.cc.

References cross(), cross_v2v2(), fabsf, 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()

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

Definition at line 392 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 558 of file tracking_ops.cc.

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