[Bf-blender-cvs] [1818aa3b24f] master: Tracking: Add plane tracks equivalents to previous commit

Sergey Sharybin noreply at git.blender.org
Tue Dec 19 12:22:50 CET 2017


Commit: 1818aa3b24f3d99549c240dc371b277994c19bed
Author: Sergey Sharybin
Date:   Tue Dec 19 12:18:52 2017 +0100
Branches: master
https://developer.blender.org/rB1818aa3b24f3d99549c240dc371b277994c19bed

Tracking: Add plane tracks equivalents to previous commit

===================================================================

M	source/blender/blenkernel/BKE_tracking.h
M	source/blender/blenkernel/intern/tracking.c

===================================================================

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;
+}



More information about the Bf-blender-cvs mailing list