Page MenuHome

T37878-viewport-constant-normal-length-2.patch

T37878-viewport-constant-normal-length-2.patch

diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 69f9256..b6ff16c 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -2158,13 +2158,24 @@ static void draw_dm_vert_normals__mapFunc(void *userData, int index, const float
}
}
-static void draw_dm_vert_normals(BMEditMesh *em, Scene *scene, Object *ob, DerivedMesh *dm)
+static void draw_dm_vert_normals(BMEditMesh *em, Scene *scene, RegionView3D *rv3d, Object *ob, DerivedMesh *dm)
{
drawDMNormal_userData data;
- data.bm = em->bm;
+ data.normal_screensize_flag = scene->toolsettings->normal_screensize_flag;
data.normalsize = scene->toolsettings->normalsize;
+ if (data.normal_screensize_flag)
+ {
+ if (!rv3d->is_persp)
+ {
+ data.normalsize = calcDrawDMNormalScreenSize(scene->toolsettings->normalsize, rv3d);
+ }
+ }
+
+ data.bm = em->bm;
+
+
calcDrawDMNormalScale(ob, &data);
glBegin(GL_LINES);
@@ -3345,7 +3356,7 @@ static void draw_em_fancy(Scene *scene, ARegion *ar, View3D *v3d,
}
if (me->drawflag & ME_DRAW_VNORMALS) {
UI_ThemeColor(TH_VNORMAL);
- draw_dm_vert_normals(em, scene, ob, cageDM);
+ draw_dm_vert_normals(em, scene, rv3d, ob, cageDM);
}
if ((me->drawflag & (ME_DRAWEXTRA_EDGELEN |

File Metadata

Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
80/53/5a13e161f6b77eb7dab215257dfe

Event Timeline