Tracking: Add utility function to find tracking object from a given track
This commit is contained in:
@@ -288,6 +288,13 @@ void BKE_tracking_stabilization_data_to_mat4(int width, int height, float aspect
|
|||||||
void BKE_tracking_dopesheet_tag_update(struct MovieTracking *tracking);
|
void BKE_tracking_dopesheet_tag_update(struct MovieTracking *tracking);
|
||||||
void BKE_tracking_dopesheet_update(struct MovieTracking *tracking);
|
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);
|
||||||
|
|
||||||
|
/* **** Utility macros **** */
|
||||||
|
|
||||||
#define TRACK_SELECTED(track) ((track)->flag & SELECT || (track)->pat_flag & SELECT || (track)->search_flag & SELECT)
|
#define TRACK_SELECTED(track) ((track)->flag & SELECT || (track)->pat_flag & SELECT || (track)->search_flag & SELECT)
|
||||||
|
|
||||||
#define TRACK_AREA_SELECTED(track, area) ((area) == TRACK_AREA_POINT ? (track)->flag & SELECT : \
|
#define TRACK_AREA_SELECTED(track, area) ((area) == TRACK_AREA_POINT ? (track)->flag & SELECT : \
|
||||||
|
@@ -2904,3 +2904,21 @@ void BKE_tracking_dopesheet_update(MovieTracking *tracking)
|
|||||||
|
|
||||||
dopesheet->ok = true;
|
dopesheet->ok = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* NOTE: Returns NULL if the track comes from camera object, */
|
||||||
|
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) {
|
||||||
|
if (BLI_findindex(&object->tracks, track) != -1) {
|
||||||
|
return object;
|
||||||
|
}
|
||||||
|
object = object->next;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user