|
Blender V5.0
|
Classes | |
| struct | BrushLocalData |
| struct | PoseGrowFactorData |
| struct | GrowFactorLocalData |
| struct | IKChainSegment |
| struct | IKChain |
Functions | |
| static void | solve_ik_chain (IKChain &ik_chain, const float3 &initial_target, const bool use_anchor) |
| static void | solve_roll_chain (IKChain &ik_chain, const Brush &brush, const float roll) |
| static void | solve_translate_chain (IKChain &ik_chain, const float delta[3]) |
| static void | solve_scale_chain (IKChain &ik_chain, const float scale[3]) |
| static BLI_NOINLINE void | calc_segment_translations (const Span< float3 > positions, const IKChainSegment &segment, const MutableSpan< float3 > translations) |
| static BLI_NOINLINE void | add_arrays (const MutableSpan< float3 > a, const Span< float3 > b) |
| static void | calc_mesh (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, BrushLocalData &tls, const PositionDeformData &position_data) |
| static void | calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const bke::pbvh::GridsNode &node, Object &object, BrushLocalData &tls) |
| static void | calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, bke::pbvh::BMeshNode &node, Object &object, BrushLocalData &tls) |
| static BLI_NOINLINE void | add_fake_neighbors (const Span< int > fake_neighbors, const Span< int > verts, const Span< int > orig_neighbor_data, MutableSpan< int > neighbor_offsets, Vector< int > &neighbor_data_with_fake) |
| static void | grow_factors_mesh (const ePaintSymmetryFlags symm, const float3 &pose_initial_position, const Span< float3 > vert_positions, const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > vert_to_face_map, const Span< bool > hide_vert, const Span< bool > hide_poly, const Span< int > fake_neighbors, const Span< float > prev_mask, const bke::pbvh::MeshNode &node, GrowFactorLocalData &tls, const MutableSpan< float > pose_factor, PoseGrowFactorData &gftd) |
| static void | grow_factors_grids (const ePaintSymmetryFlags symm, const float3 &pose_initial_position, const SubdivCCG &subdiv_ccg, const Span< int > fake_neighbors, const Span< float > prev_mask, const bke::pbvh::GridsNode &node, const MutableSpan< float > pose_factor, PoseGrowFactorData &gftd) |
| static void | grow_factors_bmesh (const ePaintSymmetryFlags symm, const float3 &pose_initial_position, const Span< int > fake_neighbors, const Span< float > prev_mask, bke::pbvh::BMeshNode &node, const MutableSpan< float > pose_factor, PoseGrowFactorData &gftd) |
| static void | grow_pose_factor (const Depsgraph &depsgraph, Object &ob, SculptSession &ss, float pose_origin[3], float pose_target[3], float max_len, float *r_pose_origin, MutableSpan< float > pose_factor) |
| static bool | vert_inside_brush_radius (const float3 &vertex, const float3 &br_co, float radius, char symm) |
| static void | calc_pose_origin_and_factor_mesh (const Depsgraph &depsgraph, Object &object, SculptSession &ss, const float3 &initial_location, float radius, float3 &r_pose_origin, MutableSpan< float > r_pose_factor) |
| static void | calc_pose_origin_and_factor_grids (Object &object, SculptSession &ss, const float3 &initial_location, float radius, float3 &r_pose_origin, MutableSpan< float > r_pose_factor) |
| static void | calc_pose_origin_and_factor_bmesh (Object &object, SculptSession &ss, const float3 &initial_location, float radius, float3 &r_pose_origin, MutableSpan< float > r_pose_factor) |
| static void | calc_pose_data (const Depsgraph &depsgraph, Object &object, SculptSession &ss, const float3 &initial_location, float radius, float pose_offset, float3 &r_pose_origin, MutableSpan< float > r_pose_factor) |
| static std::unique_ptr< IKChain > | ik_chain_new (const int totsegments, const int totverts) |
| static void | ik_chain_origin_heads_init (IKChain &ik_chain, const float3 &initial_location) |
| static int | brush_num_effective_segments (const Brush &brush) |
| static std::unique_ptr< IKChain > | ik_chain_init_topology (const Depsgraph &depsgraph, Object &object, SculptSession &ss, const Brush &brush, const float3 &initial_location, const float radius) |
| static std::unique_ptr< IKChain > | ik_chain_init_face_sets_mesh (const Depsgraph &depsgraph, Object &object, SculptSession &ss, const Brush &brush, const float radius) |
| static std::unique_ptr< IKChain > | ik_chain_init_face_sets_grids (Object &object, SculptSession &ss, const Brush &brush, const float radius) |
| static std::unique_ptr< IKChain > | ik_chain_init_face_sets_bmesh (Object &object, SculptSession &ss, const Brush &brush, const float radius) |
| static std::unique_ptr< IKChain > | ik_chain_init_face_sets (const Depsgraph &depsgraph, Object &object, SculptSession &ss, const Brush &brush, const float radius) |
| static std::optional< float3 > | calc_average_face_set_center (const Depsgraph &depsgraph, Object &object, const Span< int > floodfill_step, const int active_face_set, const int target_face_set) |
| static std::unique_ptr< IKChain > | ik_chain_init_face_sets_fk_mesh (const Depsgraph &depsgraph, Object &object, SculptSession &ss, const float radius, const float3 &initial_location) |
| static std::unique_ptr< IKChain > | ik_chain_init_face_sets_fk_grids (const Depsgraph &depsgraph, Object &object, SculptSession &ss, const float radius, const float3 &initial_location) |
| static std::unique_ptr< IKChain > | ik_chain_init_face_sets_fk_bmesh (const Depsgraph &depsgraph, Object &object, SculptSession &ss, const float radius, const float3 &initial_location) |
| static std::unique_ptr< IKChain > | ik_chain_init_face_sets_fk (const Depsgraph &depsgraph, Object &object, SculptSession &ss, const float radius, const float3 &initial_location) |
| static std::unique_ptr< IKChain > | ik_chain_init (const Depsgraph &depsgraph, Object &ob, SculptSession &ss, const Brush &brush, const float3 &initial_location, const float radius) |
| static void | pose_brush_init (const Depsgraph &depsgraph, Object &ob, SculptSession &ss, const Brush &brush) |
| std::unique_ptr< SculptPoseIKChainPreview > | preview_ik_chain_init (const Depsgraph &depsgraph, Object &ob, SculptSession &ss, const Brush &brush, const float3 &initial_location, const float radius) |
| static void | sculpt_pose_do_translate_deform (SculptSession &ss, const Brush &brush) |
| static float | calc_scale_from_grab_delta (SculptSession &ss, const float3 &ik_target) |
| static void | calc_scale_deform (SculptSession &ss, const Brush &brush) |
| static void | calc_twist_deform (SculptSession &ss, const Brush &brush) |
| static void | calc_rotate_deform (SculptSession &ss, const Brush &brush) |
| static void | calc_rotate_twist_deform (SculptSession &ss, const Brush &brush) |
| static void | calc_scale_translate_deform (SculptSession &ss, const Brush &brush) |
| static void | calc_squash_stretch_deform (SculptSession &ss, const Brush &) |
| static void | align_pivot_local_space (float r_mat[4][4], ePaintSymmetryFlags symm, ePaintSymmetryAreas symm_area, IKChainSegment *segment, const float3 &grab_location) |
| void | do_pose_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask) |
|
static |
Definition at line 147 of file sculpt_pose.cc.
References b, BLI_assert, BLI_NOINLINE, i, blender::MutableSpan< T >::index_range(), and blender::MutableSpan< T >::size().
Referenced by calc_bmesh(), calc_grids(), and calc_mesh().
|
static |
Definition at line 331 of file sculpt_pose.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_NOINLINE, blender::Vector< T, InlineBufferCapacity, Allocator >::extend(), FAKE_NEIGHBOR_NONE, i, blender::MutableSpan< T >::last(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), blender::Span< T >::slice(), and verts.
Referenced by grow_factors_mesh().
|
static |
Definition at line 2040 of file sculpt_pose.cc.
References align_pivot_local_space(), copy_v3_v3(), blender::math::normalize(), ortho_basis_v3v3_v3(), and SCULPT_flip_v3_by_symm_area().
Referenced by align_pivot_local_space(), and do_pose_brush().
|
static |
Definition at line 898 of file sculpt_pose.cc.
References brush_num_effective_segments(), BRUSH_POSE_DEFORM_SCALE_TRASLATE, BRUSH_POSE_DEFORM_SQUASH_STRETCH, ELEM, Brush::pose_deform_type, and Brush::pose_ik_segments.
Referenced by brush_num_effective_segments(), ik_chain_init_face_sets_bmesh(), ik_chain_init_face_sets_grids(), ik_chain_init_face_sets_mesh(), and ik_chain_init_topology().
|
static |
Definition at line 1517 of file sculpt_pose.cc.
References BKE_subdiv_ccg_key_top_level(), bm, BM_mesh_elem_count(), BM_VERT, BM_vert_at_index(), blender::bke::pbvh::BMesh, calc_average_face_set_center(), CD_PROP_INT32, BMVert::co, count, CustomData_get_offset_named(), depsgraph, blender::bke::Face, float, blender::bke::ccg::grid_range(), blender::bke::pbvh::Grids, SubdivCCG::grids_num, blender::Span< T >::index_range(), blender::bke::AttributeAccessor::lookup_or_default(), blender::bke::pbvh::Mesh, blender::bke::object::pbvh_get(), SubdivCCG::positions, sum(), blender::ed::sculpt_paint::face_set::vert_has_face_set(), blender::bke::pbvh::vert_positions_eval(), and blender::ed::sculpt_paint::vert_random_access_ensure().
Referenced by calc_average_face_set_center(), ik_chain_init_face_sets_fk_bmesh(), ik_chain_init_face_sets_fk_grids(), and ik_chain_init_face_sets_fk_mesh().
|
static |
Definition at line 260 of file sculpt_pose.cc.
References add_arrays(), blender::ed::sculpt_paint::apply_translations(), blender::MutableSpan< T >::as_span(), blender::ed::sculpt_paint::StrokeCache::automasking, BKE_pbvh_bmesh_node_unique_verts(), SculptSession::bm, SculptSession::bm_log, BRUSH_DEFORM_TARGET_CLOTH_SIM, BRUSH_DEFORM_TARGET_GEOMETRY, SculptSession::cache, calc_segment_translations(), blender::ed::sculpt_paint::auto_mask::calc_vert_factors(), blender::ed::sculpt_paint::clip_and_lock_translations(), blender::ed::sculpt_paint::StrokeCache::cloth_sim, Brush::deform_target, depsgraph, blender::ed::sculpt_paint::pose::BrushLocalData::factors, blender::MutableSpan< T >::fill(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), blender::ed::sculpt_paint::gather_bmesh_positions(), blender::ed::sculpt_paint::gather_data_bmesh(), blender::ed::sculpt_paint::orig_position_data_gather_bmesh(), blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, blender::ed::sculpt_paint::pose::BrushLocalData::positions, blender::ed::sculpt_paint::reset_translations_to_original(), Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::ed::sculpt_paint::scale_translations(), blender::ed::sculpt_paint::scatter_data_bmesh(), blender::ed::sculpt_paint::pose::BrushLocalData::segment_translations, blender::ed::sculpt_paint::pose::BrushLocalData::segment_weights, blender::ed::sculpt_paint::pose::BrushLocalData::translations, and verts.
Referenced by do_pose_brush().
|
static |
Definition at line 207 of file sculpt_pose.cc.
References add_arrays(), blender::ed::sculpt_paint::apply_translations(), blender::MutableSpan< T >::as_span(), blender::ed::sculpt_paint::StrokeCache::automasking, BRUSH_DEFORM_TARGET_CLOTH_SIM, BRUSH_DEFORM_TARGET_GEOMETRY, SculptSession::cache, blender::ed::sculpt_paint::auto_mask::calc_grids_factors(), calc_segment_translations(), blender::ed::sculpt_paint::clip_and_lock_translations(), blender::ed::sculpt_paint::StrokeCache::cloth_sim, Brush::deform_target, depsgraph, blender::ed::sculpt_paint::pose::BrushLocalData::factors, blender::MutableSpan< T >::fill(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), blender::ed::sculpt_paint::gather_data_grids(), blender::ed::sculpt_paint::gather_grids_positions(), blender::bke::pbvh::GridsNode::grids(), blender::ed::sculpt_paint::orig_position_data_get_grids(), blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, blender::ed::sculpt_paint::OrigPositionData::positions, blender::ed::sculpt_paint::pose::BrushLocalData::positions, blender::ed::sculpt_paint::reset_translations_to_original(), Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::ed::sculpt_paint::scale_translations(), blender::ed::sculpt_paint::scatter_data_grids(), blender::ed::sculpt_paint::pose::BrushLocalData::segment_translations, blender::ed::sculpt_paint::pose::BrushLocalData::segment_weights, blender::Span< T >::size(), SculptSession::subdiv_ccg, and blender::ed::sculpt_paint::pose::BrushLocalData::translations.
Referenced by do_pose_brush().
|
static |
Definition at line 155 of file sculpt_pose.cc.
References add_arrays(), blender::MutableSpan< T >::as_span(), blender::ed::sculpt_paint::StrokeCache::automasking, BRUSH_DEFORM_TARGET_CLOTH_SIM, BRUSH_DEFORM_TARGET_GEOMETRY, SculptSession::cache, calc_segment_translations(), blender::ed::sculpt_paint::auto_mask::calc_vert_factors(), blender::ed::sculpt_paint::clip_and_lock_translations(), blender::ed::sculpt_paint::StrokeCache::cloth_sim, Brush::deform_target, depsgraph, blender::ed::sculpt_paint::pose::BrushLocalData::factors, blender::MutableSpan< T >::fill(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), blender::ed::sculpt_paint::gather_data_mesh(), blender::ed::sculpt_paint::MeshAttributeData::hide_vert, blender::ed::sculpt_paint::MeshAttributeData::mask, blender::ed::sculpt_paint::orig_position_data_get_mesh(), blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, blender::ed::sculpt_paint::OrigPositionData::positions, blender::ed::sculpt_paint::pose::BrushLocalData::positions, blender::ed::sculpt_paint::reset_translations_to_original(), Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::ed::sculpt_paint::scale_translations(), blender::ed::sculpt_paint::scatter_data_mesh(), blender::ed::sculpt_paint::pose::BrushLocalData::segment_translations, blender::ed::sculpt_paint::pose::BrushLocalData::segment_weights, blender::ed::sculpt_paint::pose::BrushLocalData::translations, blender::bke::pbvh::MeshNode::verts(), and verts.
Referenced by do_pose_brush().
|
static |
Definition at line 825 of file sculpt_pose.cc.
References BLI_assert, blender::bke::pbvh::BMesh, calc_pose_data(), calc_pose_origin_and_factor_bmesh(), calc_pose_origin_and_factor_grids(), calc_pose_origin_and_factor_mesh(), depsgraph, blender::bke::pbvh::Grids, grow_pose_factor(), blender::MutableSpan< T >::is_empty(), blender::bke::pbvh::Mesh, blender::math::normalize(), and blender::bke::object::pbvh_get().
Referenced by calc_pose_data(), and ik_chain_init_topology().
|
static |
Definition at line 774 of file sculpt_pose.cc.
References SculptSession::active_vert_index(), blender::ed::sculpt_paint::flood_fill::FillDataBMesh::add_initial(), BLI_assert, SculptSession::bm, BM_elem_index_get, BM_mesh_elem_count(), BM_VERT, calc_pose_origin_and_factor_bmesh(), BMVert::co, blender::math::distance_squared(), blender::ed::sculpt_paint::flood_fill::FillDataBMesh::execute(), SculptFakeNeighbors::fake_neighbor_index, SculptSession::fake_neighbors, blender::ed::sculpt_paint::find_symm_verts_bmesh(), float, blender::MutableSpan< T >::is_empty(), SCULPT_check_vertex_pivot_symmetry(), SCULPT_mesh_symmetry_xyz_get(), vert_inside_brush_radius(), and blender::ed::sculpt_paint::vert_random_access_ensure().
Referenced by calc_pose_data(), and calc_pose_origin_and_factor_bmesh().
|
static |
Definition at line 717 of file sculpt_pose.cc.
References SculptSession::active_vert_index(), blender::ed::sculpt_paint::flood_fill::FillDataGrids::add_initial(), BKE_subdiv_ccg_key_top_level(), BLI_assert, calc_pose_origin_and_factor_grids(), blender::math::distance_squared(), blender::ed::sculpt_paint::flood_fill::FillDataGrids::execute(), SculptFakeNeighbors::fake_neighbor_index, SculptSession::fake_neighbors, blender::ed::sculpt_paint::find_symm_verts_grids(), float, blender::MutableSpan< T >::is_empty(), SubdivCCG::positions, SCULPT_check_vertex_pivot_symmetry(), SCULPT_mesh_symmetry_xyz_get(), blender::Span< T >::size(), SculptSession::subdiv_ccg, SubdivCCGCoord::to_index(), and vert_inside_brush_radius().
Referenced by calc_pose_data(), and calc_pose_origin_and_factor_grids().
|
static |
fallback_floodfill_origin: In topology mode this stores the furthest point from the stroke origin for cases when a pose origin based on the brush radius can't be set.
Definition at line 664 of file sculpt_pose.cc.
References SculptSession::active_vert_index(), blender::ed::sculpt_paint::flood_fill::FillDataMesh::add_initial(), BLI_assert, calc_pose_origin_and_factor_mesh(), depsgraph, blender::math::distance_squared(), blender::ed::sculpt_paint::flood_fill::FillDataMesh::execute(), SculptFakeNeighbors::fake_neighbor_index, SculptSession::fake_neighbors, blender::ed::sculpt_paint::find_symm_verts_mesh(), float, blender::MutableSpan< T >::is_empty(), SCULPT_check_vertex_pivot_symmetry(), SCULPT_mesh_symmetry_xyz_get(), blender::Span< T >::size(), vert_inside_brush_radius(), and blender::bke::pbvh::vert_positions_eval().
Referenced by calc_pose_data(), and calc_pose_origin_and_factor_mesh().
|
static |
Definition at line 1995 of file sculpt_pose.cc.
References BRUSH_POSE_IK_ANCHORED, SculptSession::cache, calc_rotate_deform(), Brush::flag2, blender::ed::sculpt_paint::StrokeCache::grab_delta, blender::ed::sculpt_paint::pose::IKChain::grab_delta_offset, blender::ed::sculpt_paint::StrokeCache::location, blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, and solve_ik_chain().
Referenced by calc_rotate_deform(), and calc_rotate_twist_deform().
|
static |
Definition at line 2006 of file sculpt_pose.cc.
References SculptSession::cache, calc_rotate_deform(), calc_rotate_twist_deform(), calc_twist_deform(), and blender::ed::sculpt_paint::StrokeCache::invert.
Referenced by calc_rotate_twist_deform(), and do_pose_brush().
|
static |
Definition at line 1968 of file sculpt_pose.cc.
References BRUSH_POSE_IK_ANCHORED, BRUSH_POSE_USE_LOCK_ROTATION, SculptSession::cache, calc_scale_deform(), calc_scale_from_grab_delta(), Brush::flag2, blender::ed::sculpt_paint::StrokeCache::grab_delta, blender::ed::sculpt_paint::StrokeCache::location, blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, solve_ik_chain(), and solve_scale_chain().
Referenced by calc_scale_deform(), and calc_scale_translate_deform().
|
static |
Definition at line 1957 of file sculpt_pose.cc.
References SculptSession::cache, calc_scale_from_grab_delta(), dist_signed_to_plane_v3(), blender::math::normalize(), plane_from_point_normal_v3(), blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, and blender::ed::sculpt_paint::pose::IKChain::segments.
Referenced by calc_scale_deform(), calc_scale_from_grab_delta(), and calc_squash_stretch_deform().
|
static |
Definition at line 2016 of file sculpt_pose.cc.
References SculptSession::cache, calc_scale_deform(), calc_scale_translate_deform(), blender::ed::sculpt_paint::StrokeCache::invert, and sculpt_pose_do_translate_deform().
Referenced by calc_scale_translate_deform(), and do_pose_brush().
|
static |
Definition at line 132 of file sculpt_pose.cc.
References BLI_assert, BLI_NOINLINE, i, blender::Span< T >::index_range(), SCULPT_get_vertex_symm_area(), blender::MutableSpan< T >::size(), blender::Span< T >::size(), and blender::math::transform_point().
Referenced by calc_bmesh(), calc_grids(), and calc_mesh().
|
static |
Definition at line 2026 of file sculpt_pose.cc.
References SculptSession::cache, calc_scale_from_grab_delta(), calc_squash_stretch_deform(), blender::ed::sculpt_paint::StrokeCache::grab_delta, blender::ed::sculpt_paint::StrokeCache::location, blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, solve_scale_chain(), and sqrtf.
Referenced by calc_squash_stretch_deform(), and do_pose_brush().
|
static |
Definition at line 1985 of file sculpt_pose.cc.
References BKE_curvemapping_init(), blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, calc_twist_deform(), Brush::curve_distance_falloff, blender::ed::sculpt_paint::StrokeCache::initial_mouse, blender::ed::sculpt_paint::StrokeCache::mouse, blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, and solve_roll_chain().
Referenced by calc_rotate_twist_deform(), and calc_twist_deform().
| void blender::ed::sculpt_paint::pose::do_pose_brush | ( | const Depsgraph & | depsgraph, |
| const Sculpt & | sd, | ||
| Object & | ob, | ||
| const IndexMask & | node_mask ) |
Definition at line 2057 of file sculpt_pose.cc.
References align_pivot_local_space(), BKE_paint_brush_for_read(), blender::bke::pbvh::BMesh, BRUSH_POSE_DEFORM_ROTATE_TWIST, BRUSH_POSE_DEFORM_SCALE_TRASLATE, BRUSH_POSE_DEFORM_SQUASH_STRETCH, SculptSession::cache, calc_bmesh(), calc_grids(), calc_mesh(), calc_rotate_twist_deform(), calc_scale_translate_deform(), calc_squash_stretch_deform(), copy_qt_qt(), Object::data, depsgraph, do_pose_brush(), blender::bke::pbvh::Tree::flush_bounds_to_parents(), blender::index_mask::IndexMask::foreach_index(), SubdivCCG::grid_area, blender::bke::pbvh::Grids, i, invert_m4_m4(), blender::threading::EnumerableThreadSpecific< T >::local(), blender::bke::pbvh::Mesh, blender::ed::sculpt_paint::StrokeCache::mirror_symmetry_pass, mul_m4_m4_post(), mul_v3_fl(), blender::bke::pbvh::Tree::nodes(), blender::ed::sculpt_paint::StrokeCache::orig_grab_location, Sculpt::paint, PAINT_SYMM_AREAS, blender::bke::object::pbvh_get(), pose_brush_init(), Brush::pose_deform_type, blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, SubdivCCG::positions, quat_to_mat4(), Object::sculpt, SCULPT_flip_quat_by_symm_area(), SCULPT_flip_v3_by_symm_area(), SCULPT_mesh_symmetry_xyz_get(), blender::ed::sculpt_paint::pose::IKChain::segments, SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::tag_positions_changed(), translate_m4(), blender::bke::pbvh::Tree::type(), unit_m4(), blender::bke::pbvh::update_node_bounds_bmesh(), blender::bke::pbvh::update_node_bounds_grids(), and blender::bke::pbvh::update_node_bounds_mesh().
Referenced by blender::ed::sculpt_paint::do_brush_action(), and do_pose_brush().
|
static |
Definition at line 459 of file sculpt_pose.cc.
References BKE_pbvh_bmesh_node_unique_verts(), BM_elem_index_get, FAKE_NEIGHBOR_NONE, blender::Span< T >::is_empty(), max, blender::ed::sculpt_paint::pose::PoseGrowFactorData::pos_avg, blender::ed::sculpt_paint::pose::PoseGrowFactorData::pos_count, SCULPT_check_vertex_pivot_symmetry(), blender::ed::sculpt_paint::vert_neighbors_get_bmesh(), and verts.
|
static |
Definition at line 407 of file sculpt_pose.cc.
References BKE_subdiv_ccg_key_top_level(), BKE_subdiv_ccg_neighbor_coords_get(), CCG_grid_xy_to_index(), SubdivCCGNeighbors::coords, FAKE_NEIGHBOR_NONE, SubdivCCG::grid_hidden, blender::bke::ccg::grid_range(), CCGKey::grid_size, blender::bke::pbvh::GridsNode::grids(), i, blender::Span< T >::index_range(), blender::bits::BitGroupVector< InlineBufferCapacity, Allocator >::is_empty(), blender::Span< T >::is_empty(), max, blender::ed::sculpt_paint::pose::PoseGrowFactorData::pos_avg, blender::ed::sculpt_paint::pose::PoseGrowFactorData::pos_count, SubdivCCG::positions, SCULPT_check_vertex_pivot_symmetry(), SubdivCCGCoord::to_index(), x, and y.
|
static |
Definition at line 352 of file sculpt_pose.cc.
References add_fake_neighbors(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), blender::ed::sculpt_paint::calc_vert_neighbors(), faces, i, blender::Span< T >::is_empty(), max, blender::ed::sculpt_paint::pose::GrowFactorLocalData::neighbor_data, blender::ed::sculpt_paint::pose::GrowFactorLocalData::neighbor_data_with_fake, blender::ed::sculpt_paint::pose::GrowFactorLocalData::neighbor_offsets, blender::ed::sculpt_paint::hide::node_visible_verts(), blender::ed::sculpt_paint::pose::PoseGrowFactorData::pos_avg, blender::ed::sculpt_paint::pose::PoseGrowFactorData::pos_count, SCULPT_check_vertex_pivot_symmetry(), blender::ed::sculpt_paint::pose::GrowFactorLocalData::vert_indices, and verts.
|
static |
Definition at line 497 of file sculpt_pose.cc.
References blender::bke::pbvh::all_leaf_nodes(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::bke::pbvh::BMesh, Object::data, depsgraph, blender::bke::Face, faces, SculptFakeNeighbors::fake_neighbor_index, SculptSession::fake_neighbors, FLT_MAX, blender::bke::pbvh::Grids, blender::index_mask::IndexMask::index_range(), blender::ed::sculpt_paint::pose::PoseGrowFactorData::join(), blender::bke::AttributeAccessor::lookup(), blender::bke::pbvh::Mesh, blender::bke::pbvh::Tree::nodes(), blender::threading::parallel_reduce(), blender::bke::object::pbvh_get(), blender::bke::Point, SCULPT_mesh_symmetry_xyz_get(), SCULPT_vertex_count_get(), SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::type(), and blender::bke::pbvh::vert_positions_eval().
Referenced by calc_pose_data(), and ik_chain_init_topology().
|
static |
Definition at line 1881 of file sculpt_pose.cc.
References BRUSH_POSE_ORIGIN_FACE_SETS, BRUSH_POSE_ORIGIN_FACE_SETS_FK, BRUSH_POSE_ORIGIN_TOPOLOGY, BRUSH_USE_CONNECTED_ONLY, depsgraph, Brush::disconnected_distance_max, Brush::flag2, ik_chain_init(), ik_chain_init_face_sets(), ik_chain_init_face_sets_fk(), ik_chain_init_topology(), Brush::pose_origin_type, SCULPT_fake_neighbors_ensure(), and SCULPT_fake_neighbors_free().
Referenced by ik_chain_init(), pose_brush_init(), and preview_ik_chain_init().
|
static |
Definition at line 1498 of file sculpt_pose.cc.
References BLI_assert_unreachable, blender::bke::pbvh::BMesh, depsgraph, blender::bke::pbvh::Grids, ik_chain_init_face_sets(), ik_chain_init_face_sets_bmesh(), ik_chain_init_face_sets_grids(), ik_chain_init_face_sets_mesh(), blender::bke::pbvh::Mesh, and blender::bke::object::pbvh_get().
Referenced by ik_chain_init(), and ik_chain_init_face_sets().
|
static |
Definition at line 1350 of file sculpt_pose.cc.
References SculptSession::active_vert(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), SculptSession::bm, BM_elem_index_get, BM_mesh_elem_count(), BM_VERT, brush_num_effective_segments(), CD_PROP_INT32, BMVert::co, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), CustomData_get_offset_named(), SculptFakeNeighbors::fake_neighbor_index, SculptSession::fake_neighbors, blender::ed::sculpt_paint::find_symm_verts_bmesh(), float, i, ik_chain_init_face_sets_bmesh(), ik_chain_new(), ik_chain_origin_heads_init(), BMesh::pdata, SCULPT_check_vertex_pivot_symmetry(), SCULPT_FACE_SET_NONE, SCULPT_mesh_symmetry_xyz_get(), blender::ed::sculpt_paint::face_set::vert_face_set_get(), blender::ed::sculpt_paint::face_set::vert_has_face_set(), blender::ed::sculpt_paint::face_set::vert_has_unique_face_set(), vert_inside_brush_radius(), and blender::ed::sculpt_paint::vert_neighbors_get_bmesh().
Referenced by ik_chain_init_face_sets(), and ik_chain_init_face_sets_bmesh().
|
static |
Definition at line 1863 of file sculpt_pose.cc.
References BLI_assert_unreachable, blender::bke::pbvh::BMesh, depsgraph, blender::bke::pbvh::Grids, ik_chain_init_face_sets_fk(), ik_chain_init_face_sets_fk_bmesh(), ik_chain_init_face_sets_fk_grids(), ik_chain_init_face_sets_fk_mesh(), blender::bke::pbvh::Mesh, and blender::bke::object::pbvh_get().
Referenced by ik_chain_init(), and ik_chain_init_face_sets_fk().
|
static |
Definition at line 1777 of file sculpt_pose.cc.
References blender::ed::sculpt_paint::face_set::active_face_set_get(), SculptSession::active_vert(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::ed::sculpt_paint::flood_fill::FillDataBMesh::add_initial(), bm, SculptSession::bm, BM_elem_index_get, BM_mesh_elem_count(), BM_VERT, calc_average_face_set_center(), CD_PROP_INT32, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), CustomData_get_offset_named(), depsgraph, blender::ed::sculpt_paint::flood_fill::FillDataBMesh::execute(), SculptFakeNeighbors::fake_neighbor_index, SculptSession::fake_neighbors, blender::ed::sculpt_paint::find_symm_verts_bmesh(), ik_chain_init_face_sets_fk_bmesh(), ik_chain_new(), ik_chain_origin_heads_init(), SCULPT_FACE_SET_NONE, blender::ed::sculpt_paint::face_set::vert_face_set_get(), blender::ed::sculpt_paint::face_set::vert_has_face_set(), blender::ed::sculpt_paint::face_set::vert_has_unique_face_set(), and blender::ed::sculpt_paint::vert_random_access_ensure().
Referenced by ik_chain_init_face_sets_fk(), and ik_chain_init_face_sets_fk_bmesh().
|
static |
Definition at line 1674 of file sculpt_pose.cc.
References blender::ed::sculpt_paint::face_set::active_face_set_get(), SculptSession::active_vert_index(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::ed::sculpt_paint::flood_fill::FillDataGrids::add_initial(), BKE_subdiv_ccg_key_top_level(), calc_average_face_set_center(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), depsgraph, blender::ed::sculpt_paint::flood_fill::FillDataGrids::execute(), blender::bke::Face, faces, SculptFakeNeighbors::fake_neighbor_index, SculptSession::fake_neighbors, blender::ed::sculpt_paint::find_symm_verts_grids(), SubdivCCGCoord::from_index(), CCGKey::grid_area, SubdivCCGCoord::grid_index, SubdivCCG::grids_num, ik_chain_init_face_sets_fk_grids(), ik_chain_new(), ik_chain_origin_heads_init(), blender::bke::AttributeAccessor::lookup_or_default(), SCULPT_FACE_SET_NONE, SculptSession::subdiv_ccg, SubdivCCGCoord::to_index(), blender::ed::sculpt_paint::face_set::vert_has_face_set(), and blender::ed::sculpt_paint::face_set::vert_has_unique_face_set().
Referenced by ik_chain_init_face_sets_fk(), and ik_chain_init_face_sets_fk_grids().
|
static |
Definition at line 1596 of file sculpt_pose.cc.
References blender::ed::sculpt_paint::face_set::active_face_set_get(), SculptSession::active_vert(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::ed::sculpt_paint::flood_fill::FillDataMesh::add_initial(), calc_average_face_set_center(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), depsgraph, blender::ed::sculpt_paint::flood_fill::FillDataMesh::execute(), blender::bke::Face, SculptFakeNeighbors::fake_neighbor_index, SculptSession::fake_neighbors, blender::ed::sculpt_paint::find_symm_verts_mesh(), ik_chain_init_face_sets_fk_mesh(), ik_chain_new(), ik_chain_origin_heads_init(), blender::bke::AttributeAccessor::lookup_or_default(), SCULPT_FACE_SET_NONE, blender::ed::sculpt_paint::face_set::vert_face_set_get(), blender::ed::sculpt_paint::face_set::vert_has_face_set(), and blender::ed::sculpt_paint::face_set::vert_has_unique_face_set().
Referenced by ik_chain_init_face_sets_fk(), and ik_chain_init_face_sets_fk_mesh().
|
static |
Definition at line 1181 of file sculpt_pose.cc.
References SculptSession::active_vert_index(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), BKE_subdiv_ccg_key_top_level(), BKE_subdiv_ccg_neighbor_coords_get(), brush_num_effective_segments(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), SubdivCCGNeighbors::coords, blender::bke::Face, faces, SculptFakeNeighbors::fake_neighbor_index, SculptSession::fake_neighbors, blender::ed::sculpt_paint::find_symm_verts_grids(), float, CCGKey::grid_area, SubdivCCGCoord::grid_index, SubdivCCG::grids_num, i, ik_chain_init_face_sets_grids(), ik_chain_new(), ik_chain_origin_heads_init(), blender::bke::AttributeAccessor::lookup_or_default(), SCULPT_check_vertex_pivot_symmetry(), SCULPT_FACE_SET_NONE, SCULPT_mesh_symmetry_xyz_get(), SculptSession::subdiv_ccg, SubdivCCGCoord::to_index(), blender::ed::sculpt_paint::face_set::vert_face_set_get(), blender::ed::sculpt_paint::face_set::vert_has_face_set(), blender::ed::sculpt_paint::face_set::vert_has_unique_face_set(), and vert_inside_brush_radius().
Referenced by ik_chain_init_face_sets(), and ik_chain_init_face_sets_grids().
|
static |
Definition at line 1019 of file sculpt_pose.cc.
References SculptSession::active_vert(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), brush_num_effective_segments(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), depsgraph, blender::bke::Face, faces, SculptFakeNeighbors::fake_neighbor_index, SculptSession::fake_neighbors, blender::ed::sculpt_paint::find_symm_verts_mesh(), float, i, ik_chain_init_face_sets_mesh(), ik_chain_new(), ik_chain_origin_heads_init(), blender::bke::AttributeAccessor::lookup(), blender::bke::AttributeAccessor::lookup_or_default(), blender::bke::Point, SCULPT_check_vertex_pivot_symmetry(), SCULPT_FACE_SET_NONE, SCULPT_mesh_symmetry_xyz_get(), blender::Span< T >::size(), blender::ed::sculpt_paint::face_set::vert_face_set_get(), blender::ed::sculpt_paint::face_set::vert_has_face_set(), blender::ed::sculpt_paint::face_set::vert_has_unique_face_set(), vert_inside_brush_radius(), blender::ed::sculpt_paint::vert_neighbors_get_mesh(), and blender::bke::pbvh::vert_positions_eval().
Referenced by ik_chain_init_face_sets(), and ik_chain_init_face_sets_mesh().
|
static |
Definition at line 912 of file sculpt_pose.cc.
References BKE_subdiv_ccg_key_top_level(), BM_elem_index_get, blender::bke::pbvh::BMesh, brush_num_effective_segments(), calc_pose_data(), depsgraph, blender::bke::pbvh::Grids, grow_pose_factor(), i, ik_chain_init_topology(), ik_chain_new(), ik_chain_origin_heads_init(), blender::bke::AttributeAccessor::lookup(), blender::bke::pbvh::Mesh, blender::ed::sculpt_paint::nearest_vert_calc_bmesh(), blender::ed::sculpt_paint::nearest_vert_calc_grids(), blender::ed::sculpt_paint::nearest_vert_calc_mesh(), blender::bke::object::pbvh_get(), blender::bke::Point, Brush::pose_offset, SCULPT_vertex_count_get(), SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::type(), and blender::bke::pbvh::vert_positions_eval().
Referenced by ik_chain_init(), and ik_chain_init_topology().
|
static |
Definition at line 865 of file sculpt_pose.cc.
References ik_chain_new().
Referenced by ik_chain_init_face_sets_bmesh(), ik_chain_init_face_sets_fk_bmesh(), ik_chain_init_face_sets_fk_grids(), ik_chain_init_face_sets_fk_mesh(), ik_chain_init_face_sets_grids(), ik_chain_init_face_sets_mesh(), ik_chain_init_topology(), and ik_chain_new().
|
static |
Definition at line 876 of file sculpt_pose.cc.
References blender::math::distance(), i, ik_chain_origin_heads_init(), and blender::ed::sculpt_paint::pose::IKChain::segments.
Referenced by ik_chain_init_face_sets_bmesh(), ik_chain_init_face_sets_fk_bmesh(), ik_chain_init_face_sets_fk_grids(), ik_chain_init_face_sets_fk_mesh(), ik_chain_init_face_sets_grids(), ik_chain_init_face_sets_mesh(), ik_chain_init_topology(), and ik_chain_origin_heads_init().
|
static |
Definition at line 1914 of file sculpt_pose.cc.
References blender::ed::sculpt_paint::smooth::blur_geometry_data_array(), SculptSession::cache, depsgraph, ik_chain_init(), blender::ed::sculpt_paint::StrokeCache::location, pose_brush_init(), blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, Brush::pose_smooth_iterations, and blender::ed::sculpt_paint::StrokeCache::radius.
Referenced by do_pose_brush(), and pose_brush_init().
| std::unique_ptr< SculptPoseIKChainPreview > blender::ed::sculpt_paint::pose::preview_ik_chain_init | ( | const Depsgraph & | depsgraph, |
| Object & | ob, | ||
| SculptSession & | ss, | ||
| const Brush & | brush, | ||
| const float3 & | initial_location, | ||
| const float | radius ) |
Definition at line 1929 of file sculpt_pose.cc.
References depsgraph, i, ik_chain_init(), preview_ik_chain_init(), and blender::ed::sculpt_paint::pose::IKChain::segments.
Referenced by blender::ed::sculpt_paint::paint_cursor_draw_3d_view_brush_cursor_inactive(), and preview_ik_chain_init().
|
static |
Definition at line 1949 of file sculpt_pose.cc.
References BKE_curvemapping_init(), SculptSession::cache, Brush::curve_distance_falloff, blender::ed::sculpt_paint::StrokeCache::grab_delta, blender::ed::sculpt_paint::StrokeCache::pose_ik_chain, sculpt_pose_do_translate_deform(), and solve_translate_chain().
Referenced by calc_scale_translate_deform(), and sculpt_pose_do_translate_deform().
|
static |
Definition at line 44 of file sculpt_pose.cc.
References i, blender::MutableSpan< T >::index_range(), blender::MutableSpan< T >::last(), blender::math::normalize(), rot, rotation_between_vecs_to_quat(), and blender::ed::sculpt_paint::pose::IKChain::segments.
Referenced by calc_rotate_deform(), and calc_scale_deform().
|
static |
Definition at line 83 of file sculpt_pose.cc.
References axis_angle_normalized_to_quat(), BKE_brush_curve_strength(), i, blender::MutableSpan< T >::index_range(), blender::math::normalize(), rot, rotation_between_quats_to_quat(), blender::ed::sculpt_paint::pose::IKChain::segments, and blender::MutableSpan< T >::size().
Referenced by calc_twist_deform().
|
static |
Definition at line 116 of file sculpt_pose.cc.
References copy_v3_v3(), and blender::ed::sculpt_paint::pose::IKChain::segments.
Referenced by calc_scale_deform(), and calc_squash_stretch_deform().
|
static |
Definition at line 104 of file sculpt_pose.cc.
References add_v3_v3v3(), blender::ed::sculpt_paint::pose::IKChain::segments, and unit_qt().
Referenced by sculpt_pose_do_translate_deform().
|
static |
Definition at line 644 of file sculpt_pose.cc.
References blender::math::distance(), i, blender::ed::sculpt_paint::is_symmetry_iteration_valid(), blender::ed::sculpt_paint::symmetry_flip(), and vert_inside_brush_radius().
Referenced by calc_pose_origin_and_factor_bmesh(), calc_pose_origin_and_factor_grids(), calc_pose_origin_and_factor_mesh(), ik_chain_init_face_sets_bmesh(), ik_chain_init_face_sets_grids(), ik_chain_init_face_sets_mesh(), and vert_inside_brush_radius().