83 vector<Marker>*
markers)
const {
84 std::vector<int> image1_tracks;
85 std::vector<int> image2_tracks;
88 for (
int i = 0; i < markers_.size(); ++i) {
89 int clip = markers_[i].clip;
90 int frame = markers_[i].frame;
91 if (clip == clip1 && frame == frame1) {
92 image1_tracks.push_back(markers_[i].track);
93 }
else if (clip == clip2 && frame == frame2) {
94 image2_tracks.push_back(markers_[i].track);
99 std::sort(image1_tracks.begin(), image1_tracks.end());
100 std::sort(image2_tracks.begin(), image2_tracks.end());
101 std::vector<int> intersection;
102 std::set_intersection(image1_tracks.begin(),
104 image2_tracks.begin(),
106 std::back_inserter(intersection));
109 for (
int i = 0; i < markers_.size(); ++i) {
111 if (((markers_[i].clip == clip1 && markers_[i].frame == frame1) ||
112 (markers_[i].clip == clip2 && markers_[i].frame == frame2)) &&
114 intersection.begin(), intersection.end(), markers_[i].track)) {
115 markers->push_back(markers_[i]);
138 int size = markers_.size();
139 for (
int i = 0; i < markers_.size(); ++i) {
140 if (markers_[i].clip == clip && markers_[i].frame == frame &&
141 markers_[i].track == track) {
142 markers_[i] = markers_[size - 1];
143 markers_.resize(size - 1);