[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