Blender V4.3
blender::ed::sculpt_paint::undo Namespace Reference

Classes

struct  Node
 
struct  NodeGeometry
 
struct  SculptAttrRef
 
struct  SculptUndoStep
 
struct  StepData
 

Enumerations

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

Functions

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)
 
static void update_shapekeys (const Object &ob, KeyBlock *kb, const Span< float3 > new_positions)
 
static void restore_position_mesh (const Depsgraph &depsgraph, Object &object, const Span< std::unique_ptr< Node > > unodes, MutableSpan< bool > modified_verts)
 
static void restore_position_grids (MutableSpan< float3 > positions, const CCGKey &key, Node &unode, MutableSpan< bool > modified_grids)
 
static void restore_vert_visibility_mesh (Object &object, Node &unode, MutableSpan< bool > modified_vertices)
 
static void restore_vert_visibility_grids (SubdivCCG &subdiv_ccg, Node &unode, MutableSpan< bool > modified_grids)
 
static void restore_hidden_face (Object &object, Node &unode, MutableSpan< bool > modified_faces)
 
static void restore_color (Object &object, StepData &step_data, MutableSpan< bool > modified_vertices)
 
static void restore_mask_mesh (Object &object, Node &unode, MutableSpan< bool > modified_vertices)
 
static void restore_mask_grids (Object &object, Node &unode, MutableSpan< bool > modified_grids)
 
static bool restore_face_sets (Object &object, Node &unode, MutableSpan< bool > modified_face_set_faces)
 
static void bmesh_restore_generic (StepData &step_data, Object &object, SculptSession &ss)
 
static void bmesh_enable (Object &object, StepData &step_data)
 
static void bmesh_restore_begin (bContext *C, StepData &step_data, Object &object, SculptSession &ss)
 
static void bmesh_restore_end (bContext *C, StepData &step_data, Object &object, SculptSession &ss)
 
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, SculptSession &ss)
 
void restore_from_bmesh_enter_geometry (const StepData &step_data, Mesh &mesh)
 
BMLogEntryget_bmesh_log_entry ()
 
static void refine_subdiv (Depsgraph *depsgraph, 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, 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)
 
void push_begin_ex (const Scene &, Object &ob, const char *name)
 
void push_begin (const Scene &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, 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, bool is_final)
 
static void step_free (UndoStep *us_p)
 
Undo for changes happening on a base mesh for multires sculpting.

Use this for multires operators which changes base mesh and which are to be possible. Example of such operators is Apply Base.

Usage:

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

ED_sculpt_undo_push_mixed_begin(C, op->type->name); // Modify base mesh. ED_sculpt_undo_push_mixed_end(C, op->type->name);

return OPERATOR_FINISHED; }

If object is not in sculpt mode or sculpt does not happen on multires then regular ED_undo_push() is used.

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)
 
static void push_all_grids (const Depsgraph &depsgraph, Object *object)
 

Enumeration Type Documentation

◆ Type

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_push()

◆ bmesh_restore()

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

◆ bmesh_restore_begin()

static void blender::ed::sculpt_paint::undo::bmesh_restore_begin ( bContext * C,
StepData & step_data,
Object & object,
SculptSession & ss )
static

◆ bmesh_restore_end()

static void blender::ed::sculpt_paint::undo::bmesh_restore_end ( bContext * C,
StepData & step_data,
Object & object,
SculptSession & ss )
static

◆ bmesh_restore_generic()

◆ ensure_node()

static 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 1581 of file sculpt_undo.cc.

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

Referenced by ensure_node(), push_node(), and push_nodes().

◆ 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 )

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

Definition at line 2058 of file sculpt_undo.cc.

References geometry_begin(), geometry_push(), and push_begin().

Referenced by geometry_begin(), blender::ed::sculpt_paint::trim::gesture_begin(), blender::ed::object::quadriflow_start_job(), blender::ed::geometry::store_result_geometry(), blender::ed::sculpt_paint::symmetrize_exec(), and blender::ed::object::voxel_remesh_exec().

◆ geometry_begin_ex()

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

Definition at line 2064 of file sculpt_undo.cc.

References geometry_begin_ex(), geometry_push(), and push_begin_ex().

Referenced by geometry_begin_ex().

◆ geometry_end()

◆ geometry_free_data()

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

Definition at line 769 of file sculpt_undo.cc.

References CustomData_free(), and geometry_free_data().

Referenced by free_step_data(), and geometry_free_data().

◆ geometry_get()

◆ geometry_push()

◆ get_active_step()

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

◆ get_bmesh_log_entry()

◆ get_node()

◆ get_step_data()

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

◆ indices_contain_true()

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

Definition at line 295 of file sculpt_undo.cc.

Referenced by restore_list().

◆ node_size_in_bytes()

static size_t blender::ed::sculpt_paint::undo::node_size_in_bytes ( const Node & node)
static

Definition at line 1781 of file sculpt_undo.cc.

References node_size_in_bytes(), and size().

Referenced by node_size_in_bytes().

◆ push_all_grids()

static void blender::ed::sculpt_paint::undo::push_all_grids ( const Depsgraph & depsgraph,
Object * object )
static

Definition at line 2126 of file sculpt_undo.cc.

References depsgraph, push_all_grids(), and push_nodes().

Referenced by push_all_grids(), and push_multires_mesh_begin().

◆ push_begin()

◆ push_begin_ex()

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

NOTE: push_begin is preferred since name must match operator name for redo panels to work.

Definition at line 1719 of file sculpt_undo.cc.

References blender::ed::sculpt_paint::undo::SculptUndoStep::active_color_end, blender::ed::sculpt_paint::undo::SculptUndoStep::active_color_start, blender::ed::sculpt_paint::undo::StepData::active_shape_key_name, BKE_keyblock_from_object(), BKE_undosys_step_push_init_with_type(), BKE_UNDOSYS_TYPE_SCULPT, blender::ed::sculpt_paint::undo::SculptUndoStep::data, Object::data, ED_undo_stack_get(), ED_undosys_stack_memfile_id_changed_tag(), blender::ed::sculpt_paint::undo::StepData::grid_size, SubdivCCG::grid_size, SubdivCCG::grids_num, Object::id, blender::ed::sculpt_paint::undo::StepData::mesh_corners_num, blender::ed::sculpt_paint::undo::StepData::mesh_grids_num, blender::ed::sculpt_paint::undo::StepData::mesh_verts_num, ID::name, blender::ed::sculpt_paint::undo::StepData::object_name, blender::ed::sculpt_paint::undo::StepData::pivot_pos, SculptSession::pivot_pos, blender::ed::sculpt_paint::undo::StepData::pivot_rot, SculptSession::pivot_rot, push_begin_ex(), save_active_attribute(), Object::sculpt, SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::type(), and blender::ed::sculpt_paint::undo::SculptAttrRef::was_set.

Referenced by blender::ed::sculpt_paint::dyntopo::disable_with_undo(), blender::ed::sculpt_paint::dyntopo::enable_with_undo(), geometry_begin_ex(), blender::ed::sculpt_paint::hide::hide_show_all_exec(), blender::ed::sculpt_paint::hide::hide_show_masked_exec(), blender::ed::sculpt_paint::init_transform(), blender::ed::sculpt_paint::object_sculpt_mode_enter(), push_begin(), push_begin_ex(), push_multires_mesh_begin(), and vpaint_invoke().

◆ push_end()

◆ push_end_ex()

◆ push_multires_mesh_begin()

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

◆ push_multires_mesh_end()

◆ 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 1593 of file sculpt_undo.cc.

References BLI_assert, BLI_assert_unreachable, SculptSession::bm, bmesh_push(), depsgraph, ELEM, ensure_node(), fill_node_data_grids(), fill_node_data_mesh(), get_step_data(), SculptSession::needs_flush_to_id, push_node(), 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::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::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(), push_node(), blender::ed::sculpt_paint::dyntopo::sculpt_detail_flood_fill_exec(), blender::ed::sculpt_paint::symmetrize_exec(), blender::ed::sculpt_paint::mask::update_mask_mesh(), and blender::ed::sculpt_paint::hide::vert_hide_update().

◆ push_nodes()

◆ refine_subdiv()

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

◆ register_type()

◆ restore_active_shape_key()

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

◆ restore_color()

static void blender::ed::sculpt_paint::undo::restore_color ( Object & object,
StepData & step_data,
MutableSpan< bool > modified_vertices )
static

◆ 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()

◆ restore_hidden_face()

static void blender::ed::sculpt_paint::undo::restore_hidden_face ( Object & object,
Node & unode,
MutableSpan< bool > modified_faces )
static

◆ restore_list()

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

Definition at line 862 of file sculpt_undo.cc.

References 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(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region_view3d(), SculptSession::deform_modifiers_active, DEG_id_tag_update(), depsgraph, faces, SubdivCCG::grids_num, ID_REAL_USERS, ID_RECALC_GEOMETRY, ID_RECALC_SHADING, indices_contain_true(), MULTIRES_COORDS_MODIFIED, MULTIRES_HIDDEN_MODIFIED, multires_mark_as_modified(), blender::bke::pbvh::Tree::nodes(), blender::ed::sculpt_paint::undo::StepData::nodes, blender::ed::sculpt_paint::undo::StepData::object_name, blender::ed::sculpt_paint::undo::StepData::pivot_pos, SculptSession::pivot_pos, blender::ed::sculpt_paint::undo::StepData::pivot_rot, SculptSession::pivot_rot, refine_subdiv(), restore_active_shape_key(), restore_color(), restore_face_sets(), restore_geometry(), restore_hidden_face(), restore_list(), restore_mask_grids(), restore_mask_mesh(), restore_position_grids(), restore_position_mesh(), restore_vert_visibility_grids(), restore_vert_visibility_mesh(), Mesh::runtime, SculptSession::shapekey_active, SculptSession::subdiv_ccg, 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::ed::sculpt_paint::undo::StepData::type, and use_multires_undo().

Referenced by restore_list(), 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 1014 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_keyblock_from_object(), 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(), SculptSession::deform_imats, depsgraph, ELEM, blender::index_mask::IndexMask::foreach_index(), blender::index_mask::IndexMask::from_predicate(), get_bmesh_log_entry(), CCGKey::grid_area, blender::bke::ccg::grid_range(), blender::bke::pbvh::Grids, 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::LocalData::translations, blender::ed::sculpt_paint::translations_from_new_positions(), blender::bke::pbvh::Tree::type(), blender::bke::pbvh::update_normals(), blender::ed::sculpt_paint::update_shape_keys(), blender::bke::pbvh::vert_positions_eval_for_write(), and verts.

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

◆ restore_position_grids()

static void blender::ed::sculpt_paint::undo::restore_position_grids ( MutableSpan< float3 > positions,
const CCGKey & key,
Node & unode,
MutableSpan< bool > modified_grids )
static

◆ restore_position_mesh()

static void blender::ed::sculpt_paint::undo::restore_position_mesh ( const Depsgraph & depsgraph,
Object & object,
const Span< std::unique_ptr< Node > > unodes,
MutableSpan< bool > modified_verts )
static

◆ restore_vert_visibility_grids()

◆ restore_vert_visibility_mesh()

◆ save_active_attribute()

◆ set_active_layer()

◆ step_decode()

◆ step_decode_redo()

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

◆ step_decode_redo_impl()

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

◆ step_decode_undo()

static void blender::ed::sculpt_paint::undo::step_decode_undo ( bContext * C,
Depsgraph * depsgraph,
SculptUndoStep * us,
const bool is_final )
static

◆ step_decode_undo_impl()

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

◆ step_encode()

◆ step_encode_init()

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

◆ step_free()

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

◆ store_color()

◆ store_face_sets()

◆ store_face_visibility()

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

◆ store_geometry_data()

static 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()

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

◆ topology_matches()

◆ update_shapekeys()

static void blender::ed::sculpt_paint::undo::update_shapekeys ( const Object & ob,
KeyBlock * kb,
const Span< float3 > new_positions )
static

◆ use_multires_mesh()

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

◆ use_multires_undo()

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