Blender  V3.3
tracksN.cc
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2011 Blender Foundation. All rights reserved. */
3 
4 #include "intern/tracksN.h"
5 #include "intern/utildefines.h"
8 
9 using mv::Marker;
10 using mv::Tracks;
11 
12 void libmv_apiMarkerToMarker(const libmv_Marker& libmv_marker, Marker* marker) {
13  marker->clip = libmv_marker.clip;
14  marker->frame = libmv_marker.frame;
15  marker->track = libmv_marker.track;
16  marker->center(0) = libmv_marker.center[0];
17  marker->center(1) = libmv_marker.center[1];
18  for (int i = 0; i < 4; i++) {
19  marker->patch.coordinates(i, 0) = libmv_marker.patch[i][0];
20  marker->patch.coordinates(i, 1) = libmv_marker.patch[i][1];
21  }
22  marker->search_region.min(0) = libmv_marker.search_region_min[0];
23  marker->search_region.min(1) = libmv_marker.search_region_min[1];
24  marker->search_region.max(0) = libmv_marker.search_region_max[0];
25  marker->search_region.max(1) = libmv_marker.search_region_max[1];
26  marker->weight = libmv_marker.weight;
27  marker->source = (Marker::Source)libmv_marker.source;
28  marker->status = (Marker::Status)libmv_marker.status;
29  marker->reference_clip = libmv_marker.reference_clip;
30  marker->reference_frame = libmv_marker.reference_frame;
31  marker->model_type = (Marker::ModelType)libmv_marker.model_type;
32  marker->model_id = libmv_marker.model_id;
33  marker->disabled_channels = libmv_marker.disabled_channels;
34 }
35 
36 void libmv_markerToApiMarker(const Marker& marker, libmv_Marker* libmv_marker) {
37  libmv_marker->clip = marker.clip;
38  libmv_marker->frame = marker.frame;
39  libmv_marker->track = marker.track;
40  libmv_marker->center[0] = marker.center(0);
41  libmv_marker->center[1] = marker.center(1);
42  for (int i = 0; i < 4; i++) {
43  libmv_marker->patch[i][0] = marker.patch.coordinates(i, 0);
44  libmv_marker->patch[i][1] = marker.patch.coordinates(i, 1);
45  }
46  libmv_marker->search_region_min[0] = marker.search_region.min(0);
47  libmv_marker->search_region_min[1] = marker.search_region.min(1);
48  libmv_marker->search_region_max[0] = marker.search_region.max(0);
49  libmv_marker->search_region_max[1] = marker.search_region.max(1);
50  libmv_marker->weight = marker.weight;
51  libmv_marker->source = (libmv_MarkerSource)marker.source;
52  libmv_marker->status = (libmv_MarkerStatus)marker.status;
53  libmv_marker->reference_clip = marker.reference_clip;
54  libmv_marker->reference_frame = marker.reference_frame;
55  libmv_marker->model_type = (libmv_MarkerModelType)marker.model_type;
56  libmv_marker->model_id = marker.model_id;
57  libmv_marker->disabled_channels = marker.disabled_channels;
58 }
59 
62 
63  return (libmv_TracksN*)tracks;
64 }
65 
66 void libmv_tracksDestroyN(libmv_TracksN* libmv_tracks) {
67  LIBMV_OBJECT_DELETE(libmv_tracks, Tracks);
68 }
69 
71  const libmv_Marker* libmv_marker) {
72  Marker marker;
73  libmv_apiMarkerToMarker(*libmv_marker, &marker);
74  ((Tracks*)libmv_tracks)->AddMarker(marker);
75 }
76 
78  int clip,
79  int frame,
80  int track,
81  libmv_Marker* libmv_marker) {
82  Marker marker;
83  ((Tracks*)libmv_tracks)->GetMarker(clip, frame, track, &marker);
84  libmv_markerToApiMarker(marker, libmv_marker);
85 }
86 
88  int clip,
89  int frame,
90  int track) {
91  ((Tracks*)libmv_tracks)->RemoveMarker(clip, frame, track);
92 }
93 
94 void libmv_tracksRemoveMarkersForTrack(libmv_TracksN* libmv_tracks, int track) {
95  ((Tracks*)libmv_tracks)->RemoveMarkersForTrack(track);
96 }
97 
98 int libmv_tracksMaxClipN(libmv_TracksN* libmv_tracks) {
99  return ((Tracks*)libmv_tracks)->MaxClip();
100 }
101 
102 int libmv_tracksMaxFrameN(libmv_TracksN* libmv_tracks, int clip) {
103  return ((Tracks*)libmv_tracks)->MaxFrame(clip);
104 }
105 
107  return ((Tracks*)libmv_tracks)->MaxTrack();
108 }
109 
111  return ((Tracks*)libmv_tracks)->NumMarkers();
112 }
int track
Definition: tracksN.h:49
float search_region_max[2]
Definition: tracksN.h:53
float center[2]
Definition: tracksN.h:50
float search_region_min[2]
Definition: tracksN.h:52
int frame
Definition: tracksN.h:48
int disabled_channels
Definition: tracksN.h:61
libmv_MarkerModelType model_type
Definition: tracksN.h:59
float patch[4][2]
Definition: tracksN.h:51
int reference_frame
Definition: tracksN.h:58
int reference_clip
Definition: tracksN.h:57
float weight
Definition: tracksN.h:54
libmv_MarkerSource source
Definition: tracksN.h:55
int clip
Definition: tracksN.h:47
int model_id
Definition: tracksN.h:60
libmv_MarkerStatus status
Definition: tracksN.h:56
Region search_region
Definition: marker.h:77
int disabled_channels
Definition: marker.h:105
int frame
Definition: marker.h:42
int clip
Definition: marker.h:41
float weight
Definition: marker.h:57
Vec2f center
Definition: marker.h:47
Quad2Df patch
Definition: marker.h:51
ModelType model_type
Definition: marker.h:90
int reference_frame
Definition: marker.h:81
Source source
Definition: marker.h:68
Status status
Definition: marker.h:73
int model_id
Definition: marker.h:93
int track
Definition: marker.h:43
int reference_clip
Definition: marker.h:80
Eigen::Matrix< T, 4, D > coordinates
Definition: quad.h:50
ListBase tracks
Definition: tracking.c:60
void libmv_apiMarkerToMarker(const libmv_Marker &libmv_marker, Marker *marker)
Definition: tracksN.cc:12
void libmv_tracksAddMarkerN(libmv_TracksN *libmv_tracks, const libmv_Marker *libmv_marker)
Definition: tracksN.cc:70
int libmv_tracksNumMarkersN(libmv_TracksN *libmv_tracks)
Definition: tracksN.cc:110
int libmv_tracksMaxClipN(libmv_TracksN *libmv_tracks)
Definition: tracksN.cc:98
libmv_TracksN * libmv_tracksNewN(void)
Definition: tracksN.cc:60
void libmv_markerToApiMarker(const Marker &marker, libmv_Marker *libmv_marker)
Definition: tracksN.cc:36
int libmv_tracksMaxTrackN(libmv_TracksN *libmv_tracks)
Definition: tracksN.cc:106
void libmv_tracksDestroyN(libmv_TracksN *libmv_tracks)
Definition: tracksN.cc:66
void libmv_tracksRemoveMarkersForTrack(libmv_TracksN *libmv_tracks, int track)
Definition: tracksN.cc:94
int libmv_tracksMaxFrameN(libmv_TracksN *libmv_tracks, int clip)
Definition: tracksN.cc:102
void libmv_tracksRemoveMarkerN(libmv_TracksN *libmv_tracks, int clip, int frame, int track)
Definition: tracksN.cc:87
void libmv_tracksGetMarkerN(libmv_TracksN *libmv_tracks, int clip, int frame, int track, libmv_Marker *libmv_marker)
Definition: tracksN.cc:77
libmv_MarkerSource
Definition: tracksN.h:19
libmv_MarkerStatus
Definition: tracksN.h:27
struct libmv_TracksN libmv_TracksN
Definition: tracksN.h:15
libmv_MarkerModelType
Definition: tracksN.h:33
#define LIBMV_OBJECT_NEW(type,...)
Definition: utildefines.h:38
#define LIBMV_OBJECT_DELETE(what, type)
Definition: utildefines.h:41