diff options
author | Hans Goudey <h.goudey@me.com> | 2022-09-13 08:15:40 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2022-09-13 08:15:40 +0300 |
commit | ade37d8380728a8f40f05c971585f91325c8ad69 (patch) | |
tree | 510b73a6039441a75ae6d5c830dd2cfef9bec06e /source/blender/blenkernel/intern/particle_system.c | |
parent | 2edb69f8a600847f195b88deceea5e980ecb61a7 (diff) |
Convert many more uses of MVert
Diffstat (limited to 'source/blender/blenkernel/intern/particle_system.c')
-rw-r--r-- | source/blender/blenkernel/intern/particle_system.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 55e71af7c60..1f1a3a6c9ec 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -2781,18 +2781,18 @@ void BKE_psys_collision_neartest_cb(void *userdata, ParticleCollision *col = (ParticleCollision *)userdata; ParticleCollisionElement pce; const MVertTri *vt = &col->md->tri[index]; - MVert *x = col->md->x; - MVert *v = col->md->current_v; + float(*x)[3] = col->md->x; + float(*v)[3] = col->md->current_v; float t = hit->dist / col->original_ray_length; int collision = 0; - pce.x[0] = x[vt->tri[0]].co; - pce.x[1] = x[vt->tri[1]].co; - pce.x[2] = x[vt->tri[2]].co; + pce.x[0] = x[vt->tri[0]]; + pce.x[1] = x[vt->tri[1]]; + pce.x[2] = x[vt->tri[2]]; - pce.v[0] = v[vt->tri[0]].co; - pce.v[1] = v[vt->tri[1]].co; - pce.v[2] = v[vt->tri[2]].co; + pce.v[0] = v[vt->tri[0]]; + pce.v[1] = v[vt->tri[1]]; + pce.v[2] = v[vt->tri[2]]; pce.tot = 3; pce.inside = 0; @@ -3309,7 +3309,6 @@ static void hair_create_input_mesh(ParticleSimulationData *sim, ParticleSystem *psys = sim->psys; ParticleSettings *part = psys->part; Mesh *mesh; - MVert *mvert; MEdge *medge; MDeformVert *dvert; HairKey *key; @@ -3323,7 +3322,7 @@ static void hair_create_input_mesh(ParticleSimulationData *sim, if (!mesh) { *r_mesh = mesh = BKE_mesh_new_nomain(totpoint, totedge, 0, 0, 0); } - mvert = BKE_mesh_positions_for_write(mesh); + float(*positions)[3] = BKE_mesh_positions_for_write(mesh); medge = BKE_mesh_edges_for_write(mesh); dvert = BKE_mesh_deform_verts_for_write(mesh); @@ -3347,6 +3346,8 @@ static void hair_create_input_mesh(ParticleSimulationData *sim, psys->clmd->sim_parms->vgroup_mass = 1; + int vert_index = 0; + /* XXX placeholder for more flexible future hair settings */ hair_radius = part->size; @@ -3385,16 +3386,16 @@ static void hair_create_input_mesh(ParticleSimulationData *sim, hair->radius = hair_radius; hair->bending_stiffness = bending_stiffness; - add_v3_v3v3(mvert->co, co, co); - sub_v3_v3(mvert->co, co_next); - mul_m4_v3(hairmat, mvert->co); + add_v3_v3v3(positions[vert_index], co, co); + sub_v3_v3(positions[vert_index], co_next); + mul_m4_v3(hairmat, positions[vert_index]); medge->v1 = pa->hair_index - 1; medge->v2 = pa->hair_index; dvert = hair_set_pinning(dvert, 1.0f); - mvert++; + vert_index++; medge++; } @@ -3406,8 +3407,8 @@ static void hair_create_input_mesh(ParticleSimulationData *sim, hair->radius = hair_radius; hair->bending_stiffness = bending_stiffness; - copy_v3_v3(mvert->co, co); - mul_m4_v3(hairmat, mvert->co); + copy_v3_v3(positions[vert_index], co); + mul_m4_v3(hairmat, positions[vert_index]); if (k) { medge->v1 = pa->hair_index + k - 1; @@ -3422,7 +3423,7 @@ static void hair_create_input_mesh(ParticleSimulationData *sim, dvert = hair_set_pinning(dvert, 1.0f); } - mvert++; + vert_index++; if (k) { medge++; } |