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>2015-11-04 17:16:47 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-11-04 18:13:21 +0300
commit7db2979dcf0d59edad0e1b74d63dbeec8561b340 (patch)
treedce7b27159f65aa36ef28d7a1b0633be52e9e0c1 /source/blender/makesrna/intern/rna_tracking.c
parentb566adec5255a0d463dd7d16bc7acbb5d6fdbbaf (diff)
Tracking: Move tracks list base search to an utility function
No functional changes expected, just makes it easier for reuse.
Diffstat (limited to 'source/blender/makesrna/intern/rna_tracking.c')
-rw-r--r--source/blender/makesrna/intern/rna_tracking.c85
1 files changed, 45 insertions, 40 deletions
diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c
index cc396e82df5..0bc20b344e2 100644
--- a/source/blender/makesrna/intern/rna_tracking.c
+++ b/source/blender/makesrna/intern/rna_tracking.c
@@ -55,6 +55,49 @@
#include "WM_api.h"
+static ListBase *tracking_tracksbase_from_track(MovieClip *clip,
+ MovieTrackingTrack *track)
+{
+ MovieTracking *tracking = &clip->tracking;
+ ListBase *tracksbase = &tracking->tracks;
+ /* TODO: it's a bit difficult to find list track came from knowing just
+ * movie clip ID and MovieTracking structure, so keep this naive
+ * search for a while */
+ if (BLI_findindex(tracksbase, track) == -1) {
+ MovieTrackingObject *object = tracking->objects.first;
+ while (object) {
+ if (BLI_findindex(&object->tracks, track) != -1) {
+ return &object->tracks;
+ break;
+ }
+ object = object->next;
+ }
+ }
+ return tracksbase;
+}
+
+static ListBase *tracking_tracksbase_from_plane_track(
+ MovieClip *clip,
+ MovieTrackingPlaneTrack *plane_track)
+{
+ MovieTracking *tracking = &clip->tracking;
+ ListBase *plane_tracks_base = &tracking->plane_tracks;
+ /* TODO: it's a bit difficult to find list track came from knowing just
+ * movie clip ID and MovieTracking structure, so keep this naive
+ * search for a while */
+ if (BLI_findindex(plane_tracks_base, plane_track) == -1) {
+ MovieTrackingObject *object = tracking->objects.first;
+ while (object) {
+ if (BLI_findindex(&object->plane_tracks, plane_track) != -1) {
+ return &object->plane_tracks;
+ break;
+ }
+ object = object->next;
+ }
+ }
+ return plane_tracks_base;
+}
+
static char *rna_tracking_path(PointerRNA *UNUSED(ptr))
{
return BLI_sprintfN("tracking");
@@ -178,28 +221,9 @@ static void rna_tracking_active_plane_track_set(PointerRNA *ptr, PointerRNA valu
static void rna_trackingTrack_name_set(PointerRNA *ptr, const char *value)
{
MovieClip *clip = (MovieClip *)ptr->id.data;
- MovieTracking *tracking = &clip->tracking;
MovieTrackingTrack *track = (MovieTrackingTrack *)ptr->data;
- ListBase *tracksbase = &tracking->tracks;
-
+ ListBase *tracksbase = tracking_tracksbase_from_track(clip, track);
BLI_strncpy(track->name, value, sizeof(track->name));
-
- /* TODO: it's a bit difficult to find list track came from knowing just
- * movie clip ID and MovieTracking structure, so keep this naive
- * search for a while */
- if (BLI_findindex(tracksbase, track) == -1) {
- MovieTrackingObject *object = tracking->objects.first;
-
- while (object) {
- if (BLI_findindex(&object->tracks, track) != -1) {
- tracksbase = &object->tracks;
- break;
- }
-
- object = object->next;
- }
- }
-
BKE_tracking_track_unique_name(tracksbase, track);
}
@@ -276,28 +300,9 @@ static char *rna_trackingPlaneTrack_path(PointerRNA *ptr)
static void rna_trackingPlaneTrack_name_set(PointerRNA *ptr, const char *value)
{
MovieClip *clip = (MovieClip *)ptr->id.data;
- MovieTracking *tracking = &clip->tracking;
MovieTrackingPlaneTrack *plane_track = (MovieTrackingPlaneTrack *)ptr->data;
- ListBase *plane_tracks_base = &tracking->plane_tracks;
-
+ ListBase *plane_tracks_base = tracking_tracksbase_from_plane_track(clip, plane_track);
BLI_strncpy(plane_track->name, value, sizeof(plane_track->name));
-
- /* TODO: it's a bit difficult to find list track came from knowing just
- * movie clip ID and MovieTracking structure, so keep this naive
- * search for a while */
- if (BLI_findindex(plane_tracks_base, plane_track) == -1) {
- MovieTrackingObject *object = tracking->objects.first;
-
- while (object) {
- if (BLI_findindex(&object->plane_tracks, plane_track) != -1) {
- plane_tracks_base = &object->plane_tracks;
- break;
- }
-
- object = object->next;
- }
- }
-
BKE_tracking_plane_track_unique_name(plane_tracks_base, plane_track);
}