Object solver: minor tweaks

- Rename solving button to Object Motion if active tracking object isn't a camera
- Ignore refine flags when solving object
This commit is contained in:
Sergey Sharybin 2011-12-05 19:31:21 +00:00
parent 9355cc5c39
commit cbe9713b50
2 changed files with 16 additions and 4 deletions

@ -203,10 +203,18 @@ class CLIP_PT_tools_solve(Panel):
def draw(self, context):
layout = self.layout
clip = context.space_data.clip
settings = clip.tracking.settings
tracking = clip.tracking
settings = tracking.settings
tracking_object = tracking.objects.active
col = layout.column(align=True)
col.operator("clip.solve_camera", text="Camera Motion")
if tracking_object.is_camera:
solve_text = "Camera Motion"
else:
solve_text = "Object Motion"
col.operator("clip.solve_camera", text=solve_text)
col.operator("clip.clear_solution")
col = layout.column(align=True)
@ -214,6 +222,7 @@ class CLIP_PT_tools_solve(Panel):
col.prop(settings, "keyframe_b")
col = layout.column(align=True)
col.active = tracking_object.is_camera
col.label(text="Refine:")
col.prop(settings, "refine_intrinsics", text="")

@ -1604,11 +1604,14 @@ static int retrieve_libmv_reconstruct(MovieReconstructContext *context, MovieTra
return retrieve_libmv_reconstruct_tracks(context, tracking);
}
static int get_refine_intrinsics_flags(MovieTracking *tracking)
static int get_refine_intrinsics_flags(MovieTracking *tracking, MovieTrackingObject *object)
{
int refine= tracking->settings.refine_camera_intrinsics;
int flags= 0;
if((object->flag&TRACKING_OBJECT_CAMERA)==0)
return 0;
if(refine&REFINE_FOCAL_LENGTH)
flags|= LIBMV_REFINE_FOCAL_LENGTH;
@ -1714,7 +1717,7 @@ MovieReconstructContext* BKE_tracking_reconstruction_context_new(MovieTracking *
context->tracks= create_libmv_tracks(tracksbase, width, height*aspy);
context->keyframe1= keyframe1;
context->keyframe2= keyframe2;
context->refine_flags= get_refine_intrinsics_flags(tracking);
context->refine_flags= get_refine_intrinsics_flags(tracking, object);
#else
(void) width;
(void) height;