[Bf-blender-cvs] [a9c3fb7] gooseberry: Hjalti's Motion Path commit series no 1.

Antony Riakiotakis noreply at git.blender.org
Thu Feb 19 18:09:51 CET 2015


Commit: a9c3fb718fe7447bfcb653aacd6916ed8d2c3cbe
Author: Antony Riakiotakis
Date:   Thu Feb 19 18:09:45 2015 +0100
Branches: gooseberry
https://developer.blender.org/rBa9c3fb718fe7447bfcb653aacd6916ed8d2c3cbe

Hjalti's Motion Path commit series no 1.

Introduce global flag to draw motion paths. Always. Even in render only
mode :)

===================================================================

M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/editors/space_view3d/drawarmature.c
M	source/blender/editors/space_view3d/drawobject.c
M	source/blender/editors/space_view3d/view3d_intern.h
M	source/blender/makesdna/DNA_view3d_types.h
M	source/blender/makesrna/intern/rna_space.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index a7164c0..ca6b33a 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -2860,6 +2860,7 @@ class VIEW3D_PT_view3d_display(Panel):
         col = layout.column()
         col.prop(view, "show_only_render")
         col.prop(view, "show_world")
+        col.prop(view, "show_motionpaths")
 
         col = layout.column()
         display_all = not view.show_only_render
diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c
index 5975c31..a02848d 100644
--- a/source/blender/editors/space_view3d/drawarmature.c
+++ b/source/blender/editors/space_view3d/drawarmature.c
@@ -2307,7 +2307,7 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
 /* draw bone paths
  *	- in view space 
  */
-static void draw_pose_paths(Scene *scene, View3D *v3d, ARegion *ar, Object *ob)
+void draw_pose_paths(Scene *scene, View3D *v3d, ARegion *ar, Object *ob)
 {
 	bAnimVizSettings *avs = &ob->pose->avs;
 	bArmature *arm = ob->data;
@@ -2608,7 +2608,7 @@ bool draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
 
 	if (v3d->flag2 & V3D_RENDER_OVERRIDE)
 		return true;
-	
+
 	if (dt > OB_WIRE && !ELEM(arm->drawtype, ARM_LINE, ARM_WIRE)) {
 		/* we use color for solid lighting */
 		const float white[4] = {1.0f, 1.0f, 1.0f, 1.0f};
@@ -2660,7 +2660,6 @@ bool draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
 							if (ob == modifiers_isDeformedByArmature(OBACT))
 								arm->flag |= ARM_POSEMODE;
 						}
-						draw_pose_paths(scene, v3d, ar, ob);
 					}
 				}
 			}
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 1518ddd..a77a114 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -7758,6 +7758,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
 	bool zbufoff = false, is_paint = false, empty_object = false;
 	const bool is_obact = (ob == OBACT);
 	const bool render_override = (v3d->flag2 & V3D_RENDER_OVERRIDE) != 0;
+	const bool show_motionpaths = (v3d->flag3 & V3D_SHOW_MOTIONPATHS) != 0;
 	const bool is_picking = (G.f & G_PICKSEL) != 0;
 	const bool has_particles = (ob->particlesystem.first != NULL);
 	const bool is_wire_color = V3D_IS_WIRECOLOR_OBJECT(scene, v3d, ob);
@@ -7826,7 +7827,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
 	view3d_cached_text_draw_begin();
 	
 	/* draw motion paths (in view space) */
-	if (ob->mpath && !render_override) {
+	if (ob->mpath && (!render_override || show_motionpaths)) {
 		bAnimVizSettings *avs = &ob->avs;
 		
 		/* setup drawing environment for paths */
@@ -8047,6 +8048,10 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
 							GPU_disable_material();
 					}
 				}
+				/* draw motion paths if forced */
+				if (show_motionpaths && !(dflag & DRAW_SCENESET)) {
+					draw_pose_paths(scene, v3d, ar, ob);
+				}
 				break;
 			default:
 				if (!render_override) {
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index 8ab4ec1..a9b6d96 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -162,6 +162,7 @@ enum {
 bool draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
                    const short dt, const short dflag, const unsigned char ob_wire_col[4],
                    const bool is_outline);
+void draw_pose_paths(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, struct Object *ob);
 
 /* drawmesh.c */
 void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d,
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index 8d23657..d3c11a5 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -297,6 +297,7 @@ typedef struct View3D {
 
 /* View3d->flag3 (short) */
 #define V3D_SHOW_WORLD			(1 << 0)
+#define V3D_SHOW_MOTIONPATHS	(1 << 1)
 
 /* View3D->around */
 #define V3D_CENTER		 0
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 9d60cbd..4805e8a 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -2330,6 +2330,11 @@ static void rna_def_space_view3d(BlenderRNA *brna)
 	RNA_def_property_ui_text(prop, "World Background", "Display world colors in the background");
 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
 
+	prop = RNA_def_property(srna, "show_motionpaths", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag3", V3D_SHOW_MOTIONPATHS);
+	RNA_def_property_ui_text(prop, "Motion Paths", "Display animation motion paths -even in only render mode");
+	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
+
 	prop = RNA_def_property(srna, "use_occlude_geometry", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_ZBUF_SELECT);
 	RNA_def_property_ui_text(prop, "Occlude Geometry", "Limit selection to visible (clipped with depth buffer)");




More information about the Bf-blender-cvs mailing list