Commit: 70e768b095335a4a9e2c04c8723bae58b2011573
Author: Lukas Tönne
Date: Fri May 8 15:25:53 2015 +0200
Branches: alembic
https://developer.blender.org/rB70e768b095335a4a9e2c04c8723bae58b2011573
Hide regular strands when the duplicator object is in hair edit mode.
===================================================================
M source/blender/editors/space_view3d/view3d_draw.c
===================================================================
diff --git a/source/blender/editors/space_view3d/view3d_draw.c
b/source/blender/editors/space_view3d/view3d_draw.c
index 3499aed..fe5f5d5 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -2046,18 +2046,24 @@ int dupli_ob_sort(void *arg1, void *arg2)
}
#endif
-static void draw_dupli_object(Scene *scene, ARegion *ar, View3D *v3d, Base
*base, DupliObject *UNUSED(dob), DupliObjectData *dob_data, short dflag)
+static void draw_dupli_object(Scene *scene, ARegion *ar, View3D *v3d,
+ Base *base, DupliObject *UNUSED(dob),
DupliObjectData *dob_data,
+ short dflag, bool draw_dupli_strands)
{
draw_object(scene, ar, v3d, base, dflag);
if (dob_data) {
- DupliObjectDataStrands *link;
- for (link = dob_data->strands.first; link; link = link->next) {
- struct Strands *strands = link->strands;
- struct StrandsChildren *children =
link->strands_children;
+ /* draw strands only when not editing */
+ if (draw_dupli_strands) {
+ DupliObjectDataStrands *link;
- draw_strands(scene, v3d, ar, base->object, strands,
children, dflag);
+ for (link = dob_data->strands.first; link; link =
link->next) {
+ struct Strands *strands = link->strands;
+ struct StrandsChildren *children =
link->strands_children;
+
+ draw_strands(scene, v3d, ar, base->object,
strands, children, dflag);
+ }
}
}
}
@@ -2082,6 +2088,7 @@ static void draw_dupli_objects_color(
GLuint displist = 0;
unsigned char color_rgb[3];
const short dflag_dupli = dflag | DRAW_CONSTCOLOR;
+ const bool draw_dupli_strands = !(base->object->mode &
OB_MODE_HAIR_EDIT);
short transflag;
bool use_displist = false; /* -1 is initialize */
char dt;
@@ -2211,7 +2218,7 @@ static void draw_dupli_objects_color(
displist = glGenLists(1);
glNewList(displist, GL_COMPILE);
- draw_dupli_object(scene, ar, v3d,
&tbase, dob, dob_data, dflag_dupli);
+ draw_dupli_object(scene, ar, v3d,
&tbase, dob, dob_data, dflag_dupli, draw_dupli_strands);
glEndList();
use_displist = true;
@@ -2227,7 +2234,7 @@ static void draw_dupli_objects_color(
}
else {
copy_m4_m4(dob->ob->obmat, dob->mat);
- draw_dupli_object(scene, ar, v3d, &tbase, dob,
dob_data, dflag_dupli);
+ draw_dupli_object(scene, ar, v3d, &tbase, dob,
dob_data, dflag_dupli, draw_dupli_strands);
}
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs