Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/sculpt_paint/sculpt_face_set.c
| Show First 20 Lines • Show All 94 Lines • ▼ Show 20 Lines | if (BKE_pbvh_type(ss->pbvh) == PBVH_FACES) { | ||||
| MeshElemMap *vert_map = &ss->pmap[vd.index]; | MeshElemMap *vert_map = &ss->pmap[vd.index]; | ||||
| for (int j = 0; j < ss->pmap[vd.index].count; j++) { | for (int j = 0; j < ss->pmap[vd.index].count; j++) { | ||||
| const MPoly *p = &ss->mpoly[vert_map->indices[j]]; | const MPoly *p = &ss->mpoly[vert_map->indices[j]]; | ||||
| float poly_center[3]; | float poly_center[3]; | ||||
| BKE_mesh_calc_poly_center(p, &ss->mloop[p->loopstart], ss->mvert, poly_center); | BKE_mesh_calc_poly_center(p, &ss->mloop[p->loopstart], ss->mvert, poly_center); | ||||
| if (sculpt_brush_test_sq_fn(&test, poly_center)) { | if (sculpt_brush_test_sq_fn(&test, poly_center)) { | ||||
| const float fade = bstrength * SCULPT_brush_strength_factor(ss, | const float fade = SCULPT_brush_strength_factor(ss, | ||||
| brush, | brush, | ||||
| vd.co, | vd.co, | ||||
| sqrtf(test.dist), | sqrtf(test.dist), | ||||
| vd.no, | vd.no, | ||||
| vd.fno, | vd.fno, | ||||
| vd.mask ? *vd.mask : 0.0f, | vd.mask ? *vd.mask : 0.0f, | ||||
| vd.index, | vd.index, | ||||
| thread_id); | thread_id); | ||||
| if (fade > 0.05f && ss->face_sets[vert_map->indices[j]] > 0) { | if (fade > 0.05f && ss->face_sets[vert_map->indices[j]] > 0) { | ||||
| ss->face_sets[vert_map->indices[j]] = abs(ss->cache->paint_face_set); | ss->face_sets[vert_map->indices[j]] = abs(ss->cache->paint_face_set); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| else if (BKE_pbvh_type(ss->pbvh) == PBVH_GRIDS) { | else if (BKE_pbvh_type(ss->pbvh) == PBVH_GRIDS) { | ||||
| { | { | ||||
| if (sculpt_brush_test_sq_fn(&test, vd.co)) { | if (sculpt_brush_test_sq_fn(&test, vd.co)) { | ||||
| const float fade = bstrength * SCULPT_brush_strength_factor(ss, | const float fade = SCULPT_brush_strength_factor(ss, | ||||
| brush, | brush, | ||||
| vd.co, | vd.co, | ||||
| sqrtf(test.dist), | sqrtf(test.dist), | ||||
| vd.no, | vd.no, | ||||
| vd.fno, | vd.fno, | ||||
| vd.mask ? *vd.mask : 0.0f, | vd.mask ? *vd.mask : 0.0f, | ||||
| vd.index, | vd.index, | ||||
| thread_id); | thread_id); | ||||
| if (fade > 0.05f) { | if (fade > 0.05f) { | ||||
| SCULPT_vertex_face_set_set(ss, vd.index, ss->cache->paint_face_set); | SCULPT_vertex_face_set_set(ss, vd.index, ss->cache->paint_face_set); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| Show All 22 Lines | static void do_relax_face_sets_brush_task_cb_ex(void *__restrict userdata, | ||||
| } | } | ||||
| const int thread_id = BLI_task_parallel_thread_id(tls); | const int thread_id = BLI_task_parallel_thread_id(tls); | ||||
| BKE_pbvh_vertex_iter_begin(ss->pbvh, data->nodes[n], vd, PBVH_ITER_UNIQUE) | BKE_pbvh_vertex_iter_begin(ss->pbvh, data->nodes[n], vd, PBVH_ITER_UNIQUE) | ||||
| { | { | ||||
| if (sculpt_brush_test_sq_fn(&test, vd.co)) { | if (sculpt_brush_test_sq_fn(&test, vd.co)) { | ||||
| if (relax_face_sets != SCULPT_vertex_has_unique_face_set(ss, vd.index)) { | if (relax_face_sets != SCULPT_vertex_has_unique_face_set(ss, vd.index)) { | ||||
| const float fade = bstrength * SCULPT_brush_strength_factor(ss, | float fade = bstrength * SCULPT_brush_strength_factor(ss, | ||||
| brush, | brush, | ||||
| vd.co, | vd.co, | ||||
| sqrtf(test.dist), | sqrtf(test.dist), | ||||
| vd.no, | vd.no, | ||||
| vd.fno, | vd.fno, | ||||
| vd.mask ? *vd.mask : 0.0f, | vd.mask ? *vd.mask : 0.0f, | ||||
| vd.index, | vd.index, | ||||
| thread_id); | thread_id); | ||||
| SCULPT_relax_vertex(ss, &vd, fade * bstrength, relax_face_sets, vd.co); | CLAMP(fade, 0.0f, 1.0f); | ||||
| SCULPT_relax_vertex(ss, &vd, fade, relax_face_sets, vd.co); | |||||
| if (vd.mvert) { | if (vd.mvert) { | ||||
| vd.mvert->flag |= ME_VERT_PBVH_UPDATE; | vd.mvert->flag |= ME_VERT_PBVH_UPDATE; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| BKE_pbvh_vertex_iter_end; | BKE_pbvh_vertex_iter_end; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 792 Lines • Show Last 20 Lines | |||||