Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-07-28 16:55:02 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-07-28 18:04:10 +0300
commitbf637984d17f735d7bd86c843c11c2d362430056 (patch)
treefcadfd22b6374ed6f15e9bfe17df02d6edce37cb /source/blender/editors/space_clip/clip_intern.h
parent1c40227bfaf4f45954cfdb45cd9ab411adda8e86 (diff)
Tracking: Refactor, generalize curve iteration API
Make it generic enough to support iterating over reprojection error in the same manner as coordinate speed.
Diffstat (limited to 'source/blender/editors/space_clip/clip_intern.h')
-rw-r--r--source/blender/editors/space_clip/clip_intern.h55
1 files changed, 31 insertions, 24 deletions
diff --git a/source/blender/editors/space_clip/clip_intern.h b/source/blender/editors/space_clip/clip_intern.h
index 7683823a79f..3f8ac2bb7c2 100644
--- a/source/blender/editors/space_clip/clip_intern.h
+++ b/source/blender/editors/space_clip/clip_intern.h
@@ -112,35 +112,42 @@ void CLIP_OT_cursor_set(struct wmOperatorType *ot);
struct ARegion *ED_clip_has_properties_region(struct ScrArea *sa);
/* clip_utils.c */
-void clip_graph_tracking_values_iterate_track(
- struct SpaceClip *sc,
- struct MovieTrackingTrack *track,
- void *userdata,
- void (*func)(void *userdata,
- struct MovieTrackingTrack *track,
- struct MovieTrackingMarker *marker,
- int coord,
- int scene_framenr,
- float val),
- void (*segment_start)(
- void *userdata, struct MovieTrackingTrack *track, int coord, bool is_point),
- void (*segment_end)(void *userdata, int coord));
+
+typedef enum {
+ CLIP_VALUE_SOURCE_SPEED_X,
+ CLIP_VALUE_SOURCE_SPEED_Y,
+ CLIP_VALUE_SOURCE_REPROJECTION_ERROR,
+} eClipCurveValueSource;
+
+typedef void (*ClipTrackValueCallback)(void *userdata,
+ struct MovieTrackingTrack *track,
+ struct MovieTrackingMarker *marker,
+ eClipCurveValueSource value_source,
+ int scene_framenr,
+ float val);
+
+typedef void (*ClipTrackValueSegmentStartCallback)(void *userdata,
+ struct MovieTrackingTrack *track,
+ eClipCurveValueSource value_source,
+ bool is_point);
+
+typedef void (*ClipTrackValueSegmentEndCallback)(void *userdata,
+ eClipCurveValueSource value_source);
+
+void clip_graph_tracking_values_iterate_track(struct SpaceClip *sc,
+ struct MovieTrackingTrack *track,
+ void *userdata,
+ ClipTrackValueCallback func,
+ ClipTrackValueSegmentStartCallback segment_start,
+ ClipTrackValueSegmentEndCallback segment_end);
void clip_graph_tracking_values_iterate(struct SpaceClip *sc,
bool selected_only,
bool include_hidden,
void *userdata,
- void (*func)(void *userdata,
- struct MovieTrackingTrack *track,
- struct MovieTrackingMarker *marker,
- int coord,
- int scene_framenr,
- float val),
- void (*segment_start)(void *userdata,
- struct MovieTrackingTrack *track,
- int coord,
- bool is_point),
- void (*segment_end)(void *userdata, int coord));
+ ClipTrackValueCallback func,
+ ClipTrackValueSegmentStartCallback segment_start,
+ ClipTrackValueSegmentEndCallback segment_end);
void clip_graph_tracking_iterate(struct SpaceClip *sc,
bool selected_only,