Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/sculpt_paint/sculpt_filter_mesh.c
| Show First 20 Lines • Show All 405 Lines • ▼ Show 20 Lines | |||||
| static void mesh_filter_sharpen_accumulate_displacement(SculptSession *ss) | static void mesh_filter_sharpen_accumulate_displacement(SculptSession *ss) | ||||
| { | { | ||||
| const int totvert = SCULPT_vertex_count_get(ss); | const int totvert = SCULPT_vertex_count_get(ss); | ||||
| for (int i = 0; i < totvert; i++) { | for (int i = 0; i < totvert; i++) { | ||||
| zero_v3(ss->filter_cache->accum_disp[i]); | zero_v3(ss->filter_cache->accum_disp[i]); | ||||
| } | } | ||||
| for (int i = 0; i < totvert; i++) { | for (int i = 0; i < totvert; i++) { | ||||
| if (SCULPT_vertex_is_duplicate(ss, i)) { | |||||
| continue; | |||||
| } | |||||
| SculptVertexNeighborIter ni; | SculptVertexNeighborIter ni; | ||||
| SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, i, ni) { | SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN (ss, i, ni) { | ||||
| float disp_n[3]; | float disp_n[3]; | ||||
| sub_v3_v3v3(disp_n, SCULPT_vertex_co_get(ss, i), SCULPT_vertex_co_get(ss, ni.index)); | sub_v3_v3v3(disp_n, SCULPT_vertex_co_get(ss, i), SCULPT_vertex_co_get(ss, ni.index)); | ||||
| mul_v3_fl(disp_n, ss->filter_cache->sharpen_factor[i]); | mul_v3_fl(disp_n, ss->filter_cache->sharpen_factor[i]); | ||||
| add_v3_v3(ss->filter_cache->accum_disp[ni.index], disp_n); | add_v3_v3(ss->filter_cache->accum_disp[ni.index], disp_n); | ||||
| } | } | ||||
| SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); | SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 250 Lines • Show Last 20 Lines | |||||