Tracking: Add utility function to get RNA path for given track
This commit is contained in:
parent
43dcf804bd
commit
cf90b11d68
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue