Blender  V2.93
tracksN.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2011 Blender Foundation.
17  * All rights reserved.
18  */
19 
20 // TODO(serrgey): For the time being we're converting simple pipeline
21 // to an autotrack pipeline we call it tracks.
22 // Once we've done with porting we remove N.
23 
24 #ifndef LIBMV_C_API_TRACKSN_H_
25 #define LIBMV_C_API_TRACKSN_H_
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 typedef struct libmv_TracksN libmv_TracksN;
32 
33 // Keep order in this enums exactly the same as in mv::Marker.
34 // Otherwise API wouldn't convert the values properly.
35 typedef enum libmv_MarkerSource {
42 
43 typedef enum libmv_MarkerStatus {
48 
49 typedef enum libmv_MarkerModelType {
55 
60 };
61 
62 typedef struct libmv_Marker {
63  int clip;
64  int frame;
65  int track;
66  float center[2];
67  float patch[4][2];
70  float weight;
76  int model_id;
79 
80 #ifdef __cplusplus
81 namespace mv {
82 struct Marker;
83 }
84 void libmv_apiMarkerToMarker(const libmv_Marker& libmv_marker,
85  mv::Marker* marker);
86 
87 void libmv_markerToApiMarker(const mv::Marker& marker,
88  libmv_Marker* libmv_marker);
89 #endif
90 
92 
93 void libmv_tracksDestroyN(libmv_TracksN* libmv_tracks);
94 
95 void libmv_tracksAddMarkerN(libmv_TracksN* libmv_tracks,
96  const libmv_Marker* libmv_marker);
97 
98 void libmv_tracksGetMarkerN(libmv_TracksN* libmv_tracks,
99  int clip,
100  int frame,
101  int track,
102  libmv_Marker* libmv_marker);
103 
104 void libmv_tracksRemoveMarkerN(libmv_TracksN* libmv_tracks,
105  int clip,
106  int frame,
107  int track);
108 
109 void libmv_tracksRemoveMarkersForTrack(libmv_TracksN* libmv_tracks, int track);
110 
111 int libmv_tracksMaxClipN(libmv_TracksN* libmv_tracks);
112 int libmv_tracksMaxFrameN(libmv_TracksN* libmv_tracks, int clip);
113 int libmv_tracksMaxTrackN(libmv_TracksN* libmv_tracks);
114 int libmv_tracksNumMarkersN(libmv_TracksN* libmv_tracks);
115 
116 #ifdef __cplusplus
117 }
118 #endif
119 
120 #endif // LIBMV_C_API_TRACKS_H_
int track
Definition: tracksN.h:65
float search_region_max[2]
Definition: tracksN.h:69
float center[2]
Definition: tracksN.h:66
float search_region_min[2]
Definition: tracksN.h:68
int frame
Definition: tracksN.h:64
int disabled_channels
Definition: tracksN.h:77
libmv_MarkerModelType model_type
Definition: tracksN.h:75
float patch[4][2]
Definition: tracksN.h:67
int reference_frame
Definition: tracksN.h:74
int reference_clip
Definition: tracksN.h:73
float weight
Definition: tracksN.h:70
libmv_MarkerSource source
Definition: tracksN.h:71
int clip
Definition: tracksN.h:63
int model_id
Definition: tracksN.h:76
libmv_MarkerStatus status
Definition: tracksN.h:72
void libmv_apiMarkerToMarker(const libmv_Marker &libmv_marker, Marker *marker)
Definition: tracksN.cc:28
void libmv_markerToApiMarker(const Marker &marker, libmv_Marker *libmv_marker)
Definition: tracksN.cc:52
void libmv_tracksAddMarkerN(libmv_TracksN *libmv_tracks, const libmv_Marker *libmv_marker)
Definition: tracksN.cc:86
int libmv_tracksNumMarkersN(libmv_TracksN *libmv_tracks)
Definition: tracksN.cc:126
int libmv_tracksMaxClipN(libmv_TracksN *libmv_tracks)
Definition: tracksN.cc:114
libmv_TracksN * libmv_tracksNewN(void)
Definition: tracksN.cc:76
libmv_MarkerChannel
Definition: tracksN.h:56
@ LIBMV_MARKER_CHANNEL_B
Definition: tracksN.h:59
@ LIBMV_MARKER_CHANNEL_G
Definition: tracksN.h:58
@ LIBMV_MARKER_CHANNEL_R
Definition: tracksN.h:57
int libmv_tracksMaxTrackN(libmv_TracksN *libmv_tracks)
Definition: tracksN.cc:122
libmv_MarkerSource
Definition: tracksN.h:35
@ LIBMV_MARKER_SOURCE_TRACKED
Definition: tracksN.h:38
@ LIBMV_MARKER_SOURCE_DETECTED
Definition: tracksN.h:37
@ LIBMV_MARKER_SOURCE_MANUAL
Definition: tracksN.h:36
@ LIBMV_MARKER_SOURCE_MATCHED
Definition: tracksN.h:39
@ LIBMV_MARKER_SOURCE_PREDICTED
Definition: tracksN.h:40
void libmv_tracksDestroyN(libmv_TracksN *libmv_tracks)
Definition: tracksN.cc:82
void libmv_tracksRemoveMarkersForTrack(libmv_TracksN *libmv_tracks, int track)
Definition: tracksN.cc:110
libmv_MarkerStatus
Definition: tracksN.h:43
@ LIBMV_MARKER_STATUS_OUTLIER
Definition: tracksN.h:46
@ LIBMV_MARKER_STATUS_UNKNOWN
Definition: tracksN.h:44
@ LIBMV_MARKER_STATUS_INLIER
Definition: tracksN.h:45
int libmv_tracksMaxFrameN(libmv_TracksN *libmv_tracks, int clip)
Definition: tracksN.cc:118
struct libmv_Marker libmv_Marker
struct libmv_TracksN libmv_TracksN
Definition: tracksN.h:31
void libmv_tracksRemoveMarkerN(libmv_TracksN *libmv_tracks, int clip, int frame, int track)
Definition: tracksN.cc:103
libmv_MarkerModelType
Definition: tracksN.h:49
@ LIBMV_MARKER_MODEL_TYPE_LINE
Definition: tracksN.h:52
@ LIBMV_MARKER_MODEL_TYPE_POINT
Definition: tracksN.h:50
@ LIBMV_MARKER_MODEL_TYPE_CUBE
Definition: tracksN.h:53
@ LIBMV_MARKER_MODEL_TYPE_PLANE
Definition: tracksN.h:51
void libmv_tracksGetMarkerN(libmv_TracksN *libmv_tracks, int clip, int frame, int track, libmv_Marker *libmv_marker)
Definition: tracksN.cc:93