Libmv: Add C-API function to set all markers within AutoTrack structure
[blender.git] / intern / libmv / intern / autotrack.h
1 /*
2  * ***** BEGIN GPL LICENSE BLOCK *****
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * The Original Code is Copyright (C) 2014 Blender Foundation.
19  * All rights reserved.
20  *
21  * Contributor(s): Blender Foundation,
22  *                 Sergey Sharybin
23  *
24  * ***** END GPL LICENSE BLOCK *****
25  */
26
27 #ifndef LIBMV_C_API_AUTOTRACK_H_
28 #define LIBMV_C_API_AUTOTRACK_H_
29
30 #include "intern/frame_accessor.h"
31 #include "intern/tracksN.h"
32 #include "intern/track_region.h"
33 #include "intern/region.h"
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 typedef struct libmv_AutoTrack libmv_AutoTrack;
40
41 typedef struct libmv_AutoTrackOptions {
42   libmv_TrackRegionOptions track_region;
43   libmv_Region search_region;
44 } libmv_AutoTrackOptions;
45
46 libmv_AutoTrack* libmv_autoTrackNew(libmv_FrameAccessor *frame_accessor);
47
48 void libmv_autoTrackDestroy(libmv_AutoTrack* libmv_autotrack);
49
50 void libmv_autoTrackSetOptions(libmv_AutoTrack* libmv_autotrack,
51                                const libmv_AutoTrackOptions* options);
52
53 int libmv_autoTrackMarker(libmv_AutoTrack* libmv_autotrack,
54                           const libmv_TrackRegionOptions* libmv_options,
55                           libmv_Marker *libmv_tracker_marker,
56                           libmv_TrackRegionResult* libmv_result);
57
58 void libmv_autoTrackAddMarker(libmv_AutoTrack* libmv_autotrack,
59                               const libmv_Marker* libmv_marker);
60
61 void libmv_autoTrackSetMarkers(libmv_AutoTrack* libmv_autotrack,
62                                const libmv_Marker* libmv_marker,
63                                size_t num_markers);
64
65 int libmv_autoTrackGetMarker(libmv_AutoTrack* libmv_autotrack,
66                              int clip,
67                              int frame,
68                              int track,
69                              libmv_Marker *libmv_marker);
70
71 #ifdef __cplusplus
72 }
73 #endif
74
75 #endif  // LIBMV_C_API_TRACKS_H_