[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38955] branches/soc-2011-salad: Merging r38901 through r38952 from soc-2011-tomato into soc-2011-salad
Sergey Sharybin
g.ulairi at gmail.com
Tue Aug 2 20:46:23 CEST 2011
Revision: 38955
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38955
Author: nazgul
Date: 2011-08-02 18:46:23 +0000 (Tue, 02 Aug 2011)
Log Message:
-----------
Merging r38901 through r38952 from soc-2011-tomato into soc-2011-salad
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38901
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38952
Modified Paths:
--------------
branches/soc-2011-salad/build_files/scons/config/darwin-config.py
branches/soc-2011-salad/release/scripts/startup/bl_ui/space_clip.py
branches/soc-2011-salad/source/blender/blenkernel/BKE_tracking.h
branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c
branches/soc-2011-salad/source/blender/blenloader/intern/readfile.c
branches/soc-2011-salad/source/blender/blenloader/intern/writefile.c
branches/soc-2011-salad/source/blender/editors/space_clip/clip_draw.c
branches/soc-2011-salad/source/blender/editors/space_clip/space_clip.c
branches/soc-2011-salad/source/blender/editors/space_clip/tracking_ops.c
branches/soc-2011-salad/source/blender/editors/space_view3d/drawobject.c
branches/soc-2011-salad/source/blender/makesdna/DNA_tracking_types.h
branches/soc-2011-salad/source/blender/makesrna/intern/rna_tracking.c
Property Changed:
----------------
branches/soc-2011-salad/
Property changes on: branches/soc-2011-salad
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/soc-2010-jwilkins:28499-37009
/branches/soc-2010-nicolasbishop:28448-30783,30792-30793,30797-30798,30815
/branches/soc-2011-carrot:36854,37548,37564,37602,37622,37848,38043,38064,38226,38231,38282,38620,38661-38662
/branches/soc-2011-cucumber:36829-36994
/branches/soc-2011-onion:36833-38309
/branches/soc-2011-pepper:36830-38934
/branches/soc-2011-tomato:36831-38900
/trunk/blender:36834-38951
+ /branches/soc-2010-jwilkins:28499-37009
/branches/soc-2010-nicolasbishop:28448-30783,30792-30793,30797-30798,30815
/branches/soc-2011-carrot:36854,37548,37564,37602,37622,37848,38043,38064,38226,38231,38282,38620,38661-38662
/branches/soc-2011-cucumber:36829-36994
/branches/soc-2011-onion:36833-38309
/branches/soc-2011-pepper:36830-38934
/branches/soc-2011-tomato:36831-38952
/trunk/blender:36834-38951
Modified: branches/soc-2011-salad/build_files/scons/config/darwin-config.py
===================================================================
--- branches/soc-2011-salad/build_files/scons/config/darwin-config.py 2011-08-02 18:43:00 UTC (rev 38954)
+++ branches/soc-2011-salad/build_files/scons/config/darwin-config.py 2011-08-02 18:46:23 UTC (rev 38955)
@@ -265,6 +265,7 @@
elif MACOSX_ARCHITECTURE == 'x86_64':
BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse','-msse2']
#On-Surface Brush
+
WITH_BF_ONSURFACEBRUSH = True
# SpaceNavigator and related 3D mice
Modified: branches/soc-2011-salad/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- branches/soc-2011-salad/release/scripts/startup/bl_ui/space_clip.py 2011-08-02 18:43:00 UTC (rev 38954)
+++ branches/soc-2011-salad/release/scripts/startup/bl_ui/space_clip.py 2011-08-02 18:46:23 UTC (rev 38955)
@@ -113,7 +113,13 @@
layout.template_ID(sc, "clip")
layout.template_running_jobs()
+ if clip:
+ r = clip.tracking.reconstruction
+ if r.is_reconstructed:
+ layout.label(text="Average solve error: %.4f" % (r.average_error))
+
+
class CLIP_PT_tools(bpy.types.Panel):
bl_space_type = 'CLIP_EDITOR'
bl_region_type = 'TOOLS'
@@ -577,6 +583,9 @@
op = layout.operator("clip.select_grouped", text="Select Disabled")
op.group = 'DISABLED'
+ op = layout.operator("clip.select_grouped", text="Select Failed")
+ op.group = 'FAILED'
+
op = layout.operator("clip.select_grouped", text="Select by Color")
op.group = 'COLOR'
Modified: branches/soc-2011-salad/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- branches/soc-2011-salad/source/blender/blenkernel/BKE_tracking.h 2011-08-02 18:43:00 UTC (rev 38954)
+++ branches/soc-2011-salad/source/blender/blenkernel/BKE_tracking.h 2011-08-02 18:46:23 UTC (rev 38955)
@@ -71,7 +71,7 @@
void BKE_tracking_sync_user(struct MovieClipUser *user, struct MovieTrackingContext *context);
int BKE_tracking_next(struct MovieTrackingContext *context);
-float BKE_tracking_solve_reconstruction(struct MovieClip *clip);
+float BKE_tracking_solve_reconstruction(struct MovieTracking *tracking, int width, int height);
void BKE_track_unique_name(struct MovieTracking *tracking, struct MovieTrackingTrack *track);
struct MovieTrackingTrack *BKE_find_track_by_name(struct MovieTracking *tracking, const char *name);
Modified: branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c 2011-08-02 18:43:00 UTC (rev 38954)
+++ branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c 2011-08-02 18:46:23 UTC (rev 38955)
@@ -448,8 +448,8 @@
BLI_freelistN(&tracking->tracks);
- if(tracking->camera.reconstructed)
- MEM_freeN(tracking->camera.reconstructed);
+ if(tracking->reconstruction.cameras)
+ MEM_freeN(tracking->reconstruction.cameras);
if(tracking->stabilization.scaleibuf)
IMB_freeImBuf(tracking->stabilization.scaleibuf);
@@ -871,17 +871,13 @@
}
#if WITH_LIBMV
-static struct libmv_Tracks *create_libmv_tracks(MovieClip *clip)
+static struct libmv_Tracks *create_libmv_tracks(MovieTracking *tracking, int width, int height)
{
- int width, height;
int tracknr= 0;
MovieTrackingTrack *track;
struct libmv_Tracks *tracks= libmv_tracksNew();;
- /* XXX: could fail if footage uses images with different sizes */
- BKE_movieclip_acquire_size(clip, NULL, &width, &height);
-
- track= clip->tracking.tracks.first;
+ track= tracking->tracks.first;
while(track) {
int a= 0;
@@ -899,13 +895,12 @@
return tracks;
}
-static int retrive_libmv_reconstruct(MovieClip *clip, struct libmv_Reconstruction *reconstruction)
+static int retrive_libmv_reconstruct(MovieTracking *tracking, struct libmv_Reconstruction *libmv_reconstruction)
{
int tracknr= 0;
int sfra= INT_MAX, efra= INT_MIN, a, origin_set= 0;
- MovieTracking *tracking= &clip->tracking;
MovieTrackingTrack *track;
- MovieTrackingCamera *camera;
+ MovieTrackingReconstruction *reconstruction= &tracking->reconstruction;
MovieReconstructedCamera *reconstructed;
float origin[3]= {0.0f, 0.f, 0.0f};
int ok= 1;
@@ -914,7 +909,7 @@
while(track) {
double pos[3];
- if(libmv_reporojectionPointForTrack(reconstruction, tracknr, pos)) {
+ if(libmv_reporojectionPointForTrack(libmv_reconstruction, tracknr, pos)) {
track->bundle_pos[0]= pos[0];
track->bundle_pos[1]= pos[1];
track->bundle_pos[2]= pos[2];
@@ -936,19 +931,17 @@
tracknr++;
}
- camera= &tracking->camera;
+ if(reconstruction->cameras)
+ MEM_freeN(reconstruction->cameras);
- if(camera->reconstructed)
- MEM_freeN(camera->reconstructed);
-
- camera->reconnr= 0;
- camera->reconstructed= NULL;
+ reconstruction->camnr= 0;
+ reconstruction->cameras= NULL;
reconstructed= MEM_callocN((efra-sfra+1)*sizeof(MovieReconstructedCamera), "temp reconstructed camera");
for(a= sfra; a<=efra; a++) {
double matd[4][4];
- if(libmv_reporojectionCameraForImage(reconstruction, a, matd)) {
+ if(libmv_reporojectionCameraForImage(libmv_reconstruction, a, matd)) {
int i, j;
float mat[4][4];
@@ -964,18 +957,18 @@
if(origin_set)
sub_v3_v3(mat[3], origin);
- copy_m4_m4(reconstructed[camera->reconnr].mat, mat);
- reconstructed[camera->reconnr].framenr= a;
- camera->reconnr++;
+ copy_m4_m4(reconstructed[reconstruction->camnr].mat, mat);
+ reconstructed[reconstruction->camnr].framenr= a;
+ reconstruction->camnr++;
} else {
ok= 0;
printf("No camera for frame %d\n", a);
}
}
- if(camera->reconnr) {
- camera->reconstructed= MEM_callocN(camera->reconnr*sizeof(MovieReconstructedCamera), "reconstructed camera");
- memcpy(camera->reconstructed, reconstructed, camera->reconnr*sizeof(MovieReconstructedCamera));
+ if(reconstruction->camnr) {
+ reconstruction->cameras= MEM_callocN(reconstruction->camnr*sizeof(MovieReconstructedCamera), "reconstructed camera");
+ memcpy(reconstruction->cameras, reconstructed, reconstruction->camnr*sizeof(MovieReconstructedCamera));
}
if(origin_set) {
@@ -995,25 +988,28 @@
#endif
-float BKE_tracking_solve_reconstruction(MovieClip *clip)
+float BKE_tracking_solve_reconstruction(MovieTracking *tracking, int width, int height)
{
#if WITH_LIBMV
{
- MovieTrackingCamera *camera= &clip->tracking.camera;
- MovieTracking *tracking= &clip->tracking;
- struct libmv_Tracks *tracks= create_libmv_tracks(clip);
+ MovieTrackingCamera *camera= &tracking->camera;
+ struct libmv_Tracks *tracks= create_libmv_tracks(tracking, width, height);
struct libmv_Reconstruction *reconstruction = libmv_solveReconstruction(tracks,
tracking->settings.keyframe1, tracking->settings.keyframe2,
camera->focal, camera->principal[0], camera->principal[1],
camera->k1, camera->k2, camera->k3);
float error= libmv_reprojectionError(reconstruction);
- if(!retrive_libmv_reconstruct(clip, reconstruction))
+ tracking->reconstruction.error= error;
+
+ if(!retrive_libmv_reconstruct(tracking, reconstruction))
error= -1.f;
libmv_destroyReconstruction(reconstruction);
libmv_tracksDestroy(tracks);
+ tracking->reconstruction.flag|= TRACKING_RECONSTRUCTED;
+
return error;
}
#endif
@@ -1040,22 +1036,22 @@
MovieReconstructedCamera *BKE_tracking_get_reconstructed_camera(MovieTracking *tracking, int framenr)
{
- MovieTrackingCamera *camera= &tracking->camera;
+ MovieTrackingReconstruction *reconstruction= &tracking->reconstruction;
int a= 0, d= 1;
- if(!camera->reconnr)
+ if(!reconstruction->camnr)
return NULL;
- if(camera->last_camera<camera->reconnr)
- a= camera->last_camera;
+ if(reconstruction->last_camera<reconstruction->camnr)
+ a= reconstruction->last_camera;
- if(camera->reconstructed[a].framenr>=framenr)
+ if(reconstruction->cameras[a].framenr>=framenr)
d= -1;
- while(a>=0 && a<camera->reconnr) {
- if(camera->reconstructed[a].framenr==framenr) {
- camera->last_camera= a;
- return &camera->reconstructed[a];
+ while(a>=0 && a<reconstruction->camnr) {
+ if(reconstruction->cameras[a].framenr==framenr) {
+ reconstruction->last_camera= a;
+ return &reconstruction->cameras[a];
break;
}
Modified: branches/soc-2011-salad/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/soc-2011-salad/source/blender/blenloader/intern/readfile.c 2011-08-02 18:43:00 UTC (rev 38954)
+++ branches/soc-2011-salad/source/blender/blenloader/intern/readfile.c 2011-08-02 18:46:23 UTC (rev 38955)
@@ -5798,7 +5798,7 @@
if(fd->movieclipmap) clip->cache= newmclipadr(fd, clip->cache);
else clip->cache= NULL;
- tracking->camera.reconstructed= newdataadr(fd, tracking->camera.reconstructed);
+ tracking->reconstruction.cameras= newdataadr(fd, tracking->reconstruction.cameras);
link_list(fd, &tracking->tracks);
Modified: branches/soc-2011-salad/source/blender/blenloader/intern/writefile.c
===================================================================
--- branches/soc-2011-salad/source/blender/blenloader/intern/writefile.c 2011-08-02 18:43:00 UTC (rev 38954)
+++ branches/soc-2011-salad/source/blender/blenloader/intern/writefile.c 2011-08-02 18:46:23 UTC (rev 38955)
@@ -2504,8 +2504,8 @@
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list