diff options
-rw-r--r-- | .clang-format | 2 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt.c | 81 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt_cloth.c | 5 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt_intern.h | 10 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt_pose.c | 10 |
5 files changed, 47 insertions, 61 deletions
diff --git a/.clang-format b/.clang-format index f48449cf33c..56740fd1036 100644 --- a/.clang-format +++ b/.clang-format @@ -248,6 +248,8 @@ ForEachMacros: - RNA_PROP_BEGIN - RNA_STRUCT_BEGIN - RNA_STRUCT_BEGIN_SKIP_RNA_TYPE + - SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN + - SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN - SEQP_BEGIN - SEQ_BEGIN - foreach diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index c7b15d0c096..2f8ed929a1b 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -857,8 +857,7 @@ void SCULPT_floodfill_execute( int from_v; BLI_gsqueue_pop(flood->queue, &from_v); SculptVertexNeighborIter ni; - sculpt_vertex_duplicates_and_neighbors_iter_begin(ss, from_v, ni) - { + SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN (ss, from_v, ni) { const int to_v = ni.index; if (flood->visited_vertices[to_v] == 0 && SCULPT_vertex_visible_get(ss, to_v)) { flood->visited_vertices[to_v] = 1; @@ -868,7 +867,7 @@ void SCULPT_floodfill_execute( } } } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); } } @@ -1683,13 +1682,12 @@ static float *sculpt_boundary_edges_automasking_init(Object *ob, for (int i = 0; i < totvert; i++) { if (edge_distance[i] == EDGE_DISTANCE_INF) { SculptVertexNeighborIter ni; - sculpt_vertex_neighbors_iter_begin(ss, i, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, i, ni) { if (edge_distance[ni.index] == propagation_it) { edge_distance[i] = propagation_it + 1; } } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); } } } @@ -2866,12 +2864,11 @@ static void SCULPT_neighbor_coords_average(SculptSession *ss, float result[3], i int total = 0; SculptVertexNeighborIter ni; - sculpt_vertex_neighbors_iter_begin(ss, index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, index, ni) { add_v3_v3(avg, SCULPT_vertex_co_get(ss, ni.index)); total++; } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); if (total > 0) { mul_v3_v3fl(result, avg, 1.0f / (float)total); @@ -2887,12 +2884,11 @@ static float grids_neighbor_average_mask(SculptSession *ss, int index) int total = 0; SculptVertexNeighborIter ni; - sculpt_vertex_neighbors_iter_begin(ss, index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, index, ni) { avg += SCULPT_vertex_mask_get(ss, ni.index); total++; } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); if (total > 0) { return avg / (float)total; @@ -3289,12 +3285,11 @@ static void surface_smooth_displace_step(SculptSession *ss, float b_current_vertex[3]; int total = 0; SculptVertexNeighborIter ni; - sculpt_vertex_neighbors_iter_begin(ss, v_index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, v_index, ni) { add_v3_v3(b_avg, laplacian_disp[ni.index]); total++; } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); if (total > 0) { mul_v3_v3fl(b_current_vertex, b_avg, (1.0f - beta) / (float)total); madd_v3_v3fl(b_current_vertex, laplacian_disp[v_index], beta); @@ -3786,8 +3781,7 @@ static void do_topology_slide_task_cb_ex(void *__restrict userdata, normalize_v3_v3(current_disp_norm, current_disp); mul_v3_v3fl(current_disp, current_disp_norm, ss->cache->bstrength); SculptVertexNeighborIter ni; - sculpt_vertex_neighbors_iter_begin(ss, vd.index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, vd.index, ni) { float vertex_disp[3]; float vertex_disp_norm[3]; sub_v3_v3v3(vertex_disp, SCULPT_vertex_co_get(ss, ni.index), vd.co); @@ -3796,7 +3790,7 @@ static void do_topology_slide_task_cb_ex(void *__restrict userdata, madd_v3_v3fl(final_disp, vertex_disp_norm, dot_v3v3(current_disp, vertex_disp)); } } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); mul_v3_v3fl(proxy[vd.i], final_disp, fade); @@ -3820,15 +3814,14 @@ void SCULPT_relax_vertex(SculptSession *ss, zero_v3(smooth_pos); SculptVertexNeighborIter ni; - sculpt_vertex_neighbors_iter_begin(ss, vd->index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, vd->index, ni) { if (!filter_boundary_face_sets || (filter_boundary_face_sets && !sculpt_vertex_has_unique_face_set(ss, ni.index))) { add_v3_v3(smooth_pos, SCULPT_vertex_co_get(ss, ni.index)); count++; } } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); if (count > 0) { mul_v3_fl(smooth_pos, 1.0f / (float)count); @@ -5770,10 +5763,10 @@ static void do_clay_thumb_brush_task_cb_ex(void *__restrict userdata, static float sculpt_clay_thumb_get_stabilized_pressure(StrokeCache *cache) { float final_pressure = 0.0f; - for (int i = 0; i < CLAY_STABILIZER_LEN; i++) { + for (int i = 0; i < SCULPT_CLAY_STABILIZER_LEN; i++) { final_pressure += cache->clay_pressure_stabilizer[i]; } - return final_pressure / (float)CLAY_STABILIZER_LEN; + return final_pressure / (float)SCULPT_CLAY_STABILIZER_LEN; } static void do_clay_thumb_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) @@ -7248,7 +7241,7 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, Object *ob, Po /* Clay stabilized pressure. */ if (brush->sculpt_tool == SCULPT_TOOL_CLAY_THUMB) { if (ss->cache->first_time) { - for (int i = 0; i < CLAY_STABILIZER_LEN; i++) { + for (int i = 0; i < SCULPT_CLAY_STABILIZER_LEN; i++) { ss->cache->clay_pressure_stabilizer[i] = 0.0f; } ss->cache->clay_pressure_stabilizer_index = 0; @@ -7256,7 +7249,7 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, Object *ob, Po else { cache->clay_pressure_stabilizer[cache->clay_pressure_stabilizer_index] = cache->pressure; cache->clay_pressure_stabilizer_index += 1; - if (cache->clay_pressure_stabilizer_index >= CLAY_STABILIZER_LEN) { + if (cache->clay_pressure_stabilizer_index >= SCULPT_CLAY_STABILIZER_LEN) { cache->clay_pressure_stabilizer_index = 0; } } @@ -9029,12 +9022,11 @@ static void sample_detail_voxel(bContext *C, ViewContext *vc, int mx, int my) float edge_length = 0.0f; int tot = 0; SculptVertexNeighborIter ni; - sculpt_vertex_neighbors_iter_begin(ss, active_vertex, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, active_vertex, ni) { edge_length += len_v3v3(active_vertex_co, SCULPT_vertex_co_get(ss, ni.index)); tot += 1; } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); if (tot > 0) { mesh->remesh_voxel_size = edge_length / (float)tot; } @@ -9385,10 +9377,10 @@ static EnumPropertyItem prop_mesh_filter_deform_axis_items[] = { static bool sculpt_mesh_filter_needs_pmap(int filter_type, bool use_face_sets) { return use_face_sets || ELEM(filter_type, - MESH_FILTER_SMOOTH, - MESH_FILTER_RELAX, - MESH_FILTER_RELAX_FACE_SETS, - MESH_FILTER_SURFACE_SMOOTH); + MESH_FILTER_SMOOTH, + MESH_FILTER_RELAX, + MESH_FILTER_RELAX_FACE_SETS, + MESH_FILTER_SURFACE_SMOOTH); } static void mesh_filter_task_cb(void *__restrict userdata, @@ -9865,26 +9857,24 @@ static void mask_filter_task_cb(void *__restrict userdata, } case MASK_FILTER_GROW: max = 0.0f; - sculpt_vertex_neighbors_iter_begin(ss, vd.index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, vd.index, ni) { float vmask_f = data->prev_mask[ni.index]; if (vmask_f > max) { max = vmask_f; } } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); *vd.mask = max; break; case MASK_FILTER_SHRINK: min = 1.0f; - sculpt_vertex_neighbors_iter_begin(ss, vd.index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, vd.index, ni) { float vmask_f = data->prev_mask[ni.index]; if (vmask_f < min) { min = vmask_f; } } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); *vd.mask = min; break; case MASK_FILTER_CONTRAST_INCREASE: @@ -10035,15 +10025,14 @@ static float neighbor_dirty_mask(SculptSession *ss, PBVHVertexIter *vd) zero_v3(avg); SculptVertexNeighborIter ni; - sculpt_vertex_neighbors_iter_begin(ss, vd->index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, vd->index, ni) { float normalized[3]; sub_v3_v3v3(normalized, SCULPT_vertex_co_get(ss, ni.index), vd->co); normalize_v3(normalized); add_v3_v3(avg, normalized); total++; } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); if (total > 0) { mul_v3_fl(avg, 1.0f / total); @@ -10592,11 +10581,10 @@ static int sculpt_mask_expand_invoke(bContext *C, wmOperator *op, const wmEvent for (int i = 0; i < vertex_count; i++) { float avg = 0.0f; SculptVertexNeighborIter ni; - sculpt_vertex_neighbors_iter_begin(ss, i, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, i, ni) { avg += ss->filter_cache->normal_factor[ni.index]; } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); ss->filter_cache->normal_factor[i] = avg / ni.size; } } @@ -10721,8 +10709,7 @@ void SCULPT_geometry_preview_lines_update(bContext *C, SculptSession *ss, float int from_v; BLI_gsqueue_pop(not_visited_vertices, &from_v); SculptVertexNeighborIter ni; - sculpt_vertex_neighbors_iter_begin(ss, from_v, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, from_v, ni) { if (totpoints + (ni.size * 2) < max_preview_vertices) { int to_v = ni.index; ss->preview_vert_index_list[totpoints] = from_v; @@ -10738,7 +10725,7 @@ void SCULPT_geometry_preview_lines_update(bContext *C, SculptSession *ss, float } } } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); } BLI_gsqueue_free(not_visited_vertices); diff --git a/source/blender/editors/sculpt_paint/sculpt_cloth.c b/source/blender/editors/sculpt_paint/sculpt_cloth.c index 12aaf756cf3..b1cc6d02bbb 100644 --- a/source/blender/editors/sculpt_paint/sculpt_cloth.c +++ b/source/blender/editors/sculpt_paint/sculpt_cloth.c @@ -145,12 +145,11 @@ static void do_cloth_brush_build_constraints_task_cb_ex( int tot_indices = 0; build_indices[tot_indices] = vd.index; tot_indices++; - sculpt_vertex_neighbors_iter_begin(ss, vd.index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, vd.index, ni) { build_indices[tot_indices] = ni.index; tot_indices++; } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); /* As we don't know the order of the neighbor vertices, we create all possible combinations * between the neighbor and the original vertex as length constraints. */ diff --git a/source/blender/editors/sculpt_paint/sculpt_intern.h b/source/blender/editors/sculpt_paint/sculpt_intern.h index d8e29d0e773..1c22b4e40c1 100644 --- a/source/blender/editors/sculpt_paint/sculpt_intern.h +++ b/source/blender/editors/sculpt_paint/sculpt_intern.h @@ -102,7 +102,7 @@ void SCULPT_vertex_neighbors_get(struct SculptSession *ss, SculptVertexNeighborIter *iter); /* Iterator over neighboring vertices. */ -#define sculpt_vertex_neighbors_iter_begin(ss, v_index, neighbor_iterator) \ +#define SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN(ss, v_index, neighbor_iterator) \ SCULPT_vertex_neighbors_get(ss, v_index, false, &neighbor_iterator); \ for (neighbor_iterator.i = 0; neighbor_iterator.i < neighbor_iterator.size; \ neighbor_iterator.i++) { \ @@ -110,7 +110,7 @@ void SCULPT_vertex_neighbors_get(struct SculptSession *ss, /* Iterate over neighboring and duplicate vertices (for PBVH_GRIDS). Duplicates come * first since they are nearest for floodfill. */ -#define sculpt_vertex_duplicates_and_neighbors_iter_begin(ss, v_index, neighbor_iterator) \ +#define SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN(ss, v_index, neighbor_iterator) \ SCULPT_vertex_neighbors_get(ss, v_index, true, &neighbor_iterator); \ for (neighbor_iterator.i = neighbor_iterator.size - 1; neighbor_iterator.i >= 0; \ neighbor_iterator.i--) { \ @@ -118,7 +118,7 @@ void SCULPT_vertex_neighbors_get(struct SculptSession *ss, neighbor_iterator.is_duplicate = (ni.i >= \ neighbor_iterator.size - neighbor_iterator.num_duplicates); -#define sculpt_vertex_neighbors_iter_end(neighbor_iterator) \ +#define SCULPT_VERTEX_NEIGHBORS_ITER_END(neighbor_iterator) \ } \ if (neighbor_iterator.neighbors != neighbor_iterator.neighbors_fixed) { \ MEM_freeN(neighbor_iterator.neighbors); \ @@ -517,7 +517,7 @@ bool SCULPT_pbvh_calc_area_normal(const struct Brush *brush, * For descriptions of these settings, check the operator properties. */ -#define CLAY_STABILIZER_LEN 10 +#define SCULPT_CLAY_STABILIZER_LEN 10 typedef struct StrokeCache { /* Invariants */ @@ -608,7 +608,7 @@ typedef struct StrokeCache { /* Angle of the front tilting plane of the brush to simulate clay accumulation. */ float clay_thumb_front_angle; /* Stores pressure samples to get an stabilized strength and radius variation. */ - float clay_pressure_stabilizer[CLAY_STABILIZER_LEN]; + float clay_pressure_stabilizer[SCULPT_CLAY_STABILIZER_LEN]; int clay_pressure_stabilizer_index; /* Cloth brush */ diff --git a/source/blender/editors/sculpt_paint/sculpt_pose.c b/source/blender/editors/sculpt_paint/sculpt_pose.c index f1c884f9897..8b842c07e79 100644 --- a/source/blender/editors/sculpt_paint/sculpt_pose.c +++ b/source/blender/editors/sculpt_paint/sculpt_pose.c @@ -209,12 +209,11 @@ static void pose_brush_grow_factor_task_cb_ex(void *__restrict userdata, float max = 0.0f; /* Grow the factor. */ - sculpt_vertex_neighbors_iter_begin(ss, vd.index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, vd.index, ni) { float vmask_f = data->prev_mask[ni.index]; max = MAX2(vmask_f, max); } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); /* Keep the count of the vertices that where added to the factors in this grow iteration. */ if (max > data->prev_mask[vd.index]) { @@ -442,12 +441,11 @@ static void pose_brush_init_task_cb_ex(void *__restrict userdata, SculptVertexNeighborIter ni; float avg = 0.0f; int total = 0; - sculpt_vertex_neighbors_iter_begin(ss, vd.index, ni) - { + SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (ss, vd.index, ni) { avg += data->pose_factor[ni.index]; total++; } - sculpt_vertex_neighbors_iter_end(ni); + SCULPT_VERTEX_NEIGHBORS_ITER_END(ni); if (total > 0) { data->pose_factor[vd.index] = avg / total; |