Blender V5.0
blender::ed::sculpt_paint::undo Namespace Reference

Namespaces

namespace  compression
namespace  tests

Classes

struct  Node
struct  SculptAttrRef
struct  NodeGeometry
struct  StepData
struct  PositionUndoStorage
struct  SculptUndoStep

Enumerations

enum class  Type : int8_t {
  None , Position , HideVert , HideFace ,
  Mask , DyntopoBegin , DyntopoEnd , Geometry ,
  FaceSet , Color
}

Functions

size_t step_memory_size_get (UndoStep *step)
static void restore_mask_from_undo_step (Object &object)
static void restore_color_from_undo_step (Object &object)
static void restore_face_set_from_undo_step (Object &object)
void restore_position_from_undo_step (const Depsgraph &depsgraph, Object &object)
static void restore_from_undo_step (const Depsgraph &depsgraph, const Sculpt &sd, Object &object)
static SculptUndoStepget_active_step ()
static StepDataget_step_data ()
static bool use_multires_undo (const StepData &step_data, const SculptSession &ss)
static bool topology_matches (const StepData &step_data, const Object &object)
static bool indices_contain_true (const Span< bool > data, const Span< int > indices)
static bool restore_active_shape_key (bContext &C, Depsgraph &depsgraph, const StepData &step_data, Object &object)
template<typename T>
static void swap_indexed_data (MutableSpan< T > full, const Span< int > indices, MutableSpan< T > indexed)
static void restore_position_mesh (Object &object, PositionUndoStorage &undo_data, const MutableSpan< bool > modified_verts)
static void restore_position_grids (const MutableSpan< float3 > positions, const CCGKey &key, PositionUndoStorage &undo_data, const MutableSpan< bool > modified_grids)
static void restore_vert_visibility_mesh (Object &object, Node &unode, const MutableSpan< bool > modified_verts)
static void restore_vert_visibility_grids (SubdivCCG &subdiv_ccg, Node &unode, const MutableSpan< bool > modified_grids)
static void restore_hidden_face (Object &object, Node &unode, const MutableSpan< bool > modified_faces)
static void restore_color (Object &object, StepData &step_data, const MutableSpan< bool > modified_verts)
static void restore_mask_mesh (Object &object, Node &unode, const MutableSpan< bool > modified_verts)
static void restore_mask_grids (Object &object, Node &unode, const MutableSpan< bool > modified_grids)
static bool restore_face_sets (Object &object, Node &unode, const MutableSpan< bool > modified_face_set_faces)
static void bmesh_restore_generic (StepData &step_data, Object &object)
static void bmesh_enable (Object &object, const StepData &step_data)
static void bmesh_handle_dyntopo_begin (bContext *C, StepData &step_data, Object &object)
static void bmesh_handle_dyntopo_end (bContext *C, StepData &step_data, Object &object)
static void store_geometry_data (NodeGeometry *geometry, const Object &object)
static void restore_geometry_data (const NodeGeometry *geometry, Mesh *mesh)
static void geometry_free_data (NodeGeometry *geometry)
static void restore_geometry (StepData &step_data, Object &object)
static int bmesh_restore (bContext *C, Depsgraph &depsgraph, StepData &step_data, Object &object)
void restore_from_bmesh_enter_geometry (const StepData &step_data, Mesh &mesh)
bool has_bmesh_log_entry ()
static void refine_subdiv (Depsgraph *depsgraph, const SculptSession &ss, Object &object, bke::subdiv::Subdiv *subdiv)
static void restore_list (bContext *C, Depsgraph *depsgraph, StepData &step_data)
static void free_step_data (StepData &step_data)
static const Nodeget_node (const bke::pbvh::Node *node, const Type type)
static void store_vert_visibility_grids (const SubdivCCG &subdiv_ccg, const bke::pbvh::GridsNode &node, Node &unode)
static void store_positions_mesh (const Depsgraph &depsgraph, const Object &object, Node &unode)
static void store_positions_grids (const SubdivCCG &subdiv_ccg, Node &unode)
static void store_vert_visibility_mesh (const Mesh &mesh, const bke::pbvh::Node &node, Node &unode)
static void store_face_visibility (const Mesh &mesh, Node &unode)
static void store_mask_mesh (const Mesh &mesh, Node &unode)
static void store_mask_grids (const SubdivCCG &subdiv_ccg, Node &unode)
static void store_color (const Mesh &mesh, const bke::pbvh::MeshNode &node, Node &unode)
static NodeGeometrygeometry_get (StepData &step_data)
static void geometry_push (const Object &object)
static void store_face_sets (const Mesh &mesh, Node &unode)
static void fill_node_data_mesh (const Depsgraph &depsgraph, const Object &object, const bke::pbvh::MeshNode &node, const Type type, Node &unode)
static void fill_node_data_grids (const Object &object, const bke::pbvh::GridsNode &node, const Type type, Node &unode)
static BLI_NOINLINE void bmesh_push (const Object &object, const bke::pbvh::BMeshNode *node, Type type)
static Nodeensure_node (StepData &step_data, const bke::pbvh::Node &node, bool &r_new)
void push_node (const Depsgraph &depsgraph, const Object &object, const bke::pbvh::Node *node, const Type type)
void push_nodes (const Depsgraph &depsgraph, Object &object, const IndexMask &node_mask, const Type type)
static void save_active_attribute (Object &object, SculptAttrRef *attr)
static void save_common_data (Object &ob, SculptUndoStep *us)
void push_begin_ex (const Scene &, Object &ob, const char *name)
void push_begin (const Scene &scene, Object &ob, const wmOperator *op)
void push_enter_sculpt_mode (const Scene &, Object &ob, const wmOperator *op)
static size_t node_size_in_bytes (const Node &node)
void push_end_ex (Object &ob, const bool use_nested_undo)
void push_end (Object &ob)
Implements ED Undo System
void register_type (UndoType *ut)
void geometry_begin (const Scene &scene, Object &ob, const wmOperator *op)
void geometry_begin_ex (const Scene &scene, Object &ob, const char *name)
void geometry_end (Object &ob)
static void set_active_layer (bContext *C, const SculptAttrRef *attr)
static void step_encode_init (bContext *, UndoStep *us_p)
static bool step_encode (bContext *, Main *bmain, UndoStep *us_p)
static void step_decode_undo_impl (bContext *C, Depsgraph *depsgraph, SculptUndoStep *us)
static void step_decode_redo_impl (bContext *C, Depsgraph *depsgraph, SculptUndoStep *us)
static void step_decode_undo (bContext *C, Depsgraph *depsgraph, SculptUndoStep *us, const bool is_final)
static void step_decode_redo (bContext *C, Depsgraph *depsgraph, SculptUndoStep *us)
static void step_decode (bContext *C, Main *bmain, UndoStep *us_p, const eUndoStepDir dir, const bool is_final)
static void step_free (UndoStep *us_p)
static size_t calculate_node_geometry_allocated_size (const NodeGeometry &node_geometry)
static size_t estimate_geometry_step_size (const StepData &step_data)
Multires + Base Mesh Undo

Example of a relevant operator is Apply Base.

Usage:

static int operator_exec((bContext *C, wmOperator *op) {

ed::sculpt_paint::undo::push_multires_mesh_begin(C, op->type->name); // Modify base mesh. ed::sculpt_paint::undo::push_multires_mesh_end(C, op->type->name);

return OPERATOR_FINISHED; }

If object is not in Sculpt mode or there is no active multires object, ED_undo_push is used instead.

void push_multires_mesh_begin (bContext *C, const char *str)
void push_multires_mesh_end (bContext *C, const char *str)
static bool use_multires_mesh (bContext *C)

Enumeration Type Documentation

◆ Type

enum class blender::ed::sculpt_paint::undo::Type : int8_t
strong
Enumerator
None 
Position 
HideVert 
HideFace 
Mask 
DyntopoBegin 
DyntopoEnd 
Geometry 
FaceSet 
Color 

Definition at line 28 of file sculpt_undo.hh.

Function Documentation

◆ bmesh_enable()

◆ bmesh_handle_dyntopo_begin()

◆ bmesh_handle_dyntopo_end()

◆ bmesh_push()

◆ bmesh_restore()

int blender::ed::sculpt_paint::undo::bmesh_restore ( bContext * C,
Depsgraph & depsgraph,
StepData & step_data,
Object & object )
static

◆ bmesh_restore_generic()

◆ calculate_node_geometry_allocated_size()

◆ ensure_node()

Node * blender::ed::sculpt_paint::undo::ensure_node ( StepData & step_data,
const bke::pbvh::Node & node,
bool & r_new )
static

Add an undo node for the bke::pbvh::Tree node to the step's storage. If the node was newly created and needs to be filled with data, set r_new to true.

Definition at line 1779 of file sculpt_undo.cc.

References lock, blender::ed::sculpt_paint::undo::StepData::nodes_mutex, and blender::ed::sculpt_paint::undo::StepData::undo_nodes_by_pbvh_node.

Referenced by push_node(), and push_nodes().

◆ estimate_geometry_step_size()

size_t blender::ed::sculpt_paint::undo::estimate_geometry_step_size ( const StepData & step_data)
static

◆ fill_node_data_grids()

◆ fill_node_data_mesh()

◆ free_step_data()

◆ geometry_begin()

void blender::ed::sculpt_paint::undo::geometry_begin ( const Scene & scene,
Object & ob,
const wmOperator * op )

◆ geometry_begin_ex()

void blender::ed::sculpt_paint::undo::geometry_begin_ex ( const Scene & scene,
Object & ob,
const char * name )

◆ geometry_end()

◆ geometry_free_data()

void blender::ed::sculpt_paint::undo::geometry_free_data ( NodeGeometry * geometry)
static

Definition at line 961 of file sculpt_undo.cc.

References CustomData_free(), and blender::implicit_sharing::free_shared_data().

Referenced by free_step_data().

◆ geometry_get()

◆ geometry_push()

void blender::ed::sculpt_paint::undo::geometry_push ( const Object & object)
static

◆ get_active_step()

SculptUndoStep * blender::ed::sculpt_paint::undo::get_active_step ( )
static

◆ get_node()

◆ get_step_data()

StepData * blender::ed::sculpt_paint::undo::get_step_data ( )
static

◆ has_bmesh_log_entry()

◆ indices_contain_true()

bool blender::ed::sculpt_paint::undo::indices_contain_true ( const Span< bool > data,
const Span< int > indices )
static

Definition at line 510 of file sculpt_undo.cc.

References data, i, and indices.

Referenced by restore_list().

◆ node_size_in_bytes()

◆ push_begin()

void blender::ed::sculpt_paint::undo::push_begin ( const Scene & scene,
Object & ob,
const wmOperator * op )

Pushes an undo step using the operator name. This is necessary for redo panels to work; operators that do not support that may use push_begin_ex instead if so desired.

Definition at line 1985 of file sculpt_undo.cc.

References wmOperatorType::name, push_begin(), push_begin_ex(), and wmOperator::type.

Referenced by blender::ed::sculpt_paint::face_set::change_visibility_exec(), blender::ed::sculpt_paint::face_set::create_op_exec(), blender::ed::sculpt_paint::face_set::edit_grow_shrink(), blender::ed::sculpt_paint::face_set::edit_modify_coordinates(), blender::ed::sculpt_paint::face_set::gesture_begin(), blender::ed::sculpt_paint::mask::gesture_begin(), blender::ed::sculpt_paint::project::gesture_begin(), blender::ed::sculpt_paint::hide::hide_show_begin(), blender::ed::sculpt_paint::face_set::init_op_exec(), blender::ed::sculpt_paint::mask::mask_by_color(), blender::ed::sculpt_paint::mask::mask_flood_fill_exec(), blender::ed::sculpt_paint::mask::mask_from_boundary_exec(), blender::ed::sculpt_paint::mask::mask_from_cavity_exec(), push_begin(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_invoke(), blender::ed::sculpt_paint::color::sculpt_color_filter_init(), blender::ed::sculpt_paint::dyntopo::sculpt_detail_flood_fill_exec(), blender::ed::sculpt_paint::expand::sculpt_expand_invoke(), blender::ed::sculpt_paint::mask::sculpt_mask_filter_exec(), blender::ed::sculpt_paint::mask::sculpt_mask_init_exec(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_start(), blender::ed::sculpt_paint::store_mesh_from_eval(), blender::ed::sculpt_paint::symmetrize_exec(), blender::ed::sculpt_paint::hide::visibility_filter_exec(), and blender::ed::sculpt_paint::hide::visibility_invert_exec().

◆ push_begin_ex()

◆ push_end()

void blender::ed::sculpt_paint::undo::push_end ( Object & ob)

Definition at line 2082 of file sculpt_undo.cc.

References push_end(), and push_end_ex().

Referenced by blender::ed::sculpt_paint::face_set::change_visibility_exec(), blender::ed::sculpt_paint::face_set::create_op_exec(), blender::ed::sculpt_paint::dyntopo::disable_with_undo(), blender::ed::sculpt_paint::face_set::edit_grow_shrink(), blender::ed::sculpt_paint::face_set::edit_modify_coordinates(), blender::ed::sculpt_paint::dyntopo::enable_with_undo(), blender::ed::sculpt_paint::end_transform(), blender::ed::sculpt_paint::expand::finish(), blender::ed::sculpt_paint::face_set::gesture_end(), blender::ed::sculpt_paint::mask::gesture_end(), blender::ed::sculpt_paint::project::gesture_end(), blender::ed::sculpt_paint::hide::hide_show_all_exec(), blender::ed::sculpt_paint::hide::hide_show_end(), blender::ed::sculpt_paint::hide::hide_show_masked_exec(), blender::ed::sculpt_paint::face_set::init_op_exec(), blender::ed::sculpt_paint::mask::mask_by_color(), blender::ed::sculpt_paint::mask::mask_flood_fill_exec(), blender::ed::sculpt_paint::mask::mask_from_boundary_exec(), blender::ed::sculpt_paint::mask::mask_from_cavity_exec(), blender::ed::sculpt_paint::object_sculpt_mode_enter(), push_end(), push_multires_mesh_end(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_modal(), blender::ed::sculpt_paint::color::sculpt_color_filter_end(), blender::ed::sculpt_paint::dyntopo::sculpt_detail_flood_fill_exec(), blender::ed::sculpt_paint::expand::sculpt_expand_cancel(), blender::ed::sculpt_paint::mask::sculpt_mask_filter_exec(), blender::ed::sculpt_paint::mask::sculpt_mask_init_exec(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_exec(), blender::ed::sculpt_paint::sculpt_mode_toggle_exec(), blender::ed::sculpt_paint::store_mesh_from_eval(), stroke_undo_end(), blender::ed::sculpt_paint::symmetrize_exec(), blender::ed::sculpt_paint::hide::visibility_filter_exec(), and blender::ed::sculpt_paint::hide::visibility_invert_exec().

◆ push_end_ex()

◆ push_enter_sculpt_mode()

void blender::ed::sculpt_paint::undo::push_enter_sculpt_mode ( const Scene & scene,
Object & ob,
const wmOperator * op )

◆ push_multires_mesh_begin()

void blender::ed::sculpt_paint::undo::push_multires_mesh_begin ( bContext * C,
const char * str )

Undo for changes happening on a base mesh for multires sculpting. if there is no multi-res sculpt active regular undo is used.

Definition at line 2421 of file sculpt_undo.cc.

References C, CTX_data_active_object(), CTX_data_scene(), geometry_push(), multires_flush_sculpt_updates(), push_begin_ex(), push_multires_mesh_begin(), str, and use_multires_mesh().

Referenced by blender::ed::object::multires_base_apply_exec(), and push_multires_mesh_begin().

◆ push_multires_mesh_end()

void blender::ed::sculpt_paint::undo::push_multires_mesh_end ( bContext * C,
const char * str )

◆ push_node()

void blender::ed::sculpt_paint::undo::push_node ( const Depsgraph & depsgraph,
const Object & object,
const bke::pbvh::Node * node,
undo::Type type )

Store undo data of the given type for a pbvh::Tree node. This function can be called by multiple threads concurrently, as long as they don't pass the same pbvh::Tree node.

This is only possible when building an undo step, in between push_begin and push_end.

Definition at line 1791 of file sculpt_undo.cc.

References BLI_assert, BLI_assert_unreachable, SculptSession::bm, blender::bke::pbvh::BMesh, bmesh_push(), depsgraph, DyntopoBegin, DyntopoEnd, ELEM, ensure_node(), fill_node_data_grids(), fill_node_data_mesh(), get_step_data(), blender::bke::pbvh::Grids, blender::bke::pbvh::Mesh, SculptSession::needs_flush_to_id, None, blender::bke::object::pbvh_get(), blender::bke::pbvh::Tree::type(), and blender::ed::sculpt_paint::undo::StepData::type.

Referenced by blender::ed::sculpt_paint::mask::apply_new_mask_bmesh(), blender::ed::sculpt_paint::mask::apply_new_mask_grids(), blender::ed::sculpt_paint::mask::apply_new_mask_mesh(), blender::ed::sculpt_paint::face_set::clear_face_sets(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_bmesh(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_grids(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_mesh(), blender::ed::sculpt_paint::dyntopo::disable_with_undo(), blender::ed::sculpt_paint::dyntopo::enable_with_undo(), blender::ed::sculpt_paint::face_set::face_hide_update(), blender::ed::sculpt_paint::face_set::face_sets_update(), blender::ed::sculpt_paint::mask::fill_mask_grids(), blender::ed::sculpt_paint::mask::fill_mask_mesh(), blender::ed::sculpt_paint::face_set::gesture_apply_bmesh(), blender::ed::sculpt_paint::mask::gesture_apply_for_symmetry_pass(), blender::ed::sculpt_paint::face_set::gesture_apply_mesh(), blender::ed::sculpt_paint::hide::grid_hide_update(), blender::ed::sculpt_paint::mask::increase_contrast_mask_bmesh(), blender::ed::sculpt_paint::mask::increase_contrast_mask_grids(), blender::ed::sculpt_paint::mask::increase_contrast_mask_mesh(), blender::ed::sculpt_paint::object_sculpt_mode_enter(), blender::ed::sculpt_paint::hide::partialvis_update_bmesh_nodes(), blender::ed::sculpt_paint::dyntopo::sculpt_detail_flood_fill_exec(), blender::ed::sculpt_paint::symmetrize_exec(), blender::ed::sculpt_paint::mask::update_mask_mesh(), blender::ed::sculpt_paint::hide::update_undo_state(), and blender::ed::sculpt_paint::hide::vert_hide_update().

◆ push_nodes()

void blender::ed::sculpt_paint::undo::push_nodes ( const Depsgraph & depsgraph,
Object & object,
const IndexMask & node_mask,
const Type type )

Definition at line 1830 of file sculpt_undo.cc.

References BLI_assert, SculptSession::bm, bmesh_push(), depsgraph, DyntopoBegin, DyntopoEnd, ELEM, ensure_node(), blender::index_mask::IndexMask::foreach_index(), get_step_data(), blender::bke::pbvh::Grids, i, blender::bke::pbvh::Mesh, SculptSession::needs_flush_to_id, blender::bke::pbvh::Tree::nodes(), None, blender::threading::parallel_for(), blender::bke::object::pbvh_get(), blender::bke::pbvh::Tree::type(), and blender::ed::sculpt_paint::undo::StepData::type.

Referenced by blender::ed::sculpt_paint::filter::cache_init(), blender::ed::sculpt_paint::dynamic_topology_update(), blender::ed::sculpt_paint::face_set::edit_modify_coordinates(), blender::ed::sculpt_paint::mask::fill_mask_bmesh(), blender::ed::sculpt_paint::project::gesture_apply_for_symmetry_pass(), blender::ed::sculpt_paint::hide::grids_show_all(), blender::ed::sculpt_paint::hide::grow_shrink_visibility_grid(), blender::ed::sculpt_paint::mask::init_mask_grids(), blender::ed::sculpt_paint::face_set::init_op_exec(), blender::ed::sculpt_paint::mask::invert_mask_bmesh(), blender::ed::sculpt_paint::mask::invert_mask_grids(), blender::ed::sculpt_paint::hide::invert_visibility_bmesh(), blender::ed::sculpt_paint::hide::invert_visibility_grids(), blender::ed::sculpt_paint::hide::invert_visibility_mesh(), blender::ed::sculpt_paint::mask::mask_from_boundary_exec(), blender::ed::sculpt_paint::mask::mask_from_cavity_exec(), blender::ed::sculpt_paint::hide::mesh_show_all(), blender::ed::sculpt_paint::push_undo_nodes(), blender::ed::sculpt_paint::mask::sculpt_mask_init_exec(), blender::ed::sculpt_paint::store_mesh_from_eval(), blender::ed::sculpt_paint::expand::undo_push(), and blender::ed::sculpt_paint::mask::write_mask_mesh().

◆ refine_subdiv()

void blender::ed::sculpt_paint::undo::refine_subdiv ( Depsgraph * depsgraph,
const SculptSession & ss,
Object & object,
bke::subdiv::Subdiv * subdiv )
static

◆ register_type()

◆ restore_active_shape_key()

bool blender::ed::sculpt_paint::undo::restore_active_shape_key ( bContext & C,
Depsgraph & depsgraph,
const StepData & step_data,
Object & object )
static

◆ restore_color()

◆ restore_color_from_undo_step()

◆ restore_face_set_from_undo_step()

◆ restore_face_sets()

◆ restore_from_bmesh_enter_geometry()

void blender::ed::sculpt_paint::undo::restore_from_bmesh_enter_geometry ( const StepData & step_data,
Mesh & mesh )

◆ restore_from_undo_step()

◆ restore_geometry()

◆ restore_geometry_data()

void blender::ed::sculpt_paint::undo::restore_geometry_data ( const NodeGeometry * geometry,
Mesh * mesh )
static

◆ restore_hidden_face()

◆ restore_list()

void blender::ed::sculpt_paint::undo::restore_list ( bContext * C,
Depsgraph * depsgraph,
StepData & step_data )
static

Definition at line 1052 of file sculpt_undo.cc.

References blender::bke::pbvh::all_leaf_nodes(), BKE_pbvh_sync_visibility_from_verts(), BKE_sculpt_multires_active(), BKE_sculpt_update_object_for_edit(), BKE_sculptsession_free_deformMats(), BKE_sculptsession_use_pbvh_draw(), BKE_subdiv_ccg_key_top_level(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert, BLI_assert_unreachable, SculptSession::bm, bmesh_restore(), C, CLOG_WARN, Color, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region_view3d(), data, SculptSession::deform_modifiers_active, DEG_id_tag_update(), depsgraph, DyntopoBegin, DyntopoEnd, faces, FaceSet, blender::IndexMask::from_predicate(), Geometry, blender::bke::pbvh::Grids, SubdivCCG::grids_num, HideFace, HideVert, i, ID_REAL_USERS, ID_RECALC_GEOMETRY, ID_RECALC_SHADING, indices_contain_true(), LOG, Mask, blender::bke::pbvh::Mesh, MULTIRES_COORDS_MODIFIED, MULTIRES_HIDDEN_MODIFIED, multires_mark_as_modified(), blender::bke::pbvh::node_face_indices_calc_grids(), blender::bke::pbvh::Tree::nodes(), blender::ed::sculpt_paint::undo::StepData::nodes, None, blender::ed::sculpt_paint::undo::StepData::object_name, blender::bke::object::pbvh_get(), blender::ed::sculpt_paint::undo::StepData::pivot_pos, SculptSession::pivot_pos, blender::ed::sculpt_paint::undo::StepData::pivot_rot, SculptSession::pivot_rot, Position, blender::ed::sculpt_paint::undo::StepData::position_step_storage, refine_subdiv(), restore_active_shape_key(), restore_color(), restore_face_sets(), restore_geometry(), restore_hidden_face(), restore_mask_grids(), restore_mask_mesh(), restore_position_grids(), restore_position_mesh(), restore_vert_visibility_grids(), restore_vert_visibility_mesh(), SculptSession::shapekey_active, blender::bke::pbvh::store_bounds_orig(), SculptSession::subdiv_ccg, blender::ed::sculpt_paint::hide::sync_all_from_faces(), blender::bke::pbvh::Tree::tag_attribute_changed(), blender::bke::pbvh::Tree::tag_face_sets_changed(), blender::bke::pbvh::Tree::tag_masks_changed(), blender::bke::pbvh::Tree::tag_positions_changed(), blender::bke::pbvh::Tree::tag_visibility_changed(), topology_matches(), blender::bke::pbvh::Tree::type(), blender::ed::sculpt_paint::undo::StepData::type, blender::bke::pbvh::Tree::update_bounds(), blender::bke::pbvh::update_mask_grids(), blender::bke::pbvh::update_mask_mesh(), blender::bke::pbvh::Tree::update_visibility(), and use_multires_undo().

Referenced by step_decode_redo_impl(), and step_decode_undo_impl().

◆ restore_mask_from_undo_step()

◆ restore_mask_grids()

◆ restore_mask_mesh()

◆ restore_position_from_undo_step()

void blender::ed::sculpt_paint::undo::restore_position_from_undo_step ( const Depsgraph & depsgraph,
Object & object )

Definition at line 1031 of file sculpt.cc.

References blender::bke::pbvh::all_leaf_nodes(), blender::ed::sculpt_paint::apply_crazyspace_to_translations(), blender::ed::sculpt_paint::apply_translations(), BKE_pbvh_bmesh_node_unique_verts(), BKE_subdiv_ccg_key_top_level(), SculptSession::bm_log, BM_log_find_original_vert_co(), blender::bke::pbvh::BMesh, copy_v3_v3(), blender::MutableSpan< T >::data(), data, SculptSession::deform_imats, depsgraph, blender::index_mask::IndexMask::foreach_index(), blender::ed::sculpt_paint::ShapeKeyData::from_object(), blender::IndexMask::from_predicate(), CCGKey::grid_area, blender::bke::ccg::grid_range(), blender::bke::pbvh::Grids, has_bmesh_log_entry(), i, blender::bits::BitGroupVector< InlineBufferCapacity, Allocator >::is_empty(), blender::threading::isolate_task(), blender::threading::EnumerableThreadSpecific< T >::local(), blender::bke::pbvh::Mesh, blender::bke::pbvh::Tree::nodes(), blender::ed::sculpt_paint::orig_position_data_lookup_grids(), blender::ed::sculpt_paint::orig_position_data_lookup_mesh(), blender::bke::object::pbvh_get(), blender::ed::sculpt_paint::OrigPositionData::positions, blender::ed::sculpt_paint::scatter_data_mesh(), SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::tag_positions_changed(), blender::ed::sculpt_paint::translations_from_new_positions(), blender::bke::pbvh::Tree::type(), blender::bke::pbvh::vert_positions_eval_for_write(), and verts.

Referenced by blender::ed::sculpt_paint::cancel_modal_transform(), restore_from_undo_step(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_cancel(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_modal(), and blender::ed::sculpt_paint::sculpt_transform_all_vertices().

◆ restore_position_grids()

◆ restore_position_mesh()

◆ restore_vert_visibility_grids()

◆ restore_vert_visibility_mesh()

◆ save_active_attribute()

◆ save_common_data()

◆ set_active_layer()

◆ step_decode()

◆ step_decode_redo()

◆ step_decode_redo_impl()

void blender::ed::sculpt_paint::undo::step_decode_redo_impl ( bContext * C,
Depsgraph * depsgraph,
SculptUndoStep * us )
static

◆ step_decode_undo()

◆ step_decode_undo_impl()

void blender::ed::sculpt_paint::undo::step_decode_undo_impl ( bContext * C,
Depsgraph * depsgraph,
SculptUndoStep * us )
static

◆ step_encode()

◆ step_encode_init()

void blender::ed::sculpt_paint::undo::step_encode_init ( bContext * ,
UndoStep * us_p )
static

◆ step_free()

void blender::ed::sculpt_paint::undo::step_free ( UndoStep * us_p)
static

◆ step_memory_size_get()

◆ store_color()

◆ store_face_sets()

◆ store_face_visibility()

void blender::ed::sculpt_paint::undo::store_face_visibility ( const Mesh & mesh,
Node & unode )
static

◆ store_geometry_data()

void blender::ed::sculpt_paint::undo::store_geometry_data ( NodeGeometry * geometry,
const Object & object )
static

◆ store_mask_grids()

◆ store_mask_mesh()

◆ store_positions_grids()

◆ store_positions_mesh()

◆ store_vert_visibility_grids()

◆ store_vert_visibility_mesh()

void blender::ed::sculpt_paint::undo::store_vert_visibility_mesh ( const Mesh & mesh,
const bke::pbvh::Node & node,
Node & unode )
static

◆ swap_indexed_data()

template<typename T>
void blender::ed::sculpt_paint::undo::swap_indexed_data ( MutableSpan< T > full,
const Span< int > indices,
MutableSpan< T > indexed )
static

Definition at line 544 of file sculpt_undo.cc.

References BLI_assert, i, indices, and blender::MutableSpan< T >::size().

Referenced by restore_position_mesh().

◆ topology_matches()

◆ use_multires_mesh()

bool blender::ed::sculpt_paint::undo::use_multires_mesh ( bContext * C)
static

◆ use_multires_undo()

bool blender::ed::sculpt_paint::undo::use_multires_undo ( const StepData & step_data,
const SculptSession & ss )
static