[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59016] branches/soc-2011-tomato/source/ blender: Delete Marker operator will now also tae plane markers into account

Sergey Sharybin sergey.vfx at gmail.com
Thu Aug 8 09:39:12 CEST 2013


Revision: 59016
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59016
Author:   nazgul
Date:     2013-08-08 07:39:11 +0000 (Thu, 08 Aug 2013)
Log Message:
-----------
Delete Marker operator will now also tae plane markers into account

Smaller fixes:

- Point track delection missed checking whether track actually
  belongs to the plane or not.

- Adding point track shall deselect all the planes.

- Fixed bug with restoring marker's flag after transformaiton.

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_utils.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
    branches/soc-2011-tomato/source/blender/editors/transform/transform_conversions.c

Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2013-08-08 07:39:02 UTC (rev 59015)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h	2013-08-08 07:39:11 UTC (rev 59016)
@@ -137,6 +137,8 @@
 
 struct MovieTrackingPlaneTrack *BKE_tracking_plane_track_get_active(struct MovieTracking *tracking);
 
+void BKE_tracking_plane_tracks_deselect_all(struct ListBase *plane_tracks_base);
+
 /* **** Plane Marker **** */
 struct MovieTrackingPlaneMarker *BKE_tracking_plane_marker_insert(struct MovieTrackingPlaneTrack *plane_track,
                                                                   struct MovieTrackingPlaneMarker *plane_marker);

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2013-08-08 07:39:02 UTC (rev 59015)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2013-08-08 07:39:11 UTC (rev 59016)
@@ -1446,6 +1446,15 @@
 	return NULL;
 }
 
+void BKE_tracking_plane_tracks_deselect_all(ListBase *plane_tracks_base)
+{
+	MovieTrackingPlaneTrack *plane_track;
+
+	for (plane_track = plane_tracks_base->first; plane_track; plane_track = plane_track->next) {
+		plane_track->flag &= ~SELECT;
+	}
+}
+
 /*********************** Plane Marker *************************/
 
 MovieTrackingPlaneMarker *BKE_tracking_plane_marker_insert(MovieTrackingPlaneTrack *plane_track,

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_utils.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_utils.c	2013-08-08 07:39:02 UTC (rev 59015)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_utils.c	2013-08-08 07:39:11 UTC (rev 59016)
@@ -204,10 +204,24 @@
 	     plane_track;
 	     plane_track = next_plane_track)
 	{
+		bool found  = false;
+		int i;
+
 		next_plane_track = plane_track->next;
 
+		for (i = 0; i < plane_track->point_tracksnr; i++) {
+			if (plane_track->point_tracks[i] == track) {
+				found = true;
+				break;
+			}
+		}
+
+		if (!found) {
+			continue;
+		}
+
 		if (plane_track->point_tracksnr > 4) {
-			int i, track_index;
+			int track_index;
 			MovieTrackingTrack **new_point_tracks;
 
 			new_point_tracks = MEM_mallocN(sizeof(*new_point_tracks) * plane_track->point_tracksnr,

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c	2013-08-08 07:39:02 UTC (rev 59015)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c	2013-08-08 07:39:11 UTC (rev 59016)
@@ -91,6 +91,7 @@
 	MovieClip *clip = ED_space_clip_get_clip(sc);
 	MovieTracking *tracking = &clip->tracking;
 	ListBase *tracksbase = BKE_tracking_get_active_tracks(tracking);
+	ListBase *plane_tracks_base = BKE_tracking_get_active_plane_tracks(tracking);
 	MovieTrackingTrack *track;
 	int width, height;
 	int framenr = ED_space_clip_get_clip_frame_number(sc);
@@ -104,6 +105,7 @@
 	track = BKE_tracking_track_add(tracking, tracksbase, x, y, framenr, width, height);
 
 	BKE_tracking_track_select(tracksbase, track, TRACK_AREA_ALL, 0);
+	BKE_tracking_plane_tracks_deselect_all(plane_tracks_base);
 
 	clip->tracking.act_track = track;
 	clip->tracking.act_plane_track = NULL;
@@ -300,7 +302,9 @@
 	SpaceClip *sc = CTX_wm_space_clip(C);
 	MovieClip *clip = ED_space_clip_get_clip(sc);
 	ListBase *tracksbase = BKE_tracking_get_active_tracks(&clip->tracking);
+	ListBase *plane_tracks_base = BKE_tracking_get_active_plane_tracks(&clip->tracking);
 	MovieTrackingTrack *track = tracksbase->first, *next;
+	MovieTrackingPlaneTrack *plane_track, *plane_track_next;
 	int framenr = ED_space_clip_get_clip_frame_number(sc);
 	int has_selection = 0;
 
@@ -320,6 +324,27 @@
 		track = next;
 	}
 
+	for (plane_track = plane_tracks_base->first;
+	     plane_track;
+	     plane_track = plane_track_next)
+	{
+		plane_track_next = plane_track->next;
+
+		if (plane_track->flag & SELECT) {
+			MovieTrackingPlaneMarker *plane_marker = BKE_tracking_plane_marker_get_exact(plane_track, framenr);
+
+			if (plane_marker) {
+				if (plane_track->markersnr == 1) {
+					BKE_tracking_plane_track_free(plane_track);
+					BLI_freelinkN(plane_tracks_base, plane_track);
+				}
+				else {
+					BKE_tracking_plane_marker_delete(plane_track, framenr);
+				}
+			}
+		}
+	}
+
 	if (!has_selection) {
 		/* nothing selected now, unlock view so it can be scrolled nice again */
 		sc->flag &= ~SC_LOCK_SELECTION;

Modified: branches/soc-2011-tomato/source/blender/editors/transform/transform_conversions.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/transform/transform_conversions.c	2013-08-08 07:39:02 UTC (rev 59015)
+++ branches/soc-2011-tomato/source/blender/editors/transform/transform_conversions.c	2013-08-08 07:39:11 UTC (rev 59016)
@@ -6406,11 +6406,10 @@
 				i++;
 
 			if (track->pat_flag & SELECT)
-				i += 2;
+				i += 4;
 
 			if (track->search_flag & SELECT)
 				i += 2;
-
 		}
 		else if (tdt->mode == transDataTracking_ModeCurves) {
 			MovieTrackingTrack *track = tdt->track;
@@ -6434,6 +6433,7 @@
 			MovieTrackingPlaneMarker *plane_marker = BKE_tracking_plane_marker_get(plane_track, framenr);
 
 			plane_marker->flag = tdt->flag;
+			i += 3;
 		}
 
 		i++;




More information about the Bf-blender-cvs mailing list