|
Blender V4.3
|
Classes | |
| struct | Node |
| struct | NodeGeometry |
| struct | SculptAttrRef |
| struct | SculptUndoStep |
| struct | StepData |
Enumerations | |
| enum class | Type : int8_t { None , Position , HideVert , HideFace , Mask , DyntopoBegin , DyntopoEnd , Geometry , FaceSet , Color } |
Functions | |
| static void | restore_mask_from_undo_step (Object &object) |
| static void | restore_color_from_undo_step (Object &object) |
| static void | restore_face_set_from_undo_step (Object &object) |
| void | restore_position_from_undo_step (const Depsgraph &depsgraph, Object &object) |
| static void | restore_from_undo_step (const Depsgraph &depsgraph, const Sculpt &sd, Object &object) |
| static 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) |
| static void | update_shapekeys (const Object &ob, KeyBlock *kb, const Span< float3 > new_positions) |
| static void | restore_position_mesh (const Depsgraph &depsgraph, Object &object, const Span< std::unique_ptr< Node > > unodes, MutableSpan< bool > modified_verts) |
| static void | restore_position_grids (MutableSpan< float3 > positions, const CCGKey &key, Node &unode, MutableSpan< bool > modified_grids) |
| static void | restore_vert_visibility_mesh (Object &object, Node &unode, MutableSpan< bool > modified_vertices) |
| static void | restore_vert_visibility_grids (SubdivCCG &subdiv_ccg, Node &unode, MutableSpan< bool > modified_grids) |
| static void | restore_hidden_face (Object &object, Node &unode, MutableSpan< bool > modified_faces) |
| static void | restore_color (Object &object, StepData &step_data, MutableSpan< bool > modified_vertices) |
| static void | restore_mask_mesh (Object &object, Node &unode, MutableSpan< bool > modified_vertices) |
| static void | restore_mask_grids (Object &object, Node &unode, MutableSpan< bool > modified_grids) |
| static bool | restore_face_sets (Object &object, Node &unode, MutableSpan< bool > modified_face_set_faces) |
| static void | bmesh_restore_generic (StepData &step_data, Object &object, SculptSession &ss) |
| static void | bmesh_enable (Object &object, StepData &step_data) |
| static void | bmesh_restore_begin (bContext *C, StepData &step_data, Object &object, SculptSession &ss) |
| static void | bmesh_restore_end (bContext *C, StepData &step_data, Object &object, SculptSession &ss) |
| static void | store_geometry_data (NodeGeometry *geometry, const Object &object) |
| static void | restore_geometry_data (const NodeGeometry *geometry, Mesh *mesh) |
| static void | geometry_free_data (NodeGeometry *geometry) |
| static void | restore_geometry (StepData &step_data, Object &object) |
| static int | bmesh_restore (bContext *C, Depsgraph &depsgraph, StepData &step_data, Object &object, SculptSession &ss) |
| void | restore_from_bmesh_enter_geometry (const StepData &step_data, Mesh &mesh) |
| BMLogEntry * | get_bmesh_log_entry () |
| static void | refine_subdiv (Depsgraph *depsgraph, SculptSession &ss, Object &object, bke::subdiv::Subdiv *subdiv) |
| static void | restore_list (bContext *C, Depsgraph *depsgraph, StepData &step_data) |
| static void | free_step_data (StepData &step_data) |
| static const 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, 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, SculptAttrRef *attr) |
| static void | step_encode_init (bContext *, UndoStep *us_p) |
| static bool | step_encode (bContext *, Main *bmain, UndoStep *us_p) |
| static void | step_decode_undo_impl (bContext *C, Depsgraph *depsgraph, SculptUndoStep *us) |
| static void | step_decode_redo_impl (bContext *C, Depsgraph *depsgraph, SculptUndoStep *us) |
| static void | step_decode_undo (bContext *C, Depsgraph *depsgraph, SculptUndoStep *us, const bool is_final) |
| static void | step_decode_redo (bContext *C, Depsgraph *depsgraph, SculptUndoStep *us) |
| static void | step_decode (bContext *C, Main *bmain, UndoStep *us_p, const eUndoStepDir dir, bool is_final) |
| static void | step_free (UndoStep *us_p) |
Undo for changes happening on a base mesh for multires sculpting. | |
Use this for multires operators which changes base mesh and which are to be possible. Example of such operators is Apply Base. Usage: static int operator_exec((bContext *C, wmOperator *op) { ED_sculpt_undo_push_mixed_begin(C, op->type->name); // Modify base mesh. ED_sculpt_undo_push_mixed_end(C, op->type->name); return OPERATOR_FINISHED; } If object is not in sculpt mode or sculpt does not happen on multires then regular ED_undo_push() is used. | |
| void | push_multires_mesh_begin (bContext *C, const char *str) |
| void | push_multires_mesh_end (bContext *C, const char *str) |
| static bool | use_multires_mesh (bContext *C) |
| static void | push_all_grids (const Depsgraph &depsgraph, Object *object) |
|
strong |
| Enumerator | |
|---|---|
| None | |
| Position | |
| HideVert | |
| HideFace | |
| Mask | |
| DyntopoBegin | |
| DyntopoEnd | |
| Geometry | |
| FaceSet | |
| Color | |
Definition at line 28 of file sculpt_undo.hh.
Definition at line 664 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(), 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_restore_begin(), and bmesh_restore_end().
|
static |
Dynamic topology stores only one undo node per stroke, regardless of the number of bke::pbvh::Tree nodes modified.
Definition at line 1506 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::applied, 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(), bmesh_push(), CD_PROP_FLOAT, Color, CustomData_get_offset_named(), DyntopoBegin, DyntopoEnd, FaceSet, Geometry, blender::ed::sculpt_paint::undo::StepData::geometry_bmesh_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 806 of file sculpt_undo.cc.
References BKE_sculpt_update_object_for_edit(), SculptSession::bm_log, bmesh_restore(), bmesh_restore_begin(), bmesh_restore_end(), 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 685 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::applied, SculptSession::bm, SculptSession::bm_log, BM_log_redo(), bmesh_enable(), bmesh_restore_begin(), C, and blender::ed::sculpt_paint::dyntopo::disable().
Referenced by bmesh_restore(), and bmesh_restore_begin().
|
static |
Definition at line 704 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::applied, SculptSession::bm, SculptSession::bm_log, BM_log_undo(), bmesh_enable(), bmesh_restore_end(), C, and blender::ed::sculpt_paint::dyntopo::disable().
Referenced by bmesh_restore(), and bmesh_restore_end().
|
static |
Definition at line 639 of file sculpt_undo.cc.
References blender::bke::pbvh::all_leaf_nodes(), blender::ed::sculpt_paint::undo::StepData::applied, 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::bke::object::pbvh_get(), blender::bke::pbvh::Tree::tag_masks_changed(), and blender::ed::sculpt_paint::undo::StepData::type.
Referenced by bmesh_restore(), and bmesh_restore_generic().
|
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 1597 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 1437 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 1368 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 1172 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::bm_entry, BM_log_entry_drop(), free_step_data(), blender::ed::sculpt_paint::undo::StepData::geometry_bmesh_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 2120 of file sculpt_undo.cc.
References geometry_begin(), geometry_push(), and push_begin().
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::geometry::store_result_geometry(), 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 2126 of file sculpt_undo.cc.
References geometry_begin_ex(), geometry_push(), and push_begin_ex().
Referenced by geometry_begin_ex().
| void blender::ed::sculpt_paint::undo::geometry_end | ( | Object & | ob | ) |
Definition at line 2132 of file sculpt_undo.cc.
References geometry_end(), geometry_push(), and push_end().
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::geometry::store_result_geometry(), blender::ed::sculpt_paint::symmetrize_exec(), and blender::ed::object::voxel_remesh_exec().
|
static |
Definition at line 773 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 1332 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 1343 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::applied, Geometry, blender::ed::sculpt_paint::undo::StepData::geometry_clear_pbvh, geometry_get(), geometry_push(), get_step_data(), store_geometry_data(), and blender::ed::sculpt_paint::undo::StepData::type.
Referenced by geometry_begin(), geometry_begin_ex(), geometry_end(), geometry_push(), push_multires_mesh_begin(), and push_multires_mesh_end().
|
static |
Definition at line 267 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().
| BMLogEntry * blender::ed::sculpt_paint::undo::get_bmesh_log_entry | ( | ) |
Definition at line 836 of file sculpt_undo.cc.
References get_bmesh_log_entry(), and get_step_data().
Referenced by blender::ed::sculpt_paint::calc_area_normal_and_center_node_bmesh(), get_bmesh_log_entry(), and restore_position_from_undo_step().
|
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 1189 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 274 of file sculpt_undo.cc.
References get_active_step().
Referenced by bmesh_push(), geometry_push(), get_bmesh_log_entry(), get_node(), push_end_ex(), push_multires_mesh_begin(), push_multires_mesh_end(), push_node(), and push_nodes().
|
static |
Definition at line 299 of file sculpt_undo.cc.
Referenced by restore_list().
|
static |
Definition at line 1843 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().
|
static |
Definition at line 2188 of file sculpt_undo.cc.
References blender::bke::pbvh::all_leaf_nodes(), depsgraph, blender::bke::object::pbvh_get(), Position, push_all_grids(), and push_nodes().
Referenced by push_all_grids(), and push_multires_mesh_begin().
| void blender::ed::sculpt_paint::undo::push_begin | ( | const Scene & | scene, |
| Object & | ob, | ||
| const wmOperator * | op ) |
Pushes an undo step using the operator name. This is necessary for redo panels to work; operators that do not support that may use push_begin_ex instead if so desired.
Definition at line 1821 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(), geometry_begin(), 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_invoke(), 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::symmetrize_exec(), transform_active_color(), vertex_color_set_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 1764 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::SculptUndoStep::active_color_end, blender::ed::sculpt_paint::undo::SculptUndoStep::active_color_start, blender::ed::sculpt_paint::undo::StepData::active_shape_key_name, BKE_keyblock_from_object(), BKE_undosys_step_push_init_with_type(), BKE_UNDOSYS_TYPE_SCULPT, blender::bke::pbvh::BMesh, C, 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, SubdivCCG::grids_num, Object::id, blender::bke::pbvh::Mesh, blender::ed::sculpt_paint::undo::StepData::mesh_corners_num, blender::ed::sculpt_paint::undo::StepData::mesh_grids_num, blender::ed::sculpt_paint::undo::StepData::mesh_verts_num, ID::name, blender::ed::sculpt_paint::undo::StepData::object_name, blender::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, push_begin_ex(), save_active_attribute(), Object::sculpt, SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::type(), and blender::ed::sculpt_paint::undo::SculptAttrRef::was_set.
Referenced by blender::ed::sculpt_paint::dyntopo::disable_with_undo(), blender::ed::sculpt_paint::dyntopo::enable_with_undo(), geometry_begin_ex(), blender::ed::sculpt_paint::hide::hide_show_all_exec(), blender::ed::sculpt_paint::hide::hide_show_masked_exec(), blender::ed::sculpt_paint::init_transform(), blender::ed::sculpt_paint::object_sculpt_mode_enter(), push_begin(), push_begin_ex(), push_multires_mesh_begin(), stroke_undo_begin(), and vpaint_invoke().
| void blender::ed::sculpt_paint::undo::push_end | ( | Object & | ob | ) |
Definition at line 1909 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(), geometry_end(), 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_invoke(), 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(), stroke_undo_end(), blender::ed::sculpt_paint::symmetrize_exec(), transform_active_color(), vertex_color_set_exec(), blender::ed::sculpt_paint::hide::visibility_filter_exec(), blender::ed::sculpt_paint::hide::visibility_invert_exec(), and vpaint_stroke_done().
| void blender::ed::sculpt_paint::undo::push_end_ex | ( | Object & | ob, |
| const bool | use_nested_undo ) |
Definition at line 1863 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 1826 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 2208 of file sculpt_undo.cc.
References C, CTX_data_active_object(), CTX_data_depsgraph_pointer(), CTX_data_scene(), depsgraph, geometry_push(), get_step_data(), push_all_grids(), 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 2226 of file sculpt_undo.cc.
References C, CTX_data_active_object(), ED_undo_push(), geometry_push(), get_step_data(), 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 1609 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 1648 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, 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_all_grids(), push_nodes(), blender::ed::sculpt_paint::push_undo_nodes(), transform_active_color(), blender::ed::sculpt_paint::expand::undo_push(), vertex_color_set_exec(), vpaint_paint_leaves(), and blender::ed::sculpt_paint::mask::write_mask_mesh().
|
static |
Definition at line 854 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 2138 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 304 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 552 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 929 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(), 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 962 of file sculpt.cc.
References blender::bke::pbvh::all_leaf_nodes(), attribute, 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, 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 617 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(), 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 831 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::geometry_bmesh_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 1134 of file sculpt.cc.
References blender::ed::sculpt_paint::StrokeCache::alt_smooth, BKE_paint_brush_for_read(), SculptSession::cache, depsgraph, Sculpt::paint, 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, and SCULPT_BRUSH_TYPE_SMEAR.
Referenced by restore_from_undo_step_if_necessary(), and blender::ed::sculpt_paint::sculpt_brush_stroke_cancel().
|
static |
Definition at line 783 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::applied, BKE_sculptsession_free_pbvh(), DEG_id_tag_update(), blender::ed::sculpt_paint::undo::StepData::geometry_clear_pbvh, blender::ed::sculpt_paint::undo::StepData::geometry_modified, blender::ed::sculpt_paint::undo::StepData::geometry_original, ID_RECALC_GEOMETRY, restore_geometry(), and restore_geometry_data().
Referenced by restore_geometry(), and restore_list().
|
static |
Definition at line 747 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 532 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(), 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 866 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, 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::update_bounds(), blender::bke::pbvh::update_mask_grids(), blender::bke::pbvh::update_mask_mesh(), blender::bke::pbvh::update_visibility(), and use_multires_undo().
Referenced by restore_list(), step_decode_redo_impl(), and step_decode_undo_impl().
|
static |
Definition at line 854 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, 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 595 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, 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 574 of file sculpt_undo.cc.
References Array< T, InlineBufferCapacity, Allocator >::as_span(), BKE_object_get_original_mesh(), 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 1014 of file sculpt.cc.
References blender::bke::pbvh::all_leaf_nodes(), blender::ed::sculpt_paint::apply_crazyspace_to_translations(), blender::ed::sculpt_paint::apply_translations(), BKE_keyblock_from_object(), BKE_pbvh_bmesh_node_unique_verts(), BKE_subdiv_ccg_key_top_level(), SculptSession::bm_log, BM_log_find_original_vert_co(), blender::bke::pbvh::BMesh, copy_v3_v3(), blender::MutableSpan< T >::data(), SculptSession::deform_imats, depsgraph, ELEM, blender::index_mask::IndexMask::foreach_index(), blender::IndexMask::from_predicate(), get_bmesh_log_entry(), CCGKey::grid_area, blender::bke::ccg::grid_range(), blender::bke::pbvh::Grids, blender::bits::BitGroupVector< InlineBufferCapacity, Allocator >::is_empty(), blender::threading::isolate_task(), blender::threading::EnumerableThreadSpecific< T >::local(), blender::bke::pbvh::Mesh, blender::bke::pbvh::Tree::nodes(), blender::ed::sculpt_paint::orig_position_data_lookup_grids(), blender::ed::sculpt_paint::orig_position_data_lookup_mesh(), blender::bke::object::pbvh_get(), blender::ed::sculpt_paint::OrigPositionData::positions, blender::ed::sculpt_paint::scatter_data_mesh(), SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::tag_positions_changed(), blender::ed::sculpt_paint::LocalData::translations, blender::ed::sculpt_paint::translations_from_new_positions(), blender::bke::pbvh::Tree::type(), blender::bke::pbvh::update_normals(), blender::ed::sculpt_paint::update_shape_keys(), blender::bke::pbvh::vert_positions_eval_for_write(), and verts.
Referenced by restore_from_undo_step(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_cancel(), and blender::ed::sculpt_paint::sculpt_transform_all_vertices().
|
static |
Definition at line 468 of file sculpt_undo.cc.
References data, blender::MutableSpan< T >::fill_indices(), blender::bke::ccg::grid_range(), blender::ed::sculpt_paint::undo::Node::grids, 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 362 of file sculpt_undo.cc.
References BKE_keyblock_convert_to_vertcos(), SculptSession::deform_modifiers_active, depsgraph, float, MEM_freeN(), blender::threading::parallel_for(), SculptSession::shapekey_active, KeyBlock::totelem, update_shapekeys(), and blender::bke::pbvh::vert_positions_eval_for_write().
Referenced by restore_list().
|
static |
Definition at line 506 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, 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 487 of file sculpt_undo.cc.
References blender::bke::SpanAttributeWriter< T >::finish(), 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 1710 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 push_begin_ex(), save_active_attribute(), save_common_data(), and set_active_layer().
|
static |
Does not save topology counts, as that data is unneded for full geometry pushes and requires the PBVH to exist.
Definition at line 1738 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 push_enter_sculpt_mode(), and save_common_data().
|
static |
Definition at line 1918 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, CTX_data_active_object(), DEG_id_tag_update(), blender::ed::sculpt_paint::undo::SculptAttrRef::domain, ED_geometry_attribute_convert(), 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 2061 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 2040 of file sculpt_undo.cc.
References 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 2000 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 2008 of file sculpt_undo.cc.
References 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 1992 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 1972 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, blender::ed::sculpt_paint::undo::StepData::nodes, 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 1966 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 2114 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 1306 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 1356 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 1269 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, 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 721 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 1295 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 1283 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 1246 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 1224 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 1208 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(), 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 1254 of file sculpt_undo.cc.
References 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 287 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::grid_size, SubdivCCG::grid_size, SubdivCCG::grids_num, blender::ed::sculpt_paint::undo::StepData::mesh_grids_num, blender::ed::sculpt_paint::undo::StepData::mesh_verts_num, SculptSession::subdiv_ccg, and use_multires_undo().
Referenced by restore_list().
|
static |
Definition at line 331 of file sculpt_undo.cc.
References BKE_keyblock_convert_to_vertcos(), BKE_keyblock_get_dependent_keys(), BKE_keyblock_update_from_offset(), BKE_keyblock_update_from_vertcos(), blender::Span< T >::data(), Object::data, float, LISTBASE_FOREACH_INDEX, MEM_freeN(), Object::shapenr, and sub_v3_v3v3().
Referenced by restore_position_mesh().
|
static |
Definition at line 2176 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 282 of file sculpt_undo.cc.
References blender::ed::sculpt_paint::undo::StepData::mesh_grids_num, and SculptSession::subdiv_ccg.
Referenced by restore_list(), and topology_matches().