Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/sculpt_paint/sculpt.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
| Show First 20 Lines • Show All 622 Lines • ▼ Show 20 Lines | static bool sculpt_vertex_is_boundary(SculptSession *ss, const int index) | ||||
| switch (BKE_pbvh_type(ss->pbvh)) { | switch (BKE_pbvh_type(ss->pbvh)) { | ||||
| case PBVH_FACES: { | case PBVH_FACES: { | ||||
| const MeshElemMap *vert_map = &ss->pmap[index]; | const MeshElemMap *vert_map = &ss->pmap[index]; | ||||
| if (vert_map->count <= 1) { | if (vert_map->count <= 1) { | ||||
| return false; | return false; | ||||
| } | } | ||||
| if (!SCULPT_vertex_all_face_sets_visible_get(ss, index)) { | |||||
| return false; | |||||
| } | |||||
| for (int i = 0; i < vert_map->count; i++) { | for (int i = 0; i < vert_map->count; i++) { | ||||
| const MPoly *p = &ss->mpoly[vert_map->indices[i]]; | const MPoly *p = &ss->mpoly[vert_map->indices[i]]; | ||||
| unsigned f_adj_v[2]; | unsigned f_adj_v[2]; | ||||
| if (poly_get_adj_loops_from_vert(p, ss->mloop, index, f_adj_v) != -1) { | if (poly_get_adj_loops_from_vert(p, ss->mloop, index, f_adj_v) != -1) { | ||||
| int j; | int j; | ||||
| for (j = 0; j < ARRAY_SIZE(f_adj_v); j += 1) { | for (j = 0; j < ARRAY_SIZE(f_adj_v); j += 1) { | ||||
| if (!(vert_map->count != 2 || ss->pmap[f_adj_v[j]].count <= 2)) { | if (!(vert_map->count != 2 || ss->pmap[f_adj_v[j]].count <= 2)) { | ||||
| return false; | return false; | ||||
| ▲ Show 20 Lines • Show All 10,507 Lines • Show Last 20 Lines | |||||