Commit: 0df6175f829da1319e3d38a6fe53a5eba17d54cc
Author: Campbell Barton
Date:   Sat Feb 28 02:42:03 2015 +1100
Branches: temp-mball-refactor
https://developer.blender.org/rB0df6175f829da1319e3d38a6fe53a5eba17d54cc

cleanup: use realloc & store co/no as float(*)[3]

===================================================================

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 55b6ee9..c6416ab 100644
--- a/source/blender/blenkernel/intern/mball_tessellate.c
+++ b/source/blender/blenkernel/intern/mball_tessellate.c
@@ -127,7 +127,7 @@ typedef struct process {        /* parameters, storage */
        unsigned int totindex;          /* size of memory allocated for indices 
*/
        unsigned int curindex;          /* number of currently added indices */
 
-       float *co, *no;                         /* surface vertices - positions 
and normals */
+       float (*co)[3], (*no)[3];   /* surface vertices - positions and normals 
*/
        unsigned int totvertex;         /* memory size */
        unsigned int curvertex;         /* currently added vertices */
 
@@ -826,33 +826,16 @@ static int getedge(EDGELIST *table[],
 /**
  * Adds a vertex, expands memory if needed.
  */
-static void addtovertices(PROCESS *process, float v[3], float no[3])
+static void addtovertices(PROCESS *process, const float v[3], const float 
no[3])
 {
-       float *newco, *newno;
-
        if (process->curvertex == process->totvertex) {
                process->totvertex += 4096;
-               newco = MEM_callocN(process->totvertex * sizeof(float) * 3, 
"addtovertices");
-               newno = MEM_callocN(process->totvertex * sizeof(float) * 3, 
"addtovertices");
-
-               if (process->co) {
-                       memcpy(newco, process->co, process->curvertex * 
sizeof(float) * 3);
-                       memcpy(newno, process->no, process->curvertex * 
sizeof(float) * 3);
-                       MEM_freeN(process->co);
-                       MEM_freeN(process->no);
-               }
-
-               process->co = newco;
-               process->no = newno;
+               process->co = MEM_reallocN(process->co, process->totvertex * 
sizeof(float[3]));
+               process->no = MEM_reallocN(process->no, process->totvertex * 
sizeof(float[3]));
        }
 
-       process->co[3 * process->curvertex] = v[0];
-       process->co[3 * process->curvertex + 1] = v[1];
-       process->co[3 * process->curvertex + 2] = v[2];
-
-       process->no[3 * process->curvertex] = no[0];
-       process->no[3 * process->curvertex + 1] = no[1];
-       process->no[3 * process->curvertex + 2] = no[2];
+       copy_v3_v3(process->co[process->curvertex], v);
+       copy_v3_v3(process->no[process->curvertex], no);
 
        process->curvertex++;
 }
@@ -1316,11 +1299,11 @@ void BKE_mball_polygonize(EvaluationContext *eval_ctx, 
Scene *scene, Object *ob,
                                dl->index = process.indices;
 
                                for (a = 0; a < process.curvertex; a++) {
-                                       normalize_v3(&process.no[a * 3]);
+                                       normalize_v3(process.no[a]);
                                }
 
-                               dl->verts = process.co;
-                               dl->nors = process.no;
+                               dl->verts = (float *)process.co;
+                               dl->nors = (float *)process.no;
                        }
                }
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to