diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index 771231c6bde..623ac8dc131 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -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="") diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index 5d20445b53f..e7f99990dc5 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -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;