diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-03-24 10:18:31 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-03-24 10:18:31 +0400 |
commit | 69e6894b15271884623ea6f56ead06db83acbe99 (patch) | |
tree | b68200606afaca06cf7552f6b12fc20ebd30d487 /source/blender/blenkernel/intern/particle_system.c | |
parent | 7b99ae0ad3017e373be2a344e30d190b70ca66b4 (diff) |
style cleanup: follow style guide for formatting of if/for/while loops, and else if's
Diffstat (limited to 'source/blender/blenkernel/intern/particle_system.c')
-rw-r--r-- | source/blender/blenkernel/intern/particle_system.c | 1006 |
1 files changed, 505 insertions, 501 deletions
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 978971a04a4..4a1f0a425cb 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -113,10 +113,10 @@ static int particles_are_dynamic(ParticleSystem *psys) { - if(psys->pointcache->flag & PTCACHE_BAKED) + if (psys->pointcache->flag & PTCACHE_BAKED) return 0; - if(psys->part->type == PART_HAIR) + if (psys->part->type == PART_HAIR) return psys->flag & PSYS_HAIR_DYNAMICS; else return ELEM3(psys->part->phystype, PART_PHYS_NEWTON, PART_PHYS_BOIDS, PART_PHYS_FLUID); @@ -126,7 +126,7 @@ static int psys_get_current_display_percentage(ParticleSystem *psys) { ParticleSettings *part=psys->part; - if((psys->renderdata && !particles_are_dynamic(psys)) /* non-dynamic particles can be rendered fully */ + if ((psys->renderdata && !particles_are_dynamic(psys)) /* non-dynamic particles can be rendered fully */ || (part->child_nbr && part->childtype) /* display percentage applies to children */ || (psys->pointcache->flag & PTCACHE_BAKING)) /* baking is always done with full amount */ return 100; @@ -136,9 +136,9 @@ static int psys_get_current_display_percentage(ParticleSystem *psys) static int tot_particles(ParticleSystem *psys, PTCacheID *pid) { - if(pid && psys->pointcache->flag & PTCACHE_EXTERNAL) + if (pid && psys->pointcache->flag & PTCACHE_EXTERNAL) return pid->cache->totpoint; - else if(psys->part->distr == PART_DISTR_GRID && psys->part->from != PART_FROM_VERT) + else if (psys->part->distr == PART_DISTR_GRID && psys->part->from != PART_FROM_VERT) return psys->part->grid_res * psys->part->grid_res * psys->part->grid_res - psys->totunexist; else return psys->part->totpart - psys->totunexist; @@ -148,10 +148,10 @@ void psys_reset(ParticleSystem *psys, int mode) { PARTICLE_P; - if(ELEM(mode, PSYS_RESET_ALL, PSYS_RESET_DEPSGRAPH)) { - if(mode == PSYS_RESET_ALL || !(psys->flag & PSYS_EDITED)) { + if (ELEM(mode, PSYS_RESET_ALL, PSYS_RESET_DEPSGRAPH)) { + if (mode == PSYS_RESET_ALL || !(psys->flag & PSYS_EDITED)) { /* don't free if not absolutely necessary */ - if(psys->totpart != tot_particles(psys, NULL)) { + if (psys->totpart != tot_particles(psys, NULL)) { psys_free_particles(psys); psys->totpart= 0; } @@ -159,21 +159,21 @@ void psys_reset(ParticleSystem *psys, int mode) psys->totkeyed= 0; psys->flag &= ~(PSYS_HAIR_DONE|PSYS_KEYED); - if(psys->edit && psys->free_edit) { + if (psys->edit && psys->free_edit) { psys->free_edit(psys->edit); psys->edit = NULL; psys->free_edit = NULL; } } } - else if(mode == PSYS_RESET_CACHE_MISS) { + else if (mode == PSYS_RESET_CACHE_MISS) { /* set all particles to be skipped */ LOOP_PARTICLES pa->flag |= PARS_NO_DISP; } /* reset children */ - if(psys->child) { + if (psys->child) { MEM_freeN(psys->child); psys->child= NULL; } @@ -186,7 +186,7 @@ void psys_reset(ParticleSystem *psys, int mode) /* reset point cache */ BKE_ptcache_invalidate(psys->pointcache); - if(psys->fluid_springs) { + if (psys->fluid_springs) { MEM_freeN(psys->fluid_springs); psys->fluid_springs = NULL; } @@ -203,8 +203,8 @@ static void realloc_particles(ParticleSimulationData *sim, int new_totpart) PARTICLE_P; int totpart, totsaved = 0; - if(new_totpart<0) { - if(part->distr==PART_DISTR_GRID && part->from != PART_FROM_VERT) { + if (new_totpart<0) { + if (part->distr==PART_DISTR_GRID && part->from != PART_FROM_VERT) { totpart= part->grid_res; totpart*=totpart*totpart; } @@ -214,55 +214,55 @@ static void realloc_particles(ParticleSimulationData *sim, int new_totpart) else totpart=new_totpart; - if(totpart != psys->totpart) { - if(psys->edit && psys->free_edit) { + if (totpart != psys->totpart) { + if (psys->edit && psys->free_edit) { psys->free_edit(psys->edit); psys->edit = NULL; psys->free_edit = NULL; } - if(totpart) { + if (totpart) { newpars= MEM_callocN(totpart*sizeof(ParticleData), "particles"); - if(newpars == NULL) + if (newpars == NULL) return; - if(psys->part->phystype == PART_PHYS_BOIDS) { + if (psys->part->phystype == PART_PHYS_BOIDS) { newboids= MEM_callocN(totpart*sizeof(BoidParticle), "boid particles"); - if(newboids == NULL) { + if (newboids == NULL) { /* allocation error! */ - if(newpars) + if (newpars) MEM_freeN(newpars); return; } } } - if(psys->particles) { + if (psys->particles) { totsaved=MIN2(psys->totpart,totpart); /*save old pars*/ - if(totsaved) { + if (totsaved) { memcpy(newpars,psys->particles,totsaved*sizeof(ParticleData)); - if(psys->particles->boid) + if (psys->particles->boid) memcpy(newboids, psys->particles->boid, totsaved*sizeof(BoidParticle)); } - if(psys->particles->keys) + if (psys->particles->keys) MEM_freeN(psys->particles->keys); - if(psys->particles->boid) + if (psys->particles->boid) MEM_freeN(psys->particles->boid); - for(p=0, pa=newpars; p<totsaved; p++, pa++) { - if(pa->keys) { + for (p=0, pa=newpars; p<totsaved; p++, pa++) { + if (pa->keys) { pa->keys= NULL; pa->totkey= 0; } } - for(p=totsaved, pa=psys->particles+totsaved; p<psys->totpart; p++, pa++) - if(pa->hair) MEM_freeN(pa->hair); + for (p=totsaved, pa=psys->particles+totsaved; p<psys->totpart; p++, pa++) + if (pa->hair) MEM_freeN(pa->hair); MEM_freeN(psys->particles); psys_free_pdd(psys); @@ -271,13 +271,13 @@ static void realloc_particles(ParticleSimulationData *sim, int new_totpart) psys->particles=newpars; psys->totpart=totpart; - if(newboids) { + if (newboids) { LOOP_PARTICLES pa->boid = newboids++; } } - if(psys->child) { + if (psys->child) { MEM_freeN(psys->child); psys->child=NULL; psys->totchild=0; @@ -288,10 +288,10 @@ static int get_psys_child_number(struct Scene *scene, ParticleSystem *psys) { int nbr; - if(!psys->part->childtype) + if (!psys->part->childtype) return 0; - if(psys->renderdata) + if (psys->renderdata) nbr= psys->part->ren_child_nbr; else nbr= psys->part->child_nbr; @@ -306,9 +306,9 @@ static int get_psys_tot_child(struct Scene *scene, ParticleSystem *psys) static void alloc_child_particles(ParticleSystem *psys, int tot) { - if(psys->child) { + if (psys->child) { /* only re-allocate if we have to */ - if(psys->part->childtype && psys->totchild == tot) { + if (psys->part->childtype && psys->totchild == tot) { memset(psys->child, 0, tot*sizeof(ChildParticle)); return; } @@ -318,9 +318,9 @@ static void alloc_child_particles(ParticleSystem *psys, int tot) psys->totchild=0; } - if(psys->part->childtype) { + if (psys->part->childtype) { psys->totchild= tot; - if(psys->totchild) + if (psys->totchild) psys->child= MEM_callocN(psys->totchild*sizeof(ChildParticle), "child_particles"); } } @@ -341,12 +341,12 @@ void psys_calc_dmcache(Object *ob, DerivedMesh *dm, ParticleSystem *psys) PARTICLE_P; /* CACHE LOCATIONS */ - if(!dm->deformedOnly) { + if (!dm->deformedOnly) { /* Will use later to speed up subsurf/derivedmesh */ LinkNode *node, *nodedmelem, **nodearray; int totdmelem, totelem, i, *origindex; - if(psys->part->from == PART_FROM_VERT) { + if (psys->part->from == PART_FROM_VERT) { totdmelem= dm->getNumVerts(dm); totelem= me->totvert; origindex= dm->getVertDataArray(dm, CD_ORIGINDEX); @@ -360,11 +360,11 @@ void psys_calc_dmcache(Object *ob, DerivedMesh *dm, ParticleSystem *psys) nodedmelem= MEM_callocN(sizeof(LinkNode)*totdmelem, "psys node elems"); nodearray= MEM_callocN(sizeof(LinkNode *)*totelem, "psys node array"); - for(i=0, node=nodedmelem; i<totdmelem; i++, origindex++, node++) { + for (i=0, node=nodedmelem; i<totdmelem; i++, origindex++, node++) { node->link= SET_INT_IN_POINTER(i); - if(*origindex != -1) { - if(nodearray[*origindex]) { + if (*origindex != -1) { + if (nodearray[*origindex]) { /* prepend */ node->next = nodearray[*origindex]; nodearray[*origindex]= node; @@ -376,13 +376,13 @@ void psys_calc_dmcache(Object *ob, DerivedMesh *dm, ParticleSystem *psys) /* cache the verts/faces! */ LOOP_PARTICLES { - if(pa->num < 0) { + if (pa->num < 0) { pa->num_dmcache = -1; continue; } - if(psys->part->from == PART_FROM_VERT) { - if(nodearray[pa->num]) + if (psys->part->from == PART_FROM_VERT) { + if (nodearray[pa->num]) pa->num_dmcache= GET_INT_FROM_POINTER(nodearray[pa->num]->link); } else { /* FROM_FACE/FROM_VOLUME */ @@ -415,13 +415,13 @@ static void distribute_simple_children(Scene *scene, Object *ob, DerivedMesh *fi alloc_child_particles(psys, totpart); cpa = psys->child; - for(i=0; i<child_nbr; i++) { - for(p=0; p<psys->totpart; p++,cpa++) { + for (i=0; i<child_nbr; i++) { + for (p=0; p<psys->totpart; p++,cpa++) { float length=2.0; cpa->parent=p; /* create even spherical distribution inside unit sphere */ - while(length>=1.0f) { + while (length>=1.0f) { cpa->fuv[0]=2.0f*BLI_frand()-1.0f; cpa->fuv[1]=2.0f*BLI_frand()-1.0f; cpa->fuv[2]=2.0f*BLI_frand()-1.0f; @@ -449,7 +449,7 @@ static void distribute_grid(DerivedMesh *dm, ParticleSystem *psys) copy_v3_v3(max, mv->co); mv++; - for(i=1; i<totvert; i++, mv++) { + for (i=1; i<totvert; i++, mv++) { min[0]=MIN2(min[0],mv->co[0]); min[1]=MIN2(min[1],mv->co[1]); min[2]=MIN2(min[2],mv->co[2]); @@ -483,9 +483,9 @@ static void distribute_grid(DerivedMesh *dm, ParticleSystem *psys) min[1]+= d < delta[1] ? d/2.f : delta[1]/2.f; min[2]+= d < delta[2] ? d/2.f : delta[2]/2.f; - for(i=0,p=0,pa=psys->particles; i<res; i++) { - for(j=0; j<res; j++) { - for(k=0; k<res; k++,p++,pa++) { + for (i=0,p=0,pa=psys->particles; i<res; i++) { + for (j=0; j<res; j++) { + for (k=0; k<res; k++,p++,pa++) { pa->fuv[0] = min[0] + (float)i*d; pa->fuv[1] = min[1] + (float)j*d; pa->fuv[2] = min[2] + (float)k*d; @@ -496,7 +496,7 @@ static void distribute_grid(DerivedMesh *dm, ParticleSystem *psys) } /* enable particles near verts/edges/faces/inside surface */ - if(from==PART_FROM_VERT) { + if (from==PART_FROM_VERT) { float vec[3]; pa=psys->particles; @@ -505,7 +505,7 @@ static void distribute_grid(DerivedMesh *dm, ParticleSystem *psys) min[1] -= d/2.0f; min[2] -= d/2.0f; - for(i=0,mv=mvert; i<totvert; i++,mv++) { + for (i=0,mv=mvert; i<totvert; i++,mv++) { sub_v3_v3v3(vec,mv->co,min); vec[0]/=delta[0]; vec[1]/=delta[1]; @@ -515,7 +515,7 @@ static void distribute_grid(DerivedMesh *dm, ParticleSystem *psys) +(int)(vec[2]*(size[2]-1)))->flag &= ~PARS_UNEXIST; } } - else if(ELEM(from,PART_FROM_FACE,PART_FROM_VOLUME)) { + else if (ELEM(from,PART_FROM_FACE,PART_FROM_VOLUME)) { float co1[3], co2[3]; MFace *mface= NULL, *mface_array; @@ -526,13 +526,13 @@ static void distribute_grid(DerivedMesh *dm, ParticleSystem *psys) totface=dm->getNumTessFaces(dm); mface=mface_array=dm->getTessFaceDataArray(dm,CD_MFACE); - for(a=0; a<amax; a++) { - if(a==0) { a0mul=res*res; a1mul=res; a2mul=1; } - else if(a==1) { a0mul=res; a1mul=1; a2mul=res*res; } - else{ a0mul=1; a1mul=res*res; a2mul=res; } + for (a=0; a<amax; a++) { + if (a==0) { a0mul=res*res; a1mul=res; a2mul=1; } + else if (a==1) { a0mul=res; a1mul=1; a2mul=res*res; } + else { a0mul=1; a1mul=res*res; a2mul=res; } - for(a1=0; a1<size[(a+1)%3]; a1++) { - for(a2=0; a2<size[(a+2)%3]; a2++) { + for (a1=0; a1<size[(a+1)%3]; a1++) { + for (a2=0; a2<size[(a+2)%3]; a2++) { mface= mface_array; pa = psys->particles + a1*a1mul + a2*a2mul; @@ -543,23 +543,23 @@ static void distribute_grid(DerivedMesh *dm, ParticleSystem *psys) co1[a] -= 0.001f*d; /* lets intersect the faces */ - for(i=0; i<totface; i++,mface++) { + for (i=0; i<totface; i++,mface++) { copy_v3_v3(v1, mvert[mface->v1].co); copy_v3_v3(v2, mvert[mface->v2].co); copy_v3_v3(v3, mvert[mface->v3].co); - if(isect_axial_line_tri_v3(a, co1, co2, v2, v3, v1, &lambda)) { - if(from==PART_FROM_FACE) + if (isect_axial_line_tri_v3(a, co1, co2, v2, v3, v1, &lambda)) { + if (from==PART_FROM_FACE) (pa+(int)(lambda*size[a])*a0mul)->flag &= ~PARS_UNEXIST; else /* store number of intersections */ (pa+(int)(lambda*size[a])*a0mul)->hair_index++; } - if(mface->v4) { + if (mface->v4) { copy_v3_v3(v4, mvert[mface->v4].co); - if(isect_axial_line_tri_v3(a, co1, co2, v4, v1, v3, &lambda)) { - if(from==PART_FROM_FACE) + if (isect_axial_line_tri_v3(a, co1, co2, v4, v1, v3, &lambda)) { + if (from==PART_FROM_FACE) (pa+(int)(lambda*size[a])*a0mul)->flag &= ~PARS_UNEXIST; else (pa+(int)(lambda*size[a])*a0mul)->hair_index++; @@ -567,11 +567,11 @@ static void distribute_grid(DerivedMesh *dm, ParticleSystem *psys) } } - if(from==PART_FROM_VOLUME) { + if (from==PART_FROM_VOLUME) { int in=pa->hair_index%2; - if(in) pa->hair_index++; - for(i=0; i<size[0]; i++) { - if(in || (pa+i*a0mul)->hair_index%2) + if (in) pa->hair_index++; + for (i=0; i<size[0]; i++) { + if (in || (pa+i*a0mul)->hair_index%2) (pa+i*a0mul)->flag &= ~PARS_UNEXIST; /* odd intersections == in->out / out->in */ /* even intersections -> in stays same */ @@ -583,14 +583,14 @@ static void distribute_grid(DerivedMesh *dm, ParticleSystem *psys) } } - if(psys->part->flag & PART_GRID_HEXAGONAL) { - for(i=0,p=0,pa=psys->particles; i<res; i++) { - for(j=0; j<res; j++) { - for(k=0; k<res; k++,p++,pa++) { - if(j%2) + if (psys->part->flag & PART_GRID_HEXAGONAL) { + for (i=0,p=0,pa=psys->particles; i<res; i++) { + for (j=0; j<res; j++) { + for (k=0; k<res; k++,p++,pa++) { + if (j%2) pa->fuv[0] += d/2.f; - if(k%2) { + if (k%2) { pa->fuv[0] += d/2.f; pa->fuv[1] += d/2.f; } @@ -599,21 +599,21 @@ static void distribute_grid(DerivedMesh *dm, ParticleSystem *psys) } } - if(psys->part->flag & PART_GRID_INVERT) { - for(i=0; i<size[0]; i++) { - for(j=0; j<size[1]; j++) { + if (psys->part->flag & PART_GRID_INVERT) { + for (i=0; i<size[0]; i++) { + for (j=0; j<size[1]; j++) { pa=psys->particles + res*(i*res + j); - for(k=0; k<size[2]; k++, pa++) { + for (k=0; k<size[2]; k++, pa++) { pa->flag ^= PARS_UNEXIST; } } } } - if(psys->part->grid_rand > 0.f) { + if (psys->part->grid_rand > 0.f) { float rfac = d * psys->part->grid_rand; - for(p=0,pa=psys->particles; p<psys->totpart; p++,pa++) { - if(pa->flag & PARS_UNEXIST) + for (p=0,pa=psys->particles; p<psys->totpart; p++,pa++) { + if (pa->flag & PARS_UNEXIST) continue; pa->fuv[0] += rfac * (PSYS_FRAND(p + 31) - 0.5f); @@ -653,7 +653,7 @@ static void init_mv_jit(float *jit, int num, int seed2, float amount) float *jit2, x, rad1, rad2, rad3; int i, num2; - if(num==0) return; + if (num==0) return; rad1= (float)(1.0f/sqrtf((float)num)); rad2= (float)(1.0f/((float)num)); @@ -662,7 +662,7 @@ static void init_mv_jit(float *jit, int num, int seed2, float amount) rng = rng_new(31415926 + num + seed2); x= 0; num2 = 2 * num; - for(i=0; i<num2; i+=2) { + for (i=0; i<num2; i+=2) { jit[i]= x + amount*rad1*(0.5f - rng_getFloat(rng)); jit[i+1]= i/(2.0f*num) + amount*rad1*(0.5f - rng_getFloat(rng)); @@ -689,8 +689,8 @@ static void psys_uv_to_w(float u, float v, int quad, float *w) { float vert[4][3], co[3]; - if(!quad) { - if(u+v > 1.0f) + if (!quad) { + if (u+v > 1.0f) v= 1.0f-v; else u= 1.0f-u; @@ -704,7 +704,7 @@ static void psys_uv_to_w(float u, float v, int quad, float *w) co[1]= v; co[2]= 0.0f; - if(quad) { + if (quad) { vert[3][0]= 0.0f; vert[3][1]= 1.0f; vert[3][2]= 0.0f; interp_weights_poly_v3( w,vert, 4, co); } @@ -719,18 +719,18 @@ static int distribute_binary_search(float *sum, int n, float value) { int mid, low=0, high=n; - if(value == 0.f) + if (value == 0.f) return 0; - while(low <= high) { + while (low <= high) { mid= (low + high)/2; - if(sum[mid] < value && value <= sum[mid+1]) + if (sum[mid] < value && value <= sum[mid+1]) return mid; - if(sum[mid] >= value) + if (sum[mid] >= value) high= mid - 1; - else if(sum[mid] < value) + else if (sum[mid] < value) low= mid + 1; else return mid; @@ -758,14 +758,14 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch int i, intersect, tot; int rng_skip_tot= PSYS_RND_DIST_SKIP; /* count how many rng_* calls wont need skipping */ - if(from == PART_FROM_VERT) { + if (from == PART_FROM_VERT) { /* TODO_PARTICLE - use original index */ pa->num= ctx->index[p]; pa->fuv[0] = 1.0f; pa->fuv[1] = pa->fuv[2] = pa->fuv[3] = 0.0; #if ONLY_WORKING_WITH_PA_VERTS - if(ctx->tree) { + if (ctx->tree) { KDTreeNearest ptn[3]; int w, maxw; @@ -773,13 +773,13 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch transform_mesh_orco_verts((Mesh*)ob->data, &orco1, 1, 1); maxw = BLI_kdtree_find_n_nearest(ctx->tree,3,orco1,NULL,ptn); - for(w=0; w<maxw; w++) { + for (w=0; w<maxw; w++) { pa->verts[w]=ptn->num; } } #endif } - else if(from == PART_FROM_FACE || from == PART_FROM_VOLUME) { + else if (from == PART_FROM_FACE || from == PART_FROM_VOLUME) { MFace *mface; pa->num = i = ctx->index[p]; @@ -787,8 +787,8 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch switch(distr) { case PART_DISTR_JIT: - if(ctx->jitlevel == 1) { - if(mface->v4) + if (ctx->jitlevel == 1) { + if (mface->v4) psys_uv_to_w(0.5f, 0.5f, mface->v4, pa->fuv); else psys_uv_to_w(0.33333f, 0.33333f, mface->v4, pa->fuv); @@ -810,7 +810,7 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch pa->foffset= 0.0f; /* experimental */ - if(from==PART_FROM_VOLUME) { + if (from==PART_FROM_VOLUME) { MVert *mvert=dm->getVertDataArray(dm,CD_MVERT); tot=dm->getNumTessFaces(dm); @@ -825,25 +825,25 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch min_d=2.0; intersect=0; - for(i=0,mface=dm->getTessFaceDataArray(dm,CD_MFACE); i<tot; i++,mface++) { - if(i==pa->num) continue; + for (i=0,mface=dm->getTessFaceDataArray(dm,CD_MFACE); i<tot; i++,mface++) { + if (i==pa->num) continue; v1=mvert[mface->v1].co; v2=mvert[mface->v2].co; v3=mvert[mface->v3].co; - if(isect_line_tri_v3(co1, co2, v2, v3, v1, &cur_d, 0)) { - if(cur_d<min_d) { + if (isect_line_tri_v3(co1, co2, v2, v3, v1, &cur_d, 0)) { + if (cur_d<min_d) { min_d=cur_d; pa->foffset=cur_d*50.0f; /* to the middle of volume */ intersect=1; } } - if(mface->v4) { + if (mface->v4) { v4=mvert[mface->v4].co; - if(isect_line_tri_v3(co1, co2, v4, v1, v3, &cur_d, 0)) { - if(cur_d<min_d) { + if (isect_line_tri_v3(co1, co2, v4, v1, v3, &cur_d, 0)) { + if (cur_d<min_d) { min_d=cur_d; pa->foffset=cur_d*50.0f; /* to the middle of volume */ intersect=1; @@ -851,7 +851,7 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch } } } - if(intersect==0) + if (intersect==0) pa->foffset=0.0; else switch(distr) { case PART_DISTR_JIT: @@ -863,10 +863,10 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch } } } - else if(from == PART_FROM_CHILD) { + else if (from == PART_FROM_CHILD) { MFace *mf; - if(ctx->index[p] < 0) { + if (ctx->index[p] < 0) { cpa->num=0; cpa->fuv[0]=cpa->fuv[1]=cpa->fuv[2]=cpa->fuv[3]=0.0f; cpa->pa[0]=cpa->pa[1]=cpa->pa[2]=cpa->pa[3]=0; @@ -883,7 +883,7 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch cpa->num = ctx->index[p]; - if(ctx->tree) { + if (ctx->tree) { KDTreeNearest ptn[10]; int w,maxw;//, do_seams; float maxd /*, mind,dd */, totw= 0.0f; @@ -898,36 +898,36 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch /* mind=ptn[0].dist; */ /* UNUSED */ /* the weights here could be done better */ - for(w=0; w<maxw; w++) { + for (w=0; w<maxw; w++) { parent[w]=ptn[w].index; pweight[w]=(float)pow(2.0,(double)(-6.0f*ptn[w].dist/maxd)); } - for(;w<10; w++) { + for (;w<10; w++) { parent[w]=-1; pweight[w]=0.0f; } - for(w=0,i=0; w<maxw && i<4; w++) { - if(parent[w]>=0) { + for (w=0,i=0; w<maxw && i<4; w++) { + if (parent[w]>=0) { cpa->pa[i]=parent[w]; cpa->w[i]=pweight[w]; totw+=pweight[w]; i++; } } - for(;i<4; i++) { + for (;i<4; i++) { cpa->pa[i]=-1; cpa->w[i]=0.0f; } - if(totw>0.0f) for(w=0; w<4; w++) + if (totw>0.0f) for(w=0; w<4; w++) cpa->w[w]/=totw; cpa->parent=cpa->pa[0]; } } - if(rng_skip_tot > 0) /* should never be below zero */ + if (rng_skip_tot > 0) /* should never be below zero */ rng_skip(thread->rng, rng_skip_tot); } @@ -939,15 +939,15 @@ static void *distribute_threads_exec_cb(void *data) ChildParticle *cpa; int p, totpart; - if(thread->ctx->from == PART_FROM_CHILD) { + if (thread->ctx->from == PART_FROM_CHILD) { totpart= psys->totchild; cpa= psys->child; - for(p=0; p<totpart; p++, cpa++) { - if(thread->ctx->skip) /* simplification skip */ + for (p=0; p<totpart; p++, cpa++) { + if (thread->ctx->skip) /* simplification skip */ rng_skip(thread->rng, PSYS_RND_DIST_SKIP * thread->ctx->skip[p]); - if((p+thread->num) % thread->tot == 0) + if ((p+thread->num) % thread->tot == 0) distribute_threads_exec(thread, NULL, cpa, p); else /* thread skip */ rng_skip(thread->rng, PSYS_RND_DIST_SKIP); @@ -956,7 +956,7 @@ static void *distribute_threads_exec_cb(void *data) else { totpart= psys->totpart; pa= psys->particles + thread->num; - for(p=thread->num; p<totpart; p+=thread->tot, pa+=thread->tot) + for (p=thread->num; p<totpart; p+=thread->tot, pa+=thread->tot) distribute_threads_exec(thread, pa, NULL, p); } @@ -970,14 +970,14 @@ static int distribute_compare_orig_index(const void *p1, const void *p2) int index1 = COMPARE_ORIG_INDEX[*(const int*)p1]; int index2 = COMPARE_ORIG_INDEX[*(const int*)p2]; - if(index1 < index2) + if (index1 < index2) return -1; - else if(index1 == index2) { + else if (index1 == index2) { /* this pointer comparison appears to make qsort stable for glibc, * and apparently on solaris too, makes the renders reproducible */ - if(p1 < p2) + if (p1 < p2) return -1; - else if(p1 == p2) + else if (p1 == p2) return 0; else return 1; @@ -988,12 +988,12 @@ static int distribute_compare_orig_index(const void *p1, const void *p2) static void distribute_invalid(Scene *scene, ParticleSystem *psys, int from) { - if(from == PART_FROM_CHILD) { + if (from == PART_FROM_CHILD) { ChildParticle *cpa; int p, totchild = get_psys_tot_child(scene, psys); - if(psys->child && totchild) { - for(p=0,cpa=psys->child; p<totchild; p++,cpa++) { + if (psys->child && totchild) { + for (p=0,cpa=psys->child; p<totchild; p++,cpa++) { cpa->fuv[0]=cpa->fuv[1]=cpa->fuv[2]=cpa->fuv[3]= 0.0; cpa->foffset= 0.0f; cpa->parent=0; @@ -1032,12 +1032,12 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D float *element_weight=NULL,*element_sum=NULL,*jitter_offset=NULL, *vweight=NULL; float cur, maxweight=0.0, tweight, totweight, inv_totweight, co[3], nor[3], orco[3], ornor[3]; - if(ELEM3(NULL, ob, psys, psys->part)) + if (ELEM3(NULL, ob, psys, psys->part)) return 0; part=psys->part; totpart=psys->totpart; - if(totpart==0) + if (totpart==0) return 0; if (!finaldm->deformedOnly && !finaldm->getTessFaceDataArray(finaldm, CD_ORIGINDEX)) { @@ -1047,9 +1047,9 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D } /* First handle special cases */ - if(from == PART_FROM_CHILD) { + if (from == PART_FROM_CHILD) { /* Simple children */ - if(part->childtype != PART_CHILD_FACES) { + if (part->childtype != PART_CHILD_FACES) { BLI_srandom(31415926 + psys->seed + psys->child_seed); distribute_simple_children(scene, ob, finaldm, psys); return 0; @@ -1057,7 +1057,7 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D } else { /* Grid distribution */ - if(part->distr==PART_DISTR_GRID && from != PART_FROM_VERT) { + if (part->distr==PART_DISTR_GRID && from != PART_FROM_VERT) { BLI_srandom(31415926 + psys->seed); dm= CDDM_from_mesh((Mesh*)ob->data, ob); distribute_grid(dm,psys); @@ -1067,7 +1067,7 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D } /* Create trees and original coordinates if needed */ - if(from == PART_FROM_CHILD) { + if (from == PART_FROM_CHILD) { distr=PART_DISTR_RAND; BLI_srandom(31415926 + psys->seed + psys->child_seed); dm= finaldm; @@ -1079,7 +1079,7 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D tree=BLI_kdtree_new(totpart); - for(p=0,pa=psys->particles; p<totpart; p++,pa++) { + for (p=0,pa=psys->particles; p<totpart; p++,pa++) { psys_particle_on_dm(dm,part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,co,nor,0,0,orco,ornor); transform_mesh_orco_verts((Mesh*)ob->data, &orco, 1, 1); BLI_kdtree_insert(tree, p, orco, ornor); @@ -1104,15 +1104,15 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D /* we need orco for consistent distributions */ DM_add_vert_layer(dm, CD_ORCO, CD_ASSIGN, get_mesh_orco_verts(ob)); - if(from == PART_FROM_VERT) { + if (from == PART_FROM_VERT) { MVert *mv= dm->getVertDataArray(dm, CD_MVERT); float (*orcodata)[3]= dm->getVertDataArray(dm, CD_ORCO); int totvert = dm->getNumVerts(dm); tree=BLI_kdtree_new(totvert); - for(p=0; p<totvert; p++) { - if(orcodata) { + for (p=0; p<totvert; p++) { + if (orcodata) { copy_v3_v3(co,orcodata[p]); transform_mesh_orco_verts((Mesh*)ob->data, &co, 1, 1); } @@ -1128,13 +1128,13 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D /* Get total number of emission elements and allocate needed arrays */ totelem = (from == PART_FROM_VERT) ? dm->getNumVerts(dm) : dm->getNumTessFaces(dm); - if(totelem == 0) { + if (totelem == 0) { distribute_invalid(scene, psys, children ? PART_FROM_CHILD : 0); - if(G.f & G_DEBUG) + if (G.f & G_DEBUG) fprintf(stderr,"Particle distribution error: Nothing to emit from!\n"); - if(dm != finaldm) dm->release(dm); + if (dm != finaldm) dm->release(dm); BLI_kdtree_free(tree); @@ -1147,24 +1147,24 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D jitter_offset = MEM_callocN(sizeof(float)*totelem, "particle_distribution_jitoff"); /* Calculate weights from face areas */ - if((part->flag&PART_EDISTR || children) && from != PART_FROM_VERT) { + if ((part->flag&PART_EDISTR || children) && from != PART_FROM_VERT) { MVert *v1, *v2, *v3, *v4; float totarea=0.f, co1[3], co2[3], co3[3], co4[3]; float (*orcodata)[3]; orcodata= dm->getVertDataArray(dm, CD_ORCO); - for(i=0; i<totelem; i++) { + for (i=0; i<totelem; i++) { MFace *mf=dm->getTessFaceData(dm,i,CD_MFACE); - if(orcodata) { + if (orcodata) { copy_v3_v3(co1, orcodata[mf->v1]); copy_v3_v3(co2, orcodata[mf->v2]); copy_v3_v3(co3, orcodata[mf->v3]); transform_mesh_orco_verts((Mesh*)ob->data, &co1, 1, 1); transform_mesh_orco_verts((Mesh*)ob->data, &co2, 1, 1); transform_mesh_orco_verts((Mesh*)ob->data, &co3, 1, 1); - if(mf->v4) { + if (mf->v4) { copy_v3_v3(co4, orcodata[mf->v4]); transform_mesh_orco_verts((Mesh*)ob->data, &co4, 1, 1); } @@ -1176,7 +1176,7 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D copy_v3_v3(co1, v1->co); copy_v3_v3(co2, v2->co); copy_v3_v3(co3, v3->co); - if(mf->v4) { + if (mf->v4) { v4= (MVert*)dm->getVertData(dm,mf->v4,CD_MVERT); copy_v3_v3(co4, v4->co); } @@ -1184,21 +1184,21 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D cur = mf->v4 ? area_quad_v3(co1, co2, co3, co4) : area_tri_v3(co1, co2, co3); - if(cur > maxweight) + if (cur > maxweight) maxweight = cur; element_weight[i] = cur; totarea += cur; } - for(i=0; i<totelem; i++) + for (i=0; i<totelem; i++) element_weight[i] /= totarea; maxweight /= totarea; } - else{ + else { float min=1.0f/(float)(MIN2(totelem,totpart)); - for(i=0; i<totelem; i++) + for (i=0; i<totelem; i++) element_weight[i]=min; maxweight=min; } @@ -1206,17 +1206,17 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D /* Calculate weights from vgroup */ vweight = psys_cache_vgroup(dm,psys,PSYS_VG_DENSITY); - if(vweight) { - if(from==PART_FROM_VERT) { - for(i=0;i<totelem; i++) + if (vweight) { + if (from==PART_FROM_VERT) { + for (i=0;i<totelem; i++) element_weight[i]*=vweight[i]; } else { /* PART_FROM_FACE / PART_FROM_VOLUME */ - for(i=0;i<totelem; i++) { + for (i=0;i<totelem; i++) { MFace *mf=dm->getTessFaceData(dm,i,CD_MFACE); tweight = vweight[mf->v1] + vweight[mf->v2] + vweight[mf->v3]; - if(mf->v4) { + if (mf->v4) { tweight += vweight[mf->v4]; tweight /= 4.0f; } @@ -1232,21 +1232,21 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D /* Calculate total weight of all elements */ totweight= 0.0f; - for(i=0;i<totelem; i++) + for (i=0;i<totelem; i++) totweight += element_weight[i]; inv_totweight = (totweight > 0.f ? 1.f/totweight : 0.f); /* Calculate cumulative weights */ element_sum[0]= 0.0f; - for(i=0; i<totelem; i++) + for (i=0; i<totelem; i++) element_sum[i+1]= element_sum[i] + element_weight[i] * inv_totweight; /* Finally assign elements to particles */ - if((part->flag&PART_TRAND) || (part->simplify_flag&PART_SIMPLIFY_ENABLE)) { + if ((part->flag&PART_TRAND) || (part->simplify_flag&PART_SIMPLIFY_ENABLE)) { float pos; - for(p=0; p<totpart; p++) { + for (p=0; p<totpart; p++) { /* In theory element_sum[totelem] should be 1.0, but due to float errors this is not necessarily always true, so scale pos accordingly. */ pos= BLI_frand() * element_sum[totelem]; particle_element[p]= distribute_binary_search(element_sum, totelem, pos); @@ -1261,14 +1261,14 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D pos= 1e-6; /* tiny offset to avoid zero weight face */ i= 0; - for(p=0; p<totpart; p++, pos+=step) { - while((i < totelem) && (pos > element_sum[i+1])) + for (p=0; p<totpart; p++, pos+=step) { + while ((i < totelem) && (pos > element_sum[i+1])) i++; particle_element[p]= MIN2(totelem-1, i); /* avoid zero weight face */ - if(p == totpart-1 && element_weight[particle_element[p]] == 0.0f) + if (p == totpart-1 && element_weight[particle_element[p]] == 0.0f) particle_element[p]= particle_element[p-1]; jitter_offset[particle_element[p]]= pos; @@ -1279,32 +1279,32 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D /* For hair, sort by origindex (allows optimization's in rendering), */ /* however with virtual parents the children need to be in random order. */ - if(part->type == PART_HAIR && !(part->childtype==PART_CHILD_FACES && part->parents!=0.0f)) { + if (part->type == PART_HAIR && !(part->childtype==PART_CHILD_FACES && part->parents!=0.0f)) { COMPARE_ORIG_INDEX = NULL; - if(from == PART_FROM_VERT) { - if(dm->numVertData) + if (from == PART_FROM_VERT) { + if (dm->numVertData) COMPARE_ORIG_INDEX= dm->getVertDataArray(dm, CD_ORIGINDEX); } else { - if(dm->numTessFaceData) + if (dm->numTessFaceData) COMPARE_ORIG_INDEX= dm->getTessFaceDataArray(dm, CD_ORIGINDEX); } - if(COMPARE_ORIG_INDEX) { + if (COMPARE_ORIG_INDEX) { qsort(particle_element, totpart, sizeof(int), distribute_compare_orig_index); COMPARE_ORIG_INDEX = NULL; } } /* Create jittering if needed */ - if(distr==PART_DISTR_JIT && ELEM(from,PART_FROM_FACE,PART_FROM_VOLUME)) { + if (distr==PART_DISTR_JIT && ELEM(from,PART_FROM_FACE,PART_FROM_VOLUME)) { jitlevel= part->userjit; - if(jitlevel == 0) { + if (jitlevel == 0) { jitlevel= totpart/totelem; - if(part->flag & PART_EDISTR) jitlevel*= 2; /* looks better in general, not very scietific */ - if(jitlevel<3) jitlevel= 3; + if (part->flag & PART_EDISTR) jitlevel*= 2; /* looks better in general, not very scietific */ + if (jitlevel<3) jitlevel= 3; } jit= MEM_callocN((2+ jitlevel*2)*sizeof(float), "jit"); @@ -1312,7 +1312,7 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D /* for small amounts of particles we use regular jitter since it looks * a bit better, for larger amounts we switch to hammersley sequence * because it is much faster */ - if(jitlevel < 25) + if (jitlevel < 25) init_mv_jit(jit, jitlevel, psys->seed, part->jitfac); else hammersley_create(jit, jitlevel+1, psys->seed, part->jitfac); @@ -1336,16 +1336,16 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D ctx->dm= dm; ctx->tpars= tpars; - if(children) { + if (children) { totpart= psys_render_simplify_distribution(ctx, totpart); alloc_child_particles(psys, totpart); } - if(!children || psys->totchild < 10000) + if (!children || psys->totchild < 10000) totthread= 1; seed= 31415926 + ctx->sim.psys->seed; - for(i=0; i<totthread; i++) { + for (i=0; i<totthread; i++) { threads[i].rng= rng_new(seed); threads[i].tot= totthread; } @@ -1363,16 +1363,16 @@ static void distribute_particles_on_dm(ParticleSimulationData *sim, int from) pthreads= psys_threads_create(sim); - if(!distribute_threads_init_data(pthreads, sim->scene, finaldm, from)) { + if (!distribute_threads_init_data(pthreads, sim->scene, finaldm, from)) { psys_threads_free(pthreads); return; } totthread= pthreads[0].tot; - if(totthread > 1) { + if (totthread > 1) { BLI_init_threads(&threads, distribute_threads_exec_cb, totthread); - for(i=0; i<totthread; i++) + for (i=0; i<totthread; i++) BLI_insert_thread(&threads, &pthreads[i]); BLI_end_threads(&threads); @@ -1383,7 +1383,7 @@ static void distribute_particles_on_dm(ParticleSimulationData *sim, int from) psys_calc_dmcache(sim->ob, finaldm, sim->psys); ctx= pthreads[0].ctx; - if(ctx->dm != finaldm) + if (ctx->dm != finaldm) ctx->dm->release(ctx->dm); psys_threads_free(pthreads); @@ -1402,8 +1402,8 @@ static void distribute_particles(ParticleSimulationData *sim, int from) PARTICLE_PSMD; int distr_error=0; - if(psmd) { - if(psmd->dm) + if (psmd) { + if (psmd->dm) distribute_particles_on_dm(sim, from); else distr_error=1; @@ -1411,7 +1411,7 @@ static void distribute_particles(ParticleSimulationData *sim, int from) else distribute_particles_on_shape(sim, from); - if(distr_error) { + if (distr_error) { distribute_invalid(sim->scene, sim->psys, from); fprintf(stderr,"Particle distribution error!\n"); @@ -1425,7 +1425,7 @@ ParticleThread *psys_threads_create(ParticleSimulationData *sim) ParticleThreadContext *ctx; int i, totthread; - if(sim->scene->r.mode & R_FIXED_THREADS) + if (sim->scene->r.mode & R_FIXED_THREADS) totthread= sim->scene->r.threads; else totthread= BLI_system_thread_count(); @@ -1439,7 +1439,7 @@ ParticleThread *psys_threads_create(ParticleSimulationData *sim) memset(threads, 0, sizeof(ParticleThread)*totthread); - for(i=0; i<totthread; i++) { + for (i=0; i<totthread; i++) { threads[i].ctx= ctx; threads[i].num= i; threads[i].tot= totthread; @@ -1454,39 +1454,39 @@ void psys_threads_free(ParticleThread *threads) int i, totthread= threads[0].tot; /* path caching */ - if(ctx->vg_length) + if (ctx->vg_length) MEM_freeN(ctx->vg_length); - if(ctx->vg_clump) + if (ctx->vg_clump) MEM_freeN(ctx->vg_clump); - if(ctx->vg_kink) + if (ctx->vg_kink) MEM_freeN(ctx->vg_kink); - if(ctx->vg_rough1) + if (ctx->vg_rough1) MEM_freeN(ctx->vg_rough1); - if(ctx->vg_rough2) + if (ctx->vg_rough2) MEM_freeN(ctx->vg_rough2); - if(ctx->vg_roughe) + if (ctx->vg_roughe) MEM_freeN(ctx->vg_roughe); - if(ctx->sim.psys->lattice) { + if (ctx->sim.psys->lattice) { end_latt_deform(ctx->sim.psys->lattice); ctx->sim.psys->lattice= NULL; } /* distribution */ - if(ctx->jit) MEM_freeN(ctx->jit); - if(ctx->jitoff) MEM_freeN(ctx->jitoff); - if(ctx->weight) MEM_freeN(ctx->weight); - if(ctx->index) MEM_freeN(ctx->index); - if(ctx->skip) MEM_freeN(ctx->skip); - if(ctx->seams) MEM_freeN(ctx->seams); + if (ctx->jit) MEM_freeN(ctx->jit); + if (ctx->jitoff) MEM_freeN(ctx->jitoff); + if (ctx->weight) MEM_freeN(ctx->weight); + if (ctx->index) MEM_freeN(ctx->index); + if (ctx->skip) MEM_freeN(ctx->skip); + if (ctx->seams) MEM_freeN(ctx->seams); //if(ctx->vertpart) MEM_freeN(ctx->vertpart); BLI_kdtree_free(ctx->tree); /* threads */ - for(i=0; i<totthread; i++) { - if(threads[i].rng) + for (i=0; i<totthread; i++) { + if (threads[i].rng) rng_free(threads[i].rng); - if(threads[i].rng_path) + if (threads[i].rng_path) rng_free(threads[i].rng_path); } @@ -1503,10 +1503,10 @@ void initialize_particle(ParticleSimulationData *sim, ParticleData *pa, int p) pa->flag &= ~PARS_UNEXIST; - if(part->type != PART_FLUID) { + if (part->type != PART_FLUID) { psys_get_texture(sim, pa, &ptex, PAMAP_INIT, 0.f); - if(ptex.exist < PSYS_FRAND(p+125)) + if (ptex.exist < PSYS_FRAND(p+125)) pa->flag |= PARS_UNEXIST; pa->time = (part->type == PART_HAIR) ? 0.f : part->sta + (part->end - part->sta)*ptex.time; @@ -1525,16 +1525,16 @@ static void initialize_all_particles(ParticleSimulationData *sim) psys->totunexist = 0; LOOP_PARTICLES { - if((pa->flag & PARS_UNEXIST)==0) + if ((pa->flag & PARS_UNEXIST)==0) initialize_particle(sim, pa, p); - if(pa->flag & PARS_UNEXIST) + if (pa->flag & PARS_UNEXIST) psys->totunexist++; } /* Free unexisting particles. */ - if(psys->totpart && psys->totunexist == psys->totpart) { - if(psys->particles->boid) + if (psys->totpart && psys->totunexist == psys->totpart) { + if (psys->particles->boid) MEM_freeN(psys->particles->boid); MEM_freeN(psys->particles); @@ -1542,26 +1542,26 @@ static void initialize_all_particles(ParticleSimulationData *sim) psys->totpart = psys->totunexist = 0; } - if(psys->totunexist) { + if (psys->totunexist) { int newtotpart = psys->totpart - psys->totunexist; ParticleData *npa, *newpars; npa = newpars = MEM_callocN(newtotpart * sizeof(ParticleData), "particles"); - for(p=0, pa=psys->particles; p<newtotpart; p++, pa++, npa++) { - while(pa->flag & PARS_UNEXIST) + for (p=0, pa=psys->particles; p<newtotpart; p++, pa++, npa++) { + while (pa->flag & PARS_UNEXIST) pa++; memcpy(npa, pa, sizeof(ParticleData)); } - if(psys->particles->boid) + if (psys->particles->boid) MEM_freeN(psys->particles->boid); MEM_freeN(psys->particles); psys->particles = newpars; psys->totpart -= psys->totunexist; - if(psys->particles->boid) { + if (psys->particles->boid) { BoidParticle *newboids = MEM_callocN(psys->totpart * sizeof(BoidParticle), "boid particles"); LOOP_PARTICLES @@ -1623,7 +1623,7 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P part=psys->part; /* get birth location from object */ - if(part->tanfac != 0.f) + if (part->tanfac != 0.f) psys_particle_on_emitter(sim->psmd, part->from,pa->num, pa->num_dmcache, pa->fuv,pa->foffset,loc,nor,utan,vtan,0,0); else psys_particle_on_emitter(sim->psmd, part->from,pa->num, pa->num_dmcache, pa->fuv,pa->foffset,loc,nor,0,0,0,0); @@ -1641,7 +1641,7 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P normalize_v3(nor); /* -tangent */ - if(part->tanfac!=0.0f) { + if (part->tanfac!=0.0f) { //float phase=vg_rot?2.0f*(psys_particle_value_from_verts(sim->psmd->dm,part->from,pa,vg_rot)-0.5f):0.0f; float phase=0.0f; mul_v3_fl(vtan,-cosf((float)M_PI*(part->tanphase+phase))); @@ -1659,7 +1659,7 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P /* -velocity (boids need this even if there's no random velocity) */ - if(part->randfac != 0.0f || (part->phystype==PART_PHYS_BOIDS && pa->boid)) { + if (part->randfac != 0.0f || (part->phystype==PART_PHYS_BOIDS && pa->boid)) { r_vel[0] = 2.0f * (PSYS_FRAND(p + 10) - 0.5f); r_vel[1] = 2.0f * (PSYS_FRAND(p + 11) - 0.5f); r_vel[2] = 2.0f * (PSYS_FRAND(p + 12) - 0.5f); @@ -1669,7 +1669,7 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P } /* -angular velocity */ - if(part->avemode==PART_AVE_RAND) { + if (part->avemode==PART_AVE_RAND) { r_ave[0] = 2.0f * (PSYS_FRAND(p + 13) - 0.5f); r_ave[1] = 2.0f * (PSYS_FRAND(p + 14) - 0.5f); r_ave[2] = 2.0f * (PSYS_FRAND(p + 15) - 0.5f); @@ -1679,7 +1679,7 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P } /* -rotation */ - if(part->randrotfac != 0.0f) { + if (part->randrotfac != 0.0f) { r_rot[0] = 2.0f * (PSYS_FRAND(p + 16) - 0.5f); r_rot[1] = 2.0f * (PSYS_FRAND(p + 17) - 0.5f); r_rot[2] = 2.0f * (PSYS_FRAND(p + 18) - 0.5f); @@ -1690,7 +1690,7 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P mul_qt_qtqt(r_rot,r_rot,rot); } - if(part->phystype==PART_PHYS_BOIDS && pa->boid) { + if (part->phystype==PART_PHYS_BOIDS && pa->boid) { float dvec[3], q[4], mat[3][3]; copy_v3_v3(state->co,loc); @@ -1699,7 +1699,7 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P zero_v3(state->vel); /* boids store direction in ave */ - if(fabsf(nor[2])==1.0f) { + if (fabsf(nor[2])==1.0f) { sub_v3_v3v3(state->ave, loc, ob->obmat[3]); normalize_v3(state->ave); } @@ -1724,34 +1724,34 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P /* -velocity from: */ /* *reactions */ - if(dtime > 0.f) { + if (dtime > 0.f) { sub_v3_v3v3(vel, pa->state.vel, pa->prev_state.vel); } /* *emitter velocity */ - if(dtime != 0.f && part->obfac != 0.f) { + if (dtime != 0.f && part->obfac != 0.f) { sub_v3_v3v3(vel, loc, state->co); mul_v3_fl(vel, part->obfac/dtime); } /* *emitter normal */ - if(part->normfac != 0.f) + if (part->normfac != 0.f) madd_v3_v3fl(vel, nor, part->normfac); /* *emitter tangent */ - if(sim->psmd && part->tanfac != 0.f) + if (sim->psmd && part->tanfac != 0.f) madd_v3_v3fl(vel, vtan, part->tanfac); /* *emitter object orientation */ - if(part->ob_vel[0] != 0.f) { + if (part->ob_vel[0] != 0.f) { normalize_v3_v3(vec, ob->obmat[0]); madd_v3_v3fl(vel, vec, part->ob_vel[0]); } - if(part->ob_vel[1] != 0.f) { + if (part->ob_vel[1] != 0.f) { normalize_v3_v3(vec, ob->obmat[1]); madd_v3_v3fl(vel, vec, part->ob_vel[1]); } - if(part->ob_vel[2] != 0.f) { + if (part->ob_vel[2] != 0.f) { normalize_v3_v3(vec, ob->obmat[2]); madd_v3_v3fl(vel, vec, part->ob_vel[2]); } @@ -1760,11 +1760,11 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P /* TODO */ /* *random */ - if(part->randfac != 0.f) + if (part->randfac != 0.f) madd_v3_v3fl(vel, r_vel, part->randfac); /* *particle */ - if(part->partfac != 0.f) + if (part->partfac != 0.f) madd_v3_v3fl(vel, p_vel, part->partfac); mul_v3_v3fl(state->vel, vel, ptex.ivel); @@ -1775,7 +1775,7 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P /* -rotation */ unit_qt(state->rot); - if(part->rotmode) { + if (part->rotmode) { /* create vector into which rotation is aligned */ switch(part->rotmode) { case PART_ROT_NOR: @@ -1801,14 +1801,14 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P vec_to_quat( q2,rot_vec, OB_POSX, OB_POSZ); /* randomize rotation quat */ - if(part->randrotfac!=0.0f) + if (part->randrotfac!=0.0f) interp_qt_qtqt(rot, q2, r_rot, part->randrotfac); else copy_qt_qt(rot,q2); /* rotation phase */ phasefac = part->phasefac; - if(part->randphasefac != 0.0f) + if (part->randphasefac != 0.0f) phasefac += part->randphasefac * PSYS_FRAND(p + 20); axis_angle_to_quat( q_phase,x_vec, phasefac*(float)M_PI); @@ -1820,8 +1820,8 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P zero_v3(state->ave); - if(part->avemode) { - if(part->avemode == PART_AVE_RAND) + if (part->avemode) { + if (part->avemode == PART_AVE_RAND) copy_v3_v3(state->ave, r_ave); else get_angular_velocity_vector(part->avemode, state, state->ave); @@ -1842,9 +1842,9 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, part=psys->part; /* get precise emitter matrix if particle is born */ - if(part->type!=PART_HAIR && dtime > 0.f && pa->time < cfra && pa->time >= sim->psys->cfra) { + if (part->type!=PART_HAIR && dtime > 0.f && pa->time < cfra && pa->time >= sim->psys->cfra) { /* we have to force RECALC_ANIM here since where_is_objec_time only does drivers */ - while(ob) { + while (ob) { BKE_animsys_evaluate_animdata(sim->scene, &ob->id, ob->adt, pa->time, ADT_RECALC_ANIM); ob = ob->parent; } @@ -1856,13 +1856,13 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, psys_get_birth_coordinates(sim, pa, &pa->state, dtime, cfra); - if(part->phystype==PART_PHYS_BOIDS && pa->boid) { + if (part->phystype==PART_PHYS_BOIDS && pa->boid) { BoidParticle *bpa = pa->boid; /* and gravity in r_ve */ bpa->gravity[0] = bpa->gravity[1] = 0.0f; bpa->gravity[2] = -1.0f; - if((sim->scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) + if ((sim->scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) && sim->scene->physics_settings.gravity[2]!=0.0f) bpa->gravity[2] = sim->scene->physics_settings.gravity[2]; @@ -1873,30 +1873,30 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, } - if(part->type == PART_HAIR) { + if (part->type == PART_HAIR) { pa->lifetime = 100.0f; } - else{ + else { /* get possible textural influence */ psys_get_texture(sim, pa, &ptex, PAMAP_LIFE, cfra); pa->lifetime = part->lifetime * ptex.life; - if(part->randlife != 0.0f) + if (part->randlife != 0.0f) pa->lifetime *= 1.0f - part->randlife * PSYS_FRAND(p + 21); } pa->dietime = pa->time + pa->lifetime; - if(sim->psys->pointcache && sim->psys->pointcache->flag & PTCACHE_BAKED && + if (sim->psys->pointcache && sim->psys->pointcache->flag & PTCACHE_BAKED && sim->psys->pointcache->mem_cache.first) { float dietime = psys_get_dietime_from_cache(sim->psys->pointcache, p); pa->dietime = MIN2(pa->dietime, dietime); } - if(pa->time > cfra) + if (pa->time > cfra) pa->alive = PARS_UNBORN; - else if(pa->dietime <= cfra) + else if (pa->dietime <= cfra) pa->alive = PARS_DEAD; else pa->alive = PARS_ALIVE; @@ -1908,7 +1908,7 @@ static void reset_all_particles(ParticleSimulationData *sim, float dtime, float ParticleData *pa; int p, totpart=sim->psys->totpart; - for(p=from, pa=sim->psys->particles+from; p<totpart; p++, pa++) + for (p=from, pa=sim->psys->particles+from; p<totpart; p++, pa++) reset_particle(sim, pa, dtime, cfra); } /************************************************/ @@ -1918,12 +1918,12 @@ ParticleSystem *psys_get_target_system(Object *ob, ParticleTarget *pt) { ParticleSystem *psys = NULL; - if(pt->ob == NULL || pt->ob == ob) + if (pt->ob == NULL || pt->ob == ob) psys = BLI_findlink(&ob->particlesystem, pt->psys-1); else psys = BLI_findlink(&pt->ob->particlesystem, pt->psys-1); - if(psys) + if (psys) pt->flag |= PTARGET_VALID; else pt->flag &= ~PTARGET_VALID; @@ -1941,12 +1941,12 @@ void psys_count_keyed_targets(ParticleSimulationData *sim) int keys_valid = 1; psys->totkeyed = 0; - for(; pt; pt=pt->next) { + for (; pt; pt=pt->next) { kpsys = psys_get_target_system(sim->ob, pt); - if(kpsys && kpsys->totpart) { + if (kpsys && kpsys->totpart) { psys->totkeyed += keys_valid; - if(psys->flag & PSYS_KEYED_TIMING && pt->duration != 0.0f) + if (psys->flag & PSYS_KEYED_TIMING && pt->duration != 0.0f) psys->totkeyed += 1; } else { @@ -1970,13 +1970,13 @@ static void set_keyed_keys(ParticleSimulationData *sim) ksim.scene= sim->scene; /* no proper targets so let's clear and bail out */ - if(psys->totkeyed==0) { + if (psys->totkeyed==0) { free_keyed_keys(psys); psys->flag &= ~PSYS_KEYED; return; } - if(totpart && psys->particles->totkey != totkeys) { + if (totpart && psys->particles->totkey != totkeys) { free_keyed_keys(psys); key = MEM_callocN(totpart*totkeys*sizeof(ParticleKey), "Keyed keys"); @@ -1992,7 +1992,7 @@ static void set_keyed_keys(ParticleSimulationData *sim) pt = psys->targets.first; - for(k=0; k<totkeys; k++) { + for (k=0; k<totkeys; k++) { ksim.ob = pt->ob ? pt->ob : sim->ob; ksim.psys = BLI_findlink(&ksim.ob->particlesystem, pt->psys - 1); keyed_flag = (ksim.psys->flag & PSYS_KEYED); @@ -2004,20 +2004,20 @@ static void set_keyed_keys(ParticleSimulationData *sim) psys_get_particle_state(&ksim, p%ksim.psys->totpart, key, 1); - if(psys->flag & PSYS_KEYED_TIMING) { + if (psys->flag & PSYS_KEYED_TIMING) { key->time = pa->time + pt->time; - if(pt->duration != 0.0f && k+1 < totkeys) { + if (pt->duration != 0.0f && k+1 < totkeys) { copy_particle_key(key+1, key, 1); (key+1)->time = pa->time + pt->time + pt->duration; } } - else if(totkeys > 1) + else if (totkeys > 1) key->time = pa->time + (float)k / (float)(totkeys - 1) * pa->lifetime; else key->time = pa->time; } - if(psys->flag & PSYS_KEYED_TIMING && pt->duration!=0.0f) + if (psys->flag & PSYS_KEYED_TIMING && pt->duration!=0.0f) k++; ksim.psys->flag |= keyed_flag; @@ -2035,7 +2035,7 @@ void psys_make_temp_pointcache(Object *ob, ParticleSystem *psys) { PointCache *cache = psys->pointcache; - if(cache->flag & PTCACHE_DISK_CACHE && cache->mem_cache.first == NULL) { + if (cache->flag & PTCACHE_DISK_CACHE && cache->mem_cache.first == NULL) { PTCacheID pid; BKE_ptcache_id_from_particles(&pid, ob, psys); cache->flag &= ~PTCACHE_DISK_CACHE; @@ -2045,7 +2045,7 @@ void psys_make_temp_pointcache(Object *ob, ParticleSystem *psys) } static void psys_clear_temp_pointcache(ParticleSystem *psys) { - if(psys->pointcache->flag & PTCACHE_DISK_CACHE) + if (psys->pointcache->flag & PTCACHE_DISK_CACHE) BKE_ptcache_free_mem(&psys->pointcache->mem_cache); } void psys_get_pointcache_start_end(Scene *scene, ParticleSystem *psys, int *sfra, int *efra) @@ -2061,11 +2061,11 @@ void psys_get_pointcache_start_end(Scene *scene, ParticleSystem *psys, int *sfra /************************************************/ static void psys_update_particle_bvhtree(ParticleSystem *psys, float cfra) { - if(psys) { + if (psys) { PARTICLE_P; int totpart = 0; - if(!psys->bvhtree || psys->bvhtree_frame != cfra) { + if (!psys->bvhtree || psys->bvhtree_frame != cfra) { LOOP_SHOWN_PARTICLES { totpart++; } @@ -2074,8 +2074,8 @@ static void psys_update_particle_bvhtree(ParticleSystem *psys, float cfra) psys->bvhtree = BLI_bvhtree_new(totpart, 0.0, 4, 6); LOOP_SHOWN_PARTICLES { - if(pa->alive == PARS_ALIVE) { - if(pa->state.time == cfra) + if (pa->alive == PARS_ALIVE) { + if (pa->state.time == cfra) BLI_bvhtree_insert(psys->bvhtree, p, pa->prev_state.co, 1); else BLI_bvhtree_insert(psys->bvhtree, p, pa->state.co, 1); @@ -2089,11 +2089,11 @@ static void psys_update_particle_bvhtree(ParticleSystem *psys, float cfra) } void psys_update_particle_tree(ParticleSystem *psys, float cfra) { - if(psys) { + if (psys) { PARTICLE_P; int totpart = 0; - if(!psys->tree || psys->tree_frame != cfra) { + if (!psys->tree || psys->tree_frame != cfra) { LOOP_SHOWN_PARTICLES { totpart++; } @@ -2102,8 +2102,8 @@ void psys_update_particle_tree(ParticleSystem *psys, float cfra) psys->tree = BLI_kdtree_new(psys->totpart); LOOP_SHOWN_PARTICLES { - if(pa->alive == PARS_ALIVE) { - if(pa->state.time == cfra) + if (pa->alive == PARS_ALIVE) { + if (pa->state.time == cfra) BLI_kdtree_insert(psys->tree, p, pa->prev_state.co, NULL); else BLI_kdtree_insert(psys->tree, p, pa->state.co, NULL); @@ -2134,7 +2134,7 @@ static void integrate_particle(ParticleSettings *part, ParticleData *pa, float d copy_v3_v3(oldpos, pa->state.co); /* Verlet integration behaves strangely with moving emitters, so do first step with euler. */ - if(pa->prev_state.time < 0.f && integrator == PART_INT_VERLET) + if (pa->prev_state.time < 0.f && integrator == PART_INT_VERLET) integrator = PART_INT_EULER; switch(integrator) { @@ -2156,7 +2156,7 @@ static void integrate_particle(ParticleSettings *part, ParticleData *pa, float d states->time = 0.f; - for(i=0; i<steps; i++) { + for (i=0; i<steps; i++) { zero_v3(force); zero_v3(impulse); @@ -2165,7 +2165,7 @@ static void integrate_particle(ParticleSettings *part, ParticleData *pa, float d /* force to acceleration*/ mul_v3_v3fl(acceleration, force, 1.0f/pa_mass); - if(external_acceleration) + if (external_acceleration) add_v3_v3(acceleration, external_acceleration); /* calculate next state */ @@ -2177,13 +2177,13 @@ static void integrate_particle(ParticleSettings *part, ParticleData *pa, float d madd_v3_v3v3fl(pa->state.vel, states->vel, acceleration, dtime); break; case PART_INT_MIDPOINT: - if(i==0) { + if (i==0) { madd_v3_v3v3fl(states[1].co, states->co, states->vel, dtime*0.5f); madd_v3_v3v3fl(states[1].vel, states->vel, acceleration, dtime*0.5f); states[1].time = dtime*0.5f; /*fra=sim->psys->cfra+0.5f*dfra;*/ } - else{ + else { madd_v3_v3v3fl(pa->state.co, states->co, states[1].vel, dtime); madd_v3_v3v3fl(pa->state.vel, states->vel, acceleration, dtime); } @@ -2268,11 +2268,11 @@ static void integrate_particle(ParticleSettings *part, ParticleData *pa, float d static ParticleSpring *sph_spring_add(ParticleSystem *psys, ParticleSpring *spring) { /* Are more refs required? */ - if(psys->alloc_fluidsprings == 0 || psys->fluid_springs == NULL) { + if (psys->alloc_fluidsprings == 0 || psys->fluid_springs == NULL) { psys->alloc_fluidsprings = PSYS_FLUID_SPRINGS_INITIAL_SIZE; psys->fluid_springs = (ParticleSpring*)MEM_callocN(psys->alloc_fluidsprings * sizeof(ParticleSpring), "Particle Fluid Springs"); } - else if(psys->tot_fluidsprings == psys->alloc_fluidsprings) { + else if (psys->tot_fluidsprings == psys->alloc_fluidsprings) { /* Double the number of refs allocated */ psys->alloc_fluidsprings *= 2; psys->fluid_springs = (ParticleSpring*)MEM_reallocN(psys->fluid_springs, psys->alloc_fluidsprings * sizeof(ParticleSpring)); @@ -2309,11 +2309,11 @@ static void sph_springs_modify(ParticleSystem *psys, float dtime) /* scale things according to dtime */ float timefix = 25.f * dtime; - if((fluid->flag & SPH_VISCOELASTIC_SPRINGS)==0 || fluid->spring_k == 0.f) + if ((fluid->flag & SPH_VISCOELASTIC_SPRINGS)==0 || fluid->spring_k == 0.f) return; /* Loop through the springs */ - for(i=0; i<psys->tot_fluidsprings; i++, spring++) { + for (i=0; i<psys->tot_fluidsprings; i++, spring++) { pa1 = psys->particles + spring->particle_index[0]; pa2 = psys->particles + spring->particle_index[1]; @@ -2326,18 +2326,18 @@ static void sph_springs_modify(ParticleSystem *psys, float dtime) if (rij > Lij + d) // Stretch spring->rest_length += plasticity * (rij - Lij - d) * timefix; - else if(rij < Lij - d) // Compress + else if (rij < Lij - d) // Compress spring->rest_length -= plasticity * (Lij - d - rij) * timefix; h = 4.f*pa1->size; - if(spring->rest_length > h) + if (spring->rest_length > h) spring->delete_flag = 1; } /* Loop through springs backwaqrds - for efficient delete function */ for (i=psys->tot_fluidsprings-1; i >= 0; i--) { - if(psys->fluid_springs[i].delete_flag) + if (psys->fluid_springs[i].delete_flag) sph_spring_delete(psys, i); } } @@ -2349,7 +2349,7 @@ static EdgeHash *sph_springhash_build(ParticleSystem *psys) springhash = BLI_edgehash_new(); - for(i=0, spring=psys->fluid_springs; i<psys->tot_fluidsprings; i++, spring++) + for (i=0, spring=psys->fluid_springs; i<psys->tot_fluidsprings; i++, spring++) BLI_edgehash_insert(springhash, spring->particle_index[0], spring->particle_index[1], SET_INT_IN_POINTER(i+1)); return springhash; @@ -2399,7 +2399,7 @@ static void sph_density_accum_cb(void *userdata, int index, float squared_dist) float q; float dist; - if(npa == pfr->pa || squared_dist < FLT_EPSILON) + if (npa == pfr->pa || squared_dist < FLT_EPSILON) return; /* Ugh! One particle has too many neighbors! If some aren't taken into @@ -2408,7 +2408,7 @@ static void sph_density_accum_cb(void *userdata, int index, float squared_dist) * But, we have to stop somewhere, and it's not the end of the world. * - jahka and z0r */ - if(pfr->tot_neighbors >= SPH_NEIGHBORS) + if (pfr->tot_neighbors >= SPH_NEIGHBORS) return; pfr->neighbors[pfr->tot_neighbors].index = index; @@ -2418,7 +2418,7 @@ static void sph_density_accum_cb(void *userdata, int index, float squared_dist) dist = sqrtf(squared_dist); q = (1.f - dist/pfr->h) * pfr->massfac; - if(pfr->use_size) + if (pfr->use_size) q *= npa->size; pfr->density += q*q; @@ -2447,7 +2447,8 @@ static void sph_particle_courant(SPHData *sphdata, SPHRangeData *pfr) dist += sphdata->psys[0]->part->fluid->radius; // TODO: remove this? - z0r sphdata->element_size = dist / pfr->tot_neighbors; mul_v3_v3fl(sphdata->flow, flow, 1.0f / pfr->tot_neighbors); - } else { + } + else { sphdata->element_size = MAXFLOAT; copy_v3_v3(sphdata->flow, flow); } @@ -2493,7 +2494,7 @@ static void sph_force_cb(void *sphdata_v, ParticleKey *state, float *force, floa pfr.h = h; pfr.pa = pa; - for(i=0; i<10 && psys[i]; i++) { + for (i=0; i<10 && psys[i]; i++) { pfr.npsys = psys[i]; pfr.massfac = psys[i]->part->mass*inv_mass; pfr.use_size = psys[i]->part->flag & PART_SIZEMASS; @@ -2505,7 +2506,7 @@ static void sph_force_cb(void *sphdata_v, ParticleKey *state, float *force, floa near_pressure = stiffness_near_fac * pfr.near_density; pfn = pfr.neighbors; - for(i=0; i<pfr.tot_neighbors; i++, pfn++) { + for (i=0; i<pfr.tot_neighbors; i++, pfn++) { npa = pfn->psys->particles + pfn->index; madd_v3_v3v3fl(co, npa->prev_state.co, npa->prev_state.vel, state->time); @@ -2515,7 +2516,7 @@ static void sph_force_cb(void *sphdata_v, ParticleKey *state, float *force, floa q = (1.f - rij/h) * pfn->psys->part->mass * inv_mass; - if(pfn->psys->part->flag & PART_SIZEMASS) + if (pfn->psys->part->flag & PART_SIZEMASS) q *= npa->size; copy_v3_v3(vel, npa->prev_state.vel); @@ -2524,29 +2525,29 @@ static void sph_force_cb(void *sphdata_v, ParticleKey *state, float *force, floa madd_v3_v3fl(force, vec, -(pressure + near_pressure*q)*q); /* Viscosity */ - if(visc > 0.f || stiff_visc > 0.f) { + if (visc > 0.f || stiff_visc > 0.f) { sub_v3_v3v3(dv, vel, state->vel); u = dot_v3v3(vec, dv); - if(u < 0.f && visc > 0.f) + if (u < 0.f && visc > 0.f) madd_v3_v3fl(force, vec, 0.5f * q * visc * u ); - if(u > 0.f && stiff_visc > 0.f) + if (u > 0.f && stiff_visc > 0.f) madd_v3_v3fl(force, vec, 0.5f * q * stiff_visc * u ); } - if(spring_constant > 0.f) { + if (spring_constant > 0.f) { /* Viscoelastic spring force */ if (pfn->psys == psys[0] && fluid->flag & SPH_VISCOELASTIC_SPRINGS && springhash) { /* BLI_edgehash_lookup appears to be thread-safe. - z0r */ spring_index = GET_INT_FROM_POINTER(BLI_edgehash_lookup(springhash, index, pfn->index)); - if(spring_index) { + if (spring_index) { spring = psys[0]->fluid_springs + spring_index - 1; madd_v3_v3fl(force, vec, -10.f * spring_constant * (1.f - rij/h) * (spring->rest_length - rij)); } - else if(fluid->spring_frames == 0 || (pa->prev_state.time-pa->time) <= fluid->spring_frames) { + else if (fluid->spring_frames == 0 || (pa->prev_state.time-pa->time) <= fluid->spring_frames) { ParticleSpring temp_spring; temp_spring.particle_index[0] = index; temp_spring.particle_index[1] = pfn->index; @@ -2580,7 +2581,7 @@ static void sph_solver_init(ParticleSimulationData *sim, SPHData *sphdata) // Add other coupled particle systems. sphdata->psys[0] = sim->psys; - for(i=1, pt=sim->psys->targets.first; i<10; i++, pt=(pt?pt->next:NULL)) + for (i=1, pt=sim->psys->targets.first; i<10; i++, pt=(pt?pt->next:NULL)) sphdata->psys[i] = pt ? psys_get_target_system(sim->ob, pt) : NULL; if (psys_uses_gravity(sim)) @@ -2648,18 +2649,18 @@ static void basic_force_cb(void *efdata_v, ParticleKey *state, float *force, flo /* add effectors */ pd_point_from_particle(efdata->sim, efdata->pa, state, &epoint); - if(part->type != PART_HAIR || part->effector_weights->flag & EFF_WEIGHT_DO_HAIR) + if (part->type != PART_HAIR || part->effector_weights->flag & EFF_WEIGHT_DO_HAIR) pdDoEffectors(sim->psys->effectors, sim->colliders, part->effector_weights, &epoint, force, impulse); mul_v3_fl(force, efdata->ptex.field); mul_v3_fl(impulse, efdata->ptex.field); /* calculate air-particle interaction */ - if(part->dragfac != 0.0f) + if (part->dragfac != 0.0f) madd_v3_v3fl(force, state->vel, -part->dragfac * pa->size * pa->size * len_v3(state->vel)); /* brownian force */ - if(part->brownfac != 0.0f) { + if (part->brownfac != 0.0f) { force[0] += (BLI_frand()-0.5f) * part->brownfac; force[1] += (BLI_frand()-0.5f) * part->brownfac; force[2] += (BLI_frand()-0.5f) * part->brownfac; @@ -2681,7 +2682,7 @@ static void basic_integrate(ParticleSimulationData *sim, int p, float dfra, floa efdata.sim = sim; /* add global acceleration (gravitation) */ - if(psys_uses_gravity(sim) + if (psys_uses_gravity(sim) /* normal gravity is too strong for hair so it's disabled by default */ && (part->type != PART_HAIR || part->effector_weights->flag & EFF_WEIGHT_DO_HAIR)) { zero_v3(gr); @@ -2695,7 +2696,7 @@ static void basic_integrate(ParticleSimulationData *sim, int p, float dfra, floa integrate_particle(part, pa, dtime, gravity, basic_force_cb, &efdata); /* damp affects final velocity */ - if(part->dampfac != 0.f) + if (part->dampfac != 0.f) mul_v3_fl(pa->state.vel, 1.f - part->dampfac * efdata.ptex.damp * 25.f * dtime); //copy_v3_v3(pa->state.ave, states->ave); @@ -2708,8 +2709,8 @@ static void basic_integrate(ParticleSimulationData *sim, int p, float dfra, floa copy_v3_v3(tkey.vel,pa->state.vel); tkey.time=pa->state.time; - if(part->type != PART_HAIR) { - if(do_guides(sim->psys->effectors, &tkey, p, time)) { + if (part->type != PART_HAIR) { + if (do_guides(sim->psys->effectors, &tkey, p, time)) { copy_v3_v3(pa->state.co,tkey.co); /* guides don't produce valid velocity */ sub_v3_v3v3(pa->state.vel, tkey.co, pa->prev_state.co); @@ -2722,21 +2723,21 @@ static void basic_rotate(ParticleSettings *part, ParticleData *pa, float dfra, f { float rotfac, rot1[4], rot2[4]={1.0,0.0,0.0,0.0}, dtime=dfra*timestep; - if((part->flag & PART_ROTATIONS)==0) { + if ((part->flag & PART_ROTATIONS)==0) { pa->state.rot[0]=1.0f; pa->state.rot[1]=pa->state.rot[2]=pa->state.rot[3]=0; return; } - if((part->flag & PART_ROT_DYN)==0 && ELEM3(part->avemode, PART_AVE_VELOCITY, PART_AVE_HORIZONTAL, PART_AVE_VERTICAL)) { + if ((part->flag & PART_ROT_DYN)==0 && ELEM3(part->avemode, PART_AVE_VELOCITY, PART_AVE_HORIZONTAL, PART_AVE_VERTICAL)) { float angle; float len1 = len_v3(pa->prev_state.vel); float len2 = len_v3(pa->state.vel); float vec[3]; - if(len1==0.0f || len2==0.0f) + if (len1==0.0f || len2==0.0f) pa->state.ave[0] = pa->state.ave[1] = pa->state.ave[2] = 0.0f; - else{ + else { cross_v3_v3v3(pa->state.ave, pa->prev_state.vel, pa->state.vel); normalize_v3(pa->state.ave); angle = dot_v3v3(pa->prev_state.vel, pa->state.vel) / (len1 * len2); @@ -2748,11 +2749,11 @@ static void basic_rotate(ParticleSettings *part, ParticleData *pa, float dfra, f } rotfac = len_v3(pa->state.ave); - if(rotfac == 0.0f) { /* unit_qt(in VecRotToQuat) doesn't give unit quat [1,0,0,0]?? */ + if (rotfac == 0.0f) { /* unit_qt(in VecRotToQuat) doesn't give unit quat [1,0,0,0]?? */ rot1[0]=1.0f; rot1[1]=rot1[2]=rot1[3]=0; } - else{ + else { axis_angle_to_quat(rot1,pa->state.ave,rotfac*dtime); } mul_qt_qtqt(pa->state.rot,rot1,pa->prev_state.rot); @@ -2783,14 +2784,14 @@ static float nr_signed_distance_to_plane(float *p, float radius, ParticleCollisi d = dot_v3v3(p0, nor); - if(pce->inv_nor == -1) { - if(d < 0.f) + if (pce->inv_nor == -1) { + if (d < 0.f) pce->inv_nor = 1; else pce->inv_nor = 0; } - if(pce->inv_nor == 1) { + if (pce->inv_nor == 1) { negate_v3(nor); d = -d; } @@ -2820,13 +2821,13 @@ static void collision_interpolate_element(ParticleCollisionElement *pce, float t /* the col->fac's are factors for the particle subframe step start and end during collision modifier step */ float f = fac + t*(1.f-fac); float mul = col->fac1 + f * (col->fac2-col->fac1); - if(pce->tot > 0) { + if (pce->tot > 0) { madd_v3_v3v3fl(pce->x0, pce->x[0], pce->v[0], mul); - if(pce->tot > 1) { + if (pce->tot > 1) { madd_v3_v3v3fl(pce->x1, pce->x[1], pce->v[1], mul); - if(pce->tot > 2) + if (pce->tot > 2) madd_v3_v3v3fl(pce->x2, pce->x[2], pce->v[2], mul); } } @@ -2837,11 +2838,11 @@ static void collision_point_velocity(ParticleCollisionElement *pce) copy_v3_v3(pce->vel, pce->v[0]); - if(pce->tot > 1) { + if (pce->tot > 1) { sub_v3_v3v3(v, pce->v[1], pce->v[0]); madd_v3_v3fl(pce->vel, v, pce->uv[0]); - if(pce->tot > 2) { + if (pce->tot > 2) { sub_v3_v3v3(v, pce->v[2], pce->v[0]); madd_v3_v3fl(pce->vel, v, pce->uv[1]); } @@ -2849,7 +2850,7 @@ static void collision_point_velocity(ParticleCollisionElement *pce) } static float collision_point_distance_with_normal(float p[3], ParticleCollisionElement *pce, float fac, ParticleCollision *col, float *nor) { - if(fac >= 0.f) + if (fac >= 0.f) collision_interpolate_element(pce, 0.f, fac, col); switch(pce->tot) { @@ -2910,7 +2911,7 @@ static void collision_point_on_surface(float p[3], ParticleCollisionElement *pce cross_v3_v3v3(nor, e1, e2); normalize_v3(nor); - if(pce->inv_nor == 1) + if (pce->inv_nor == 1) negate_v3(nor); madd_v3_v3v3fl(co, pce->x0, nor, col->radius); @@ -2935,7 +2936,7 @@ static float collision_newton_rhapson(ParticleCollision *col, float radius, Part t1 = 0.001f; d1 = 0.f; - for(iter=0; iter<10; iter++) {//, itersum++) { + for (iter=0; iter<10; iter++) {//, itersum++) { /* get current location */ collision_interpolate_element(pce, t1, col->f, col); interp_v3_v3v3(pce->p, col->co1, col->co2, t1); @@ -2943,12 +2944,12 @@ static float collision_newton_rhapson(ParticleCollision *col, float radius, Part d1 = distance_func(pce->p, radius, pce, n); /* no movement, so no collision */ - if(d1 == d0) { + if (d1 == d0) { return -1.f; } /* particle already inside face, so report collision */ - if(iter == 0 && d0 < 0.f && d0 > -radius) { + if (iter == 0 && d0 < 0.f && d0 > -radius) { copy_v3_v3(pce->p, col->co1); copy_v3_v3(pce->nor, n); pce->inside = 1; @@ -2963,7 +2964,7 @@ static float collision_newton_rhapson(ParticleCollision *col, float radius, Part t1 -= d1*dd; /* particle movin away from plane could also mean a strangely rotating face, so check from end */ - if(iter == 0 && t1 < 0.f) { + if (iter == 0 && t1 < 0.f) { t0 = 1.f; collision_interpolate_element(pce, t0, col->f, col); d0 = distance_func(col->co2, radius, pce, n); @@ -2972,12 +2973,12 @@ static float collision_newton_rhapson(ParticleCollision *col, float radius, Part continue; } - else if(iter == 1 && (t1 < -COLLISION_ZERO || t1 > 1.f)) + else if (iter == 1 && (t1 < -COLLISION_ZERO || t1 > 1.f)) return -1.f; - if(d1 <= COLLISION_ZERO && d1 >= -COLLISION_ZERO) { - if(t1 >= -COLLISION_ZERO && t1 <= 1.f) { - if(distance_func == nr_signed_distance_to_plane) + if (d1 <= COLLISION_ZERO && d1 >= -COLLISION_ZERO) { + if (t1 >= -COLLISION_ZERO && t1 <= 1.f) { + if (distance_func == nr_signed_distance_to_plane) copy_v3_v3(pce->nor, n); CLAMP(t1, 0.f, 1.f); @@ -3000,7 +3001,7 @@ static int collision_sphere_to_tri(ParticleCollision *col, float radius, Particl ct = collision_newton_rhapson(col, radius, pce, nr_signed_distance_to_plane); - if(ct >= 0.f && ct < *t && (result->inside==0 || pce->inside==1) ) { + if (ct >= 0.f && ct < *t && (result->inside==0 || pce->inside==1) ) { float e1[3], e2[3], p0[3]; float e1e1, e1e2, e1p0, e2e2, e2p0, inv; @@ -3019,7 +3020,7 @@ static int collision_sphere_to_tri(ParticleCollision *col, float radius, Particl u = (e2e2 * e1p0 - e1e2 * e2p0) * inv; v = (e1e1 * e2p0 - e1e2 * e1p0) * inv; - if(u>=0.f && u<=1.f && v>=0.f && u+v<=1.f) { + if (u>=0.f && u<=1.f && v>=0.f && u+v<=1.f) { *result = *pce; /* normal already calculated in pce */ @@ -3041,9 +3042,9 @@ static int collision_sphere_to_edges(ParticleCollision *col, float radius, Parti float ct; int i; - for(i=0; i<3; i++) { + for (i=0; i<3; i++) { /* in case of a quad, no need to check "edge" that goes through face twice */ - if((pce->x[3] && i==2)) + if ((pce->x[3] && i==2)) continue; cur = edge+i; @@ -3054,14 +3055,14 @@ static int collision_sphere_to_edges(ParticleCollision *col, float radius, Parti ct = collision_newton_rhapson(col, radius, cur, nr_distance_to_edge); - if(ct >= 0.f && ct < *t) { + if (ct >= 0.f && ct < *t) { float u, e[3], vec[3]; sub_v3_v3v3(e, cur->x1, cur->x0); sub_v3_v3v3(vec, cur->p, cur->x0); u = dot_v3v3(vec, e) / dot_v3v3(e, e); - if(u < 0.f || u > 1.f) + if (u < 0.f || u > 1.f) break; *result = *cur; @@ -3088,9 +3089,9 @@ static int collision_sphere_to_verts(ParticleCollision *col, float radius, Parti float ct; int i; - for(i=0; i<3; i++) { + for (i=0; i<3; i++) { /* in case of quad, only check one vert the first time */ - if(pce->x[3] && i != 1) + if (pce->x[3] && i != 1) continue; cur = vert+i; @@ -3101,7 +3102,7 @@ static int collision_sphere_to_verts(ParticleCollision *col, float radius, Parti ct = collision_newton_rhapson(col, radius, cur, nr_distance_to_vert); - if(ct >= 0.f && ct < *t) { + if (ct >= 0.f && ct < *t) { *result = *cur; sub_v3_v3v3(result->nor, cur->p, cur->x0); @@ -3141,18 +3142,18 @@ void BKE_psys_collision_neartest_cb(void *userdata, int index, const BVHTreeRay pce.index = index; /* don't collide with same face again */ - if(col->hit == col->current && col->pce.index == index && col->pce.tot == 3) + if (col->hit == col->current && col->pce.index == index && col->pce.tot == 3) return; do { collision = collision_sphere_to_tri(col, ray->radius, &pce, &t); - if(col->pce.inside == 0) { + if (col->pce.inside == 0) { collision += collision_sphere_to_edges(col, ray->radius, &pce, &t); collision += collision_sphere_to_verts(col, ray->radius, &pce, &t); } - if(collision) { + if (collision) { hit->dist = col->original_ray_length * t; hit->index = index; @@ -3169,14 +3170,14 @@ void BKE_psys_collision_neartest_cb(void *userdata, int index, const BVHTreeRay pce.v[2] = pce.v[3]; pce.v[3] = NULL; - } while(pce.x[2]); + } while (pce.x[2]); } static int collision_detect(ParticleData *pa, ParticleCollision *col, BVHTreeRayHit *hit, ListBase *colliders) { ColliderCache *coll; float ray_dir[3]; - if(colliders->first == NULL) + if (colliders->first == NULL) return 0; sub_v3_v3v3(ray_dir, col->co2, col->co1); @@ -3186,16 +3187,16 @@ static int collision_detect(ParticleData *pa, ParticleCollision *col, BVHTreeRay /* even if particle is stationary we want to check for moving colliders */ /* if hit.dist is zero the bvhtree_ray_cast will just ignore everything */ - if(hit->dist == 0.0f) + if (hit->dist == 0.0f) hit->dist = col->original_ray_length = 0.000001f; - for(coll = colliders->first; coll; coll=coll->next) { + for (coll = colliders->first; coll; coll=coll->next) { /* for boids: don't check with current ground object */ - if(coll->ob == col->skip) + if (coll->ob == col->skip) continue; /* particles should not collide with emitter at birth */ - if(coll->ob == col->emitter && pa->time < col->cfra && pa->time >= col->old_cfra) + if (coll->ob == col->emitter && pa->time < col->cfra && pa->time >= col->old_cfra) continue; col->current = coll->ob; @@ -3203,7 +3204,7 @@ static int collision_detect(ParticleData *pa, ParticleCollision *col, BVHTreeRay col->fac1 = (col->old_cfra - coll->collmd->time_x) / (coll->collmd->time_xnew - coll->collmd->time_x); col->fac2 = (col->cfra - coll->collmd->time_x) / (coll->collmd->time_xnew - coll->collmd->time_x); - if(col->md && col->md->bvhtree) + if (col->md && col->md->bvhtree) BLI_bvhtree_ray_cast(col->md->bvhtree, col->co1, ray_dir, col->radius, hit, BKE_psys_collision_neartest_cb, col); } @@ -3224,7 +3225,7 @@ static int collision_response(ParticleData *pa, ParticleCollision *col, BVHTreeR interp_v3_v3v3(co, col->co1, col->co2, x); /* particle dies in collision */ - if(through == 0 && (kill || pd->flag & PDEFLE_KILL_PART)) { + if (through == 0 && (kill || pd->flag & PDEFLE_KILL_PART)) { pa->alive = PARS_DYING; pa->dietime = col->old_cfra + (col->cfra - col->old_cfra) * f; @@ -3265,9 +3266,9 @@ static int collision_response(ParticleData *pa, ParticleCollision *col, BVHTreeR madd_v3_v3v3fl(vc_tan, pce->vel, pce->nor, -vc_dot); /* handle friction effects (tangential and angular velocity) */ - if(frict > 0.0f) { + if (frict > 0.0f) { /* angular <-> linear velocity */ - if(dynamic_rotation) { + if (dynamic_rotation) { float vr_tan[3], v1_tan[3], ave[3]; /* linear velocity of particle surface */ @@ -3309,9 +3310,9 @@ static int collision_response(ParticleData *pa, ParticleCollision *col, BVHTreeR /* stickness was possibly added before, so cancel that before calculating new normal velocity */ /* otherwise particles go flying out of the surface because of high reversed sticky velocity */ - if(v0_dot < 0.0f) { + if (v0_dot < 0.0f) { v0_dot += pd->pdef_stickness; - if(v0_dot > 0.0f) + if (v0_dot > 0.0f) v0_dot = 0.0f; } @@ -3321,9 +3322,9 @@ static int collision_response(ParticleData *pa, ParticleCollision *col, BVHTreeR /* calculate normal particle velocity */ /* special case for object hitting the particle from behind */ - if(through==0 && ((vc_dot>0.0f && v0_dot>0.0f && vc_dot>v0_dot) || (vc_dot<0.0f && v0_dot<0.0f && vc_dot<v0_dot))) + if (through==0 && ((vc_dot>0.0f && v0_dot>0.0f && vc_dot>v0_dot) || (vc_dot<0.0f && v0_dot<0.0f && vc_dot<v0_dot))) mul_v3_v3fl(v0_nor, pce->nor, vc_dot); - else if(v0_dot > 0.f) + else if (v0_dot > 0.f) mul_v3_v3fl(v0_nor, pce->nor, vc_dot + (through ? -1.0f : 1.0f) * v0_dot); else mul_v3_v3fl(v0_nor, pce->nor, vc_dot + (through ? 1.0f : -1.0f) * v0_dot); @@ -3331,10 +3332,10 @@ static int collision_response(ParticleData *pa, ParticleCollision *col, BVHTreeR /* combine components together again */ add_v3_v3v3(v0, v0_nor, v0_tan); - if(col->boid) { + if (col->boid) { /* keep boids above ground */ BoidParticle *bpa = pa->boid; - if(bpa->data.mode == eBoidMode_OnLand || co[2] <= col->boid_z) { + if (bpa->data.mode == eBoidMode_OnLand || co[2] <= col->boid_z) { co[2] = col->boid_z; v0[2] = 0.0f; } @@ -3346,23 +3347,23 @@ static int collision_response(ParticleData *pa, ParticleCollision *col, BVHTreeR madd_v3_v3v3fl(pa->state.vel, v0, col->acc, dt2); /* make sure particle stays on the right side of the surface */ - if(!through) { + if (!through) { distance = collision_point_distance_with_normal(co, pce, -1.f, col, nor); - if(distance < col->radius + COLLISION_MIN_DISTANCE) + if (distance < col->radius + COLLISION_MIN_DISTANCE) madd_v3_v3fl(co, nor, col->radius + COLLISION_MIN_DISTANCE - distance); dot = dot_v3v3(nor, v0); - if(dot < 0.f) + if (dot < 0.f) madd_v3_v3fl(v0, nor, -dot); distance = collision_point_distance_with_normal(pa->state.co, pce, 1.f, col, nor); - if(distance < col->radius + COLLISION_MIN_DISTANCE) + if (distance < col->radius + COLLISION_MIN_DISTANCE) madd_v3_v3fl(pa->state.co, nor, col->radius + COLLISION_MIN_DISTANCE - distance); dot = dot_v3v3(nor, pa->state.vel); - if(dot < 0.f) + if (dot < 0.f) madd_v3_v3fl(pa->state.vel, nor, -dot); } @@ -3437,21 +3438,21 @@ static void collision_check(ParticleSimulationData *sim, int p, float dfra, floa col.radius = ((part->flag & PART_SIZE_DEFL) || (part->phystype == PART_PHYS_BOIDS)) ? pa->size : COLLISION_MIN_RADIUS; /* override for boids */ - if(part->phystype == PART_PHYS_BOIDS && part->boids->options & BOID_ALLOW_LAND) { + if (part->phystype == PART_PHYS_BOIDS && part->boids->options & BOID_ALLOW_LAND) { col.boid = 1; col.boid_z = pa->state.co[2]; col.skip = pa->boid->ground; } /* 10 iterations to catch multiple collisions */ - while(collision_count < COLLISION_MAX_COLLISIONS) { - if(collision_detect(pa, &col, &hit, sim->colliders)) { + while (collision_count < COLLISION_MAX_COLLISIONS) { + if (collision_detect(pa, &col, &hit, sim->colliders)) { collision_count++; - if(collision_count == COLLISION_MAX_COLLISIONS) + if (collision_count == COLLISION_MAX_COLLISIONS) collision_fail(pa, &col); - else if(collision_response(pa, &col, &hit, part->flag & PART_DIE_ON_COL, part->flag & PART_ROT_DYN)==0) + else if (collision_response(pa, &col, &hit, part->flag & PART_DIE_ON_COL, part->flag & PART_ROT_DYN)==0) return; } else @@ -3470,22 +3471,22 @@ static void psys_update_path_cache(ParticleSimulationData *sim, float cfra) Base *base; int distr=0, alloc=0, skip=0; - if((psys->part->childtype && psys->totchild != get_psys_tot_child(sim->scene, psys)) || psys->recalc&PSYS_RECALC_RESET) + if ((psys->part->childtype && psys->totchild != get_psys_tot_child(sim->scene, psys)) || psys->recalc&PSYS_RECALC_RESET) alloc=1; - if(alloc || psys->recalc&PSYS_RECALC_CHILD || (psys->vgroup[PSYS_VG_DENSITY] && (sim->ob && sim->ob->mode & OB_MODE_WEIGHT_PAINT))) + if (alloc || psys->recalc&PSYS_RECALC_CHILD || (psys->vgroup[PSYS_VG_DENSITY] && (sim->ob && sim->ob->mode & OB_MODE_WEIGHT_PAINT))) distr=1; - if(distr) { - if(alloc) + if (distr) { + if (alloc) realloc_particles(sim, sim->psys->totpart); - if(get_psys_tot_child(sim->scene, psys)) { + if (get_psys_tot_child(sim->scene, psys)) { /* don't generate children while computing the hair keys */ - if(!(psys->part->type == PART_HAIR) || (psys->flag & PSYS_HAIR_DONE)) { + if (!(psys->part->type == PART_HAIR) || (psys->flag & PSYS_HAIR_DONE)) { distribute_particles(sim, PART_FROM_CHILD); - if(part->childtype==PART_CHILD_FACES && part->parents != 0.0f) + if (part->childtype==PART_CHILD_FACES && part->parents != 0.0f) psys_find_parents(sim); } } @@ -3493,19 +3494,19 @@ static void psys_update_path_cache(ParticleSimulationData *sim, float cfra) psys_free_children(psys); } - if((part->type==PART_HAIR || psys->flag&PSYS_KEYED || psys->pointcache->flag & PTCACHE_BAKED)==0) + if ((part->type==PART_HAIR || psys->flag&PSYS_KEYED || psys->pointcache->flag & PTCACHE_BAKED)==0) skip = 1; /* only hair, keyed and baked stuff can have paths */ - else if(part->ren_as != PART_DRAW_PATH && !(part->type==PART_HAIR && ELEM(part->ren_as, PART_DRAW_OB, PART_DRAW_GR))) + else if (part->ren_as != PART_DRAW_PATH && !(part->type==PART_HAIR && ELEM(part->ren_as, PART_DRAW_OB, PART_DRAW_GR))) skip = 1; /* particle visualization must be set as path */ - else if(!psys->renderdata) { - if(part->draw_as != PART_DRAW_REND) + else if (!psys->renderdata) { + if (part->draw_as != PART_DRAW_REND) skip = 1; /* draw visualization */ - else if(psys->pointcache->flag & PTCACHE_BAKING) + else if (psys->pointcache->flag & PTCACHE_BAKING) skip = 1; /* no need to cache paths while baking dynamics */ - else if(psys_in_edit_mode(sim->scene, psys)) { - if((pset->flag & PE_DRAW_PART)==0) + else if (psys_in_edit_mode(sim->scene, psys)) { + if ((pset->flag & PE_DRAW_PART)==0) skip = 1; - else if(part->childtype==0 && (psys->flag & PSYS_HAIR_DYNAMICS && psys->pointcache->flag & PTCACHE_BAKED)==0) + else if (part->childtype==0 && (psys->flag & PSYS_HAIR_DYNAMICS && psys->pointcache->flag & PTCACHE_BAKED)==0) skip = 1; /* in edit mode paths are needed for child particles and dynamic hair */ } } @@ -3514,30 +3515,30 @@ static void psys_update_path_cache(ParticleSimulationData *sim, float cfra) /* particle instance modifier with "path" option need cached paths even if particle system doesn't */ for (base = sim->scene->base.first; base; base= base->next) { ModifierData *md = modifiers_findByType(base->object, eModifierType_ParticleInstance); - if(md) { + if (md) { ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *)md; - if(pimd->flag & eParticleInstanceFlag_Path && pimd->ob == sim->ob && pimd->psys == (psys - (ParticleSystem*)sim->ob->particlesystem.first)) { + if (pimd->flag & eParticleInstanceFlag_Path && pimd->ob == sim->ob && pimd->psys == (psys - (ParticleSystem*)sim->ob->particlesystem.first)) { skip = 0; break; } } } - if(!skip) { + if (!skip) { psys_cache_paths(sim, cfra); /* for render, child particle paths are computed on the fly */ - if(part->childtype) { - if(!psys->totchild) + if (part->childtype) { + if (!psys->totchild) skip = 1; - else if(psys->part->type == PART_HAIR && (psys->flag & PSYS_HAIR_DONE)==0) + else if (psys->part->type == PART_HAIR && (psys->flag & PSYS_HAIR_DONE)==0) skip = 1; - if(!skip) + if (!skip) psys_cache_child_paths(sim, cfra, 0); } } - else if(psys->pathcache) + else if (psys->pathcache) psys_free_path_cache(psys, NULL); } @@ -3556,7 +3557,7 @@ static void do_hair_dynamics(ParticleSimulationData *sim) float hairmat[4][4]; float (*deformedVerts)[3]; - if(!psys->clmd) { + if (!psys->clmd) { psys->clmd = (ClothModifierData*)modifier_new(eModifierType_Cloth); psys->clmd->sim_parms->goalspring = 0.0f; psys->clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_GOAL|CLOTH_SIMSETTINGS_FLAG_NO_SPRING_COMPRESS; @@ -3570,12 +3571,12 @@ static void do_hair_dynamics(ParticleSimulationData *sim) totedge = totpoint; totpoint += psys->totpart; - if(dm && (totpoint != dm->getNumVerts(dm) || totedge != dm->getNumEdges(dm))) { + if (dm && (totpoint != dm->getNumVerts(dm) || totedge != dm->getNumEdges(dm))) { dm->release(dm); dm = psys->hair_in_dm = NULL; } - if(!dm) { + if (!dm) { dm = psys->hair_in_dm = CDDM_new(totpoint, totedge, 0, 0, 0); DM_add_vert_layer(dm, CD_MDEFORMVERT, CD_CALLOC, NULL); } @@ -3589,15 +3590,15 @@ static void do_hair_dynamics(ParticleSimulationData *sim) /* make vgroup for pin roots etc.. */ psys->particles->hair_index = 1; LOOP_PARTICLES { - if(p) + if (p) pa->hair_index = (pa-1)->hair_index + (pa-1)->totkey + 1; psys_mat_hair_to_object(sim->ob, sim->psmd->dm, psys->part->from, pa, hairmat); - for(k=0, key=pa->hair; k<pa->totkey; k++,key++) { + for (k=0, key=pa->hair; k<pa->totkey; k++,key++) { /* create fake root before actual root to resist bending */ - if(k==0) { + if (k==0) { float temp[3]; sub_v3_v3v3(temp, key->co, (key+1)->co); copy_v3_v3(mvert->co, key->co); @@ -3609,8 +3610,8 @@ static void do_hair_dynamics(ParticleSimulationData *sim) medge->v2 = pa->hair_index; medge++; - if(dvert) { - if(!dvert->totweight) { + if (dvert) { + if (!dvert->totweight) { dvert->dw = MEM_callocN(sizeof(MDeformWeight), "deformWeight"); dvert->totweight = 1; } @@ -3624,14 +3625,14 @@ static void do_hair_dynamics(ParticleSimulationData *sim) mul_m4_v3(hairmat, mvert->co); mvert++; - if(k) { + if (k) { medge->v1 = pa->hair_index + k - 1; medge->v2 = pa->hair_index + k; medge++; } - if(dvert) { - if(!dvert->totweight) { + if (dvert) { + if (!dvert->totweight) { dvert->dw = MEM_callocN(sizeof(MDeformWeight), "deformWeight"); dvert->totweight = 1; } @@ -3642,7 +3643,7 @@ static void do_hair_dynamics(ParticleSimulationData *sim) } } - if(psys->hair_out_dm) + if (psys->hair_out_dm) psys->hair_out_dm->release(psys->hair_out_dm); psys->clmd->point_cache = psys->pointcache; @@ -3669,25 +3670,25 @@ static void hair_step(ParticleSimulationData *sim, float cfra) LOOP_PARTICLES { pa->size = part->size; - if(part->randsize > 0.0f) + if (part->randsize > 0.0f) pa->size *= 1.0f - part->randsize * PSYS_FRAND(p + 1); - if(PSYS_FRAND(p) > disp) + if (PSYS_FRAND(p) > disp) pa->flag |= PARS_NO_DISP; else pa->flag &= ~PARS_NO_DISP; } - if(psys->recalc & PSYS_RECALC_RESET) { + if (psys->recalc & PSYS_RECALC_RESET) { /* need this for changing subsurf levels */ psys_calc_dmcache(sim->ob, sim->psmd->dm, psys); - if(psys->clmd) + if (psys->clmd) cloth_free_modifier(psys->clmd); } /* dynamics with cloth simulation, psys->particles can be NULL with 0 particles [#25519] */ - if(psys->part->type==PART_HAIR && psys->flag & PSYS_HAIR_DYNAMICS && psys->particles) + if (psys->part->type==PART_HAIR && psys->flag & PSYS_HAIR_DYNAMICS && psys->particles) do_hair_dynamics(sim); /* following lines were removed r29079 but cause bug [#22811], see report for details */ @@ -3708,12 +3709,12 @@ static void save_hair(ParticleSimulationData *sim, float UNUSED(cfra)) psys->lattice= psys_get_lattice(sim); - if(psys->totpart==0) return; + if (psys->totpart==0) return; /* save new keys for elements if needed */ LOOP_PARTICLES { /* first time alloc */ - if(pa->totkey==0 || pa->hair==NULL) { + if (pa->totkey==0 || pa->hair==NULL) { pa->hair = MEM_callocN((psys->part->hair_step + 1) * sizeof(HairKey), "HairKeys"); pa->totkey = 0; } @@ -3725,7 +3726,7 @@ static void save_hair(ParticleSimulationData *sim, float UNUSED(cfra)) copy_v3_v3(key->co, pa->state.co); mul_m4_v3(ob->imat, key->co); - if(pa->totkey) { + if (pa->totkey) { sub_v3_v3(key->co, root->co); psys_vec_rot_to_face(sim->psmd->dm, pa, key->co); } @@ -3737,7 +3738,7 @@ static void save_hair(ParticleSimulationData *sim, float UNUSED(cfra)) pa->totkey++; /* root is always in the origin of hair space so we set it to be so after the last key is saved*/ - if(pa->totkey == psys->part->hair_step + 1) + if (pa->totkey == psys->part->hair_step + 1) root->co[0] = root->co[1] = root->co[2] = 0.0f; } } @@ -3806,11 +3807,11 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) timestep = psys_get_timestep(sim); dtime= dfra*timestep; - if(dfra < 0.0f) { + if (dfra < 0.0f) { LOOP_EXISTING_PARTICLES { psys_get_texture(sim, pa, &ptex, PAMAP_SIZE, cfra); pa->size = part->size*ptex.size; - if(part->randsize > 0.0f) + if (part->randsize > 0.0f) pa->size *= 1.0f - part->randsize * PSYS_FRAND(p + 1); reset_particle(sim, pa, dtime, cfra); @@ -3822,7 +3823,7 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) psys_update_effectors(sim); - if(part->type != PART_HAIR) + if (part->type != PART_HAIR) sim->colliders = get_collider_cache(sim->scene, sim->ob, NULL); /* initialize physics type specific stuff */ @@ -3840,8 +3841,8 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) boids_precalc_rules(part, cfra); - for(; pt; pt=pt->next) { - if(pt->ob) + for (; pt; pt=pt->next) { + if (pt->ob) psys_update_particle_tree(BLI_findlink(&pt->ob->particlesystem, pt->psys-1), cfra); } break; @@ -3851,8 +3852,8 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) ParticleTarget *pt = psys->targets.first; psys_update_particle_bvhtree(psys, cfra); - for(; pt; pt=pt->next) { /* Updating others systems particle tree for fluid-fluid interaction */ - if(pt->ob) + for (; pt; pt=pt->next) { /* Updating others systems particle tree for fluid-fluid interaction */ + if (pt->ob) psys_update_particle_bvhtree(BLI_findlink(&pt->ob->particlesystem, pt->psys-1), cfra); } break; @@ -3865,7 +3866,7 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) psys_get_texture(sim, pa, &ptex, PAMAP_SIZE, cfra); pa->size = part->size*ptex.size; - if(part->randsize > 0.0f) + if (part->randsize > 0.0f) pa->size *= 1.0f - part->randsize * PSYS_FRAND(p + 1); birthtime = pa->time; @@ -3874,29 +3875,29 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) /* store this, so we can do multiple loops over particles */ pa->state.time = dfra; - if(dietime <= cfra && psys->cfra < dietime) { + if (dietime <= cfra && psys->cfra < dietime) { /* particle dies some time between this and last step */ pa->state.time = dietime - ((birthtime > psys->cfra) ? birthtime : psys->cfra); pa->alive = PARS_DYING; } - else if(birthtime <= cfra && birthtime >= psys->cfra) { + else if (birthtime <= cfra && birthtime >= psys->cfra) { /* particle is born some time between this and last step*/ reset_particle(sim, pa, dfra*timestep, cfra); pa->alive = PARS_ALIVE; pa->state.time = cfra - birthtime; } - else if(dietime < cfra) { + else if (dietime < cfra) { /* nothing to be done when particle is dead */ } /* only reset unborn particles if they're shown or if the particle is born soon*/ - if(pa->alive==PARS_UNBORN + if (pa->alive==PARS_UNBORN && (part->flag & PART_UNBORN || cfra + psys->pointcache->step > pa->time)) reset_particle(sim, pa, dtime, cfra); - else if(part->phystype == PART_PHYS_NO) + else if (part->phystype == PART_PHYS_NO) reset_particle(sim, pa, dtime, cfra); - if(ELEM(pa->alive, PARS_ALIVE, PARS_DYING)==0 || (pa->flag & (PARS_UNEXIST|PARS_NO_DISP))) + if (ELEM(pa->alive, PARS_ALIVE, PARS_DYING)==0 || (pa->flag & (PARS_UNEXIST|PARS_NO_DISP))) pa->state.time = -1.f; } @@ -3908,7 +3909,7 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) basic_integrate(sim, p, pa->state.time, cfra); /* deflection */ - if(sim->colliders) + if (sim->colliders) collision_check(sim, p, pa->state.time, cfra); /* rotations */ @@ -3923,11 +3924,11 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) boid_brain(&bbd, p, pa); - if(pa->alive != PARS_DYING) { + if (pa->alive != PARS_DYING) { boid_body(&bbd, pa); /* deflection */ - if(sim->colliders) + if (sim->colliders) collision_check(sim, p, pa->state.time, cfra); } } @@ -3946,7 +3947,7 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) /* actual fluids calculations */ sph_integrate(sim, pa, pa->state.time, &sphdata); - if(sim->colliders) + if (sim->colliders) collision_check(sim, p, pa->state.time, cfra); /* SPH particles are not physical particles, just interpolation @@ -3967,7 +3968,7 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) /* finalize particle state and time after dynamics */ LOOP_DYNAMIC_PARTICLES { - if(pa->alive == PARS_DYING) { + if (pa->alive == PARS_DYING) { pa->alive=PARS_DEAD; pa->state.time=pa->dietime; } @@ -3979,11 +3980,11 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) } static void update_children(ParticleSimulationData *sim) { - if((sim->psys->part->type == PART_HAIR) && (sim->psys->flag & PSYS_HAIR_DONE)==0) + if ((sim->psys->part->type == PART_HAIR) && (sim->psys->flag & PSYS_HAIR_DONE)==0) /* don't generate children while growing hair - waste of time */ psys_free_children(sim->psys); - else if(sim->psys->part->childtype) { - if(sim->psys->totchild != get_psys_tot_child(sim->scene, sim->psys)) + else if (sim->psys->part->childtype) { + if (sim->psys->totchild != get_psys_tot_child(sim->scene, sim->psys)) distribute_particles(sim, PART_FROM_CHILD); else { /* Children are up to date, nothing to do. */ @@ -4008,7 +4009,7 @@ static void cached_step(ParticleSimulationData *sim, float cfra) LOOP_PARTICLES { psys_get_texture(sim, pa, &ptex, PAMAP_SIZE, cfra); pa->size = part->size*ptex.size; - if(part->randsize > 0.0f) + if (part->randsize > 0.0f) pa->size *= 1.0f - part->randsize * PSYS_FRAND(p + 1); psys->lattice= psys_get_lattice(sim); @@ -4016,22 +4017,22 @@ static void cached_step(ParticleSimulationData *sim, float cfra) dietime = pa->dietime; /* update alive status and push events */ - if(pa->time > cfra) { + if (pa->time > cfra) { pa->alive = PARS_UNBORN; - if(part->flag & PART_UNBORN && (psys->pointcache->flag & PTCACHE_EXTERNAL) == 0) + if (part->flag & PART_UNBORN && (psys->pointcache->flag & PTCACHE_EXTERNAL) == 0) reset_particle(sim, pa, 0.0f, cfra); } - else if(dietime <= cfra) + else if (dietime <= cfra) pa->alive = PARS_DEAD; else pa->alive = PARS_ALIVE; - if(psys->lattice) { + if (psys->lattice) { end_latt_deform(psys->lattice); psys->lattice= NULL; } - if(PSYS_FRAND(p) > disp) + if (PSYS_FRAND(p) > disp) pa->flag |= PARS_NO_DISP; else pa->flag &= ~PARS_NO_DISP; @@ -4041,7 +4042,7 @@ static void cached_step(ParticleSimulationData *sim, float cfra) static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra)) { ParticleSystem *psys = sim->psys; - if(psys->particles) { + if (psys->particles) { MEM_freeN(psys->particles); psys->particles = 0; psys->totpart = 0; @@ -4052,7 +4053,7 @@ static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra)) { FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(sim->ob, eModifierType_Fluidsim); - if( fluidmd && fluidmd->fss) { + if ( fluidmd && fluidmd->fss) { FluidsimSettings *fss= fluidmd->fss; ParticleSettings *part = psys->part; ParticleData *pa=NULL; @@ -4063,7 +4064,7 @@ static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra)) int readMask, activeParts = 0, fileParts = 0; gzFile gzf; -// XXX if(ob==G.obedit) // off... +// XXX if (ob==G.obedit) // off... // return; // ok, start loading @@ -4093,24 +4094,24 @@ static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra)) // set up reading mask readMask = fss->typeFlags; - for(p=0, pa=psys->particles; p<totpart; p++, pa++) { + for (p=0, pa=psys->particles; p<totpart; p++, pa++) { int ptype=0; gzread(gzf, &ptype, sizeof( ptype )); - if(ptype&readMask) { + if (ptype&readMask) { activeParts++; gzread(gzf, &(pa->size), sizeof( float )); pa->size /= 10.0f; - for(j=0; j<3; j++) { + for (j=0; j<3; j++) { float wrf; gzread(gzf, &wrf, sizeof( wrf )); pa->state.co[j] = wrf; //fprintf(stderr,"Rj%d ",j); } - for(j=0; j<3; j++) { + for (j=0; j<3; j++) { float wrf; gzread(gzf, &wrf, sizeof( wrf )); pa->state.vel[j] = wrf; @@ -4125,9 +4126,10 @@ static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra)) pa->lifetime = sim->scene->r.efra; pa->alive = PARS_ALIVE; //if(a<25) fprintf(stderr,"FSPARTICLE debug set %s , a%d = %f,%f,%f , life=%f \n", filename, a, pa->co[0],pa->co[1],pa->co[2], pa->lifetime ); - } else { + } + else { // skip... - for(j=0; j<2*3+1; j++) { + for (j=0; j<2*3+1; j++) { float wrf; gzread(gzf, &wrf, sizeof( wrf )); } } @@ -4151,7 +4153,7 @@ static int emit_particles(ParticleSimulationData *sim, PTCacheID *pid, float UNU int oldtotpart = psys->totpart; int totpart = tot_particles(psys, pid); - if(totpart != oldtotpart) + if (totpart != oldtotpart) realloc_particles(sim, totpart); return totpart - oldtotpart; @@ -4174,11 +4176,11 @@ static void system_step(ParticleSimulationData *sim, float cfra) int startframe = 0, endframe = 100, oldtotpart = 0; /* cache shouldn't be used for hair or "continue physics" */ - if(part->type != PART_HAIR && BKE_ptcache_get_continue_physics() == 0) { + if (part->type != PART_HAIR && BKE_ptcache_get_continue_physics() == 0) { psys_clear_temp_pointcache(psys); /* set suitable cache range automatically */ - if((cache->flag & (PTCACHE_BAKING|PTCACHE_BAKED))==0) + if ((cache->flag & (PTCACHE_BAKING|PTCACHE_BAKED))==0) psys_get_pointcache_start_end(sim->scene, psys, &cache->startframe, &cache->endframe); pid = &ptcacheid; @@ -4187,7 +4189,7 @@ static void system_step(ParticleSimulationData *sim, float cfra) BKE_ptcache_id_time(pid, sim->scene, 0.0f, &startframe, &endframe, NULL); /* clear everythin on start frame */ - if(cfra == startframe) { + if (cfra == startframe) { BKE_ptcache_id_reset(sim->scene, pid, PTCACHE_RESET_OUTDATED); BKE_ptcache_validate(cache, startframe); cache->flag &= ~PTCACHE_REDO_NEEDED; @@ -4198,7 +4200,7 @@ static void system_step(ParticleSimulationData *sim, float cfra) /* 1. emit particles and redo particles if needed */ oldtotpart = psys->totpart; - if(emit_particles(sim, pid, cfra) || psys->recalc & PSYS_RECALC_RESET) { + if (emit_particles(sim, pid, cfra) || psys->recalc & PSYS_RECALC_RESET) { distribute_particles(sim, part->from); initialize_all_particles(sim); /* reset only just created particles (on startframe all particles are recreated) */ @@ -4218,33 +4220,33 @@ static void system_step(ParticleSimulationData *sim, float cfra) } /* 2. try to read from the cache */ - if(pid) { + if (pid) { int cache_result = BKE_ptcache_read(pid, cache_cfra); - if(ELEM(cache_result, PTCACHE_READ_EXACT, PTCACHE_READ_INTERPOLATED)) { + if (ELEM(cache_result, PTCACHE_READ_EXACT, PTCACHE_READ_INTERPOLATED)) { cached_step(sim, cfra); update_children(sim); psys_update_path_cache(sim, cfra); BKE_ptcache_validate(cache, (int)cache_cfra); - if(cache_result == PTCACHE_READ_INTERPOLATED && cache->flag & PTCACHE_REDO_NEEDED) + if (cache_result == PTCACHE_READ_INTERPOLATED && cache->flag & PTCACHE_REDO_NEEDED) BKE_ptcache_write(pid, (int)cache_cfra); return; } /* Cache is supposed to be baked, but no data was found so bail out */ - else if(cache->flag & PTCACHE_BAKED) { + else if (cache->flag & PTCACHE_BAKED) { psys_reset(psys, PSYS_RESET_CACHE_MISS); return; } - else if(cache_result == PTCACHE_READ_OLD) { + else if (cache_result == PTCACHE_READ_OLD) { psys->cfra = (float)cache->simframe; cached_step(sim, psys->cfra); } /* if on second frame, write cache for first frame */ - if(psys->cfra == startframe && (cache->flag & PTCACHE_OUTDATED || cache->last_exact==0)) + if (psys->cfra == startframe && (cache->flag & PTCACHE_OUTDATED || cache->last_exact==0)) BKE_ptcache_write(pid, startframe); } else @@ -4255,33 +4257,35 @@ static void system_step(ParticleSimulationData *sim, float cfra) disp= (float)psys_get_current_display_percentage(psys)/100.0f; LOOP_PARTICLES { - if(PSYS_FRAND(p) > disp) + if (PSYS_FRAND(p) > disp) pa->flag |= PARS_NO_DISP; else pa->flag &= ~PARS_NO_DISP; } - if(psys->totpart) { + if (psys->totpart) { int dframe, totframesback = 0; float t_frac, dt_frac; /* handle negative frame start at the first frame by doing * all the steps before the first frame */ - if((int)cfra == startframe && part->sta < startframe) + if ((int)cfra == startframe && part->sta < startframe) totframesback = (startframe - (int)part->sta); if (!(part->time_flag & PART_TIME_AUTOSF)) { /* Constant time step */ psys->dt_frac = 1.0f / (float) (part->subframes + 1); - } else if ((int)cfra == startframe) { + } + else if ((int)cfra == startframe) { /* Variable time step; use a very conservative value at the start. * If it doesn't need to be so small, it will quickly grow. */ psys->dt_frac = 1.0; - } else if (psys->dt_frac < MIN_TIMESTEP) { + } + else if (psys->dt_frac < MIN_TIMESTEP) { psys->dt_frac = MIN_TIMESTEP; } - for(dframe=-totframesback; dframe<=0; dframe++) { + for (dframe=-totframesback; dframe<=0; dframe++) { /* simulate each subframe */ dt_frac = psys->dt_frac; for (t_frac = dt_frac; t_frac <= 1.0f; t_frac += dt_frac) { @@ -4298,16 +4302,16 @@ static void system_step(ParticleSimulationData *sim, float cfra) } /* 4. only write cache starting from second frame */ - if(pid) { + if (pid) { BKE_ptcache_validate(cache, (int)cache_cfra); - if((int)cache_cfra != startframe) + if ((int)cache_cfra != startframe) BKE_ptcache_write(pid, (int)cache_cfra); } update_children(sim); /* cleanup */ - if(psys->lattice) { + if (psys->lattice) { end_latt_deform(psys->lattice); psys->lattice= NULL; } @@ -4321,17 +4325,17 @@ static void psys_changed_type(ParticleSimulationData *sim) BKE_ptcache_id_from_particles(&pid, sim->ob, sim->psys); - if(part->phystype != PART_PHYS_KEYED) + if (part->phystype != PART_PHYS_KEYED) sim->psys->flag &= ~PSYS_KEYED; - if(part->type == PART_HAIR) { - if(ELEM4(part->ren_as, PART_DRAW_NOT, PART_DRAW_PATH, PART_DRAW_OB, PART_DRAW_GR)==0) + if (part->type == PART_HAIR) { + if (ELEM4(part->ren_as, PART_DRAW_NOT, PART_DRAW_PATH, PART_DRAW_OB, PART_DRAW_GR)==0) part->ren_as = PART_DRAW_PATH; - if(part->distr == PART_DISTR_GRID) + if (part->distr == PART_DISTR_GRID) part->distr = PART_DISTR_JIT; - if(ELEM3(part->draw_as, PART_DRAW_NOT, PART_DRAW_REND, PART_DRAW_PATH)==0) + if (ELEM3(part->draw_as, PART_DRAW_NOT, PART_DRAW_REND, PART_DRAW_PATH)==0) part->draw_as = PART_DRAW_REND; CLAMP(part->path_start, 0.0f, 100.0f); @@ -4355,18 +4359,18 @@ void psys_check_boid_data(ParticleSystem *psys) pa = psys->particles; - if(!pa) + if (!pa) return; - if(psys->part && psys->part->phystype==PART_PHYS_BOIDS) { - if(!pa->boid) { + if (psys->part && psys->part->phystype==PART_PHYS_BOIDS) { + if (!pa->boid) { bpa = MEM_callocN(psys->totpart * sizeof(BoidParticle), "Boid Data"); LOOP_PARTICLES pa->boid = bpa++; } } - else if(pa->boid) { + else if (pa->boid) { MEM_freeN(pa->boid); LOOP_PARTICLES pa->boid = NULL; @@ -4395,7 +4399,7 @@ static void psys_prepare_physics(ParticleSimulationData *sim) { ParticleSettings *part = sim->psys->part; - if(ELEM(part->phystype, PART_PHYS_NO, PART_PHYS_KEYED)) { + if (ELEM(part->phystype, PART_PHYS_NO, PART_PHYS_KEYED)) { PTCacheID pid; BKE_ptcache_id_from_particles(&pid, sim->ob, sim->psys); BKE_ptcache_id_clear(&pid, PTCACHE_CLEAR_ALL, 0); @@ -4405,7 +4409,7 @@ static void psys_prepare_physics(ParticleSimulationData *sim) sim->psys->flag &= ~PSYS_KEYED; } - if(part->phystype == PART_PHYS_BOIDS && part->boids == NULL) { + if (part->phystype == PART_PHYS_BOIDS && part->boids == NULL) { BoidState *state; part->boids = MEM_callocN(sizeof(BoidSettings), "Boid Settings"); @@ -4420,7 +4424,7 @@ static void psys_prepare_physics(ParticleSimulationData *sim) state->flag |= BOIDSTATE_CURRENT; BLI_addtail(&part->boids->states, state); } - else if(part->phystype == PART_PHYS_FLUID && part->fluid == NULL) { + else if (part->phystype == PART_PHYS_FLUID && part->fluid == NULL) { part->fluid = MEM_callocN(sizeof(SPHFluidSettings), "SPH Fluid Settings"); fluid_default_settings(part); } @@ -4429,7 +4433,7 @@ static void psys_prepare_physics(ParticleSimulationData *sim) } static int hair_needs_recalc(ParticleSystem *psys) { - if(!(psys->flag & PSYS_EDITED) && (!psys->edit || !psys->edit->edited) && + if (!(psys->flag & PSYS_EDITED) && (!psys->edit || !psys->edit->edited) && ((psys->flag & PSYS_HAIR_DONE)==0 || psys->recalc & PSYS_RECALC_RESET || (psys->part->flag & PART_HAIR_REGROW && !psys->edit))) { return 1; } @@ -4446,9 +4450,9 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) float cfra; /* drawdata is outdated after ANY change */ - if(psys->pdd) psys->pdd->flag &= ~PARTICLE_DRAW_DATA_UPDATED; + if (psys->pdd) psys->pdd->flag &= ~PARTICLE_DRAW_DATA_UPDATED; - if(!psys_check_enabled(ob, psys)) + if (!psys_check_enabled(ob, psys)) return; cfra= BKE_curframe(scene); @@ -4459,14 +4463,14 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) sim.psmd= psys_get_modifier(ob, psys); /* system was already updated from modifier stack */ - if(sim.psmd->flag & eParticleSystemFlag_psys_updated) { + if (sim.psmd->flag & eParticleSystemFlag_psys_updated) { sim.psmd->flag &= ~eParticleSystemFlag_psys_updated; /* make sure it really was updated to cfra */ - if(psys->cfra == cfra) + if (psys->cfra == cfra) return; } - if(!sim.psmd->dm) + if (!sim.psmd->dm) return; if (part->from != PART_FROM_VERT) { @@ -4479,10 +4483,10 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) /* to verify if we need to restore object afterwards */ psys->flag &= ~PSYS_OB_ANIM_RESTORE; - if(psys->recalc & PSYS_RECALC_TYPE) + if (psys->recalc & PSYS_RECALC_TYPE) psys_changed_type(&sim); - if(psys->recalc & PSYS_RECALC_RESET) + if (psys->recalc & PSYS_RECALC_RESET) psys->totunexist = 0; /* setup necessary physics type dependent additional data if it doesn't yet exist */ @@ -4492,19 +4496,19 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) case PART_HAIR: { /* nothing to do so bail out early */ - if(psys->totpart == 0 && part->totpart == 0) { + if (psys->totpart == 0 && part->totpart == 0) { psys_free_path_cache(psys, NULL); free_hair(ob, psys, 0); psys->flag |= PSYS_HAIR_DONE; } /* (re-)create hair */ - else if(hair_needs_recalc(psys)) { + else if (hair_needs_recalc(psys)) { float hcfra=0.0f; int i, recalc = psys->recalc; free_hair(ob, psys, 0); - if(psys->edit && psys->free_edit) { + if (psys->edit && psys->free_edit) { psys->free_edit(psys->edit); psys->edit = NULL; psys->free_edit = NULL; @@ -4513,9 +4517,9 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) /* first step is negative so particles get killed and reset */ psys->cfra= 1.0f; - for(i=0; i<=part->hair_step; i++) { + for (i=0; i<=part->hair_step; i++) { hcfra=100.0f*(float)i/(float)psys->part->hair_step; - if((part->flag & PART_HAIR_REGROW)==0) + if ((part->flag & PART_HAIR_REGROW)==0) BKE_animsys_evaluate_animdata(scene, &part->id, part->adt, hcfra, ADT_RECALC_ANIM); system_step(&sim, hcfra); psys->cfra = hcfra; @@ -4526,10 +4530,10 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) psys->flag |= PSYS_HAIR_DONE; psys->recalc = recalc; } - else if(psys->flag & PSYS_EDITED) + else if (psys->flag & PSYS_EDITED) psys->flag |= PSYS_HAIR_DONE; - if(psys->flag & PSYS_HAIR_DONE) + if (psys->flag & PSYS_HAIR_DONE) hair_step(&sim, cfra); break; } @@ -4548,10 +4552,10 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) float disp = (float)psys_get_current_display_percentage(psys)/100.0f; /* Particles without dynamics haven't been reset yet because they don't use pointcache */ - if(psys->recalc & PSYS_RECALC_RESET) + if (psys->recalc & PSYS_RECALC_RESET) psys_reset(psys, PSYS_RESET_ALL); - if(emit_particles(&sim, NULL, cfra) || (psys->recalc & PSYS_RECALC_RESET)) { + if (emit_particles(&sim, NULL, cfra) || (psys->recalc & PSYS_RECALC_RESET)) { free_keyed_keys(psys); distribute_particles(&sim, part->from); initialize_all_particles(&sim); @@ -4562,18 +4566,18 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) LOOP_EXISTING_PARTICLES { pa->size = part->size; - if(part->randsize > 0.0f) + if (part->randsize > 0.0f) pa->size *= 1.0f - part->randsize * PSYS_FRAND(p + 1); reset_particle(&sim, pa, 0.0, cfra); - if(PSYS_FRAND(p) > disp) + if (PSYS_FRAND(p) > disp) pa->flag |= PARS_NO_DISP; else pa->flag &= ~PARS_NO_DISP; } - if(part->phystype == PART_PHYS_KEYED) { + if (part->phystype == PART_PHYS_KEYED) { psys_count_keyed_targets(&sim); set_keyed_keys(&sim); psys_update_path_cache(&sim,(int)cfra); @@ -4592,8 +4596,8 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) } /* make sure emitter is left at correct time (particle emission can change this) */ - if(psys->flag & PSYS_OB_ANIM_RESTORE) { - while(ob) { + if (psys->flag & PSYS_OB_ANIM_RESTORE) { + while (ob) { BKE_animsys_evaluate_animdata(scene, &ob->id, ob->adt, cfra, ADT_RECALC_ANIM); ob = ob->parent; } @@ -4607,7 +4611,7 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) psys->recalc = 0; /* save matrix for duplicators, at rendertime the actual dupliobject's matrix is used so don't update! */ - if(psys->renderdata==0) + if (psys->renderdata==0) invert_m4_m4(psys->imat, ob->obmat); } |