[Bf-blender-cvs] [c0e853d7f32] refactor-mesh-position-generic: Merge branch 'master' into refactor-mesh-position-generic
Hans Goudey
noreply at git.blender.org
Mon Jan 9 16:30:01 CET 2023
Commit: c0e853d7f32150f8adf4e769b9b9683b20f1dbe0
Author: Hans Goudey
Date: Fri Jan 6 11:43:45 2023 -0500
Branches: refactor-mesh-position-generic
https://developer.blender.org/rBc0e853d7f32150f8adf4e769b9b9683b20f1dbe0
Merge branch 'master' into refactor-mesh-position-generic
===================================================================
===================================================================
diff --cc source/blender/blenkernel/intern/collision.c
index 312a19ef5dc,095666e7eac..9ff9ec08816
--- a/source/blender/blenkernel/intern/collision.c
+++ b/source/blender/blenkernel/intern/collision.c
@@@ -708,18 -697,10 +697,10 @@@ static int cloth_collision_response_sta
w3);
}
- collision_compute_barycentric(collpair->pb,
- collmd->current_xnew[collpair->bp1],
- collmd->current_xnew[collpair->bp2],
- collmd->current_xnew[collpair->bp3],
- &u1,
- &u2,
- &u3);
-
collision_interpolateOnTriangle(v2,
- collmd->current_v[collpair->bp1].co,
- collmd->current_v[collpair->bp2].co,
- collmd->current_v[collpair->bp3].co,
+ collmd->current_v[collpair->bp1],
+ collmd->current_v[collpair->bp2],
+ collmd->current_v[collpair->bp3],
u1,
u2,
u3);
@@@ -1053,6 -1020,23 +1020,23 @@@ static void cloth_collision(void *__res
collpair[index].flag = 0;
data->collided = true;
+
+ /* Compute barycentric coordinates for both collision points. */
+ collision_compute_barycentric(pa,
+ verts1[tri_a->tri[0]].tx,
+ verts1[tri_a->tri[1]].tx,
+ verts1[tri_a->tri[2]].tx,
+ &collpair[index].aw1,
+ &collpair[index].aw2,
+ &collpair[index].aw3);
+
+ collision_compute_barycentric(pb,
- collmd->current_xnew[tri_b->tri[0]].co,
- collmd->current_xnew[tri_b->tri[1]].co,
- collmd->current_xnew[tri_b->tri[2]].co,
++ collmd->current_xnew[tri_b->tri[0]],
++ collmd->current_xnew[tri_b->tri[1]],
++ collmd->current_xnew[tri_b->tri[2]],
+ &collpair[index].bw1,
+ &collpair[index].bw2,
+ &collpair[index].bw3);
}
else {
collpair[index].flag = COLLISION_INACTIVE;
@@@ -1217,6 -1218,20 +1218,20 @@@ static void hair_collision(void *__rest
collpair[index].flag = 0;
data->collided = true;
+
+ /* Compute barycentric coordinates for the collision points. */
+ collpair[index].aw2 = line_point_factor_v3(
+ pa, verts1[edge_coll->v1].tx, verts1[edge_coll->v2].tx);
+
+ collpair[index].aw1 = 1.0f - collpair[index].aw2;
+
+ collision_compute_barycentric(pb,
- collmd->current_xnew[tri_coll->tri[0]].co,
- collmd->current_xnew[tri_coll->tri[1]].co,
- collmd->current_xnew[tri_coll->tri[2]].co,
++ collmd->current_xnew[tri_coll->tri[0]],
++ collmd->current_xnew[tri_coll->tri[1]],
++ collmd->current_xnew[tri_coll->tri[2]],
+ &collpair[index].bw1,
+ &collpair[index].bw2,
+ &collpair[index].bw3);
}
else {
collpair[index].flag = COLLISION_INACTIVE;
More information about the Bf-blender-cvs
mailing list