[Bf-blender-cvs] [cf90b11d682] master: Tracking: Add utility function to get RNA path for given track

Sergey Sharybin noreply at git.blender.org
Tue Dec 19 13:02:58 CET 2017


Commit: cf90b11d682ec4f965a1c8144477c8e58ea3d3e5
Author: Sergey Sharybin
Date:   Tue Dec 19 12:45:23 2017 +0100
Branches: master
https://developer.blender.org/rBcf90b11d682ec4f965a1c8144477c8e58ea3d3e5

Tracking: Add utility function to get RNA path for given track

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

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 2ff6bfc8ee7..b44f90cbf73 100644
--- a/source/blender/blenkernel/BKE_tracking.h
+++ b/source/blender/blenkernel/BKE_tracking.h
@@ -304,6 +304,18 @@ struct ListBase *BKE_tracking_find_tracks_list_for_plane_track(
         struct MovieTracking *tracking,
         const struct MovieTrackingPlaneTrack *plane_track);
 
+
+void BKE_tracking_get_rna_path_for_track(
+        const struct MovieTracking *tracking,
+        const struct MovieTrackingTrack *track,
+        char *rna_path,
+        size_t rna_path_len);
+void BKE_tracking_get_rna_path_for_plane_track(
+        const struct MovieTracking *tracking,
+        const struct MovieTrackingPlaneTrack *plane_track,
+        char *rna_path,
+        size_t rna_path_len);
+
 /* **** Utility macros **** */
 
 #define TRACK_SELECTED(track)               ((track)->flag & SELECT || (track)->pat_flag & SELECT || (track)->search_flag & SELECT)
diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c
index bf107432a4c..7890f17c4df 100644
--- a/source/blender/blenkernel/intern/tracking.c
+++ b/source/blender/blenkernel/intern/tracking.c
@@ -2966,3 +2966,53 @@ ListBase *BKE_tracking_find_tracks_list_for_plane_track(
 	}
 	return &tracking->plane_tracks;
 }
+
+void BKE_tracking_get_rna_path_for_track(
+        const struct MovieTracking *tracking,
+        const struct MovieTrackingTrack *track,
+        char *rna_path,
+        size_t rna_path_len)
+{
+	MovieTrackingObject *object =
+	        BKE_tracking_find_object_for_track(tracking, track);
+	char track_name_esc[MAX_NAME * 2];
+	BLI_strescape(track_name_esc, track->name, sizeof(track_name_esc));
+	if (object == NULL) {
+		BLI_snprintf(rna_path, rna_path_len,
+		             "tracking.tracks[\"%s\"]",
+		             track_name_esc);
+	}
+	else {
+		char object_name_esc[MAX_NAME * 2];
+		BLI_strescape(object_name_esc, object->name, sizeof(object_name_esc));
+		BLI_snprintf(rna_path, rna_path_len,
+		             "tracking.objects[\"%s\"].tracks[\"%s\"]",
+		             object_name_esc,
+		             track_name_esc);
+	}
+}
+
+void BKE_tracking_get_rna_path_for_plane_track(
+        const struct MovieTracking *tracking,
+        const struct MovieTrackingPlaneTrack *plane_track,
+        char *rna_path,
+        size_t rna_path_len)
+{
+	MovieTrackingObject *object =
+	        BKE_tracking_find_object_for_plane_track(tracking, plane_track);
+	char track_name_esc[MAX_NAME * 2];
+	BLI_strescape(track_name_esc, plane_track->name, sizeof(track_name_esc));
+	if (object == NULL) {
+		BLI_snprintf(rna_path, rna_path_len,
+		             "tracking.plane_tracks[\"%s\"]",
+		             track_name_esc);
+	}
+	else {
+		char object_name_esc[MAX_NAME * 2];
+		BLI_strescape(object_name_esc, object->name, sizeof(object_name_esc));
+		BLI_snprintf(rna_path, rna_path_len,
+		             "tracking.objects[\"%s\"].plane_tracks[\"%s\"]",
+		             object_name_esc,
+		             track_name_esc);
+	}
+}



More information about the Bf-blender-cvs mailing list