diff --git a/src/surface.c b/src/surface.c index c87daa5..3e4aaa3 100644 --- a/src/surface.c +++ b/src/surface.c @@ -165,17 +165,10 @@ static void __calculate_normal( u2 = malloc(n * sizeof(float)); u3 = malloc(n * sizeof(float)); - switch (n) + /* + Calculate a normal vector of a plain using Gram-Schmidt process + */ { - case 3: - glm_vec3_sub(p2, p1, v1); - glm_vec3_sub(p3, p1, v2); - - glm_vec3_cross(v1, v2, normal); - glm_vec3_normalize(normal); - return; - - default: for (i = 0; i < n; ++i) { v1[i] = p2[i] - p1[i]; v2[i] = p3[i] - p1[i]; @@ -267,4 +260,4 @@ float *generate_normals_surface(float *d, unsigned char m) free(norm_vec); return n; -} \ No newline at end of file +}