diff --git a/release/scripts/startup/bl_operators/clip.py b/release/scripts/startup/bl_operators/clip.py index 55592621112..203a1673c0b 100644 --- a/release/scripts/startup/bl_operators/clip.py +++ b/release/scripts/startup/bl_operators/clip.py @@ -63,16 +63,16 @@ class CLIP_OT_track_to_empty(Operator): constraint.clip = sc.clip constraint.track = track.name - constraint.reference = 'TRACK' + constraint.use_3d_position = False return {'FINISHED'} -class CLIP_OT_bundles_to_mesh(Operator): - """Create vertex cloud using coordinates of bundles""" +class CLIP_OT_tracks_to_mesh(Operator): + """Create vertex cloud using coordinates of tracks""" - bl_idname = "clip.bundles_to_mesh" - bl_label = "Bundles to Mesh" + bl_idname = "clip.tracks_to_mesh" + bl_label = "Tracks to Mesh" bl_options = {'UNDO', 'REGISTER'} @classmethod @@ -91,7 +91,7 @@ class CLIP_OT_bundles_to_mesh(Operator): new_verts = [] - mesh = bpy.data.meshes.new(name="Bundles") + mesh = bpy.data.meshes.new(name="Tracks") for track in clip.tracking.tracks: if track.has_bundle: new_verts.append(track.bundle) @@ -100,7 +100,7 @@ class CLIP_OT_bundles_to_mesh(Operator): mesh.vertices.add(len(new_verts)) mesh.vertices.foreach_set("co", unpack_list(new_verts)) - ob = bpy.data.objects.new(name="Bundles", object_data=mesh) + ob = bpy.data.objects.new(name="Tracks", object_data=mesh) bpy.context.scene.objects.link(ob) @@ -252,7 +252,7 @@ class CLIP_OT_constraint_to_fcurve(Operator): if not con: return - if con.type == 'FOLLOW_TRACK' and con.reference == 'BUNDLE': + if con.type == 'FOLLOW_TRACK' and con.use_3d_position: mat = ob.matrix_world.copy() ob.constraints.remove(con) ob.matrix_world = mat diff --git a/release/scripts/startup/bl_ui/properties_object_constraint.py b/release/scripts/startup/bl_ui/properties_object_constraint.py index 508818b62dc..8cdb07461bb 100644 --- a/release/scripts/startup/bl_ui/properties_object_constraint.py +++ b/release/scripts/startup/bl_ui/properties_object_constraint.py @@ -754,14 +754,15 @@ class ConstraintButtonsPanel(): col.prop(con, "rotation_range", text="Pivot When") def FOLLOW_TRACK(self, context, layout, con): - layout.prop(con, "use_active_clip") + row = layout.row() + row.prop(con, "use_active_clip") + row.prop(con, "use_3d_position") if not con.use_active_clip: layout.prop(con, "clip") layout.prop(con, "track") - layout.row().prop(con, "reference", expand=True) layout.operator("clip.constraint_to_fcurve") diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index d14d3450942..968c583f1fe 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -205,7 +205,7 @@ class CLIP_PT_tools_geometry(Panel): def draw(self, context): layout = self.layout - layout.operator("clip.bundles_to_mesh") + layout.operator("clip.tracks_to_mesh") layout.operator("clip.track_to_empty") @@ -227,7 +227,6 @@ class CLIP_PT_tools_orientation(Panel): settings = sc.clip.tracking.settings col = layout.column(align=True) - col.label(text="Scene Orientation:") col.operator("clip.set_floor") col.operator("clip.set_origin") @@ -371,7 +370,7 @@ class CLIP_PT_tracking_camera(Panel): col.prop(clip.tracking.camera, "pixel_aspect") col = layout.column() - col.label(text="Principal Point") + col.label(text="Optical Center:") row = col.row() row.prop(clip.tracking.camera, "principal", text="") col.operator("clip.set_center_principal", text="Center") @@ -769,7 +768,7 @@ class CLIP_MT_reconstruction(Menu): layout.separator() layout.operator("clip.track_to_empty") - layout.operator("clip.bundles_to_mesh") + layout.operator("clip.tracks_to_mesh") class CLIP_MT_track_visibility(Menu): diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 32ac4284267..97e40bfff30 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -2165,16 +2165,6 @@ class VIEW3D_PT_view3d_display(Panel): layout.separator() - layout.prop(view, "show_reconstruction") - if view.show_reconstruction: - layout.label(text="Bundle type:") - layout.prop(view, "bundle_draw_type", text="") - layout.prop(view, "bundle_draw_size") - layout.prop(view, "show_bundle_name") - layout.prop(view, "show_camera_path") - - layout.separator() - region = view.region_quadview layout.operator("screen.region_quadview", text="Toggle Quad View") @@ -2190,6 +2180,37 @@ class VIEW3D_PT_view3d_display(Panel): row.prop(region, "use_box_clip") +class VIEW3D_PT_view3d_motion_tracking(Panel): + bl_space_type = 'VIEW_3D' + bl_region_type = 'UI' + bl_label = "Motion Tracking" + bl_options = {'DEFAULT_CLOSED'} + + @classmethod + def poll(cls, context): + view = context.space_data + return (view) + + def draw_header(self, context): + layout = self.layout + view = context.space_data + + layout.prop(view, "show_reconstruction", text="") + + def draw(self, context): + layout = self.layout + + view = context.space_data + + col = layout.column() + col.active = view.show_reconstruction + col.prop(view, "show_tracks_name", text="Show Names") + col.prop(view, "show_camera_path") + col.label(text="Tracks:") + col.prop(view, "tracks_draw_type", text="") + col.prop(view, "tracks_draw_size", text="Size") + + class VIEW3D_PT_view3d_meshdisplay(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index f904d6e66df..adc3f17f187 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -3939,7 +3939,6 @@ static void followtrack_new_data (void *cdata) data->clip= NULL; data->flag|= FOLLOWTRACK_ACTIVECLIP; - data->reference= FOLLOWTRACK_TRACK; } static void followtrack_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata) @@ -3967,7 +3966,7 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase if(!track) return; - if(data->reference==FOLLOWTRACK_BUNDLE) { + if(data->flag&FOLLOWTRACK_USE_3D_POSITION) { if(track->flag&TRACK_HAS_BUNDLE) { float pos[3], mat[4][4], obmat[4][4]; diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h index 3620131b8df..c85ef72d337 100644 --- a/source/blender/makesdna/DNA_constraint_types.h +++ b/source/blender/makesdna/DNA_constraint_types.h @@ -410,7 +410,7 @@ typedef struct bShrinkwrapConstraint { typedef struct bFollowTrackConstraint { struct MovieClip *clip; char track[24]; - int flag, reference; + int flag, pad; } bFollowTrackConstraint; /* Camera Solver constraints */ @@ -751,14 +751,9 @@ typedef enum ePivotConstraint_Flag { PIVOTCON_FLAG_ROTACT_NEG = (1<<1) } ePivotConstraint_Flag; -/* FollowTrack Constraint -> flag */ -typedef enum eFollowTrack_Reference { - FOLLOWTRACK_TRACK = (1<<0), - FOLLOWTRACK_BUNDLE = (1<<1) -} FollowTrack_Reference; - typedef enum eFollowTrack_Flags { - FOLLOWTRACK_ACTIVECLIP = (1<<0) + FOLLOWTRACK_ACTIVECLIP = (1<<0), + FOLLOWTRACK_USE_3D_POSITION = (1<<1) } eFollowTrack_Flags; /* CameraSolver Constraint -> flag */ diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index e1e4f3929b2..0cd36eb3755 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -43,6 +43,9 @@ #include "WM_types.h" EnumPropertyItem constraint_type_items[] ={ + {0, "", 0, "Motion Tracking", ""}, + {CONSTRAINT_TYPE_CAMERASOLVER, "CAMERA_SOLVER", ICON_CONSTRAINT_DATA, "Camera Solver", ""}, + {CONSTRAINT_TYPE_FOLLOWTRACK, "FOLLOW_TRACK", ICON_CONSTRAINT_DATA, "Follow Track", ""}, {0, "", 0, "Transform", ""}, {CONSTRAINT_TYPE_LOCLIKE, "COPY_LOCATION", ICON_CONSTRAINT_DATA, "Copy Location", ""}, {CONSTRAINT_TYPE_ROTLIKE, "COPY_ROTATION", ICON_CONSTRAINT_DATA, "Copy Rotation", ""}, @@ -64,11 +67,9 @@ EnumPropertyItem constraint_type_items[] ={ {CONSTRAINT_TYPE_TRACKTO, "TRACK_TO", ICON_CONSTRAINT_DATA, "Track To", "Legacy tracking constraint prone to twisting artifacts"}, {0, "", 0, "Relationship", ""}, {CONSTRAINT_TYPE_ACTION, "ACTION", ICON_CONSTRAINT_DATA, "Action", ""}, - {CONSTRAINT_TYPE_CAMERASOLVER, "CAMERA_SOLVER", ICON_CONSTRAINT_DATA, "Camera Solver", ""}, {CONSTRAINT_TYPE_CHILDOF, "CHILD_OF", ICON_CONSTRAINT_DATA, "Child Of", ""}, {CONSTRAINT_TYPE_MINMAX, "FLOOR", ICON_CONSTRAINT_DATA, "Floor", ""}, {CONSTRAINT_TYPE_FOLLOWPATH, "FOLLOW_PATH", ICON_CONSTRAINT_DATA, "Follow Path", ""}, - {CONSTRAINT_TYPE_FOLLOWTRACK, "FOLLOW_TRACK", ICON_CONSTRAINT_DATA, "Follow Track", ""}, {CONSTRAINT_TYPE_PIVOT, "PIVOT", ICON_CONSTRAINT_DATA, "Pivot", ""}, {CONSTRAINT_TYPE_RIGIDBODYJOINT, "RIGID_BODY_JOINT", ICON_CONSTRAINT_DATA, "Rigid Body Joint", ""}, {CONSTRAINT_TYPE_PYTHON, "SCRIPT", ICON_CONSTRAINT_DATA, "Script", ""}, @@ -2037,11 +2038,6 @@ static void rna_def_constraint_follow_track(BlenderRNA *brna) StructRNA *srna; PropertyRNA *prop; - static EnumPropertyItem reference_items[] = { - {FOLLOWTRACK_TRACK, "TRACK", 0, "Track", "Use 2D track position as reference"}, - {FOLLOWTRACK_BUNDLE, "BUNDLE", 0, "Bundle", "Use 3D reconstructed bundle position as reference"}, - {0, NULL, 0, NULL, NULL}}; - srna= RNA_def_struct(brna, "FollowTrackConstraint", "Constraint"); RNA_def_struct_ui_text(srna, "Follow Track Constraint", "Locks motion to the target motion track"); RNA_def_struct_sdna_from(srna, "bFollowTrackConstraint", "data"); @@ -2059,18 +2055,17 @@ static void rna_def_constraint_follow_track(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Track", "Movie tracking track to follow"); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update"); - /* reference */ - prop= RNA_def_property(srna, "reference", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "reference"); - RNA_def_property_enum_items(prop, reference_items); - RNA_def_property_ui_text(prop, "Reference", "Reference source to follow"); - RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); - /* use default clip */ prop= RNA_def_property(srna, "use_active_clip", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", FOLLOWTRACK_ACTIVECLIP); RNA_def_property_ui_text(prop, "Active Clip", "Use active clip defined in scene"); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + + /* use 3d position */ + prop= RNA_def_property(srna, "use_3d_position", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", FOLLOWTRACK_USE_3D_POSITION); + RNA_def_property_ui_text(prop, "3D Position", "Use 3D position of track to parent to"); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); } static void rna_def_constraint_camera_solver(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 31f3d59e643..d2505fc9775 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1579,16 +1579,16 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Show Reconstruction", "Display reconstruction data from active movie clip"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); - prop= RNA_def_property(srna, "bundle_draw_size", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "tracks_draw_size", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.0, FLT_MAX); RNA_def_property_float_sdna(prop, NULL, "bundle_size"); - RNA_def_property_ui_text(prop, "Bundle Size", "Display size of bundles from reconstructed data"); + RNA_def_property_ui_text(prop, "Tracks Size", "Display size of tracks from reconstructed data"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); - prop= RNA_def_property(srna, "bundle_draw_type", PROP_ENUM, PROP_NONE); + prop= RNA_def_property(srna, "tracks_draw_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "bundle_drawtype"); RNA_def_property_enum_items(prop, bundle_drawtype_items); - RNA_def_property_ui_text(prop, "Bundle Display Type", "Viewport display style for bundles"); + RNA_def_property_ui_text(prop, "Tracks Display Type", "Viewport display style for tracks"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); prop= RNA_def_property(srna, "show_camera_path", PROP_BOOLEAN, PROP_NONE); @@ -1596,9 +1596,9 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Show Camera Path", "Show reconstructed path of camera"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); - prop= RNA_def_property(srna, "show_bundle_name", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "show_tracks_name", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SHOW_BUNDLENAME); - RNA_def_property_ui_text(prop, "Show Bundle Name", "Show names for bundle objects"); + RNA_def_property_ui_text(prop, "Show Tracks Name", "Show names for tracks objects"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); /* region */ diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c index 3e783d06dc4..4de39811d0b 100644 --- a/source/blender/makesrna/intern/rna_tracking.c +++ b/source/blender/makesrna/intern/rna_tracking.c @@ -233,12 +233,12 @@ static void rna_def_trackingSettings(BlenderRNA *brna) {0, "NONE", 0, "Nothing", "Do not refine camera intrinsics"}, {REFINE_FOCAL_LENGTH, "FOCAL_LENGTH", 0, "Focal Length", "Refine focal length"}, {REFINE_FOCAL_LENGTH| - REFINE_PRINCIPAL_POINT, "FOCAL_LENGTH_PRINCIPAL_POINT", 0, "Focal Length, Principal Point", "Refine focal length and principal point"}, + REFINE_PRINCIPAL_POINT, "FOCAL_LENGTH_PRINCIPAL_POINT", 0, "Focal Length, Optical Center", "Refine focal length and optical center"}, {REFINE_FOCAL_LENGTH| REFINE_PRINCIPAL_POINT| REFINE_RADIAL_DISTORTION_K1| REFINE_RADIAL_DISTORTION_K2, - "FOCAL_LENGTH_PRINCIPAL_POINT_RADIAL_K1_K2", 0, "Focal Length, Principal Point, K1, K2", "Refine focal length, principal point and radial distortion K1 and K2"}, + "FOCAL_LENGTH_PRINCIPAL_POINT_RADIAL_K1_K2", 0, "Focal Length, Optical Center, K1, K2", "Refine focal length, optical center and radial distortion K1 and K2"}, {REFINE_FOCAL_LENGTH| REFINE_RADIAL_DISTORTION_K1| REFINE_RADIAL_DISTORTION_K2, "FOCAL_LENGTH_RADIAL_K1_K2", 0, "Focal length, K1. K2", "Refine focal length and radial distortion K1 and K2"},