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