[Bf-blender-cvs] [70e768b] alembic: Hide regular strands when the duplicator object is in hair edit mode.
Lukas Tönne
noreply at git.blender.org
Fri May 8 17:55:05 CEST 2015
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);
}
}
More information about the Bf-blender-cvs
mailing list