63 float col[4] = {0.0f, 0.0f, 0.0f, 0.0f};
69 switch (value_source) {
81 if (track == data->act_track) {
120 if (track != data->act_track) {
129 const bool sel = (marker->
flag & sel_flag) != 0;
131 if (sel == data->sel) {
153 if (!width || !height) {
160 userdata.
sel =
false;
207 float previous_error;
208 bool have_previous_point =
false;
211 bool is_lines_segment_open =
false;
219 const float current_error = camera->error;
221 if (have_previous_point && current_frame != previous_frame + 1) {
222 if (is_lines_segment_open) {
224 is_lines_segment_open =
false;
226 have_previous_point =
false;
229 if (have_previous_point) {
230 if (!is_lines_segment_open) {
232 is_lines_segment_open =
true;
239 previous_frame = current_frame;
240 previous_error = current_error;
241 have_previous_point =
true;
244 if (is_lines_segment_open) {
252 View2D *v2d = ®ion->v2d;
void BKE_movieclip_get_size(struct MovieClip *clip, const struct MovieClipUser *user, int *r_width, int *r_height)
float BKE_movieclip_remap_clip_to_scene_frame(const struct MovieClip *clip, float framenr)
struct MovieTrackingObject * BKE_tracking_object_get_active(const struct MovieTracking *tracking)
@ SC_SHOW_GRAPH_TRACKS_MOTION
@ SC_SHOW_GRAPH_TRACKS_ERROR
MovieClip * ED_space_clip_get_clip(const SpaceClip *sc)
void GPU_matrix_scale_2f(float x, float y)
void GPU_matrix_translate_2f(float x, float y)
@ GPU_SHADER_3D_UNIFORM_COLOR
void GPU_blend(eGPUBlend blend)
void GPU_line_width(float width)
void GPU_point_size(float size)
@ TH_HANDLE_VERTEX_SELECT
float UI_GetThemeValuef(int colorid)
void UI_view2d_draw_lines_x__values(const View2D *v2d)
void UI_view2d_draw_lines_y__values(const View2D *v2d)
void UI_view2d_scale_get(const View2D *v2d, float *r_x, float *r_y)
static void draw_frame_curves(SpaceClip *sc, uint pos)
static void draw_tracks_motion_and_error_curves(View2D *v2d, SpaceClip *sc, uint pos)
static void tracking_segment_end_cb(void *userdata, eClipCurveValueSource value_source)
static void tracking_segment_point_cb(void *userdata, MovieTrackingTrack *, MovieTrackingMarker *, eClipCurveValueSource value_source, int scene_framenr, float val)
static void tracking_segment_start_cb(void *userdata, MovieTrackingTrack *track, eClipCurveValueSource value_source, bool is_point)
static void tracking_segment_knot_cb(void *userdata, MovieTrackingTrack *track, MovieTrackingMarker *marker, eClipCurveValueSource value_source, int scene_framenr, float val)
void clip_draw_graph(SpaceClip *sc, ARegion *region, Scene *scene)
bool clip_graph_value_visible(SpaceClip *sc, eClipCurveValueSource value_source)
void clip_draw_sfra_efra(View2D *v2d, Scene *scene)
void clip_graph_tracking_values_iterate(SpaceClip *sc, bool selected_only, bool include_hidden, void *userdata, ClipTrackValueCallback func, ClipTrackValueSegmentStartCallback segment_start, ClipTrackValueSegmentEndCallback segment_end)
@ CLIP_VALUE_SOURCE_REPROJECTION_ERROR
@ CLIP_VALUE_SOURCE_SPEED_Y
@ CLIP_VALUE_SOURCE_SPEED_X
const ProjectiveReconstruction & reconstruction
MovieTrackingReconstruction reconstruction
MovieTrackingTrack * active_track
struct MovieClipUser user
MovieTrackingTrack * act_track