Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2017-12-19 14:18:52 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-12-19 14:18:52 +0300
commit1818aa3b24f3d99549c240dc371b277994c19bed (patch)
treec00d480bc8fed65d42ba14899552fdcf87cbdac2
parente598e55eddef43222ff18432984ae502ad2e7867 (diff)
Tracking: Add plane tracks equivalents to previous commit
-rw-r--r--source/blender/blenkernel/BKE_tracking.h17
-rw-r--r--source/blender/blenkernel/intern/tracking.c46
2 files changed, 53 insertions, 10 deletions
diff --git a/source/blender/blenkernel/BKE_tracking.h b/source/blender/blenkernel/BKE_tracking.h
index 7744f46102a..2ff6bfc8ee7 100644
--- a/source/blender/blenkernel/BKE_tracking.h
+++ b/source/blender/blenkernel/BKE_tracking.h
@@ -290,10 +290,19 @@ void BKE_tracking_dopesheet_update(struct MovieTracking *tracking);
/* **** Query/search **** */
-struct MovieTrackingObject *BKE_tracking_find_object_for_track(const struct MovieTracking *tracking,
- const struct MovieTrackingTrack *track);
-struct ListBase *BKE_tracking_find_tracks_list_for_track(struct MovieTracking *tracking,
- const struct MovieTrackingTrack *track);
+struct MovieTrackingObject *BKE_tracking_find_object_for_track(
+ const struct MovieTracking *tracking,
+ const struct MovieTrackingTrack *track);
+struct ListBase *BKE_tracking_find_tracks_list_for_track(
+ struct MovieTracking *tracking,
+ const struct MovieTrackingTrack *track);
+
+struct MovieTrackingObject *BKE_tracking_find_object_for_plane_track(
+ const struct MovieTracking *tracking,
+ const struct MovieTrackingPlaneTrack *plane_track);
+struct ListBase *BKE_tracking_find_tracks_list_for_plane_track(
+ struct MovieTracking *tracking,
+ const struct MovieTrackingPlaneTrack *plane_track);
/* **** Utility macros **** */
diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c
index fcbc3af989b..bf107432a4c 100644
--- a/source/blender/blenkernel/intern/tracking.c
+++ b/source/blender/blenkernel/intern/tracking.c
@@ -2906,15 +2906,16 @@ void BKE_tracking_dopesheet_update(MovieTracking *tracking)
}
/* NOTE: Returns NULL if the track comes from camera object, */
-MovieTrackingObject *BKE_tracking_find_object_for_track(const MovieTracking *tracking,
- const MovieTrackingTrack *track)
+MovieTrackingObject *BKE_tracking_find_object_for_track(
+ const MovieTracking *tracking,
+ const MovieTrackingTrack *track)
{
const ListBase *tracksbase = &tracking->tracks;
if (BLI_findindex(tracksbase, track) != -1) {
return NULL;
}
MovieTrackingObject *object = tracking->objects.first;
- while (object) {
+ while (object != NULL) {
if (BLI_findindex(&object->tracks, track) != -1) {
return object;
}
@@ -2923,12 +2924,45 @@ MovieTrackingObject *BKE_tracking_find_object_for_track(const MovieTracking *tra
return NULL;
}
-ListBase *BKE_tracking_find_tracks_list_for_track(MovieTracking *tracking,
- const MovieTrackingTrack *track)
+ListBase *BKE_tracking_find_tracks_list_for_track(
+ MovieTracking *tracking,
+ const MovieTrackingTrack *track)
{
- MovieTrackingObject *object = BKE_tracking_find_object_for_track(tracking, track);
+ MovieTrackingObject *object = BKE_tracking_find_object_for_track(tracking,
+ track);
if (object != NULL) {
return &object->tracks;
}
return &tracking->tracks;
}
+
+/* NOTE: Returns NULL if the track comes from camera object, */
+MovieTrackingObject *BKE_tracking_find_object_for_plane_track(
+ const MovieTracking *tracking,
+ const MovieTrackingPlaneTrack *plane_track)
+{
+ const ListBase *plane_tracks_base = &tracking->plane_tracks;
+ if (BLI_findindex(plane_tracks_base, plane_track) != -1) {
+ return NULL;
+ }
+ MovieTrackingObject *object = tracking->objects.first;
+ while (object != NULL) {
+ if (BLI_findindex(&object->plane_tracks, plane_track) != -1) {
+ return object;
+ }
+ object = object->next;
+ }
+ return NULL;
+}
+
+ListBase *BKE_tracking_find_tracks_list_for_plane_track(
+ MovieTracking *tracking,
+ const MovieTrackingPlaneTrack *plane_track)
+{
+ MovieTrackingObject *object =
+ BKE_tracking_find_object_for_plane_track(tracking, plane_track);
+ if (object != NULL) {
+ return &object->plane_tracks;
+ }
+ return &tracking->plane_tracks;
+}