70 switch (data->action) {
75 marker->
flag &= ~MARKER_GRAPH_SEL;
107 const float co[2] = {
float(scene_framenr), val};
113 if (data->has_prev) {
116 if (data->track ==
nullptr || dist_sq < data->min_dist_sq) {
118 data->min_dist_sq = dist_sq;
119 data->value_source = value_source;
124 data->has_prev =
true;
144 const float mdiff[2] = {scene_framenr - data->
mouse_co[0], val - data->mouse_co[1]};
151 if (data->marker ==
nullptr || dist_sq < data->min_dist_sq) {
152 const float co[2] = {
float(scene_framenr), val};
155 data->marker = marker;
156 data->min_dist_sq = dist_sq;
157 data->value_source = value_source;
176 View2D *v2d = ®ion->v2d;
179 static const int delta = 6;
193 (
abs(x2 - x1) <= delta &&
abs(y2 - y1) <= delta))
247 if (userdata.
track) {
249 if (active_track == userdata.
track) {
252 active_track =
nullptr;
255 else if (active_track != userdata.
track) {
324 ot->
idname =
"CLIP_OT_graph_select";
342 "Mouse location to select nearest entity",
349 "Extend selection rather than clearing the existing selection");
386 marker->
flag &= ~flag;
388 data->changed =
true;
390 else if (!data->extend) {
391 marker->
flag &= ~MARKER_GRAPH_SEL;
406 if (active_track ==
nullptr) {
419 sc, active_track, &userdata,
box_select_cb,
nullptr,
nullptr);
435 ot->
idname =
"CLIP_OT_graph_select_box";
467 for (
int a = 0; a < active_track->
markersnr; a++) {
477 for (
int a = 0; a < active_track->
markersnr; a++) {
485 marker->
flag &= ~MARKER_GRAPH_SEL;
501 ot->
name =
"(De)select All Markers";
502 ot->
description =
"Change selection of all markers of active track";
503 ot->
idname =
"CLIP_OT_graph_select_all_markers";
538 IFACE_(
"Delete track corresponding to the selected curve?"),
550 ot->
name =
"Delete Curve";
551 ot->
description =
"Delete track corresponding to the selected curve";
552 ot->
idname =
"CLIP_OT_graph_delete_curve";
576 while (a < active_track->markersnr) {
596 ot->
idname =
"CLIP_OT_graph_delete_knot";
621 if (val < data->
min) {
625 if (val > data->max) {
635 View2D *v2d = ®ion->v2d;
654 if (userdata.
min < userdata.
max) {
682 ot->
idname =
"CLIP_OT_graph_view_all";
693 View2D *v2d = ®ion->v2d;
716 ot->
name =
"Center Current Frame";
717 ot->
description =
"Scroll view so current frame would be centered";
718 ot->
idname =
"CLIP_OT_graph_center_current_frame";
739 for (
int a = 0; a < active_track->
markersnr; a++) {
746 else if (action == 1) {
747 marker->
flag &= ~MARKER_DISABLED;
765 {0,
"DISABLE", 0,
"Disable",
"Disable selected markers"},
766 {1,
"ENABLE", 0,
"Enable",
"Enable selected markers"},
767 {2,
"TOGGLE", 0,
"Toggle",
"Toggle disabled flag for selected markers"},
768 {0,
nullptr, 0,
nullptr,
nullptr},
772 ot->
name =
"Disable Markers";
774 ot->
idname =
"CLIP_OT_graph_disable_markers";
784 RNA_def_enum(
ot->
srna,
"action", actions_items, 0,
"Action",
"Disable action to execute");
Scene * CTX_data_scene(const bContext *C)
SpaceClip * CTX_wm_space_clip(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
struct MovieTrackingObject * BKE_tracking_object_get_active(const struct MovieTracking *tracking)
void BKE_tracking_track_select(struct ListBase *tracksbase, struct MovieTrackingTrack *track, int area, bool extend)
float dist_squared_to_line_segment_v2(const float p[2], const float l1[2], const float l2[2])
MINLINE float len_squared_v2(const float v[2]) ATTR_WARN_UNUSED_RESULT
MINLINE void copy_v2_v2(float r[2], const float a[2])
bool BLI_rctf_isect_pt(const struct rctf *rect, float x, float y)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
void DEG_id_tag_update(ID *id, unsigned int flags)
@ SC_SHOW_GRAPH_TRACKS_MOTION
@ SC_SHOW_GRAPH_TRACKS_ERROR
MovieClip * ED_space_clip_get_clip(const SpaceClip *sc)
bool ED_space_clip_tracking_poll(bContext *C)
void ED_region_tag_redraw(ARegion *region)
bool UI_view2d_view_to_region_clip(const View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL()
void UI_view2d_region_to_view(const View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL()
void UI_view2d_region_to_view_rctf(const View2D *v2d, const rctf *rect_src, rctf *rect_dst) ATTR_NONNULL()
static int select_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void find_nearest_tracking_segment_cb(void *userdata, MovieTrackingTrack *track, MovieTrackingMarker *, eClipCurveValueSource value_source, int scene_framenr, float val)
static int select_exec(bContext *C, wmOperator *op)
void CLIP_OT_graph_delete_knot(wmOperatorType *ot)
static bool mouse_select_curve(bContext *C, const float co[2], bool extend)
static bool mouse_select_knot(bContext *C, const float co[2], bool extend)
static void find_nearest_tracking_knot_cb(void *userdata, MovieTrackingTrack *track, MovieTrackingMarker *marker, eClipCurveValueSource value_source, int scene_framenr, float val)
static void toggle_selection_cb(void *userdata, MovieTrackingMarker *marker)
static void view_all_cb(void *userdata, MovieTrackingTrack *, MovieTrackingMarker *, eClipCurveValueSource, int, float val)
static bool ED_space_clip_graph_poll(bContext *C)
void CLIP_OT_graph_center_current_frame(wmOperatorType *ot)
static int box_select_graph_exec(bContext *C, wmOperator *op)
static int center_current_frame_exec(bContext *C, wmOperator *)
static int mouse_select(bContext *C, float co[2], bool extend)
void CLIP_OT_graph_delete_curve(wmOperatorType *ot)
static int delete_curve_exec(bContext *C, wmOperator *)
void CLIP_OT_graph_select_all_markers(wmOperatorType *ot)
static int graph_disable_markers_exec(bContext *C, wmOperator *op)
static int view_all_exec(bContext *C, wmOperator *)
static int delete_knot_exec(bContext *C, wmOperator *)
static void box_select_cb(void *userdata, MovieTrackingTrack *, MovieTrackingMarker *marker, eClipCurveValueSource value_source, int scene_framenr, float val)
void ED_clip_graph_center_current_frame(Scene *scene, ARegion *region)
static int delete_curve_invoke(bContext *C, wmOperator *op, const wmEvent *)
static void find_nearest_tracking_segment_end_cb(void *userdata, eClipCurveValueSource)
void CLIP_OT_graph_select(wmOperatorType *ot)
static int graph_select_all_markers_exec(bContext *C, wmOperator *op)
void CLIP_OT_graph_select_box(wmOperatorType *ot)
static void mouse_select_init_data(bContext *C, MouseSelectUserData *userdata, const float co[2])
static bool clip_graph_knots_poll(bContext *C)
void CLIP_OT_graph_view_all(wmOperatorType *ot)
void CLIP_OT_graph_disable_markers(wmOperatorType *ot)
void clip_graph_tracking_values_iterate_track(SpaceClip *sc, MovieTrackingTrack *track, void *userdata, ClipTrackValueCallback func, ClipTrackValueSegmentStartCallback segment_start, ClipTrackValueSegmentEndCallback segment_end)
bool clip_graph_value_visible(SpaceClip *sc, eClipCurveValueSource value_source)
void clip_delete_marker(bContext *C, MovieClip *clip, MovieTrackingTrack *track, MovieTrackingMarker *marker)
void clip_graph_tracking_values_iterate(SpaceClip *sc, bool selected_only, bool include_hidden, void *userdata, ClipTrackValueCallback func, ClipTrackValueSegmentStartCallback segment_start, ClipTrackValueSegmentEndCallback segment_end)
void clip_graph_tracking_iterate(SpaceClip *sc, bool selected_only, bool include_hidden, void *userdata, void(*func)(void *userdata, MovieTrackingMarker *marker))
@ CLIP_VALUE_SOURCE_SPEED_Y
@ CLIP_VALUE_SOURCE_SPEED_X
void clip_delete_track(bContext *C, MovieClip *clip, MovieTrackingTrack *track)
draw_view in_light_buf[] float
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_float_vector(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
eClipCurveValueSource value_source
MovieTrackingTrack * track
MovieTrackingMarker * marker
MovieTrackingTrack * active_track
MovieTrackingMarker * markers
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
int(* modal)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
int(* invoke)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
ccl_device_inline int abs(int x)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
int WM_gesture_box_invoke(bContext *C, wmOperator *op, const wmEvent *event)
int WM_gesture_box_modal(bContext *C, wmOperator *op, const wmEvent *event)
void WM_operator_properties_confirm_or_exec(wmOperatorType *ot)
void WM_operator_properties_border_to_rctf(wmOperator *op, rctf *r_rect)
void WM_operator_properties_gesture_box_select(wmOperatorType *ot)
void WM_operator_properties_select_all(wmOperatorType *ot)
int WM_operator_confirm_ex(bContext *C, wmOperator *op, const char *title, const char *message, const char *confirm_text, int icon, bool cancel_default)