31b2faa76673c2571370160dc4efdcf3d6445c3a
[blender.git] / source / blender / draw / modes / shaders / edit_normals_vert.glsl
1
2 uniform mat4 ModelMatrix;
3 uniform mat4 ModelMatrixInverse;
4
5 uniform float normalSize;
6
7 in vec3 pos;
8
9 #ifdef LOOP_NORMALS
10 in vec3 lnor;
11 #  define nor lnor
12
13 #elif defined(FACE_NORMALS)
14 in vec4 norAndFlag;
15 #  define nor norAndFlag.xyz
16 #else
17
18 in vec3 vnor;
19 #  define nor vnor
20 #endif
21
22 flat out vec4 v1;
23 flat out vec4 v2;
24
25 void main()
26 {
27   vec3 n = normalize(normal_object_to_world(nor));
28
29   vec3 world_pos = point_object_to_world(pos);
30
31   v1 = point_world_to_ndc(world_pos);
32   v2 = point_world_to_ndc(world_pos + n * normalSize);
33
34 #ifdef USE_WORLD_CLIP_PLANES
35   world_clip_planes_calc_clip_distance(world_pos);
36 #endif
37 }