[Bf-blender-cvs] [6175507] temp-mball-refactor: correct ifdef'd accumulation normal ifdef
Campbell Barton
noreply at git.blender.org
Wed Mar 25 12:49:18 CET 2015
Commit: 61755072665a76712a5dce98dfd00b53affe2c5a
Author: Campbell Barton
Date: Sat Feb 28 03:36:54 2015 +1100
Branches: temp-mball-refactor
https://developer.blender.org/rB61755072665a76712a5dce98dfd00b53affe2c5a
correct ifdef'd accumulation normal ifdef
===================================================================
M source/blender/blenkernel/intern/mball_tessellate.c
===================================================================
diff --git a/source/blender/blenkernel/intern/mball_tessellate.c b/source/blender/blenkernel/intern/mball_tessellate.c
index 62b3b29..3edb6aa 100644
--- a/source/blender/blenkernel/intern/mball_tessellate.c
+++ b/source/blender/blenkernel/intern/mball_tessellate.c
@@ -55,6 +55,9 @@
#include "BLI_strict_flags.h"
+/* experimental (faster) normal calculation */
+// #define USE_ACCUM_NORMAL
+
/* Data types */
typedef struct corner { /* corner of a cube */
@@ -391,7 +394,7 @@ static void make_face(PROCESS *process, int i1, int i2, int i3, int i4)
{
int *cur;
-#ifdef MB_ACCUM_NORMAL
+#ifdef USE_ACCUM_NORMAL
float n[3];
#endif
@@ -415,18 +418,18 @@ static void make_face(PROCESS *process, int i1, int i2, int i3, int i4)
cur[3] = i4;
}
-#ifdef MB_ACCUM_NORMAL
+#ifdef USE_ACCUM_NORMAL
if (i4 == 0) {
- normal_tri_v3(n, &process->co[i1 * 3], &process->co[i2 * 3], &process->co[i3 * 3]);
+ normal_tri_v3(n, process->co[i1], process->co[i2], process->co[i3]);
accumulate_vertex_normals(
- &process->no[i1 * 3], &process->no[i2 * 3], &process->no[i3 * 3], NULL, n,
- &process->co[i1 * 3], &process->co[i2 * 3], &process->co[i3 * 3], NULL);
+ process->no[i1], process->no[i2], process->no[i3], NULL, n,
+ process->co[i1], process->co[i2], process->co[i3], NULL);
}
else {
- normal_quad_v3(n, &process->co[i1 * 3], &process->co[i2 * 3], &process->co[i3 * 3], &process->co[i4 * 3]);
+ normal_quad_v3(n, process->co[i1], process->co[i2], process->co[i3], process->co[i4]);
accumulate_vertex_normals(
- &process->no[i1 * 3], &process->no[i2 * 3], &process->no[i3 * 3], &process->no[i4 * 3], n,
- &process->co[i1 * 3], &process->co[i2 * 3], &process->co[i3 * 3], &process->co[i4 * 3]);
+ process->no[i1], process->no[i2], process->no[i3], process->no[i4], n,
+ process->co[i1], process->co[i2], process->co[i3], process->co[i4]);
}
#endif
@@ -839,6 +842,7 @@ static void addtovertices(PROCESS *process, const float v[3], const float no[3])
process->curvertex++;
}
+#ifndef USE_ACCUM_NORMAL
/**
* Computes normal from density field at given point.
*
@@ -874,6 +878,7 @@ static void vnormal(PROCESS *process, const float point[3], float r_no[3])
}
#endif
}
+#endif /* USE_ACCUM_NORMAL */
/**
* \return the id of vertex between two corners.
@@ -889,8 +894,8 @@ static int vertid(PROCESS *process, const CORNER *c1, const CORNER *c2)
converge(process, c1, c2, v); /* position */
-#ifdef MB_ACCUM_NORMAL
- no[0] = no[1] = no[2] = 0.0f;
+#ifdef USE_ACCUM_NORMAL
+ zero_v3(no);
#else
vnormal(process, v, no);
#endif
More information about the Bf-blender-cvs
mailing list