|
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< float3float3 > 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 620 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 641 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 658 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 1455 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 759 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 593 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 2083 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 1546 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 2101 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 1387 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 1319 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 1126 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 2060 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 2065 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 2114 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 728 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 1286 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 1297 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 1143 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 789 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 1774 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 1752 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 1714 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 1844 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 1794 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 1757 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 2181 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 2197 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 1558 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 1597 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 807 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 2133 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 504 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 571 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 784 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 738 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 702 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 482 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 819 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_get(), 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 549 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 528 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 418 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 456 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 437 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 1659 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 1688 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 1853 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 2001 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, OB_MODE_VERTEX_PAINT, 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 1980 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 1939 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 1947 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 1931 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 1911 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 1905 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 2054 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 1260 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 1307 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 1223 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 676 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 1249 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 1237 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 1200 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 1178 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 1162 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 1208 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 2169 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().