diff --git a/source/blender/editors/sculpt_paint/paint_hide.cc b/source/blender/editors/sculpt_paint/paint_hide.cc index f9091e8a253..04d6629dd51 100644 --- a/source/blender/editors/sculpt_paint/paint_hide.cc +++ b/source/blender/editors/sculpt_paint/paint_hide.cc @@ -79,7 +79,7 @@ void sync_all_from_faces(Object &object) SculptSession &ss = *object.sculpt; Mesh &mesh = *static_cast(object.data); - SCULPT_topology_islands_invalidate(ss); + islands::invalidate(ss); switch (ss.pbvh->type()) { case bke::pbvh::Type::Mesh: { @@ -536,7 +536,7 @@ static int hide_show_all_exec(bContext *C, wmOperator *op) /* End undo. */ undo::push_end(ob); - SCULPT_topology_islands_invalidate(*ob.sculpt); + islands::invalidate(*ob.sculpt); tag_update_visibility(*C); return OPERATOR_FINISHED; @@ -652,7 +652,7 @@ static int hide_show_masked_exec(bContext *C, wmOperator *op) /* End undo. */ undo::push_end(ob); - SCULPT_topology_islands_invalidate(*ob.sculpt); + islands::invalidate(*ob.sculpt); tag_update_visibility(*C); return OPERATOR_FINISHED; @@ -802,7 +802,7 @@ static int visibility_invert_exec(bContext *C, wmOperator *op) undo::push_end(object); - SCULPT_topology_islands_invalidate(*object.sculpt); + islands::invalidate(*object.sculpt); tag_update_visibility(*C); return OPERATOR_FINISHED; @@ -1148,7 +1148,7 @@ static int visibility_filter_exec(bContext *C, wmOperator *op) } undo::push_end(object); - SCULPT_topology_islands_invalidate(*object.sculpt); + islands::invalidate(*object.sculpt); tag_update_visibility(*C); return OPERATOR_FINISHED; @@ -1305,7 +1305,7 @@ static void hide_show_apply_for_symmetry_pass(bContext &C, gesture::GestureData } static void hide_show_end(bContext &C, gesture::GestureData &gesture_data) { - SCULPT_topology_islands_invalidate(*gesture_data.vc.obact->sculpt); + islands::invalidate(*gesture_data.vc.obact->sculpt); tag_update_visibility(C); undo::push_end(*gesture_data.vc.obact); } diff --git a/source/blender/editors/sculpt_paint/sculpt.cc b/source/blender/editors/sculpt_paint/sculpt.cc index 51eddebda28..287ff1dae1a 100644 --- a/source/blender/editors/sculpt_paint/sculpt.cc +++ b/source/blender/editors/sculpt_paint/sculpt.cc @@ -6259,7 +6259,7 @@ static void do_fake_neighbor_search_task(SculptSession &ss, { PBVHVertexIter vd; BKE_pbvh_vertex_iter_begin (*ss.pbvh, node, vd, PBVH_ITER_UNIQUE) { - int vd_topology_id = SCULPT_vertex_island_get(ss, vd.vertex); + int vd_topology_id = islands::vert_id_get(ss, vd.vertex); if (vd_topology_id != nvtd->current_topology_id && ss.fake_neighbors.fake_neighbor_index[vd.index] == FAKE_NEIGHBOR_NONE) { @@ -6294,7 +6294,7 @@ static PBVHVertRef fake_neighbor_search(Object &ob, const PBVHVertRef vertex, fl NearestVertexFakeNeighborData nvtd; nvtd.nearest_vertex.i = -1; nvtd.nearest_vertex_distance_sq = FLT_MAX; - nvtd.current_topology_id = SCULPT_vertex_island_get(ss, vertex); + nvtd.current_topology_id = islands::vert_id_get(ss, vertex); nvtd = threading::parallel_reduce( nodes.index_range(), @@ -6370,7 +6370,7 @@ void SCULPT_fake_neighbors_ensure(Object &ob, const float max_dist) return; } - SCULPT_topology_islands_ensure(ob); + islands::ensure_cache(ob); fake_neighbor_init(ss, max_dist); for (int i = 0; i < totvert; i++) { @@ -6477,7 +6477,9 @@ void SCULPT_stroke_id_ensure(Object &ob) } } -int SCULPT_vertex_island_get(const SculptSession &ss, PBVHVertRef vertex) +namespace blender::ed::sculpt_paint::islands { + +int vert_id_get(const SculptSession &ss, PBVHVertRef vertex) { if (ss.attrs.topology_island_key) { return *static_cast(SCULPT_vertex_attr_get(vertex, ss.attrs.topology_island_key)); @@ -6486,15 +6488,13 @@ int SCULPT_vertex_island_get(const SculptSession &ss, PBVHVertRef vertex) return -1; } -void SCULPT_topology_islands_invalidate(SculptSession &ss) +void invalidate(SculptSession &ss) { ss.islands_valid = false; } -void SCULPT_topology_islands_ensure(Object &ob) +void ensure_cache(Object &ob) { - using namespace blender; - using namespace blender::ed::sculpt_paint; SculptSession &ss = *ob.sculpt; if (ss.attrs.topology_island_key && ss.islands_valid && @@ -6551,6 +6551,8 @@ void SCULPT_topology_islands_ensure(Object &ob) ss.islands_valid = true; } +} // namespace blender::ed::sculpt_paint::islands + void SCULPT_cube_tip_init(const Sculpt & /*sd*/, const Object &ob, const Brush &brush, diff --git a/source/blender/editors/sculpt_paint/sculpt_automasking.cc b/source/blender/editors/sculpt_paint/sculpt_automasking.cc index cea8ef9d8ef..36ab890b5a0 100644 --- a/source/blender/editors/sculpt_paint/sculpt_automasking.cc +++ b/source/blender/editors/sculpt_paint/sculpt_automasking.cc @@ -550,7 +550,7 @@ float factor_get(const Cache *automasking, if (!automasking->settings.topology_use_brush_limit && automasking->settings.flags & BRUSH_AUTOMASKING_TOPOLOGY && - SCULPT_vertex_island_get(ss, vert) != automasking->settings.initial_island_nr) + islands::vert_id_get(ss, vert) != automasking->settings.initial_island_nr) { return 0.0f; } @@ -956,8 +956,8 @@ std::unique_ptr cache_init(const Sculpt &sd, const Brush *brush, Object & int mode = calc_effective_bits(sd, brush); if (mode & BRUSH_AUTOMASKING_TOPOLOGY && ss.active_vertex.i != PBVH_REF_NONE) { - SCULPT_topology_islands_ensure(ob); - automasking->settings.initial_island_nr = SCULPT_vertex_island_get(ss, ss.active_vertex); + islands::ensure_cache(ob); + automasking->settings.initial_island_nr = islands::vert_id_get(ss, ss.active_vertex); } bool use_stroke_id = false; diff --git a/source/blender/editors/sculpt_paint/sculpt_expand.cc b/source/blender/editors/sculpt_paint/sculpt_expand.cc index 971845c04cc..3cc2d5abf56 100644 --- a/source/blender/editors/sculpt_paint/sculpt_expand.cc +++ b/source/blender/editors/sculpt_paint/sculpt_expand.cc @@ -132,7 +132,7 @@ static bool is_vert_in_active_component(const SculptSession &ss, const PBVHVertRef v) { for (int i = 0; i < EXPAND_SYMM_AREAS; i++) { - if (SCULPT_vertex_island_get(ss, v) == expand_cache->active_connected_islands[i]) { + if (islands::vert_id_get(ss, v) == expand_cache->active_connected_islands[i]) { return true; } } @@ -422,7 +422,7 @@ static void check_topology_islands(Object &ob, FalloffType falloff_type) FalloffType::Normals); if (ss.expand_cache->check_islands) { - SCULPT_topology_islands_ensure(ob); + islands::ensure_cache(ob); } } @@ -1765,8 +1765,7 @@ static void find_active_connected_components_from_vert(Object &ob, const PBVHVertRef symm_vertex = get_vert_index_for_symmetry_pass(ob, symm_it, initial_vertex); - expand_cache->active_connected_islands[int(symm_it)] = SCULPT_vertex_island_get(ss, - symm_vertex); + expand_cache->active_connected_islands[int(symm_it)] = islands::vert_id_get(ss, symm_vertex); } } @@ -1842,7 +1841,7 @@ static void move_propagation_origin(bContext *C, static void ensure_sculptsession_data(Object &ob) { SculptSession &ss = *ob.sculpt; - SCULPT_topology_islands_ensure(ob); + islands::ensure_cache(ob); SCULPT_vertex_random_access_ensure(ss); boundary::ensure_boundary_info(ob); if (!ss.tex_pool) { diff --git a/source/blender/editors/sculpt_paint/sculpt_face_set.cc b/source/blender/editors/sculpt_paint/sculpt_face_set.cc index 9d121e10c87..d1b2be901b1 100644 --- a/source/blender/editors/sculpt_paint/sculpt_face_set.cc +++ b/source/blender/editors/sculpt_paint/sculpt_face_set.cc @@ -900,7 +900,7 @@ static int change_visibility_exec(bContext *C, wmOperator *op) bke::pbvh::update_visibility(*ss.pbvh); BKE_sculpt_hide_poly_pointer_update(object); - SCULPT_topology_islands_invalidate(*object.sculpt); + islands::invalidate(*object.sculpt); hide::tag_update_visibility(*C); return OPERATOR_FINISHED; diff --git a/source/blender/editors/sculpt_paint/sculpt_intern.hh b/source/blender/editors/sculpt_paint/sculpt_intern.hh index cdc54988e27..c6925eb9e8c 100644 --- a/source/blender/editors/sculpt_paint/sculpt_intern.hh +++ b/source/blender/editors/sculpt_paint/sculpt_intern.hh @@ -2222,17 +2222,18 @@ void ensure_valid_pivot(const Object &ob, Scene &scene); * Uses the `ss->topology_island_key` attribute. */ -/* Ensures vertex island keys exist and are valid. */ -void SCULPT_topology_islands_ensure(Object &ob); +namespace blender::ed::sculpt_paint::islands { -/** - * Mark vertex island keys as invalid. - * Call when adding or hiding geometry. - */ -void SCULPT_topology_islands_invalidate(SculptSession &ss); +/* Ensure vertex island keys exist and are valid. */ +void ensure_cache(Object &object); + +/** Mark vertex island keys as invalid. Call when adding or hiding geometry. */ +void invalidate(SculptSession &ss); /** Get vertex island key. */ -int SCULPT_vertex_island_get(const SculptSession &ss, PBVHVertRef vertex); +int vert_id_get(const SculptSession &ss, PBVHVertRef vert); + +} /** \} */ diff --git a/source/blender/editors/sculpt_paint/sculpt_mask_init.cc b/source/blender/editors/sculpt_paint/sculpt_mask_init.cc index 37d0cb28861..328854c8d29 100644 --- a/source/blender/editors/sculpt_paint/sculpt_mask_init.cc +++ b/source/blender/editors/sculpt_paint/sculpt_mask_init.cc @@ -145,10 +145,10 @@ static int sculpt_mask_init_exec(bContext *C, wmOperator *op) }); break; case InitMode::Island: - SCULPT_topology_islands_ensure(ob); + islands::ensure_cache(ob); write_mask_mesh(ob, nodes, [&](MutableSpan mask, Span verts) { for (const int vert : verts) { - const int island = SCULPT_vertex_island_get(ss, PBVHVertRef{vert}); + const int island = islands::vert_id_get(ss, PBVHVertRef{vert}); mask[vert] = BLI_hash_int_01(island + seed); } }); @@ -201,7 +201,7 @@ static int sculpt_mask_init_exec(bContext *C, wmOperator *op) break; } case InitMode::Island: { - SCULPT_topology_islands_ensure(ob); + islands::ensure_cache(ob); init_mask_grids( bmain, scene, @@ -212,8 +212,7 @@ static int sculpt_mask_init_exec(bContext *C, wmOperator *op) const int verts_start = grid_index * key.grid_area; BKE_subdiv_ccg_foreach_visible_grid_vert( key, grid_hidden, grid_index, [&](const int i) { - const int island = SCULPT_vertex_island_get(ss, - PBVHVertRef{verts_start + i}); + const int island = islands::vert_id_get(ss, PBVHVertRef{verts_start + i}); CCG_elem_offset_mask(key, grid, i) = BLI_hash_int_01(island + seed); }); }); @@ -243,8 +242,7 @@ static int sculpt_mask_init_exec(bContext *C, wmOperator *op) BM_ELEM_CD_SET_FLOAT( vert, offset, - BLI_hash_int_01(SCULPT_vertex_island_get(ss, PBVHVertRef{intptr_t(vert)}) + - seed)); + BLI_hash_int_01(islands::vert_id_get(ss, PBVHVertRef{intptr_t(vert)}) + seed)); break; } } diff --git a/source/blender/editors/sculpt_paint/sculpt_ops.cc b/source/blender/editors/sculpt_paint/sculpt_ops.cc index 54835e29876..98c293795eb 100644 --- a/source/blender/editors/sculpt_paint/sculpt_ops.cc +++ b/source/blender/editors/sculpt_paint/sculpt_ops.cc @@ -244,7 +244,7 @@ static int sculpt_symmetrize_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - SCULPT_topology_islands_invalidate(ss); + islands::invalidate(ss); /* Redraw. */ SCULPT_pbvh_clear(ob); diff --git a/source/blender/editors/sculpt_paint/sculpt_trim.cc b/source/blender/editors/sculpt_paint/sculpt_trim.cc index f71544b28fd..ec4671a14b1 100644 --- a/source/blender/editors/sculpt_paint/sculpt_trim.cc +++ b/source/blender/editors/sculpt_paint/sculpt_trim.cc @@ -518,7 +518,7 @@ static void gesture_begin(bContext &C, wmOperator &op, gesture::GestureData &ges Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(&C); generate_geometry(gesture_data); - SCULPT_topology_islands_invalidate(ss); + islands::invalidate(ss); BKE_sculpt_update_object_for_edit(depsgraph, gesture_data.vc.obact, false); undo::geometry_begin(*gesture_data.vc.obact, &op); }