Fix T102336: dynamic topology crash
Ensure there is always an active vertex when a face is hit. Differential Revision: https://developer.blender.org/D16705
This commit is contained in:
parent
87582d95df
commit
31ccf79011
Notes:
blender-bot
2023-02-14 00:37:17 +01:00
Referenced by issue #102336, Regression: Enabling Dynamic Topology Causes Crash on Plane Mesh
|
@ -1527,8 +1527,8 @@ bool pbvh_bmesh_node_raycast(PBVHNode *node,
|
|||
float location[3] = {0.0f};
|
||||
madd_v3_v3v3fl(location, ray_start, ray_normal, *depth);
|
||||
for (int j = 0; j < 3; j++) {
|
||||
if (len_squared_v3v3(location, cos[j]) <
|
||||
len_squared_v3v3(location, nearest_vertex_co)) {
|
||||
if (j == 0 || len_squared_v3v3(location, cos[j]) <
|
||||
len_squared_v3v3(location, nearest_vertex_co)) {
|
||||
copy_v3_v3(nearest_vertex_co, cos[j]);
|
||||
r_active_vertex->i = (intptr_t)node->bm_orvert[node->bm_ortri[i][j]];
|
||||
}
|
||||
|
@ -1559,8 +1559,8 @@ bool pbvh_bmesh_node_raycast(PBVHNode *node,
|
|||
float location[3] = {0.0f};
|
||||
madd_v3_v3v3fl(location, ray_start, ray_normal, *depth);
|
||||
for (int j = 0; j < 3; j++) {
|
||||
if (len_squared_v3v3(location, v_tri[j]->co) <
|
||||
len_squared_v3v3(location, nearest_vertex_co)) {
|
||||
if (j == 0 || len_squared_v3v3(location, v_tri[j]->co) <
|
||||
len_squared_v3v3(location, nearest_vertex_co)) {
|
||||
copy_v3_v3(nearest_vertex_co, v_tri[j]->co);
|
||||
r_active_vertex->i = (intptr_t)v_tri[j];
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue