[Bf-blender-cvs] [953f719e580] master: Cleanup: Variable scope in tracking files

Sergey Sharybin noreply at git.blender.org
Tue Nov 22 11:54:22 CET 2022


Commit: 953f719e580adbf4ea4386c5e09033b2e616998b
Author: Sergey Sharybin
Date:   Wed Oct 5 17:41:58 2022 +0200
Branches: master
https://developer.blender.org/rB953f719e580adbf4ea4386c5e09033b2e616998b

Cleanup: Variable scope in tracking files

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

M	source/blender/blenkernel/intern/tracking_solver.c
M	source/blender/editors/space_clip/tracking_ops.c
M	source/blender/makesrna/intern/rna_tracking.c

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

diff --git a/source/blender/blenkernel/intern/tracking_solver.c b/source/blender/blenkernel/intern/tracking_solver.c
index fa33419b64a..d3323fc939a 100644
--- a/source/blender/blenkernel/intern/tracking_solver.c
+++ b/source/blender/blenkernel/intern/tracking_solver.c
@@ -126,44 +126,36 @@ static bool reconstruct_retrieve_libmv_tracks(MovieReconstructContext *context,
                                               MovieTracking *tracking)
 {
   struct libmv_Reconstruction *libmv_reconstruction = context->reconstruction;
-  MovieTrackingReconstruction *reconstruction = NULL;
-  MovieReconstructedCamera *reconstructed;
-  MovieTrackingTrack *track;
-  ListBase *tracksbase = NULL;
-  int tracknr = 0;
   bool ok = true;
   bool origin_set = false;
   int sfra = context->sfra, efra = context->efra;
   float imat[4][4];
 
   MovieTrackingObject *object = BKE_tracking_object_get_named(tracking, context->object_name);
-
-  tracksbase = &object->tracks;
-  reconstruction = &object->reconstruction;
+  MovieTrackingReconstruction *reconstruction = &object->reconstruction;
 
   unit_m4(imat);
 
-  track = tracksbase->first;
-  while (track) {
-    double pos[3];
+  {
+    int track_index = 0;
+    LISTBASE_FOREACH_INDEX (MovieTrackingTrack *, track, &object->tracks, track_index) {
+      double pos[3];
 
-    if (libmv_reprojectionPointForTrack(libmv_reconstruction, tracknr, pos)) {
-      track->bundle_pos[0] = pos[0];
-      track->bundle_pos[1] = pos[1];
-      track->bundle_pos[2] = pos[2];
+      if (libmv_reprojectionPointForTrack(libmv_reconstruction, track_index, pos)) {
+        track->bundle_pos[0] = pos[0];
+        track->bundle_pos[1] = pos[1];
+        track->bundle_pos[2] = pos[2];
 
-      track->flag |= TRACK_HAS_BUNDLE;
-      track->error = libmv_reprojectionErrorForTrack(libmv_reconstruction, tracknr);
-    }
-    else {
-      track->flag &= ~TRACK_HAS_BUNDLE;
-      ok = false;
+        track->flag |= TRACK_HAS_BUNDLE;
+        track->error = libmv_reprojectionErrorForTrack(libmv_reconstruction, track_index);
+      }
+      else {
+        track->flag &= ~TRACK_HAS_BUNDLE;
+        ok = false;
 
-      printf("Unable to reconstruct position for track #%d '%s'\n", tracknr, track->name);
+        printf("Unable to reconstruct position for track #%d '%s'\n", track_index, track->name);
+      }
     }
-
-    track = track->next;
-    tracknr++;
   }
 
   if (reconstruction->cameras) {
@@ -172,8 +164,9 @@ static bool reconstruct_retrieve_libmv_tracks(MovieReconstructContext *context,
 
   reconstruction->camnr = 0;
   reconstruction->cameras = NULL;
-  reconstructed = MEM_callocN((efra - sfra + 1) * sizeof(MovieReconstructedCamera),
-                              "temp reconstructed camera");
+
+  MovieReconstructedCamera *reconstructed_cameras = MEM_callocN(
+      (efra - sfra + 1) * sizeof(MovieReconstructedCamera), "temp reconstructed camera");
 
   for (int a = sfra; a <= efra; a++) {
     double matd[4][4];
@@ -208,9 +201,11 @@ static bool reconstruct_retrieve_libmv_tracks(MovieReconstructContext *context,
         mul_m4_m4m4(mat, imat, mat);
       }
 
-      copy_m4_m4(reconstructed[reconstruction->camnr].mat, mat);
-      reconstructed[reconstruction->camnr].framenr = a;
-      reconstructed[reconstruction->camnr].error = error;
+      MovieReconstructedCamera *reconstructed_camera =
+          &reconstructed_cameras[reconstruction->camnr];
+      copy_m4_m4(reconstructed_camera->mat, mat);
+      reconstructed_camera->framenr = a;
+      reconstructed_camera->error = error;
       reconstruction->camnr++;
     }
     else {
@@ -220,23 +215,20 @@ static bool reconstruct_retrieve_libmv_tracks(MovieReconstructContext *context,
   }
 
   if (reconstruction->camnr) {
-    int size = reconstruction->camnr * sizeof(MovieReconstructedCamera);
+    const size_t size = reconstruction->camnr * sizeof(MovieReconstructedCamera);
     reconstruction->cameras = MEM_mallocN(size, "reconstructed camera");
-    memcpy(reconstruction->cameras, reconstructed, size);
+    memcpy(reconstruction->cameras, reconstructed_cameras, size);
   }
 
   if (origin_set) {
-    track = tracksbase->first;
-    while (track) {
+    LISTBASE_FOREACH (MovieTrackingTrack *, track, &object->tracks) {
       if (track->flag & TRACK_HAS_BUNDLE) {
         mul_v3_m4v3(track->bundle_pos, imat, track->bundle_pos);
       }
-
-      track = track->next;
     }
   }
 
-  MEM_freeN(reconstructed);
+  MEM_freeN(reconstructed_cameras);
 
   return ok;
 }
@@ -494,9 +486,6 @@ void BKE_tracking_reconstruction_solve(MovieReconstructContext *context,
 
 bool BKE_tracking_reconstruction_finish(MovieReconstructContext *context, MovieTracking *tracking)
 {
-  MovieTrackingReconstruction *reconstruction;
-  MovieTrackingObject *object;
-
   if (!libmv_reconstructionIsValid(context->reconstruction)) {
     BKE_tracking_reconstruction_report_error_message(
         context, "Failed to solve the motion: most likely there are no good keyframes");
@@ -506,8 +495,8 @@ bool BKE_tracking_reconstruction_finish(MovieReconstructContext *context, MovieT
   tracks_map_merge(context->tracks_map, tracking);
   BKE_tracking_dopesheet_tag_update(tracking);
 
-  object = BKE_tracking_object_get_named(tracking, context->object_name);
-  reconstruction = &object->reconstruction;
+  MovieTrackingObject *object = BKE_tracking_object_get_named(tracking, context->object_name);
+  MovieTrackingReconstruction *reconstruction = &object->reconstruction;
 
   /* update keyframe in the interface */
   if (context->select_keyframes) {
diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c
index 4476bc78352..4c028500e30 100644
--- a/source/blender/editors/space_clip/tracking_ops.c
+++ b/source/blender/editors/space_clip/tracking_ops.c
@@ -1137,9 +1137,7 @@ static int hide_tracks_exec(bContext *C, wmOperator *op)
   MovieClip *clip = ED_space_clip_get_clip(sc);
   MovieTracking *tracking = &clip->tracking;
   MovieTrackingObject *tracking_object = BKE_tracking_object_get_active(tracking);
-  int unselected;
-
-  unselected = RNA_boolean_get(op->ptr, "unselected");
+  const int unselected = RNA_boolean_get(op->ptr, "unselected");
 
   /* Hide point tracks. */
   LISTBASE_FOREACH (MovieTrackingTrack *, track, &tracking_object->tracks) {
diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c
index 884167b486c..7250b1272e7 100644
--- a/source/blender/makesrna/intern/rna_tracking.c
+++ b/source/blender/makesrna/intern/rna_tracking.c
@@ -594,10 +594,8 @@ static MovieTrackingTrack *rna_trackingTracks_new(ID *id,
 {
   MovieClip *clip = (MovieClip *)id;
   MovieTrackingObject *tracking_camera_object = BKE_tracking_object_get_camera(&clip->tracking);
-
-  MovieTrackingTrack *track;
-
-  track = add_track_to_base(clip, tracking, &tracking_camera_object->tracks, name, frame);
+  MovieTrackingTrack *track = add_track_to_base(
+      clip, tracking, &tracking_camera_object->tracks, name, frame);
 
   WM_main_add_notifier(NC_MOVIECLIP | NA_EDITED, clip);
 
@@ -610,10 +608,8 @@ static MovieTrackingTrack *rna_trackingObject_tracks_new(ID *id,
                                                          int frame)
 {
   MovieClip *clip = (MovieClip *)id;
-  ListBase *tracksbase = &object->tracks;
-  MovieTrackingTrack *track;
-
-  track = add_track_to_base(clip, &clip->tracking, tracksbase, name, frame);
+  MovieTrackingTrack *track = add_track_to_base(
+      clip, &clip->tracking, &object->tracks, name, frame);
 
   WM_main_add_notifier(NC_MOVIECLIP | NA_EDITED, NULL);



More information about the Bf-blender-cvs mailing list