|
Blender V4.5
|
Classes | |
| struct | Node |
| struct | SculptAttrRef |
| struct | NodeGeometry |
| struct | StepData |
| struct | SculptUndoStep |
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 SculptUndoStep * | get_active_step () |
| static StepData * | get_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, const Span< std::unique_ptr< Node > > unodes, const MutableSpan< bool > modified_verts) |
| static void | restore_position_grids (const MutableSpan< float3 > positions, const CCGKey &key, Node &unode, 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 Node * | get_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 NodeGeometry * | geometry_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 Node * | ensure_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) |
|
strong |
| Enumerator | |
|---|---|
| None | |
| Position | |
| HideVert | |
| HideFace | |
| Mask | |
| DyntopoBegin | |
| DyntopoEnd | |
| Geometry | |
| FaceSet | |
| Color | |
Definition at line 26 of file sculpt_undo.hh.
|
static |
Definition at line 621 of file sculpt_undo.cc.
References BKE_sculptsession_free_pbvh(), SculptSession::bm, BM_data_layer_add_named(), blender::ed::sculpt_paint::undo::StepData::bm_entry, SculptSession::bm_log, BM_log_from_existing_entries_create(), bm_mesh_allocsize_default, BM_mesh_create(), blender::ed::sculpt_paint::undo::StepData::bmesh, bmesh_enable(), CD_PROP_FLOAT, DEG_id_tag_update(), ID_RECALC_GEOMETRY, ME_SCULPT_DYNAMIC_TOPOLOGY, BMeshCreateParams::use_toolflags, and BMesh::vdata.
Referenced by bmesh_enable(), bmesh_handle_dyntopo_begin(), and bmesh_handle_dyntopo_end().
|
static |
Definition at line 642 of file sculpt_undo.cc.
References SculptSession::bm, SculptSession::bm_log, BM_log_redo(), bmesh_enable(), bmesh_handle_dyntopo_begin(), C, blender::ed::sculpt_paint::dyntopo::disable(), blender::ed::sculpt_paint::undo::StepData::needs_undo(), blender::ed::sculpt_paint::undo::StepData::tag_needs_redo(), and blender::ed::sculpt_paint::undo::StepData::tag_needs_undo().
Referenced by bmesh_handle_dyntopo_begin(), and bmesh_restore().
|
static |
Definition at line 659 of file sculpt_undo.cc.
References SculptSession::bm, SculptSession::bm_log, BM_log_undo(), bmesh_enable(), bmesh_handle_dyntopo_end(), C, blender::ed::sculpt_paint::dyntopo::disable(), blender::ed::sculpt_paint::undo::StepData::needs_undo(), blender::ed::sculpt_paint::undo::StepData::tag_needs_redo(), and blender::ed::sculpt_paint::undo::StepData::tag_needs_undo().
Referenced by bmesh_handle_dyntopo_end(), and bmesh_restore().
|
static |
Dynamic topology stores only one undo node per stroke, regardless of the number of bke::pbvh::Tree nodes modified.
Definition at line 1456 of file sculpt_undo.cc.
References BKE_pbvh_bmesh_node_faces(), BKE_pbvh_bmesh_node_other_verts(), BKE_pbvh_bmesh_node_unique_verts(), BLI_assert_unreachable, BLI_NOINLINE, SculptSession::bm, blender::ed::sculpt_paint::undo::StepData::bm_entry, SculptSession::bm_log, BM_log_all_added(), BM_log_before_all_removed(), BM_log_entry_add(), BM_log_face_modified(), BM_log_vert_before_modified(), blender::ed::sculpt_paint::undo::StepData::bmesh, bmesh_push(), CD_PROP_FLOAT, Color, CustomData_get_offset_named(), DyntopoBegin, DyntopoEnd, FaceSet, Geometry, blender::ed::sculpt_paint::undo::StepData::geometry_enter, get_step_data(), HideFace, HideVert, lock, Mask, blender::ed::sculpt_paint::undo::StepData::nodes, blender::ed::sculpt_paint::undo::StepData::nodes_mutex, None, Position, store_geometry_data(), blender::ed::sculpt_paint::undo::StepData::type, and BMesh::vdata.
Referenced by bmesh_push(), push_node(), and push_nodes().
|
static |
Definition at line 760 of file sculpt_undo.cc.
References BKE_sculpt_update_object_for_edit(), SculptSession::bm_log, bmesh_handle_dyntopo_begin(), bmesh_handle_dyntopo_end(), bmesh_restore(), bmesh_restore_generic(), C, depsgraph, DyntopoBegin, DyntopoEnd, and blender::ed::sculpt_paint::undo::StepData::type.
Referenced by bmesh_restore(), and restore_list().
|
static |
Definition at line 594 of file sculpt_undo.cc.
References blender::bke::pbvh::all_leaf_nodes(), BKE_sculptsession_free_pbvh(), SculptSession::bm, SculptSession::bm_log, BM_log_redo(), BM_log_undo(), BM_mesh_normals_update(), bmesh_restore_generic(), DEG_id_tag_update(), ID_RECALC_GEOMETRY, Mask, blender::ed::sculpt_paint::undo::StepData::needs_undo(), blender::bke::object::pbvh_get(), blender::bke::pbvh::Tree::tag_masks_changed(), blender::ed::sculpt_paint::undo::StepData::tag_needs_redo(), blender::ed::sculpt_paint::undo::StepData::tag_needs_undo(), blender::ed::sculpt_paint::undo::StepData::type, and blender::bke::pbvh::update_mask_bmesh().
Referenced by bmesh_restore(), and bmesh_restore_generic().
|
static |
Definition at line 2084 of file sculpt_undo.cc.
References BLI_assert, calculate_node_geometry_allocated_size(), blender::ed::sculpt_paint::undo::NodeGeometry::corner_data, blender::ed::sculpt_paint::undo::NodeGeometry::corners_num, CustomData_count_memory(), blender::ed::sculpt_paint::undo::NodeGeometry::edge_data, blender::ed::sculpt_paint::undo::NodeGeometry::edges_num, blender::ed::sculpt_paint::undo::NodeGeometry::face_data, blender::ed::sculpt_paint::undo::NodeGeometry::face_offsets_sharing_info, blender::ed::sculpt_paint::undo::NodeGeometry::faces_num, blender::ed::sculpt_paint::undo::NodeGeometry::is_initialized, blender::memory_counter::MemoryCount::total_bytes, blender::ed::sculpt_paint::undo::NodeGeometry::vert_data, and blender::ed::sculpt_paint::undo::NodeGeometry::verts_num.
Referenced by calculate_node_geometry_allocated_size(), and estimate_geometry_step_size().
|
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 1547 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().
|
static |
Definition at line 2102 of file sculpt_undo.cc.
References calculate_node_geometry_allocated_size(), estimate_geometry_step_size(), blender::ed::sculpt_paint::undo::StepData::geometry_modified, and blender::ed::sculpt_paint::undo::StepData::geometry_original.
Referenced by estimate_geometry_step_size(), and geometry_end().
|
static |
Definition at line 1388 of file sculpt_undo.cc.
References BLI_assert_unreachable, Color, DyntopoBegin, DyntopoEnd, ELEM, blender::ed::sculpt_paint::undo::Node::face_hidden, blender::ed::sculpt_paint::undo::Node::face_indices, blender::ed::sculpt_paint::undo::Node::face_sets, FaceSet, fill_node_data_grids(), Geometry, SubdivCCG::grid_size, blender::bke::pbvh::GridsNode::grids(), blender::ed::sculpt_paint::undo::Node::grids, HideFace, HideVert, Mask, blender::ed::sculpt_paint::undo::Node::mask, blender::bke::pbvh::node_face_indices_calc_grids(), None, blender::ed::sculpt_paint::undo::Node::normal, Position, blender::ed::sculpt_paint::undo::Node::position, Array< T, InlineBufferCapacity, Allocator >::reinitialize(), Array< T, InlineBufferCapacity, Allocator >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), store_face_sets(), store_face_visibility(), store_mask_grids(), store_positions_grids(), store_vert_visibility_grids(), and SculptSession::subdiv_ccg.
Referenced by fill_node_data_grids(), and push_node().
|
static |
Definition at line 1320 of file sculpt_undo.cc.
References blender::bke::pbvh::MeshNode::all_verts(), BLI_assert_unreachable, Color, SculptSession::deform_modifiers_active, depsgraph, DyntopoBegin, DyntopoEnd, ELEM, blender::ed::sculpt_paint::undo::Node::face_hidden, blender::ed::sculpt_paint::undo::Node::face_indices, blender::ed::sculpt_paint::undo::Node::face_sets, blender::bke::pbvh::MeshNode::faces(), FaceSet, fill_node_data_mesh(), Geometry, HideFace, HideVert, Mask, blender::ed::sculpt_paint::undo::Node::mask, None, blender::ed::sculpt_paint::undo::Node::normal, blender::ed::sculpt_paint::undo::Node::orig_position, Position, blender::ed::sculpt_paint::undo::Node::position, Array< T, InlineBufferCapacity, Allocator >::reinitialize(), Array< T, InlineBufferCapacity, Allocator >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), Span< T >::size(), store_color(), store_face_sets(), store_face_visibility(), store_mask_mesh(), store_positions_mesh(), store_vert_visibility_mesh(), blender::ed::sculpt_paint::undo::Node::unique_verts_num, blender::ed::sculpt_paint::undo::Node::vert_hidden, blender::ed::sculpt_paint::undo::Node::vert_indices, and blender::bke::pbvh::MeshNode::verts().
Referenced by fill_node_data_mesh(), and push_node().
|
static |
Definition at line 1127 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::bm_entry, BM_log_entry_drop(), blender::ed::sculpt_paint::undo::StepData::bmesh, free_step_data(), blender::ed::sculpt_paint::undo::StepData::geometry_enter, geometry_free_data(), blender::ed::sculpt_paint::undo::StepData::geometry_modified, and blender::ed::sculpt_paint::undo::StepData::geometry_original.
Referenced by free_step_data(), and step_free().
| 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 2061 of file sculpt_undo.cc.
References geometry_begin(), geometry_begin_ex(), wmOperatorType::name, and wmOperator::type.
Referenced by blender::ed::sculpt_paint::face_set::edit_modify_geometry(), geometry_begin(), blender::ed::sculpt_paint::trim::gesture_begin(), paint_mask_slice_exec(), blender::ed::object::quadriflow_start_job(), blender::ed::sculpt_paint::store_sculpt_entire_mesh(), blender::ed::sculpt_paint::symmetrize_exec(), and blender::ed::object::voxel_remesh_exec().
| void blender::ed::sculpt_paint::undo::geometry_begin_ex | ( | const Scene & | scene, |
| Object & | ob, | ||
| const char * | name ) |
Definition at line 2066 of file sculpt_undo.cc.
References BKE_undosys_step_push_init_with_type(), BKE_UNDOSYS_TYPE_SCULPT, C, Object::data, ED_undo_stack_get(), ED_undosys_stack_memfile_id_changed_tag(), geometry_begin_ex(), geometry_push(), Object::id, and save_common_data().
Referenced by geometry_begin(), and geometry_begin_ex().
| void blender::ed::sculpt_paint::undo::geometry_end | ( | Object & | ob | ) |
Definition at line 2115 of file sculpt_undo.cc.
References BKE_undosys_stack_limit_steps_and_memory_defaults, BKE_undosys_step_push(), ED_undo_stack_get(), estimate_geometry_step_size(), G_MAIN, geometry_end(), geometry_push(), get_step_data(), blender::ed::sculpt_paint::undo::StepData::undo_size, and WM_file_tag_modified().
Referenced by blender::ed::sculpt_paint::face_set::edit_modify_geometry(), geometry_end(), blender::ed::sculpt_paint::trim::gesture_end(), paint_mask_slice_exec(), blender::ed::object::quadriflow_start_job(), blender::ed::sculpt_paint::store_sculpt_entire_mesh(), blender::ed::sculpt_paint::symmetrize_exec(), and blender::ed::object::voxel_remesh_exec().
|
static |
Definition at line 729 of file sculpt_undo.cc.
References CustomData_free(), blender::implicit_sharing::free_shared_data(), and geometry_free_data().
Referenced by free_step_data(), and geometry_free_data().
|
static |
Definition at line 1287 of file sculpt_undo.cc.
References BLI_assert, geometry_get(), blender::ed::sculpt_paint::undo::StepData::geometry_modified, blender::ed::sculpt_paint::undo::StepData::geometry_original, and blender::ed::sculpt_paint::undo::NodeGeometry::is_initialized.
Referenced by geometry_get(), and geometry_push().
|
static |
Definition at line 1298 of file sculpt_undo.cc.
References Geometry, geometry_get(), geometry_push(), get_step_data(), store_geometry_data(), and blender::ed::sculpt_paint::undo::StepData::type.
Referenced by geometry_begin_ex(), geometry_end(), geometry_push(), push_multires_mesh_begin(), and push_multires_mesh_end().
|
static |
Definition at line 291 of file sculpt_undo.cc.
References BKE_undosys_stack_init_or_active_with_type(), BKE_UNDOSYS_TYPE_SCULPT, and ED_undo_stack_get().
Referenced by get_step_data().
|
static |
Retrieve the undo data of a given type for the active undo step. For example, this is used to access "original" data from before the current stroke.
This is only possible when building an undo step, in between push_begin and push_end.
Definition at line 1144 of file sculpt_undo.cc.
References get_node(), get_step_data(), blender::ed::sculpt_paint::undo::StepData::type, and blender::ed::sculpt_paint::undo::StepData::undo_nodes_by_pbvh_node.
Referenced by get_node(), blender::ed::sculpt_paint::orig_color_data_lookup_mesh(), blender::ed::sculpt_paint::orig_face_set_data_lookup_grids(), blender::ed::sculpt_paint::orig_face_set_data_lookup_mesh(), blender::ed::sculpt_paint::orig_mask_data_lookup_grids(), blender::ed::sculpt_paint::orig_mask_data_lookup_mesh(), blender::ed::sculpt_paint::orig_position_data_lookup_grids(), and blender::ed::sculpt_paint::orig_position_data_lookup_mesh_all_verts().
|
static |
Definition at line 298 of file sculpt_undo.cc.
References get_active_step().
Referenced by bmesh_push(), geometry_end(), geometry_push(), get_node(), has_bmesh_log_entry(), push_end_ex(), push_node(), and push_nodes().
| bool blender::ed::sculpt_paint::undo::has_bmesh_log_entry | ( | ) |
Definition at line 790 of file sculpt_undo.cc.
References get_step_data(), and has_bmesh_log_entry().
Referenced by blender::ed::sculpt_paint::calc_area_normal_and_center_node_bmesh(), has_bmesh_log_entry(), and restore_position_from_undo_step().
|
static |
Definition at line 323 of file sculpt_undo.cc.
References data, i, and indices.
Referenced by restore_list().
|
static |
Definition at line 1775 of file sculpt_undo.cc.
References Array< T, InlineBufferCapacity, Allocator >::as_span(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), Vector< T, InlineBufferCapacity, Allocator >::as_span(), blender::ed::sculpt_paint::undo::Node::col, blender::ed::sculpt_paint::undo::Node::corner_indices, blender::ed::sculpt_paint::undo::Node::face_hidden, blender::ed::sculpt_paint::undo::Node::face_indices, blender::ed::sculpt_paint::undo::Node::face_sets, blender::ed::sculpt_paint::undo::Node::grid_hidden, blender::ed::sculpt_paint::undo::Node::grids, blender::ed::sculpt_paint::undo::Node::loop_col, blender::ed::sculpt_paint::undo::Node::mask, node_size_in_bytes(), blender::ed::sculpt_paint::undo::Node::normal, blender::ed::sculpt_paint::undo::Node::orig_position, blender::ed::sculpt_paint::undo::Node::position, size(), Span< T >::size_in_bytes(), blender::ed::sculpt_paint::undo::Node::vert_hidden, and blender::ed::sculpt_paint::undo::Node::vert_indices.
Referenced by node_size_in_bytes().
| 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 1753 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().
| 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 1715 of file sculpt_undo.cc.
References BKE_undosys_step_push_init_with_type(), BKE_UNDOSYS_TYPE_SCULPT, blender::bke::pbvh::BMesh, C, blender::ed::sculpt_paint::undo::StepData::corners_num, 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, blender::bke::pbvh::Grids, blender::ed::sculpt_paint::undo::StepData::grids, blender::ed::sculpt_paint::undo::StepData::grids_num, SubdivCCG::grids_num, Object::id, blender::bke::pbvh::Mesh, blender::ed::sculpt_paint::undo::StepData::mesh, blender::bke::object::pbvh_get(), push_begin_ex(), save_common_data(), Object::sculpt, SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::type(), and blender::ed::sculpt_paint::undo::StepData::verts_num.
Referenced by blender::ed::sculpt_paint::dyntopo::disable_with_undo(), blender::ed::sculpt_paint::dyntopo::enable_with_undo(), 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 stroke_undo_begin().
| void blender::ed::sculpt_paint::undo::push_end | ( | Object & | ob | ) |
Definition at line 1845 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().
| void blender::ed::sculpt_paint::undo::push_end_ex | ( | Object & | ob, |
| const bool | use_nested_undo ) |
Definition at line 1795 of file sculpt_undo.cc.
References get_step_data(), blender::ed::sculpt_paint::undo::StepData::nodes, blender::threading::parallel_reduce(), push_end_ex(), size(), blender::ed::sculpt_paint::undo::StepData::undo_nodes_by_pbvh_node, and blender::ed::sculpt_paint::undo::StepData::undo_size.
Referenced by push_end(), push_end_ex(), and blender::ed::sculpt_paint::filter::sculpt_mesh_filter_modal().
| void blender::ed::sculpt_paint::undo::push_enter_sculpt_mode | ( | const Scene & | scene, |
| Object & | ob, | ||
| const wmOperator * | op ) |
Pushes an undo step when entering Sculpt mode.
Similar to geometry_push, this undo type does not need the PBVH to be constructed.
Definition at line 1758 of file sculpt_undo.cc.
References BKE_undosys_step_push_init_with_type(), BKE_UNDOSYS_TYPE_SCULPT, C, Object::data, ED_undo_stack_get(), ED_undosys_stack_memfile_id_changed_tag(), Object::id, wmOperatorType::name, push_enter_sculpt_mode(), save_common_data(), and wmOperator::type.
Referenced by push_enter_sculpt_mode(), and blender::ed::sculpt_paint::sculpt_mode_toggle_exec().
| 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 2182 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().
| void blender::ed::sculpt_paint::undo::push_multires_mesh_end | ( | bContext * | C, |
| const char * | str ) |
Definition at line 2198 of file sculpt_undo.cc.
References C, CTX_data_active_object(), ED_undo_push(), geometry_push(), push_end(), push_multires_mesh_end(), str, and use_multires_mesh().
Referenced by blender::ed::object::multires_base_apply_exec(), and push_multires_mesh_end().
| 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 1559 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(), 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::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(), 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(), blender::ed::sculpt_paint::hide::update_undo_state(), and blender::ed::sculpt_paint::hide::vert_hide_update().
| void blender::ed::sculpt_paint::undo::push_nodes | ( | const Depsgraph & | depsgraph, |
| Object & | object, | ||
| const IndexMask & | node_mask, | ||
| const Type | type ) |
Definition at line 1598 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(), push_nodes(), 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(), push_nodes(), 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().
|
static |
Definition at line 808 of file sculpt_undo.cc.
References BKE_multires_create_deformed_base_mesh_vert_coords(), data, depsgraph, blender::bke::subdiv::eval_refine_from_mesh(), SculptSession::modifier, SculptSession::multires, and refine_subdiv().
Referenced by refine_subdiv(), and restore_list().
| void blender::ed::sculpt_paint::undo::register_type | ( | UndoType * | ut | ) |
Definition at line 2134 of file sculpt_undo.cc.
References UndoType::flags, UndoType::name, UndoType::poll, register_type(), step_decode(), UndoType::step_decode, step_encode(), UndoType::step_encode, step_encode_init(), UndoType::step_encode_init, step_free(), UndoType::step_free, UndoType::step_size, and UNDOTYPE_FLAG_DECODE_ACTIVE_STEP.
Referenced by ED_undosys_type_init(), and register_type().
|
static |
Definition at line 328 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::active_shape_key_name, BKE_key_from_object(), BKE_keyblock_find_name(), BKE_sculpt_update_object_for_edit(), BLI_findindex(), Key::block, C, depsgraph, KeyBlock::name, NC_OBJECT, ND_DATA, SculptSession::shapekey_active, and WM_event_add_notifier().
Referenced by restore_list().
|
static |
Definition at line 505 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::color::active_color_attribute_for_write(), blender::bke::Corner, blender::bke::GSpanAttributeWriter::domain, blender::MutableSpan< T >::fill_indices(), blender::bke::GSpanAttributeWriter::finish(), blender::ed::sculpt_paint::undo::StepData::nodes, blender::bke::Point, restore_color(), blender::bke::GSpanAttributeWriter::span, and blender::ed::sculpt_paint::color::swap_gathered_colors().
Referenced by restore_color(), and restore_list().
|
static |
Definition at line 947 of file sculpt.cc.
References blender::ed::sculpt_paint::color::active_color_attribute_for_write(), BLI_assert, blender::ed::sculpt_paint::color::color_vert_set(), blender::bke::GSpanAttributeWriter::domain, faces, blender::bke::GSpanAttributeWriter::finish(), blender::index_mask::IndexMask::foreach_index(), blender::IndexMask::from_predicate(), i, blender::bke::pbvh::Mesh, blender::bke::pbvh::Tree::nodes(), blender::ed::sculpt_paint::orig_color_data_lookup_mesh(), blender::bke::object::pbvh_get(), blender::bke::GSpanAttributeWriter::span, blender::bke::pbvh::Tree::tag_attribute_changed(), blender::bke::pbvh::Tree::type(), and verts.
Referenced by restore_from_undo_step().
|
static |
Definition at line 980 of file sculpt.cc.
References blender::bke::pbvh::all_leaf_nodes(), blender::bke::pbvh::BMesh, data, blender::ed::sculpt_paint::face_set::ensure_face_sets_mesh(), faces, blender::index_mask::IndexMask::foreach_index(), blender::IndexMask::from_bools(), blender::bke::pbvh::Grids, i, blender::threading::EnumerableThreadSpecific< T >::local(), blender::bke::pbvh::Mesh, blender::index_mask::IndexMask::min_array_size(), blender::bke::pbvh::node_face_indices_calc_grids(), blender::bke::pbvh::Tree::nodes(), blender::ed::sculpt_paint::orig_face_set_data_lookup_grids(), blender::ed::sculpt_paint::orig_face_set_data_lookup_mesh(), blender::bke::object::pbvh_get(), blender::ed::sculpt_paint::scatter_data_mesh(), SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::tag_face_sets_changed(), and blender::bke::pbvh::Tree::type().
Referenced by restore_from_undo_step().
|
static |
Definition at line 572 of file sculpt_undo.cc.
References data, blender::ed::sculpt_paint::face_set::ensure_face_sets_mesh(), blender::ed::sculpt_paint::undo::Node::face_indices, blender::ed::sculpt_paint::undo::Node::face_sets, blender::bke::SpanAttributeWriter< T >::finish(), i, blender::Span< T >::index_range(), restore_face_sets(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by restore_face_sets(), and restore_list().
| void blender::ed::sculpt_paint::undo::restore_from_bmesh_enter_geometry | ( | const StepData & | step_data, |
| Mesh & | mesh ) |
Definition at line 785 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::bmesh, blender::ed::sculpt_paint::undo::StepData::geometry_enter, restore_from_bmesh_enter_geometry(), and restore_geometry_data().
Referenced by blender::ed::sculpt_paint::dyntopo::disable(), and restore_from_bmesh_enter_geometry().
|
static |
Definition at line 1148 of file sculpt.cc.
References blender::ed::sculpt_paint::StrokeCache::alt_smooth, BKE_paint_brush_for_read(), SculptSession::cache, depsgraph, Sculpt::paint, blender::bke::object::pbvh_get(), restore_color_from_undo_step(), restore_face_set_from_undo_step(), restore_mask_from_undo_step(), restore_position_from_undo_step(), Brush::sculpt_brush_type, SCULPT_BRUSH_TYPE_DRAW_FACE_SETS, SCULPT_BRUSH_TYPE_MASK, SCULPT_BRUSH_TYPE_PAINT, SCULPT_BRUSH_TYPE_SMEAR, and blender::bke::pbvh::update_normals().
Referenced by restore_from_undo_step_if_necessary(), and blender::ed::sculpt_paint::sculpt_brush_stroke_cancel().
|
static |
Definition at line 739 of file sculpt_undo.cc.
References BKE_sculptsession_free_pbvh(), DEG_id_tag_update(), blender::ed::sculpt_paint::undo::StepData::geometry_modified, blender::ed::sculpt_paint::undo::StepData::geometry_original, ID_RECALC_GEOMETRY, blender::ed::sculpt_paint::undo::StepData::needs_undo(), restore_geometry(), restore_geometry_data(), blender::ed::sculpt_paint::undo::StepData::tag_needs_redo(), and blender::ed::sculpt_paint::undo::StepData::tag_needs_undo().
Referenced by restore_geometry(), and restore_list().
|
static |
Definition at line 703 of file sculpt_undo.cc.
References BKE_mesh_clear_geometry(), BLI_assert, CD_MASK_MESH, blender::implicit_sharing::copy_shared_pointer(), CustomData_init_from(), and restore_geometry_data().
Referenced by restore_from_bmesh_enter_geometry(), restore_geometry(), and restore_geometry_data().
|
static |
Definition at line 483 of file sculpt_undo.cc.
References blender::bke::Face, blender::ed::sculpt_paint::undo::Node::face_hidden, blender::ed::sculpt_paint::undo::Node::face_indices, blender::bke::SpanAttributeWriter< T >::finish(), i, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), restore_hidden_face(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by restore_hidden_face(), and restore_list().
|
static |
Definition at line 820 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, 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_ensure(), blender::ed::sculpt_paint::undo::StepData::pivot_pos, SculptSession::pivot_pos, blender::ed::sculpt_paint::undo::StepData::pivot_rot, SculptSession::pivot_rot, Position, 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(), 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 restore_list(), step_decode_redo_impl(), and step_decode_undo_impl().
|
static |
Definition at line 872 of file sculpt.cc.
References blender::bke::pbvh::all_leaf_nodes(), BKE_pbvh_bmesh_node_unique_verts(), BKE_subdiv_ccg_key_top_level(), SculptSession::bm, BM_ELEM_CD_SET_FLOAT, SculptSession::bm_log, BM_log_find_original_vert_mask(), blender::bke::pbvh::BMesh, CD_PROP_FLOAT, CustomData_get_offset_named(), blender::index_mask::IndexMask::foreach_index(), blender::IndexMask::from_bools(), CCGKey::grid_area, blender::bke::ccg::grid_range(), blender::bke::pbvh::Grids, i, blender::bits::BitGroupVector< InlineBufferCapacity, Allocator >::is_empty(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::pbvh::Mesh, blender::index_mask::IndexMask::min_array_size(), blender::bke::pbvh::node_update_mask_bmesh(), blender::bke::pbvh::node_update_mask_grids(), blender::bke::pbvh::node_update_mask_mesh(), blender::bke::pbvh::Tree::nodes(), blender::ed::sculpt_paint::orig_mask_data_lookup_grids(), blender::ed::sculpt_paint::orig_mask_data_lookup_mesh(), blender::bke::object::pbvh_get(), blender::bke::Point, blender::ed::sculpt_paint::scatter_data_mesh(), SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::tag_masks_changed(), blender::bke::pbvh::Tree::type(), BMesh::vdata, and verts.
Referenced by restore_from_undo_step().
|
static |
Definition at line 550 of file sculpt_undo.cc.
References Array< T, InlineBufferCapacity, Allocator >::as_span(), BKE_subdiv_ccg_key_top_level(), data, blender::MutableSpan< T >::fill_indices(), blender::bke::ccg::grid_range(), blender::ed::sculpt_paint::undo::Node::grids, i, blender::Span< T >::index_range(), blender::ed::sculpt_paint::undo::Node::mask, SubdivCCG::masks, restore_mask_grids(), blender::MutableSpan< T >::slice(), and SculptSession::subdiv_ccg.
Referenced by restore_list(), and restore_mask_grids().
|
static |
Definition at line 529 of file sculpt_undo.cc.
References Array< T, InlineBufferCapacity, Allocator >::as_span(), BKE_object_get_original_mesh(), i, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::ed::sculpt_paint::undo::Node::mask, blender::bke::Point, restore_mask_mesh(), Span< T >::take_front(), blender::ed::sculpt_paint::undo::Node::unique_verts_num, and blender::ed::sculpt_paint::undo::Node::vert_indices.
Referenced by restore_list(), and restore_mask_mesh().
| void blender::ed::sculpt_paint::undo::restore_position_from_undo_step | ( | const Depsgraph & | depsgraph, |
| Object & | object ) |
Definition at line 1032 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().
|
static |
Definition at line 419 of file sculpt_undo.cc.
References data, blender::MutableSpan< T >::fill_indices(), blender::bke::ccg::grid_range(), blender::ed::sculpt_paint::undo::Node::grids, i, blender::Span< T >::index_range(), blender::ed::sculpt_paint::undo::Node::position, restore_position_grids(), and blender::MutableSpan< T >::slice().
Referenced by restore_list(), and restore_position_grids().
|
static |
Definition at line 365 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::ShapeKeyData::from_object(), and blender::threading::parallel_for().
Referenced by restore_list().
|
static |
Definition at line 457 of file sculpt_undo.cc.
References b, BKE_subdiv_ccg_grid_hidden_ensure(), BKE_subdiv_ccg_grid_hidden_free(), blender::MutableSpan< T >::fill_indices(), blender::ed::sculpt_paint::undo::Node::grid_hidden, blender::ed::sculpt_paint::undo::Node::grids, i, blender::bits::MutableBitSpan::index_range(), blender::Span< T >::index_range(), and restore_vert_visibility_grids().
Referenced by restore_list(), and restore_vert_visibility_grids().
|
static |
Definition at line 438 of file sculpt_undo.cc.
References blender::bke::SpanAttributeWriter< T >::finish(), i, Array< T, InlineBufferCapacity, Allocator >::index_range(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::Point, restore_vert_visibility_mesh(), blender::bke::SpanAttributeWriter< T >::span, blender::IndexRange::take_front(), blender::ed::sculpt_paint::undo::Node::unique_verts_num, blender::ed::sculpt_paint::undo::Node::vert_hidden, and blender::ed::sculpt_paint::undo::Node::vert_indices.
Referenced by restore_list(), and restore_vert_visibility_mesh().
|
static |
Definition at line 1660 of file sculpt_undo.cc.
References ATTR_DOMAIN_AS_MASK, ATTR_DOMAIN_MASK_COLOR, BKE_object_get_original_mesh(), CD_MASK_COLOR_ALL, CD_TYPE_AS_MASK, blender::ed::sculpt_paint::undo::SculptAttrRef::domain, blender::bke::AttributeAccessor::lookup_meta_data(), blender::ed::sculpt_paint::undo::SculptAttrRef::name, NO_ACTIVE_LAYER, save_active_attribute(), STRNCPY(), blender::ed::sculpt_paint::undo::SculptAttrRef::type, and blender::ed::sculpt_paint::undo::SculptAttrRef::was_set.
Referenced by save_active_attribute(), save_common_data(), and set_active_layer().
|
static |
Does not save topology counts, as that data is unneeded for full geometry pushes and requires the PBVH to exist.
Definition at line 1689 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(), blender::ed::sculpt_paint::undo::SculptUndoStep::data, Object::id, 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, save_active_attribute(), save_common_data(), Object::sculpt, and blender::ed::sculpt_paint::undo::SculptAttrRef::was_set.
Referenced by geometry_begin_ex(), push_begin_ex(), push_enter_sculpt_mode(), and save_common_data().
|
static |
Definition at line 1854 of file sculpt_undo.cc.
References ATTR_DOMAIN_MASK_ALL, blender::bke::Auto, BKE_attribute_find(), BKE_attribute_search_for_write(), BKE_id_attributes_active_color_set(), BKE_object_get_original_mesh(), C, CD_MASK_PROP_ALL, blender::ed::geometry::convert_attribute(), CTX_data_active_object(), DEG_id_tag_update(), blender::ed::sculpt_paint::undo::SculptAttrRef::domain, AttributeOwner::from_id(), Object::id, ID_RECALC_GEOMETRY, blender::ed::sculpt_paint::undo::SculptAttrRef::name, CustomDataLayer::name, save_active_attribute(), set_active_layer(), and blender::ed::sculpt_paint::undo::SculptAttrRef::type.
Referenced by set_active_layer(), step_decode_redo(), and step_decode_undo().
|
static |
Definition at line 2002 of file sculpt_undo.cc.
References BKE_scene_graph_evaluated_ensure(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert, C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), Object::data, depsgraph, Main::is_memfile_undo_flush_needed, ME_SCULPT_DYNAMIC_TOPOLOGY, Object::mode, blender::ed::object::mode_generic_exit(), SculptSession::needs_flush_to_id, OB_MESH, OB_MODE_SCULPT, blender::ed::sculpt_paint::object_sculpt_mode_enter(), Object::sculpt, step_decode(), step_decode_redo(), step_decode_undo(), STEP_INVALID, STEP_REDO, STEP_UNDO, and Object::type.
Referenced by register_type(), and step_decode().
|
static |
Definition at line 1981 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::SculptUndoStep::active_color_end, blender::ed::sculpt_paint::undo::SculptUndoStep::active_color_start, C, depsgraph, UndoStep::is_applied, UndoStep::next, UndoStep::prev, set_active_layer(), blender::ed::sculpt_paint::undo::SculptUndoStep::step, step_decode_redo(), step_decode_redo_impl(), and UndoStep::type.
Referenced by step_decode(), and step_decode_redo().
|
static |
Definition at line 1940 of file sculpt_undo.cc.
References BLI_assert, C, blender::ed::sculpt_paint::undo::SculptUndoStep::data, depsgraph, UndoStep::is_applied, restore_list(), blender::ed::sculpt_paint::undo::SculptUndoStep::step, and step_decode_redo_impl().
Referenced by step_decode_redo(), and step_decode_redo_impl().
|
static |
Definition at line 1948 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::SculptUndoStep::active_color_end, blender::ed::sculpt_paint::undo::SculptUndoStep::active_color_start, BKE_UNDOSYS_TYPE_SCULPT, BLI_assert, C, depsgraph, UndoStep::is_applied, UndoStep::next, UndoStep::prev, set_active_layer(), blender::ed::sculpt_paint::undo::SculptUndoStep::step, step_decode_undo(), step_decode_undo_impl(), and UndoStep::type.
Referenced by step_decode(), and step_decode_undo().
|
static |
Definition at line 1932 of file sculpt_undo.cc.
References BLI_assert, C, blender::ed::sculpt_paint::undo::SculptUndoStep::data, depsgraph, UndoStep::is_applied, restore_list(), blender::ed::sculpt_paint::undo::SculptUndoStep::step, and step_decode_undo_impl().
Referenced by step_decode_undo(), and step_decode_undo_impl().
|
static |
Definition at line 1912 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::SculptUndoStep::data, UndoStep::data_size, DyntopoEnd, UndoStep::is_applied, Main::is_memfile_undo_flush_needed, None, blender::ed::sculpt_paint::undo::SculptUndoStep::step, step_encode(), blender::ed::sculpt_paint::undo::StepData::type, blender::ed::sculpt_paint::undo::StepData::undo_size, and UndoStep::use_memfile_step.
Referenced by register_type(), and step_encode().
Definition at line 1906 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::SculptUndoStep::data, and step_encode_init().
Referenced by register_type(), and step_encode_init().
|
static |
Definition at line 2055 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::SculptUndoStep::data, free_step_data(), and step_free().
Referenced by register_type(), and step_free().
|
static |
Definition at line 1261 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::color::active_color_attribute(), Vector< T, InlineBufferCapacity, Allocator >::append(), blender::ed::sculpt_paint::undo::Node::col, blender::bke::Corner, blender::ed::sculpt_paint::undo::Node::corner_indices, blender::bke::GAttributeReader::domain, blender::bke::pbvh::MeshNode::faces(), faces, blender::ed::sculpt_paint::color::gather_colors(), blender::ed::sculpt_paint::color::gather_colors_vert(), blender::ed::sculpt_paint::undo::Node::loop_col, Vector< T, InlineBufferCapacity, Allocator >::size(), store_color(), blender::bke::pbvh::MeshNode::verts(), and verts.
Referenced by fill_node_data_mesh(), and store_color().
Definition at line 1308 of file sculpt_undo.cc.
References Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), blender::bke::Face, blender::ed::sculpt_paint::undo::Node::face_indices, blender::ed::sculpt_paint::undo::Node::face_sets, Array< T, InlineBufferCapacity, Allocator >::fill(), blender::ed::sculpt_paint::gather_data_mesh(), blender::Span< T >::is_empty(), blender::bke::AttributeAccessor::lookup(), and store_face_sets().
Referenced by fill_node_data_grids(), fill_node_data_mesh(), and store_face_sets().
|
static |
Definition at line 1224 of file sculpt_undo.cc.
References blender::bke::Face, blender::ed::sculpt_paint::undo::Node::face_hidden, blender::ed::sculpt_paint::undo::Node::face_indices, faces, i, blender::Span< T >::is_empty(), blender::bke::AttributeAccessor::lookup(), and store_face_visibility().
Referenced by fill_node_data_grids(), fill_node_data_mesh(), and store_face_visibility().
|
static |
Definition at line 677 of file sculpt_undo.cc.
References BLI_assert, CD_MASK_MESH, blender::implicit_sharing::copy_shared_pointer(), CustomData_init_from(), and store_geometry_data().
Referenced by bmesh_push(), geometry_push(), and store_geometry_data().
|
static |
Definition at line 1250 of file sculpt_undo.cc.
References Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), Array< T, InlineBufferCapacity, Allocator >::as_span(), Array< T, InlineBufferCapacity, Allocator >::fill(), blender::ed::sculpt_paint::gather_data_grids(), blender::ed::sculpt_paint::undo::Node::grids, Array< T, InlineBufferCapacity, Allocator >::is_empty(), blender::ed::sculpt_paint::undo::Node::mask, SubdivCCG::masks, and store_mask_grids().
Referenced by fill_node_data_grids(), and store_mask_grids().
Definition at line 1238 of file sculpt_undo.cc.
References Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), Array< T, InlineBufferCapacity, Allocator >::as_span(), Array< T, InlineBufferCapacity, Allocator >::fill(), blender::ed::sculpt_paint::gather_data_mesh(), blender::bke::AttributeAccessor::lookup(), blender::ed::sculpt_paint::undo::Node::mask, blender::bke::Point, store_mask_mesh(), and blender::ed::sculpt_paint::undo::Node::vert_indices.
Referenced by fill_node_data_mesh(), and store_mask_mesh().
|
static |
Definition at line 1201 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::gather_data_grids(), blender::ed::sculpt_paint::undo::Node::grids, blender::ed::sculpt_paint::undo::Node::normal, SubdivCCG::normals, blender::ed::sculpt_paint::undo::Node::position, SubdivCCG::positions, and store_positions_grids().
Referenced by fill_node_data_grids(), and store_positions_grids().
|
static |
Definition at line 1179 of file sculpt_undo.cc.
References Array< T, InlineBufferCapacity, Allocator >::as_span(), KeyBlock::data, SculptSession::deform_modifiers_active, depsgraph, blender::ed::sculpt_paint::gather_data_mesh(), blender::ed::sculpt_paint::undo::Node::normal, blender::ed::sculpt_paint::undo::Node::orig_position, blender::ed::sculpt_paint::undo::Node::position, SculptSession::shapekey_active, store_positions_mesh(), blender::ed::sculpt_paint::undo::Node::vert_indices, blender::bke::pbvh::vert_normals_eval(), and blender::bke::pbvh::vert_positions_eval().
Referenced by fill_node_data_mesh(), and store_positions_mesh().
|
static |
Definition at line 1163 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::Node::grid_hidden, SubdivCCG::grid_hidden, blender::bke::pbvh::GridsNode::grids(), blender::bits::BitGroupVector< InlineBufferCapacity, Allocator >::group_size(), i, blender::Span< T >::index_range(), blender::bits::BitGroupVector< InlineBufferCapacity, Allocator >::is_empty(), blender::Span< T >::size(), and store_vert_visibility_grids().
Referenced by fill_node_data_grids(), and store_vert_visibility_grids().
|
static |
Definition at line 1209 of file sculpt_undo.cc.
References i, blender::Span< T >::is_empty(), blender::bke::AttributeAccessor::lookup(), blender::bke::Point, store_vert_visibility_mesh(), blender::ed::sculpt_paint::undo::Node::vert_hidden, and verts.
Referenced by fill_node_data_mesh(), and store_vert_visibility_mesh().
|
static |
Definition at line 357 of file sculpt_undo.cc.
References BLI_assert, i, indices, and blender::MutableSpan< T >::size().
|
static |
Definition at line 311 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::grid_size, SubdivCCG::grid_size, blender::ed::sculpt_paint::undo::StepData::grids, blender::ed::sculpt_paint::undo::StepData::grids_num, SubdivCCG::grids_num, blender::ed::sculpt_paint::undo::StepData::mesh, SculptSession::subdiv_ccg, use_multires_undo(), and blender::ed::sculpt_paint::undo::StepData::verts_num.
Referenced by restore_list().
|
static |
Definition at line 2170 of file sculpt_undo.cc.
References SculptSession::active, BKE_paintmode_get_active_from_context(), C, CTX_data_active_object(), SculptSession::multires, Sculpt, and use_multires_mesh().
Referenced by push_multires_mesh_begin(), push_multires_mesh_end(), and use_multires_mesh().
|
static |
Definition at line 306 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::grids, blender::ed::sculpt_paint::undo::StepData::grids_num, and SculptSession::subdiv_ccg.
Referenced by restore_list(), and topology_matches().