diff options
Diffstat (limited to 'source/blender/blenkernel/intern/mball.c')
-rw-r--r-- | source/blender/blenkernel/intern/mball.c | 396 |
1 files changed, 198 insertions, 198 deletions
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c index fe2c10d7091..7f05aaed9b0 100644 --- a/source/blender/blenkernel/intern/mball.c +++ b/source/blender/blenkernel/intern/mball.c @@ -78,7 +78,7 @@ void unlink_mball(MetaBall *mb) int a; for(a=0; a<mb->totcol; a++) { - if(mb->mat[a]) mb->mat[a]->id.us--; + if (mb->mat[a]) mb->mat[a]->id.us--; mb->mat[a]= NULL; } } @@ -89,14 +89,14 @@ void free_mball(MetaBall *mb) { unlink_mball(mb); - if(mb->adt) { + if (mb->adt) { BKE_free_animdata((ID *)mb); mb->adt = NULL; } - if(mb->mat) MEM_freeN(mb->mat); - if(mb->bb) MEM_freeN(mb->bb); + if (mb->mat) MEM_freeN(mb->mat); + if (mb->bb) MEM_freeN(mb->bb); BLI_freelistN(&mb->elems); - if(mb->disp.first) freedisplist(&mb->disp); + if (mb->disp.first) freedisplist(&mb->disp); } MetaBall *add_mball(const char *name) @@ -138,7 +138,7 @@ MetaBall *copy_mball(MetaBall *mb) static void extern_local_mball(MetaBall *mb) { - if(mb->mat) { + if (mb->mat) { extern_local_matarar(mb->mat, mb->totcol); } } @@ -154,8 +154,8 @@ void make_local_mball(MetaBall *mb) * - mixed: make copy */ - if(mb->id.lib==NULL) return; - if(mb->id.us==1) { + if (mb->id.lib==NULL) return; + if (mb->id.us==1) { id_clear_lib_data(bmain, &mb->id); extern_local_mball(mb); @@ -163,17 +163,17 @@ void make_local_mball(MetaBall *mb) } for(ob= G.main->object.first; ob && ELEM(0, is_lib, is_local); ob= ob->id.next) { - if(ob->data == mb) { - if(ob->id.lib) is_lib= TRUE; + if (ob->data == mb) { + if (ob->id.lib) is_lib= TRUE; else is_local= TRUE; } } - if(is_local && is_lib == FALSE) { + if (is_local && is_lib == FALSE) { id_clear_lib_data(bmain, &mb->id); extern_local_mball(mb); } - else if(is_local && is_lib) { + else if (is_local && is_lib) { MetaBall *mb_new= copy_mball(mb); mb_new->id.us= 0; @@ -181,8 +181,8 @@ void make_local_mball(MetaBall *mb) BKE_id_lib_local_paths(bmain, mb->id.lib, &mb_new->id); for(ob= G.main->object.first; ob; ob= ob->id.next) { - if(ob->data == mb) { - if(ob->id.lib==NULL) { + if (ob->data == mb) { + if (ob->id.lib==NULL) { ob->data= mb_new; mb_new->id.us++; mb->id.us--; @@ -253,7 +253,7 @@ void tex_space_mball(Object *ob) float *data, min[3], max[3] /*, loc[3], size[3] */; int tot, doit=0; - if(ob->bb==NULL) ob->bb= MEM_callocN(sizeof(BoundBox), "mb boundbox"); + if (ob->bb==NULL) ob->bb= MEM_callocN(sizeof(BoundBox), "mb boundbox"); bb= ob->bb; /* Weird one, this. */ @@ -264,7 +264,7 @@ void tex_space_mball(Object *ob) dl= ob->disp.first; while(dl) { tot= dl->nr; - if(tot) doit= 1; + if (tot) doit= 1; data= dl->verts; while(tot--) { /* Also weird... but longer. From utildefines. */ @@ -274,7 +274,7 @@ void tex_space_mball(Object *ob) dl= dl->next; } - if(!doit) { + if (!doit) { min[0] = min[1] = min[2] = -1.0f; max[0] = max[1] = max[2] = 1.0f; } @@ -348,7 +348,7 @@ int is_basis_mball(Object *ob) /* just a quick test */ len= strlen(ob->id.name); - if( isdigit(ob->id.name[len-1]) ) return 0; + if ( isdigit(ob->id.name[len-1]) ) return 0; return 1; } @@ -361,7 +361,7 @@ int is_mball_basis_for(Object *ob1, Object *ob2) BLI_split_name_num(basis1name, &basis1nr, ob1->id.name+2, '.'); BLI_split_name_num(basis2name, &basis2nr, ob2->id.name+2, '.'); - if(!strcmp(basis1name, basis2name)) return is_basis_mball(ob1); + if (!strcmp(basis1name, basis2name)) return is_basis_mball(ob1); else return 0; } @@ -383,17 +383,17 @@ void copy_mball_properties(Scene *scene, Object *active_object) BLI_split_name_num(basisname, &basisnr, active_object->id.name+2, '.'); /* XXX recursion check, see scene.c, just too simple code this next_object() */ - if(F_ERROR==next_object(&sce_iter, 0, NULL, NULL)) + if (F_ERROR==next_object(&sce_iter, 0, NULL, NULL)) return; while(next_object(&sce_iter, 1, &base, &ob)) { if (ob->type==OB_MBALL) { - if(ob!=active_object){ + if (ob != active_object) { BLI_split_name_num(obname, &obnr, ob->id.name+2, '.'); /* Object ob has to be in same "group" ... it means, that it has to have * same base of its name */ - if(strcmp(obname, basisname)==0){ + if (strcmp(obname, basisname)==0) { MetaBall *mb= ob->data; /* Copy properties from selected/edited metaball */ @@ -429,18 +429,18 @@ Object *find_basis_mball(Scene *scene, Object *basis) totelem= 0; /* XXX recursion check, see scene.c, just too simple code this next_object() */ - if(F_ERROR==next_object(&sce_iter, 0, NULL, NULL)) + if (F_ERROR==next_object(&sce_iter, 0, NULL, NULL)) return NULL; while(next_object(&sce_iter, 1, &base, &ob)) { if (ob->type==OB_MBALL) { - if(ob==bob){ + if (ob==bob) { MetaBall *mb= ob->data; /* if bob object is in edit mode, then dynamic list of all MetaElems * is stored in editelems */ - if(mb->editelems) ml= mb->editelems->first; + if (mb->editelems) ml= mb->editelems->first; /* if bob object is in object mode */ else ml= mb->elems.first; } @@ -449,17 +449,17 @@ Object *find_basis_mball(Scene *scene, Object *basis) /* object ob has to be in same "group" ... it means, that it has to have * same base of its name */ - if(strcmp(obname, basisname)==0){ + if (strcmp(obname, basisname)==0) { MetaBall *mb= ob->data; /* if object is in edit mode, then dynamic list of all MetaElems * is stored in editelems */ - if(mb->editelems) ml= mb->editelems->first; + if (mb->editelems) ml= mb->editelems->first; /* if bob object is in object mode */ else ml= mb->elems.first; - if(obnr<basisnr){ - if(!(ob->flag & OB_FROMDUPLI)){ + if (obnr < basisnr) { + if (!(ob->flag & OB_FROMDUPLI)) { basis= ob; basisnr= obnr; } @@ -467,8 +467,8 @@ Object *find_basis_mball(Scene *scene, Object *basis) } } - while(ml){ - if(!(ml->flag & MB_HIDE)) totelem++; + while (ml) { + if (!(ml->flag & MB_HIDE)) totelem++; ml= ml->next; } } @@ -524,7 +524,7 @@ Object *find_basis_mball(Scene *scene, Object *basis) void calc_mballco(MetaElem *ml, float *vec) { - if(ml->mat) { + if (ml->mat) { mul_m4_v3((float ( * )[4])ml->mat, vec); } } @@ -542,64 +542,64 @@ float densfunc(MetaElem *ball, float x, float y, float z) dy= vec[1]; dz= vec[2]; - if(ball->type==MB_BALL) { + if (ball->type==MB_BALL) { } - else if(ball->type==MB_TUBEX) { - if( dx > ball->len) dx-= ball->len; - else if(dx< -ball->len) dx+= ball->len; + else if (ball->type==MB_TUBEX) { + if ( dx > ball->len) dx-= ball->len; + else if (dx< -ball->len) dx+= ball->len; else dx= 0.0; } - else if(ball->type==MB_TUBEY) { - if( dy > ball->len) dy-= ball->len; - else if(dy< -ball->len) dy+= ball->len; + else if (ball->type==MB_TUBEY) { + if ( dy > ball->len) dy-= ball->len; + else if (dy< -ball->len) dy+= ball->len; else dy= 0.0; } - else if(ball->type==MB_TUBEZ) { - if( dz > ball->len) dz-= ball->len; - else if(dz< -ball->len) dz+= ball->len; + else if (ball->type==MB_TUBEZ) { + if ( dz > ball->len) dz-= ball->len; + else if (dz< -ball->len) dz+= ball->len; else dz= 0.0; } - else if(ball->type==MB_TUBE) { - if( dx > ball->expx) dx-= ball->expx; - else if(dx< -ball->expx) dx+= ball->expx; + else if (ball->type==MB_TUBE) { + if ( dx > ball->expx) dx-= ball->expx; + else if (dx< -ball->expx) dx+= ball->expx; else dx= 0.0; } - else if(ball->type==MB_PLANE) { - if( dx > ball->expx) dx-= ball->expx; - else if(dx< -ball->expx) dx+= ball->expx; + else if (ball->type==MB_PLANE) { + if ( dx > ball->expx) dx-= ball->expx; + else if (dx< -ball->expx) dx+= ball->expx; else dx= 0.0; - if( dy > ball->expy) dy-= ball->expy; - else if(dy< -ball->expy) dy+= ball->expy; + if ( dy > ball->expy) dy-= ball->expy; + else if (dy< -ball->expy) dy+= ball->expy; else dy= 0.0; } - else if(ball->type==MB_ELIPSOID) { + else if (ball->type==MB_ELIPSOID) { dx *= 1/ball->expx; dy *= 1/ball->expy; dz *= 1/ball->expz; } - else if(ball->type==MB_CUBE) { - if( dx > ball->expx) dx-= ball->expx; - else if(dx< -ball->expx) dx+= ball->expx; + else if (ball->type==MB_CUBE) { + if ( dx > ball->expx) dx-= ball->expx; + else if (dx< -ball->expx) dx+= ball->expx; else dx= 0.0; - if( dy > ball->expy) dy-= ball->expy; - else if(dy< -ball->expy) dy+= ball->expy; + if ( dy > ball->expy) dy-= ball->expy; + else if (dy< -ball->expy) dy+= ball->expy; else dy= 0.0; - if( dz > ball->expz) dz-= ball->expz; - else if(dz< -ball->expz) dz+= ball->expz; + if ( dz > ball->expz) dz-= ball->expz; + else if (dz< -ball->expz) dz+= ball->expz; else dz= 0.0; } dist2= (dx*dx + dy*dy + dz*dz); - if(ball->flag & MB_NEGATIVE) { + if (ball->flag & MB_NEGATIVE) { dist2= 1.0f-(dist2/ball->rad2); - if(dist2 < 0.0f) return 0.5f; + if (dist2 < 0.0f) return 0.5f; return 0.5f-ball->s*dist2*dist2*dist2; } else { dist2= 1.0f-(dist2/ball->rad2); - if(dist2 < 0.0f) return -0.5f; + if (dist2 < 0.0f) return -0.5f; return ball->s*dist2*dist2*dist2 -0.5f; } @@ -607,32 +607,32 @@ float densfunc(MetaElem *ball, float x, float y, float z) octal_node* find_metaball_octal_node(octal_node *node, float x, float y, float z, short depth) { - if(!depth) return node; + if (!depth) return node; - if(z < node->z){ - if(y < node->y){ - if(x < node->x){ - if(node->nodes[0]) + if (z < node->z) { + if (y < node->y) { + if (x < node->x) { + if (node->nodes[0]) return find_metaball_octal_node(node->nodes[0],x,y,z,depth--); else return node; } else{ - if(node->nodes[1]) + if (node->nodes[1]) return find_metaball_octal_node(node->nodes[1],x,y,z,depth--); else return node; } } else{ - if(x < node->x){ - if(node->nodes[3]) + if (x < node->x) { + if (node->nodes[3]) return find_metaball_octal_node(node->nodes[3],x,y,z,depth--); else return node; } else{ - if(node->nodes[2]) + if (node->nodes[2]) return find_metaball_octal_node(node->nodes[2],x,y,z,depth--); else return node; @@ -640,29 +640,29 @@ octal_node* find_metaball_octal_node(octal_node *node, float x, float y, float z } } else{ - if(y < node->y){ - if(x < node->x){ - if(node->nodes[4]) + if (y < node->y) { + if (x < node->x) { + if (node->nodes[4]) return find_metaball_octal_node(node->nodes[4],x,y,z,depth--); else return node; } else{ - if(node->nodes[5]) + if (node->nodes[5]) return find_metaball_octal_node(node->nodes[5],x,y,z,depth--); else return node; } } else{ - if(x < node->x){ - if(node->nodes[7]) + if (x < node->x) { + if (node->nodes[7]) return find_metaball_octal_node(node->nodes[7],x,y,z,depth--); else return node; } else{ - if(node->nodes[6]) + if (node->nodes[6]) return find_metaball_octal_node(node->nodes[6],x,y,z,depth--); else return node; @@ -681,12 +681,12 @@ float metaball(float x, float y, float z) float dens=0; int a; - if(totelem > 1){ + if (totelem > 1) { node= find_metaball_octal_node(metaball_tree->first, x, y, z, metaball_tree->depth); - if(node){ + if (node) { ml_p= node->elems.first; - while(ml_p){ + while(ml_p) { dens+=densfunc(ml_p->ml, x, y, z); ml_p= ml_p->next; } @@ -718,11 +718,11 @@ void accum_mballfaces(int i1, int i2, int i3, int i4) int *newi, *cur; /* static int i=0; I would like to delete altogether, but I don't dare to, yet */ - if(totindex==curindex) { + if (totindex==curindex) { totindex+= 256; newi= MEM_mallocN(4*sizeof(int)*totindex, "vertindex"); - if(indices) { + if (indices) { memcpy(newi, indices, 4*sizeof(int)*(totindex-256)); MEM_freeN(indices); } @@ -736,7 +736,7 @@ void accum_mballfaces(int i1, int i2, int i3, int i4) cur[0]= i1; cur[1]= i2; cur[2]= i3; - if(i4==0) + if (i4==0) cur[3]= i3; else cur[3]= i4; @@ -757,10 +757,10 @@ void *new_pgn_element(int size) static ListBase lb= {NULL, NULL}; void *adr; - if(size>10000 || size==0) { + if (size>10000 || size==0) { printf("incorrect use of new_pgn_element\n"); } - else if(size== -1) { + else if (size== -1) { cur= lb.first; while(cur) { MEM_freeN(cur->data); @@ -773,8 +773,8 @@ void *new_pgn_element(int size) size= 4*( (size+3)/4 ); - if(cur) { - if(size+offs < blocksize) { + if (cur) { + if (size+offs < blocksize) { adr= (void *) (cur->data+offs); offs+= size; return adr; @@ -797,7 +797,7 @@ void freepolygonize(PROCESS *p) new_pgn_element(-1); - if(p->vertices.ptr) MEM_freeN(p->vertices.ptr); + if (p->vertices.ptr) MEM_freeN(p->vertices.ptr); } /**** Cubical Polygonization (optional) ****/ @@ -852,23 +852,23 @@ void docube(CUBE *cube, PROCESS *p, MetaBall *mb) indexar[count] = vertid(c1, c2, p, mb); count++; } - if(count>2) { + if (count>2) { switch(count) { case 3: accum_mballfaces(indexar[2], indexar[1], indexar[0], 0); break; case 4: - if(indexar[0]==0) accum_mballfaces(indexar[0], indexar[3], indexar[2], indexar[1]); + if (indexar[0]==0) accum_mballfaces(indexar[0], indexar[3], indexar[2], indexar[1]); else accum_mballfaces(indexar[3], indexar[2], indexar[1], indexar[0]); break; case 5: - if(indexar[0]==0) accum_mballfaces(indexar[0], indexar[3], indexar[2], indexar[1]); + if (indexar[0]==0) accum_mballfaces(indexar[0], indexar[3], indexar[2], indexar[1]); else accum_mballfaces(indexar[3], indexar[2], indexar[1], indexar[0]); accum_mballfaces(indexar[4], indexar[3], indexar[0], 0); break; case 6: - if(indexar[0]==0) { + if (indexar[0]==0) { accum_mballfaces(indexar[0], indexar[3], indexar[2], indexar[1]); accum_mballfaces(indexar[0], indexar[5], indexar[4], indexar[3]); } @@ -878,7 +878,7 @@ void docube(CUBE *cube, PROCESS *p, MetaBall *mb) } break; case 7: - if(indexar[0]==0) { + if (indexar[0]==0) { accum_mballfaces(indexar[0], indexar[3], indexar[2], indexar[1]); accum_mballfaces(indexar[0], indexar[5], indexar[4], indexar[3]); } @@ -915,7 +915,7 @@ void testface(int i, int j, int k, CUBE* old, int bit, int c1, int c2, int c3, i pos = corn1->value > 0.0f ? 1 : 0; /* test if no surface crossing */ - if( (corn2->value > 0) == pos && (corn3->value > 0) == pos && (corn4->value > 0) == pos) return; + if ( (corn2->value > 0) == pos && (corn3->value > 0) == pos && (corn4->value > 0) == pos) return; /* test if cube out of bounds */ /*if ( abs(i) > p->bounds || abs(j) > p->bounds || abs(k) > p->bounds) return;*/ /* test if already visited (always as last) */ @@ -936,14 +936,14 @@ void testface(int i, int j, int k, CUBE* old, int bit, int c1, int c2, int c3, i newc.corners[FLIP(c3, bit)] = corn3; newc.corners[FLIP(c4, bit)] = corn4; - if(newc.corners[0]==NULL) newc.corners[0] = setcorner(p, i, j, k); - if(newc.corners[1]==NULL) newc.corners[1] = setcorner(p, i, j, k+1); - if(newc.corners[2]==NULL) newc.corners[2] = setcorner(p, i, j+1, k); - if(newc.corners[3]==NULL) newc.corners[3] = setcorner(p, i, j+1, k+1); - if(newc.corners[4]==NULL) newc.corners[4] = setcorner(p, i+1, j, k); - if(newc.corners[5]==NULL) newc.corners[5] = setcorner(p, i+1, j, k+1); - if(newc.corners[6]==NULL) newc.corners[6] = setcorner(p, i+1, j+1, k); - if(newc.corners[7]==NULL) newc.corners[7] = setcorner(p, i+1, j+1, k+1); + if (newc.corners[0]==NULL) newc.corners[0] = setcorner(p, i, j, k); + if (newc.corners[1]==NULL) newc.corners[1] = setcorner(p, i, j, k+1); + if (newc.corners[2]==NULL) newc.corners[2] = setcorner(p, i, j+1, k); + if (newc.corners[3]==NULL) newc.corners[3] = setcorner(p, i, j+1, k+1); + if (newc.corners[4]==NULL) newc.corners[4] = setcorner(p, i+1, j, k); + if (newc.corners[5]==NULL) newc.corners[5] = setcorner(p, i+1, j, k+1); + if (newc.corners[6]==NULL) newc.corners[6] = setcorner(p, i+1, j+1, k); + if (newc.corners[7]==NULL) newc.corners[7] = setcorner(p, i+1, j+1, k+1); p->cubes->cube= newc; } @@ -1034,7 +1034,7 @@ void makecubetable (void) static int isdone= 0; int i, e, c, done[12], pos[8]; - if(isdone) return; + if (isdone) return; isdone= 1; for (i = 0; i < 256; i++) { @@ -1233,7 +1233,7 @@ void vnormal (MB_POINT *point, PROCESS *p, MB_POINT *v) v->z /= f; } - if(FALSE) { + if (FALSE) { MB_POINT temp; delta *= 2.0f; @@ -1323,20 +1323,20 @@ void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, /* Approximation by linear interpolation is faster then binary subdivision, * but it results sometimes (mb->thresh < 0.2) into the strange results */ - if((mb->thresh > 0.2f) && (f==1)){ - if((dy == 0.0f) && (dz == 0.0f)){ + if ((mb->thresh > 0.2f) && (f==1)) { + if ((dy == 0.0f) && (dz == 0.0f)) { p->x = neg.x - negative*dx/(positive-negative); p->y = neg.y; p->z = neg.z; return; } - if((dx == 0.0f) && (dz == 0.0f)){ + if ((dx == 0.0f) && (dz == 0.0f)) { p->x = neg.x; p->y = neg.y - negative*dy/(positive-negative); p->z = neg.z; return; } - if((dx == 0.0f) && (dy == 0.0f)){ + if ((dx == 0.0f) && (dy == 0.0f)) { p->x = neg.x; p->y = neg.y; p->z = neg.z - negative*dz/(positive-negative); @@ -1344,7 +1344,7 @@ void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, } } - if((dy == 0.0f) && (dz == 0.0f)){ + if ((dy == 0.0f) && (dz == 0.0f)) { p->y = neg.y; p->z = neg.z; while (1) { @@ -1354,7 +1354,7 @@ void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, } } - if((dx == 0.0f) && (dz == 0.0f)){ + if ((dx == 0.0f) && (dz == 0.0f)) { p->x = neg.x; p->z = neg.z; while (1) { @@ -1364,7 +1364,7 @@ void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, } } - if((dx == 0.0f) && (dy == 0.0f)){ + if ((dx == 0.0f) && (dy == 0.0f)) { p->x = neg.x; p->y = neg.y; while (1) { @@ -1382,7 +1382,7 @@ void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, if (i++ == RES) return; - if ((function(p->x, p->y, p->z)) > 0.0f){ + if ((function(p->x, p->y, p->z)) > 0.0f) { pos.x = p->x; pos.y = p->y; pos.z = p->z; @@ -1408,7 +1408,7 @@ void add_cube(PROCESS *mbproc, int i, int j, int k, int count) for(b=j-1; b<j+count; b++) for(c=k-1; c<k+count; c++) { /* test if cube has been found before */ - if( setcenter(mbproc->centers, a, b, c)==0 ) { + if ( setcenter(mbproc->centers, a, b, c)==0 ) { /* push cube on stack: */ ncube= (CUBES *) new_pgn_element(sizeof(CUBES)); ncube->next= mbproc->cubes; @@ -1443,7 +1443,7 @@ void find_first_points(PROCESS *mbproc, MetaBall *mb, int a) /* Skip, when Stiffness of MetaElement is too small ... MetaElement can't be * visible alone ... but still can influence others MetaElements :-) */ - if(f > 0.0f) { + if (f > 0.0f) { OUT.x = IN.x = in.x= 0.0; OUT.y = IN.y = in.y= 0.0; OUT.z = IN.z = in.z= 0.0; @@ -1451,7 +1451,7 @@ void find_first_points(PROCESS *mbproc, MetaBall *mb, int a) calc_mballco(ml, (float *)&in); in_v = mbproc->function(in.x, in.y, in.z); - for(i=0;i<3;i++){ + for(i=0;i<3;i++) { switch (ml->type) { case MB_BALL: OUT.x = out.x= IN.x + index[i]*ml->rad; @@ -1508,7 +1508,7 @@ void find_first_points(PROCESS *mbproc, MetaBall *mb, int a) nz = abs((out.z - in.z)/mbproc->size); MAXN = MAX3(nx,ny,nz); - if(MAXN!=0.0f) { + if (MAXN!=0.0f) { dx = (out.x - in.x)/MAXN; dy = (out.y - in.y)/MAXN; dz = (out.z - in.z)/MAXN; @@ -1521,7 +1521,7 @@ void find_first_points(PROCESS *mbproc, MetaBall *mb, int a) /* compute value of implicite function */ tmp_v = mbproc->function(workp.x, workp.y, workp.z); /* add cube to the stack, when value of implicite function crosses zero value */ - if((tmp_v<0.0f && workp_v>=0.0f)||(tmp_v>0.0f && workp_v<=0.0f)) { + if ((tmp_v<0.0f && workp_v>=0.0f)||(tmp_v>0.0f && workp_v<=0.0f)) { /* indexes of CUBE, which includes "first point" */ c_i= (int)floor(workp.x/mbproc->size); @@ -1608,14 +1608,14 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */ next_object(&sce_iter, 0, NULL, NULL); while(next_object(&sce_iter, 1, &base, &bob)) { - if(bob->type==OB_MBALL) { + if (bob->type==OB_MBALL) { zero_size= 0; ml= NULL; - if(bob==ob && (base->flag & OB_FROMDUPLI)==0) { + if (bob==ob && (base->flag & OB_FROMDUPLI)==0) { mb= ob->data; - if(mb->editelems) ml= mb->editelems->first; + if (mb->editelems) ml= mb->editelems->first; else ml= mb->elems.first; } else { @@ -1623,23 +1623,23 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */ int nr; BLI_split_name_num(name, &nr, bob->id.name+2, '.'); - if( strcmp(obname, name)==0 ) { + if ( strcmp(obname, name)==0 ) { mb= bob->data; - if(mb->editelems) ml= mb->editelems->first; + if (mb->editelems) ml= mb->editelems->first; else ml= mb->elems.first; } } /* when metaball object has zero scale, then MetaElem to this MetaBall * will not be put to mainb array */ - if(bob->size[0]==0.0f || bob->size[1]==0.0f || bob->size[2]==0.0f) { + if (bob->size[0]==0.0f || bob->size[1]==0.0f || bob->size[2]==0.0f) { zero_size= 1; } - else if(bob->parent) { + else if (bob->parent) { struct Object *pob=bob->parent; while(pob) { - if(pob->size[0]==0.0f || pob->size[1]==0.0f || pob->size[2]==0.0f) { + if (pob->size[0]==0.0f || pob->size[1]==0.0f || pob->size[2]==0.0f) { zero_size= 1; break; } @@ -1657,7 +1657,7 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */ } else { while(ml) { - if(!(ml->flag & MB_HIDE)) { + if (!(ml->flag & MB_HIDE)) { int i; float temp1[4][4], temp2[4][4], temp3[4][4]; float (*mat)[4] = NULL, (*imat)[4] = NULL; @@ -1668,7 +1668,7 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */ /* too big stiffness seems only ugly due to linear interpolation * no need to have possibility for too big stiffness */ - if(ml->s > 10.0f) ml->s = 10.0f; + if (ml->s > 10.0f) ml->s = 10.0f; /* Rotation of MetaElem is stored in quat */ quat_to_mat4( temp3,ml->quat); @@ -1741,15 +1741,15 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */ mul_m4_v3((float ( * )[4])mat, mainb[a]->bb->vec[i]); /* find max and min of transformed bb */ - for(i=0; i<8; i++){ + for(i=0; i<8; i++) { /* find maximums */ - if(mainb[a]->bb->vec[i][0] > max_x) max_x = mainb[a]->bb->vec[i][0]; - if(mainb[a]->bb->vec[i][1] > max_y) max_y = mainb[a]->bb->vec[i][1]; - if(mainb[a]->bb->vec[i][2] > max_z) max_z = mainb[a]->bb->vec[i][2]; + if (mainb[a]->bb->vec[i][0] > max_x) max_x = mainb[a]->bb->vec[i][0]; + if (mainb[a]->bb->vec[i][1] > max_y) max_y = mainb[a]->bb->vec[i][1]; + if (mainb[a]->bb->vec[i][2] > max_z) max_z = mainb[a]->bb->vec[i][2]; /* find minimums */ - if(mainb[a]->bb->vec[i][0] < min_x) min_x = mainb[a]->bb->vec[i][0]; - if(mainb[a]->bb->vec[i][1] < min_y) min_y = mainb[a]->bb->vec[i][1]; - if(mainb[a]->bb->vec[i][2] < min_z) min_z = mainb[a]->bb->vec[i][2]; + if (mainb[a]->bb->vec[i][0] < min_x) min_x = mainb[a]->bb->vec[i][0]; + if (mainb[a]->bb->vec[i][1] < min_y) min_y = mainb[a]->bb->vec[i][1]; + if (mainb[a]->bb->vec[i][2] < min_z) min_z = mainb[a]->bb->vec[i][2]; } /* create "new" bb, only point 0 and 6, which are @@ -1782,11 +1782,11 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */ calc_mballco(mainb[a], vec); size= fabsf( vec[0] ); - if( size > totsize ) totsize= size; + if ( size > totsize ) totsize= size; size= fabsf( vec[1] ); - if( size > totsize ) totsize= size; + if ( size > totsize ) totsize= size; size= fabsf( vec[2] ); - if( size > totsize ) totsize= size; + if ( size > totsize ) totsize= size; vec[0]= mainb[a]->x - mainb[a]->rad; vec[1]= mainb[a]->y - mainb[a]->rad; @@ -1795,11 +1795,11 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */ calc_mballco(mainb[a], vec); size= fabsf( vec[0] ); - if( size > totsize ) totsize= size; + if ( size > totsize ) totsize= size; size= fabsf( vec[1] ); - if( size > totsize ) totsize= size; + if ( size > totsize ) totsize= size; size= fabsf( vec[2] ); - if( size > totsize ) totsize= size; + if ( size > totsize ) totsize= size; } for(a=0; a<totelem; a++) { @@ -1821,7 +1821,7 @@ void fill_metaball_octal_node(octal_node *node, MetaElem *ml, short i) BLI_addtail(&(node->nodes[i]->elems), ml_p); node->count++; - if(ml->flag & MB_NEGATIVE) { + if (ml->flag & MB_NEGATIVE) { node->nodes[i]->neg++; } else{ @@ -1852,7 +1852,7 @@ void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, int a,i; /* create new nodes */ - for(a=0;a<8;a++){ + for(a=0;a<8;a++) { node->nodes[a]= MEM_mallocN(sizeof(octal_node),"octal_node"); for(i=0;i<8;i++) node->nodes[a]->nodes[i]= NULL; @@ -1933,48 +1933,48 @@ void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, ml_p= node->elems.first; /* setting up references of MetaElems for new nodes */ - while(ml_p){ + while(ml_p) { ml= ml_p->ml; - if(ml->bb->vec[0][2] < z){ - if(ml->bb->vec[0][1] < y){ + if (ml->bb->vec[0][2] < z) { + if (ml->bb->vec[0][1] < y) { /* vec[0][0] lies in first octant */ - if(ml->bb->vec[0][0] < x){ + if (ml->bb->vec[0][0] < x) { /* ml belongs to the (0)1st node */ fill_metaball_octal_node(node, ml, 0); /* ml belongs to the (3)4th node */ - if(ml->bb->vec[6][1] >= y){ + if (ml->bb->vec[6][1] >= y) { fill_metaball_octal_node(node, ml, 3); /* ml belongs to the (7)8th node */ - if(ml->bb->vec[6][2] >= z){ + if (ml->bb->vec[6][2] >= z) { fill_metaball_octal_node(node, ml, 7); } } /* ml belongs to the (1)2nd node */ - if(ml->bb->vec[6][0] >= x){ + if (ml->bb->vec[6][0] >= x) { fill_metaball_octal_node(node, ml, 1); /* ml belongs to the (5)6th node */ - if(ml->bb->vec[6][2] >= z){ + if (ml->bb->vec[6][2] >= z) { fill_metaball_octal_node(node, ml, 5); } } /* ml belongs to the (2)3th node */ - if((ml->bb->vec[6][0] >= x) && (ml->bb->vec[6][1] >= y)){ + if ((ml->bb->vec[6][0] >= x) && (ml->bb->vec[6][1] >= y)) { fill_metaball_octal_node(node, ml, 2); /* ml belong to the (6)7th node */ - if(ml->bb->vec[6][2] >= z){ + if (ml->bb->vec[6][2] >= z) { fill_metaball_octal_node(node, ml, 6); } } /* ml belongs to the (4)5th node too */ - if(ml->bb->vec[6][2] >= z){ + if (ml->bb->vec[6][2] >= z) { fill_metaball_octal_node(node, ml, 4); } @@ -1987,40 +1987,40 @@ void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, fill_metaball_octal_node(node, ml, 1); /* ml belongs to the (2)3th node */ - if(ml->bb->vec[6][1] >= y){ + if (ml->bb->vec[6][1] >= y) { fill_metaball_octal_node(node, ml, 2); /* ml belongs to the (6)7th node */ - if(ml->bb->vec[6][2] >= z){ + if (ml->bb->vec[6][2] >= z) { fill_metaball_octal_node(node, ml, 6); } } /* ml belongs to the (5)6th node */ - if(ml->bb->vec[6][2] >= z){ + if (ml->bb->vec[6][2] >= z) { fill_metaball_octal_node(node, ml, 5); } } } else{ /* vec[0][0] is in the (3)4th octant */ - if(ml->bb->vec[0][0] < x){ + if (ml->bb->vec[0][0] < x) { /* ml belongs to the (3)4nd node */ fill_metaball_octal_node(node, ml, 3); /* ml belongs to the (7)8th node */ - if(ml->bb->vec[6][2] >= z){ + if (ml->bb->vec[6][2] >= z) { fill_metaball_octal_node(node, ml, 7); } /* ml belongs to the (2)3th node */ - if(ml->bb->vec[6][0] >= x){ + if (ml->bb->vec[6][0] >= x) { fill_metaball_octal_node(node, ml, 2); /* ml belongs to the (6)7th node */ - if(ml->bb->vec[6][2] >= z){ + if (ml->bb->vec[6][2] >= z) { fill_metaball_octal_node(node, ml, 6); } } @@ -2029,32 +2029,32 @@ void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, } /* vec[0][0] is in the (2)3th octant */ - if((ml->bb->vec[0][0] >= x) && (ml->bb->vec[0][1] >= y)){ + if ((ml->bb->vec[0][0] >= x) && (ml->bb->vec[0][1] >= y)) { /* ml belongs to the (2)3th node */ fill_metaball_octal_node(node, ml, 2); /* ml belongs to the (6)7th node */ - if(ml->bb->vec[6][2] >= z){ + if (ml->bb->vec[6][2] >= z) { fill_metaball_octal_node(node, ml, 6); } } } else{ - if(ml->bb->vec[0][1] < y){ + if (ml->bb->vec[0][1] < y) { /* vec[0][0] lies in (4)5th octant */ - if(ml->bb->vec[0][0] < x){ + if (ml->bb->vec[0][0] < x) { /* ml belongs to the (4)5th node */ fill_metaball_octal_node(node, ml, 4); - if(ml->bb->vec[6][0] >= x){ + if (ml->bb->vec[6][0] >= x) { fill_metaball_octal_node(node, ml, 5); } - if(ml->bb->vec[6][1] >= y){ + if (ml->bb->vec[6][1] >= y) { fill_metaball_octal_node(node, ml, 7); } - if((ml->bb->vec[6][0] >= x) && (ml->bb->vec[6][1] >= y)){ + if ((ml->bb->vec[6][0] >= x) && (ml->bb->vec[6][1] >= y)) { fill_metaball_octal_node(node, ml, 6); } } @@ -2062,17 +2062,17 @@ void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, else{ fill_metaball_octal_node(node, ml, 5); - if(ml->bb->vec[6][1] >= y){ + if (ml->bb->vec[6][1] >= y) { fill_metaball_octal_node(node, ml, 6); } } } else{ /* vec[0][0] lies in (7)8th octant */ - if(ml->bb->vec[0][0] < x){ + if (ml->bb->vec[0][0] < x) { fill_metaball_octal_node(node, ml, 7); - if(ml->bb->vec[6][0] >= x){ + if (ml->bb->vec[6][0] >= x) { fill_metaball_octal_node(node, ml, 6); } } @@ -2080,7 +2080,7 @@ void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, } /* vec[0][0] lies in (6)7th octant */ - if((ml->bb->vec[0][0] >= x) && (ml->bb->vec[0][1] >= y)){ + if ((ml->bb->vec[0][0] >= x) && (ml->bb->vec[0][1] >= y)) { fill_metaball_octal_node(node, ml, 6); } } @@ -2092,9 +2092,9 @@ void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, depth--; - if(depth>0){ - for(a=0;a<8;a++){ - if(node->nodes[a]->count > 0) /* if node is not empty, then it is subdivided */ + if (depth>0) { + for(a=0;a<8;a++) { + if (node->nodes[a]->count > 0) /* if node is not empty, then it is subdivided */ subdivide_metaball_octal_node(node->nodes[a], size_x, size_y, size_z, depth); } } @@ -2104,8 +2104,8 @@ void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, void free_metaball_octal_node(octal_node *node) { int a; - for(a=0;a<8;a++){ - if(node->nodes[a]!=NULL) free_metaball_octal_node(node->nodes[a]); + for(a=0;a<8;a++) { + if (node->nodes[a]!=NULL) free_metaball_octal_node(node->nodes[a]); } BLI_freelistN(&node->elems); MEM_freeN(node); @@ -2139,19 +2139,19 @@ void init_metaball_octal_tree(int depth) /* size of octal tree scene */ for(a=0;a<totelem;a++) { - if(mainb[a]->bb->vec[0][0] < node->x_min) node->x_min= mainb[a]->bb->vec[0][0]; - if(mainb[a]->bb->vec[0][1] < node->y_min) node->y_min= mainb[a]->bb->vec[0][1]; - if(mainb[a]->bb->vec[0][2] < node->z_min) node->z_min= mainb[a]->bb->vec[0][2]; + if (mainb[a]->bb->vec[0][0] < node->x_min) node->x_min= mainb[a]->bb->vec[0][0]; + if (mainb[a]->bb->vec[0][1] < node->y_min) node->y_min= mainb[a]->bb->vec[0][1]; + if (mainb[a]->bb->vec[0][2] < node->z_min) node->z_min= mainb[a]->bb->vec[0][2]; - if(mainb[a]->bb->vec[6][0] > node->x_max) node->x_max= mainb[a]->bb->vec[6][0]; - if(mainb[a]->bb->vec[6][1] > node->y_max) node->y_max= mainb[a]->bb->vec[6][1]; - if(mainb[a]->bb->vec[6][2] > node->z_max) node->z_max= mainb[a]->bb->vec[6][2]; + if (mainb[a]->bb->vec[6][0] > node->x_max) node->x_max= mainb[a]->bb->vec[6][0]; + if (mainb[a]->bb->vec[6][1] > node->y_max) node->y_max= mainb[a]->bb->vec[6][1]; + if (mainb[a]->bb->vec[6][2] > node->z_max) node->z_max= mainb[a]->bb->vec[6][2]; ml_p= MEM_mallocN(sizeof(ml_pointer), "ml_pointer"); ml_p->ml= mainb[a]; BLI_addtail(&node->elems, ml_p); - if(mainb[a]->flag & MB_NEGATIVE) { + if (mainb[a]->flag & MB_NEGATIVE) { /* number of negative MetaElem in scene */ metaball_tree->neg++; } @@ -2180,9 +2180,9 @@ void metaball_polygonize(Scene *scene, Object *ob, ListBase *dispbase) mb= ob->data; - if(totelem==0) return; - if(!(G.rendering) && (mb->flag==MB_UPDATE_NEVER)) return; - if(G.moving && mb->flag==MB_UPDATE_FAST) return; + if (totelem==0) return; + if (!(G.rendering) && (mb->flag==MB_UPDATE_NEVER)) return; + if (G.moving && mb->flag==MB_UPDATE_FAST) return; curindex= totindex= 0; indices= NULL; @@ -2194,23 +2194,23 @@ void metaball_polygonize(Scene *scene, Object *ob, ListBase *dispbase) /* initialize all mainb (MetaElems) */ totsize= init_meta(scene, ob); - if(metaball_tree){ + if (metaball_tree) { free_metaball_octal_node(metaball_tree->first); MEM_freeN(metaball_tree); metaball_tree= NULL; } /* if scene includes more then one MetaElem, then octal tree optimalisation is used */ - if((totelem > 1) && (totelem <= 64)) init_metaball_octal_tree(1); - if((totelem > 64) && (totelem <= 128)) init_metaball_octal_tree(2); - if((totelem > 128) && (totelem <= 512)) init_metaball_octal_tree(3); - if((totelem > 512) && (totelem <= 1024)) init_metaball_octal_tree(4); - if(totelem > 1024) init_metaball_octal_tree(5); + if ((totelem > 1) && (totelem <= 64)) init_metaball_octal_tree(1); + if ((totelem > 64) && (totelem <= 128)) init_metaball_octal_tree(2); + if ((totelem > 128) && (totelem <= 512)) init_metaball_octal_tree(3); + if ((totelem > 512) && (totelem <= 1024)) init_metaball_octal_tree(4); + if (totelem > 1024) init_metaball_octal_tree(5); /* don't polygonize metaballs with too high resolution (base mball to small) * note: Eps was 0.0001f but this was giving problems for blood animation for durian, using 0.00001f */ - if(metaball_tree) { - if( ob->size[0] <= 0.00001f * (metaball_tree->first->x_max - metaball_tree->first->x_min) || + if (metaball_tree) { + if ( ob->size[0] <= 0.00001f * (metaball_tree->first->x_max - metaball_tree->first->x_min) || ob->size[1] <= 0.00001f * (metaball_tree->first->y_max - metaball_tree->first->y_min) || ob->size[2] <= 0.00001f * (metaball_tree->first->z_max - metaball_tree->first->z_min)) { @@ -2228,10 +2228,10 @@ void metaball_polygonize(Scene *scene, Object *ob, ListBase *dispbase) } /* width is size per polygonize cube */ - if(G.rendering) width= mb->rendersize; + if (G.rendering) width= mb->rendersize; else { width= mb->wiresize; - if(G.moving && mb->flag==MB_UPDATE_HALFRES) width*= 2; + if (G.moving && mb->flag==MB_UPDATE_HALFRES) width*= 2; } /* nr_cubes is just for safety, minimum is totsize */ nr_cubes= (int)(0.5f+totsize/width); @@ -2248,13 +2248,13 @@ void metaball_polygonize(Scene *scene, Object *ob, ListBase *dispbase) MEM_freeN(mainb); /* free octal tree */ - if(totelem > 1){ + if (totelem > 1) { free_metaball_octal_node(metaball_tree->first); MEM_freeN(metaball_tree); metaball_tree= NULL; } - if(curindex) { + if (curindex) { dl= MEM_callocN(sizeof(DispList), "mbaldisp"); BLI_addtail(dispbase, dl); dl->type= DL_INDEX4; |