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)");

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to