|
Blender V5.0
|
Namespaces | |
| namespace | compression |
| namespace | tests |
Classes | |
| struct | Node |
| struct | SculptAttrRef |
| struct | NodeGeometry |
| struct | StepData |
| struct | PositionUndoStorage |
| struct | SculptUndoStep |
Enumerations | |
| enum class | Type : int8_t { None , Position , HideVert , HideFace , Mask , DyntopoBegin , DyntopoEnd , Geometry , FaceSet , Color } |
Functions | |
| size_t | step_memory_size_get (UndoStep *step) |
| static void | restore_mask_from_undo_step (Object &object) |
| static void | restore_color_from_undo_step (Object &object) |
| static void | restore_face_set_from_undo_step (Object &object) |
| void | restore_position_from_undo_step (const Depsgraph &depsgraph, Object &object) |
| static void | restore_from_undo_step (const Depsgraph &depsgraph, const Sculpt &sd, Object &object) |
| static 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, PositionUndoStorage &undo_data, const MutableSpan< bool > modified_verts) |
| static void | restore_position_grids (const MutableSpan< float3 > positions, const CCGKey &key, PositionUndoStorage &undo_data, const MutableSpan< bool > modified_grids) |
| static void | restore_vert_visibility_mesh (Object &object, Node &unode, const MutableSpan< bool > modified_verts) |
| static void | restore_vert_visibility_grids (SubdivCCG &subdiv_ccg, Node &unode, const MutableSpan< bool > modified_grids) |
| static void | restore_hidden_face (Object &object, Node &unode, const MutableSpan< bool > modified_faces) |
| static void | restore_color (Object &object, StepData &step_data, const MutableSpan< bool > modified_verts) |
| static void | restore_mask_mesh (Object &object, Node &unode, const MutableSpan< bool > modified_verts) |
| static void | restore_mask_grids (Object &object, Node &unode, const MutableSpan< bool > modified_grids) |
| static bool | restore_face_sets (Object &object, Node &unode, const MutableSpan< bool > modified_face_set_faces) |
| static void | bmesh_restore_generic (StepData &step_data, Object &object) |
| static void | bmesh_enable (Object &object, const StepData &step_data) |
| static void | bmesh_handle_dyntopo_begin (bContext *C, StepData &step_data, Object &object) |
| static void | bmesh_handle_dyntopo_end (bContext *C, StepData &step_data, Object &object) |
| static void | store_geometry_data (NodeGeometry *geometry, const Object &object) |
| static void | restore_geometry_data (const NodeGeometry *geometry, Mesh *mesh) |
| static void | geometry_free_data (NodeGeometry *geometry) |
| static void | restore_geometry (StepData &step_data, Object &object) |
| static int | bmesh_restore (bContext *C, Depsgraph &depsgraph, StepData &step_data, Object &object) |
| void | restore_from_bmesh_enter_geometry (const StepData &step_data, Mesh &mesh) |
| bool | has_bmesh_log_entry () |
| static void | refine_subdiv (Depsgraph *depsgraph, const SculptSession &ss, Object &object, bke::subdiv::Subdiv *subdiv) |
| static void | restore_list (bContext *C, Depsgraph *depsgraph, StepData &step_data) |
| static void | free_step_data (StepData &step_data) |
| static const 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 28 of file sculpt_undo.hh.
|
static |
Definition at line 853 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, CD_PROP_FLOAT, DEG_id_tag_update(), ID_RECALC_GEOMETRY, ME_SCULPT_DYNAMIC_TOPOLOGY, BMeshCreateParams::use_toolflags, and BMesh::vdata.
Referenced by bmesh_handle_dyntopo_begin(), and bmesh_handle_dyntopo_end().
|
static |
Definition at line 874 of file sculpt_undo.cc.
References SculptSession::bm, SculptSession::bm_log, BM_log_redo(), bmesh_enable(), 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_restore().
|
static |
Definition at line 891 of file sculpt_undo.cc.
References SculptSession::bm, SculptSession::bm_log, BM_log_undo(), bmesh_enable(), 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_restore().
|
static |
Dynamic topology stores only one undo node per stroke, regardless of the number of bke::pbvh::Tree nodes modified.
Definition at line 1688 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, 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 push_node(), and push_nodes().
|
static |
Definition at line 992 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_generic(), C, depsgraph, DyntopoBegin, DyntopoEnd, and blender::ed::sculpt_paint::undo::StepData::type.
Referenced by restore_list().
|
static |
Definition at line 826 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(), 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().
|
static |
Definition at line 2323 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 1779 of file sculpt_undo.cc.
References lock, blender::ed::sculpt_paint::undo::StepData::nodes_mutex, and blender::ed::sculpt_paint::undo::StepData::undo_nodes_by_pbvh_node.
Referenced by push_node(), and push_nodes().
|
static |
Definition at line 2341 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 1620 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, 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 push_node().
|
static |
Definition at line 1552 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, 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 push_node().
|
static |
Definition at line 1359 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, 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 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 2300 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(), mesh_reorder_vertices_spatial_exec(), 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 2305 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, name, 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 2354 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(), mesh_reorder_vertices_spatial_exec(), 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 961 of file sculpt_undo.cc.
References CustomData_free(), and blender::implicit_sharing::free_shared_data().
Referenced by free_step_data().
|
static |
Definition at line 1519 of file sculpt_undo.cc.
References BLI_assert, 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_push().
|
static |
Definition at line 1530 of file sculpt_undo.cc.
References Geometry, geometry_get(), get_step_data(), store_geometry_data(), and blender::ed::sculpt_paint::undo::StepData::type.
Referenced by geometry_begin_ex(), geometry_end(), push_multires_mesh_begin(), and push_multires_mesh_end().
|
static |
Definition at line 478 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 1376 of file sculpt_undo.cc.
References get_step_data(), blender::ed::sculpt_paint::undo::StepData::type, and blender::ed::sculpt_paint::undo::StepData::undo_nodes_by_pbvh_node.
Referenced by 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 485 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 1022 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::bm_entry, blender::ed::sculpt_paint::undo::StepData::bmesh, and get_step_data().
Referenced by blender::ed::sculpt_paint::calc_area_normal_and_center_node_bmesh(), and restore_position_from_undo_step().
|
static |
Definition at line 510 of file sculpt_undo.cc.
References data, i, and indices.
Referenced by restore_list().
|
static |
Definition at line 2007 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 1985 of file sculpt_undo.cc.
References wmOperatorType::name, push_begin(), push_begin_ex(), and wmOperator::type.
Referenced by blender::ed::sculpt_paint::face_set::change_visibility_exec(), blender::ed::sculpt_paint::face_set::create_op_exec(), blender::ed::sculpt_paint::face_set::edit_grow_shrink(), blender::ed::sculpt_paint::face_set::edit_modify_coordinates(), blender::ed::sculpt_paint::face_set::gesture_begin(), blender::ed::sculpt_paint::mask::gesture_begin(), blender::ed::sculpt_paint::project::gesture_begin(), blender::ed::sculpt_paint::hide::hide_show_begin(), blender::ed::sculpt_paint::face_set::init_op_exec(), blender::ed::sculpt_paint::mask::mask_by_color(), blender::ed::sculpt_paint::mask::mask_flood_fill_exec(), blender::ed::sculpt_paint::mask::mask_from_boundary_exec(), blender::ed::sculpt_paint::mask::mask_from_cavity_exec(), push_begin(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_invoke(), blender::ed::sculpt_paint::color::sculpt_color_filter_init(), blender::ed::sculpt_paint::dyntopo::sculpt_detail_flood_fill_exec(), blender::ed::sculpt_paint::expand::sculpt_expand_invoke(), blender::ed::sculpt_paint::mask::sculpt_mask_filter_exec(), blender::ed::sculpt_paint::mask::sculpt_mask_init_exec(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_start(), blender::ed::sculpt_paint::store_mesh_from_eval(), blender::ed::sculpt_paint::symmetrize_exec(), blender::ed::sculpt_paint::hide::visibility_filter_exec(), and blender::ed::sculpt_paint::hide::visibility_invert_exec().
| 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 1947 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, name, 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 2082 of file sculpt_undo.cc.
References push_end(), and push_end_ex().
Referenced by blender::ed::sculpt_paint::face_set::change_visibility_exec(), blender::ed::sculpt_paint::face_set::create_op_exec(), blender::ed::sculpt_paint::dyntopo::disable_with_undo(), blender::ed::sculpt_paint::face_set::edit_grow_shrink(), blender::ed::sculpt_paint::face_set::edit_modify_coordinates(), blender::ed::sculpt_paint::dyntopo::enable_with_undo(), blender::ed::sculpt_paint::end_transform(), blender::ed::sculpt_paint::expand::finish(), blender::ed::sculpt_paint::face_set::gesture_end(), blender::ed::sculpt_paint::mask::gesture_end(), blender::ed::sculpt_paint::project::gesture_end(), blender::ed::sculpt_paint::hide::hide_show_all_exec(), blender::ed::sculpt_paint::hide::hide_show_end(), blender::ed::sculpt_paint::hide::hide_show_masked_exec(), blender::ed::sculpt_paint::face_set::init_op_exec(), blender::ed::sculpt_paint::mask::mask_by_color(), blender::ed::sculpt_paint::mask::mask_flood_fill_exec(), blender::ed::sculpt_paint::mask::mask_from_boundary_exec(), blender::ed::sculpt_paint::mask::mask_from_cavity_exec(), blender::ed::sculpt_paint::object_sculpt_mode_enter(), push_end(), push_multires_mesh_end(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_modal(), blender::ed::sculpt_paint::color::sculpt_color_filter_end(), blender::ed::sculpt_paint::dyntopo::sculpt_detail_flood_fill_exec(), blender::ed::sculpt_paint::expand::sculpt_expand_cancel(), blender::ed::sculpt_paint::mask::sculpt_mask_filter_exec(), blender::ed::sculpt_paint::mask::sculpt_mask_init_exec(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_exec(), blender::ed::sculpt_paint::sculpt_mode_toggle_exec(), blender::ed::sculpt_paint::store_mesh_from_eval(), stroke_undo_end(), blender::ed::sculpt_paint::symmetrize_exec(), blender::ed::sculpt_paint::hide::visibility_filter_exec(), and blender::ed::sculpt_paint::hide::visibility_invert_exec().
| void blender::ed::sculpt_paint::undo::push_end_ex | ( | Object & | ob, |
| const bool | use_nested_undo ) |
Definition at line 2027 of file sculpt_undo.cc.
References get_step_data(), blender::ed::sculpt_paint::undo::StepData::nodes, blender::threading::parallel_reduce(), Position, blender::ed::sculpt_paint::undo::StepData::position_step_storage, push_end_ex(), size(), blender::ed::sculpt_paint::undo::StepData::type, 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 1990 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 2421 of file sculpt_undo.cc.
References C, CTX_data_active_object(), CTX_data_scene(), geometry_push(), multires_flush_sculpt_updates(), push_begin_ex(), push_multires_mesh_begin(), str, and use_multires_mesh().
Referenced by blender::ed::object::multires_base_apply_exec(), and push_multires_mesh_begin().
| void blender::ed::sculpt_paint::undo::push_multires_mesh_end | ( | bContext * | C, |
| const char * | str ) |
Definition at line 2437 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 1791 of file sculpt_undo.cc.
References BLI_assert, BLI_assert_unreachable, SculptSession::bm, blender::bke::pbvh::BMesh, bmesh_push(), depsgraph, DyntopoBegin, DyntopoEnd, ELEM, ensure_node(), fill_node_data_grids(), fill_node_data_mesh(), get_step_data(), blender::bke::pbvh::Grids, blender::bke::pbvh::Mesh, SculptSession::needs_flush_to_id, None, blender::bke::object::pbvh_get(), blender::bke::pbvh::Tree::type(), and blender::ed::sculpt_paint::undo::StepData::type.
Referenced by blender::ed::sculpt_paint::mask::apply_new_mask_bmesh(), blender::ed::sculpt_paint::mask::apply_new_mask_grids(), blender::ed::sculpt_paint::mask::apply_new_mask_mesh(), blender::ed::sculpt_paint::face_set::clear_face_sets(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_bmesh(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_grids(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_mesh(), blender::ed::sculpt_paint::dyntopo::disable_with_undo(), blender::ed::sculpt_paint::dyntopo::enable_with_undo(), blender::ed::sculpt_paint::face_set::face_hide_update(), blender::ed::sculpt_paint::face_set::face_sets_update(), blender::ed::sculpt_paint::mask::fill_mask_grids(), blender::ed::sculpt_paint::mask::fill_mask_mesh(), blender::ed::sculpt_paint::face_set::gesture_apply_bmesh(), blender::ed::sculpt_paint::mask::gesture_apply_for_symmetry_pass(), blender::ed::sculpt_paint::face_set::gesture_apply_mesh(), blender::ed::sculpt_paint::hide::grid_hide_update(), blender::ed::sculpt_paint::mask::increase_contrast_mask_bmesh(), blender::ed::sculpt_paint::mask::increase_contrast_mask_grids(), blender::ed::sculpt_paint::mask::increase_contrast_mask_mesh(), blender::ed::sculpt_paint::object_sculpt_mode_enter(), blender::ed::sculpt_paint::hide::partialvis_update_bmesh_nodes(), blender::ed::sculpt_paint::dyntopo::sculpt_detail_flood_fill_exec(), blender::ed::sculpt_paint::symmetrize_exec(), blender::ed::sculpt_paint::mask::update_mask_mesh(), blender::ed::sculpt_paint::hide::update_undo_state(), and blender::ed::sculpt_paint::hide::vert_hide_update().
| void blender::ed::sculpt_paint::undo::push_nodes | ( | const Depsgraph & | depsgraph, |
| Object & | object, | ||
| const IndexMask & | node_mask, | ||
| const Type | type ) |
Definition at line 1830 of file sculpt_undo.cc.
References BLI_assert, SculptSession::bm, bmesh_push(), depsgraph, DyntopoBegin, DyntopoEnd, ELEM, ensure_node(), blender::index_mask::IndexMask::foreach_index(), get_step_data(), blender::bke::pbvh::Grids, i, blender::bke::pbvh::Mesh, SculptSession::needs_flush_to_id, blender::bke::pbvh::Tree::nodes(), None, blender::threading::parallel_for(), blender::bke::object::pbvh_get(), blender::bke::pbvh::Tree::type(), and blender::ed::sculpt_paint::undo::StepData::type.
Referenced by blender::ed::sculpt_paint::filter::cache_init(), blender::ed::sculpt_paint::dynamic_topology_update(), blender::ed::sculpt_paint::face_set::edit_modify_coordinates(), blender::ed::sculpt_paint::mask::fill_mask_bmesh(), blender::ed::sculpt_paint::project::gesture_apply_for_symmetry_pass(), blender::ed::sculpt_paint::hide::grids_show_all(), blender::ed::sculpt_paint::hide::grow_shrink_visibility_grid(), blender::ed::sculpt_paint::mask::init_mask_grids(), blender::ed::sculpt_paint::face_set::init_op_exec(), blender::ed::sculpt_paint::mask::invert_mask_bmesh(), blender::ed::sculpt_paint::mask::invert_mask_grids(), blender::ed::sculpt_paint::hide::invert_visibility_bmesh(), blender::ed::sculpt_paint::hide::invert_visibility_grids(), blender::ed::sculpt_paint::hide::invert_visibility_mesh(), blender::ed::sculpt_paint::mask::mask_from_boundary_exec(), blender::ed::sculpt_paint::mask::mask_from_cavity_exec(), blender::ed::sculpt_paint::hide::mesh_show_all(), blender::ed::sculpt_paint::push_undo_nodes(), blender::ed::sculpt_paint::mask::sculpt_mask_init_exec(), blender::ed::sculpt_paint::store_mesh_from_eval(), blender::ed::sculpt_paint::expand::undo_push(), and blender::ed::sculpt_paint::mask::write_mask_mesh().
|
static |
Definition at line 1040 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, and SculptSession::multires.
Referenced by restore_list().
| void blender::ed::sculpt_paint::undo::register_type | ( | UndoType * | ut | ) |
Definition at line 2373 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 515 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 737 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, blender::bke::GSpanAttributeWriter::span, and blender::ed::sculpt_paint::color::swap_gathered_colors().
Referenced by restore_list().
|
static |
Definition at line 946 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 979 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 804 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(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by restore_list().
| void blender::ed::sculpt_paint::undo::restore_from_bmesh_enter_geometry | ( | const StepData & | step_data, |
| Mesh & | mesh ) |
Definition at line 1017 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::bmesh, blender::ed::sculpt_paint::undo::StepData::geometry_enter, and restore_geometry_data().
Referenced by blender::ed::sculpt_paint::dyntopo::disable().
|
static |
Definition at line 1147 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 971 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_data(), blender::ed::sculpt_paint::undo::StepData::tag_needs_redo(), and blender::ed::sculpt_paint::undo::StepData::tag_needs_undo().
Referenced by restore_list().
|
static |
Definition at line 935 of file sculpt_undo.cc.
References BKE_mesh_clear_geometry(), BLI_assert, CD_MASK_MESH, blender::implicit_sharing::copy_shared_pointer(), and CustomData_init_from().
Referenced by restore_from_bmesh_enter_geometry(), and restore_geometry().
|
static |
Definition at line 715 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(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by restore_list().
|
static |
Definition at line 1052 of file sculpt_undo.cc.
References blender::bke::pbvh::all_leaf_nodes(), BKE_pbvh_sync_visibility_from_verts(), BKE_sculpt_multires_active(), BKE_sculpt_update_object_for_edit(), BKE_sculptsession_free_deformMats(), BKE_sculptsession_use_pbvh_draw(), BKE_subdiv_ccg_key_top_level(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert, BLI_assert_unreachable, SculptSession::bm, bmesh_restore(), C, CLOG_WARN, Color, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region_view3d(), data, SculptSession::deform_modifiers_active, DEG_id_tag_update(), depsgraph, DyntopoBegin, DyntopoEnd, faces, FaceSet, blender::IndexMask::from_predicate(), Geometry, blender::bke::pbvh::Grids, SubdivCCG::grids_num, HideFace, HideVert, i, ID_REAL_USERS, ID_RECALC_GEOMETRY, ID_RECALC_SHADING, indices_contain_true(), LOG, Mask, blender::bke::pbvh::Mesh, MULTIRES_COORDS_MODIFIED, MULTIRES_HIDDEN_MODIFIED, multires_mark_as_modified(), blender::bke::pbvh::node_face_indices_calc_grids(), blender::bke::pbvh::Tree::nodes(), blender::ed::sculpt_paint::undo::StepData::nodes, None, blender::ed::sculpt_paint::undo::StepData::object_name, blender::bke::object::pbvh_get(), blender::ed::sculpt_paint::undo::StepData::pivot_pos, SculptSession::pivot_pos, blender::ed::sculpt_paint::undo::StepData::pivot_rot, SculptSession::pivot_rot, Position, blender::ed::sculpt_paint::undo::StepData::position_step_storage, refine_subdiv(), restore_active_shape_key(), restore_color(), restore_face_sets(), restore_geometry(), restore_hidden_face(), restore_mask_grids(), restore_mask_mesh(), restore_position_grids(), restore_position_mesh(), restore_vert_visibility_grids(), restore_vert_visibility_mesh(), SculptSession::shapekey_active, blender::bke::pbvh::store_bounds_orig(), SculptSession::subdiv_ccg, blender::ed::sculpt_paint::hide::sync_all_from_faces(), blender::bke::pbvh::Tree::tag_attribute_changed(), blender::bke::pbvh::Tree::tag_face_sets_changed(), blender::bke::pbvh::Tree::tag_masks_changed(), blender::bke::pbvh::Tree::tag_positions_changed(), blender::bke::pbvh::Tree::tag_visibility_changed(), topology_matches(), blender::bke::pbvh::Tree::type(), blender::ed::sculpt_paint::undo::StepData::type, blender::bke::pbvh::Tree::update_bounds(), blender::bke::pbvh::update_mask_grids(), blender::bke::pbvh::update_mask_mesh(), blender::bke::pbvh::Tree::update_visibility(), and use_multires_undo().
Referenced by step_decode_redo_impl(), and step_decode_undo_impl().
|
static |
Definition at line 871 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 782 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, blender::MutableSpan< T >::slice(), and SculptSession::subdiv_ccg.
Referenced by restore_list().
|
static |
Definition at line 761 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, 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().
| void blender::ed::sculpt_paint::undo::restore_position_from_undo_step | ( | const Depsgraph & | depsgraph, |
| Object & | object ) |
Definition at line 1031 of file sculpt.cc.
References blender::bke::pbvh::all_leaf_nodes(), blender::ed::sculpt_paint::apply_crazyspace_to_translations(), blender::ed::sculpt_paint::apply_translations(), BKE_pbvh_bmesh_node_unique_verts(), BKE_subdiv_ccg_key_top_level(), SculptSession::bm_log, BM_log_find_original_vert_co(), blender::bke::pbvh::BMesh, copy_v3_v3(), blender::MutableSpan< T >::data(), data, SculptSession::deform_imats, depsgraph, blender::index_mask::IndexMask::foreach_index(), blender::ed::sculpt_paint::ShapeKeyData::from_object(), blender::IndexMask::from_predicate(), CCGKey::grid_area, blender::bke::ccg::grid_range(), blender::bke::pbvh::Grids, has_bmesh_log_entry(), i, blender::bits::BitGroupVector< InlineBufferCapacity, Allocator >::is_empty(), blender::threading::isolate_task(), blender::threading::EnumerableThreadSpecific< T >::local(), blender::bke::pbvh::Mesh, blender::bke::pbvh::Tree::nodes(), blender::ed::sculpt_paint::orig_position_data_lookup_grids(), blender::ed::sculpt_paint::orig_position_data_lookup_mesh(), blender::bke::object::pbvh_get(), blender::ed::sculpt_paint::OrigPositionData::positions, blender::ed::sculpt_paint::scatter_data_mesh(), SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::tag_positions_changed(), blender::ed::sculpt_paint::translations_from_new_positions(), blender::bke::pbvh::Tree::type(), blender::bke::pbvh::vert_positions_eval_for_write(), and verts.
Referenced by blender::ed::sculpt_paint::cancel_modal_transform(), restore_from_undo_step(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_cancel(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_modal(), and blender::ed::sculpt_paint::sculpt_transform_all_vertices().
|
static |
Definition at line 629 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::PositionUndoStorage::compressed_indices, blender::ed::sculpt_paint::undo::PositionUndoStorage::compressed_positions, data, blender::MutableSpan< T >::fill_indices(), blender::ed::sculpt_paint::undo::compression::filter_compress< float3 >(), blender::ed::sculpt_paint::undo::compression::filter_decompress< float3 >(), blender::ed::sculpt_paint::undo::compression::filter_decompress< int >(), blender::bke::ccg::grid_range(), i, blender::Span< T >::index_range(), indices, blender::threading::EnumerableThreadSpecific< T >::local(), blender::threading::parallel_for(), and blender::MutableSpan< T >::slice().
Referenced by restore_list().
|
static |
Definition at line 552 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::apply_translations(), blender::MutableSpan< T >::as_span(), blender::ed::sculpt_paint::undo::PositionUndoStorage::compressed_indices, blender::ed::sculpt_paint::undo::PositionUndoStorage::compressed_positions, data, SculptSession::deform_modifiers_active, blender::ed::sculpt_paint::undo::PositionUndoStorage::ensure_compression_complete(), blender::MutableSpan< T >::fill_indices(), blender::ed::sculpt_paint::undo::compression::filter_compress< float3 >(), blender::ed::sculpt_paint::undo::compression::filter_decompress< float3 >(), blender::ed::sculpt_paint::undo::compression::filter_decompress< int >(), blender::ed::sculpt_paint::ShapeKeyData::from_object(), i, indices, blender::threading::EnumerableThreadSpecific< T >::local(), blender::threading::parallel_for(), blender::ed::sculpt_paint::scatter_data_mesh(), SCOPED_TIMER_AVERAGED, Array< T, InlineBufferCapacity, Allocator >::size(), swap_indexed_data(), blender::MutableSpan< T >::take_front(), blender::ed::sculpt_paint::translations_from_new_positions(), blender::ed::sculpt_paint::undo::PositionUndoStorage::unique_verts_nums, and verts.
Referenced by restore_list().
|
static |
Definition at line 689 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(), and blender::Span< T >::index_range().
Referenced by restore_list().
|
static |
Definition at line 670 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, 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().
|
static |
Definition at line 1892 of file sculpt_undo.cc.
References ATTR_DOMAIN_AS_MASK, ATTR_DOMAIN_MASK_COLOR, blender::bke::attr_type_to_custom_data_type(), BKE_object_get_original_mesh(), blender::bke::ColorByte, blender::bke::ColorFloat, blender::ed::sculpt_paint::undo::SculptAttrRef::domain, ELEM, blender::bke::AttributeAccessor::lookup_meta_data(), blender::ed::sculpt_paint::undo::SculptAttrRef::name, name, NO_ACTIVE_LAYER, save_active_attribute(), STRNCPY_UTF8, 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 1921 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 2091 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(), blender::bke::custom_data_type_to_attr_type(), 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 2241 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 2220 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 2179 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 2187 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 2171 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 2151 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 2145 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 2294 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().
| size_t blender::ed::sculpt_paint::undo::step_memory_size_get | ( | UndoStep * | step | ) |
Definition at line 463 of file sculpt_undo.cc.
References BKE_UNDOSYS_TYPE_SCULPT, blender::ed::sculpt_paint::undo::SculptUndoStep::data, blender::ed::sculpt_paint::undo::StepData::position_step_storage, step, and blender::ed::sculpt_paint::undo::StepData::undo_size.
Referenced by ED_undosys_total_memory_calc().
|
static |
Definition at line 1493 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(), blender::bke::pbvh::MeshNode::verts(), and verts.
Referenced by fill_node_data_mesh().
Definition at line 1540 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(), and blender::bke::AttributeAccessor::lookup().
Referenced by fill_node_data_grids(), and fill_node_data_mesh().
|
static |
Definition at line 1456 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(), and blender::bke::AttributeAccessor::lookup().
Referenced by fill_node_data_grids(), and fill_node_data_mesh().
|
static |
Definition at line 909 of file sculpt_undo.cc.
References BLI_assert, CD_MASK_MESH, blender::implicit_sharing::copy_shared_pointer(), and CustomData_init_from().
Referenced by bmesh_push(), and geometry_push().
|
static |
Definition at line 1482 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, and SubdivCCG::masks.
Referenced by fill_node_data_grids().
Definition at line 1470 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, and blender::ed::sculpt_paint::undo::Node::vert_indices.
Referenced by fill_node_data_mesh().
|
static |
Definition at line 1433 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, and SubdivCCG::positions.
Referenced by fill_node_data_grids().
|
static |
Definition at line 1411 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, 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().
|
static |
Definition at line 1395 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(), and blender::Span< T >::size().
Referenced by fill_node_data_grids().
|
static |
Definition at line 1441 of file sculpt_undo.cc.
References i, blender::Span< T >::is_empty(), blender::bke::AttributeAccessor::lookup(), blender::bke::Point, blender::ed::sculpt_paint::undo::Node::vert_hidden, and verts.
Referenced by fill_node_data_mesh().
|
static |
Definition at line 544 of file sculpt_undo.cc.
References BLI_assert, i, indices, and blender::MutableSpan< T >::size().
Referenced by restore_position_mesh().
|
static |
Definition at line 498 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 2409 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 493 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().