|
Blender V4.3
|
Classes | |
| struct | BrushLocalData |
| struct | GrowFactorLocalData |
| struct | IKChain |
| struct | IKChainSegment |
| struct | PoseGrowFactorData |
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 MutableSpan< Vector< int > > neighbors) |
| 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) |
| 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 150 of file sculpt_pose.cc.
References b, and BLI_assert.
Referenced by calc_bmesh(), calc_grids(), and calc_mesh().
|
static |
Definition at line 332 of file sculpt_pose.cc.
References FAKE_NEIGHBOR_NONE, and verts.
Referenced by grow_factors_mesh().
|
static |
Definition at line 2020 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 878 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 1498 of file sculpt_pose.cc.
References BKE_subdiv_ccg_key_top_level(), bm, BM_mesh_elem_count(), BM_VERT, BM_vert_at_index(), calc_average_face_set_center(), CD_PROP_INT32, BMVert::co, count, CustomData_get_offset_named(), depsgraph, float, SubdivCCG::grids_num, blender::Span< T >::index_range(), BMesh::pdata, SubdivCCG::positions, SCULPT_vertex_random_access_ensure(), and sum().
Referenced by calc_average_face_set_center(), ik_chain_init_face_sets_fk_bmesh(), and ik_chain_init_face_sets_fk_mesh().
|
static |
Definition at line 263 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::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(), blender::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 210 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::gather_data_grids(), blender::ed::sculpt_paint::gather_grids_positions(), 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(), blender::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, SculptSession::subdiv_ccg, and blender::ed::sculpt_paint::pose::BrushLocalData::translations.
Referenced by do_pose_brush().
|
static |
Definition at line 158 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, blender::ed::sculpt_paint::PositionDeformData::deform(), Brush::deform_target, depsgraph, blender::ed::sculpt_paint::PositionDeformData::eval, blender::ed::sculpt_paint::pose::BrushLocalData::factors, blender::MutableSpan< T >::fill(), 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(), blender::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, and verts.
Referenced by do_pose_brush().
|
static |
Definition at line 805 of file sculpt_pose.cc.
References BLI_assert, calc_pose_data(), calc_pose_origin_and_factor_bmesh(), calc_pose_origin_and_factor_grids(), calc_pose_origin_and_factor_mesh(), depsgraph, grow_pose_factor(), blender::MutableSpan< T >::is_empty(), and blender::math::normalize().
Referenced by calc_pose_data(), and ik_chain_init_topology().
|
static |
Definition at line 755 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(), blender::ed::sculpt_paint::find_symm_verts_bmesh(), float, blender::MutableSpan< T >::is_empty(), SCULPT_check_vertex_pivot_symmetry(), SCULPT_mesh_symmetry_xyz_get(), SCULPT_vertex_random_access_ensure(), and vert_inside_brush_radius().
Referenced by calc_pose_data(), and calc_pose_origin_and_factor_bmesh().
|
static |
Definition at line 698 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(), 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(), 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 645 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(), 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(), and vert_inside_brush_radius().
Referenced by calc_pose_data(), and calc_pose_origin_and_factor_mesh().
|
static |
Definition at line 1975 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 1986 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 1948 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 1937 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 1996 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 135 of file sculpt_pose.cc.
References BLI_assert, SCULPT_get_vertex_symm_area(), blender::MutableSpan< T >::size(), and blender::math::transform_point().
Referenced by calc_bmesh(), calc_grids(), and calc_mesh().
|
static |
Definition at line 2006 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 1965 of file sculpt_pose.cc.
References BKE_curvemapping_init(), blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, calc_twist_deform(), Brush::curve, 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 2037 of file sculpt_pose.cc.
References align_pivot_local_space(), BKE_paint_brush_for_read(), 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::index_mask::IndexMask::foreach_index(), SubdivCCG::grid_area, invert_m4_m4(), blender::threading::EnumerableThreadSpecific< T >::local(), 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, 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(), and unit_m4().
Referenced by blender::ed::sculpt_paint::do_brush_action(), and do_pose_brush().
|
static |
Definition at line 440 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 388 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::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(), and x.
|
static |
Definition at line 344 of file sculpt_pose.cc.
References add_fake_neighbors(), blender::ed::sculpt_paint::calc_vert_neighbors(), blender::Span< T >::is_empty(), max, 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, blender::ed::sculpt_paint::pose::GrowFactorLocalData::vert_neighbors, and verts.
|
static |
Definition at line 478 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, 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::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 1864 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 1479 of file sculpt_pose.cc.
References BLI_assert_unreachable, depsgraph, ik_chain_init_face_sets(), ik_chain_init_face_sets_bmesh(), ik_chain_init_face_sets_grids(), and ik_chain_init_face_sets_mesh().
Referenced by ik_chain_init(), and ik_chain_init_face_sets().
|
static |
Definition at line 1331 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(), blender::ed::sculpt_paint::find_symm_verts_bmesh(), float, 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(), 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 1846 of file sculpt_pose.cc.
References BLI_assert_unreachable, depsgraph, ik_chain_init_face_sets_fk(), ik_chain_init_face_sets_fk_bmesh(), ik_chain_init_face_sets_fk_grids(), and ik_chain_init_face_sets_fk_mesh().
Referenced by ik_chain_init(), and ik_chain_init_face_sets_fk().
|
static |
Definition at line 1760 of file sculpt_pose.cc.
References 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(), blender::ed::sculpt_paint::find_symm_verts_bmesh(), ik_chain_init_face_sets_fk_bmesh(), ik_chain_new(), ik_chain_origin_heads_init(), BMesh::pdata, SCULPT_FACE_SET_NONE, and SCULPT_vertex_random_access_ensure().
Referenced by ik_chain_init_face_sets_fk(), and ik_chain_init_face_sets_fk_bmesh().
|
static |
Definition at line 1655 of file sculpt_pose.cc.
References SculptSession::active_vert(), SculptSession::active_vert_index(), blender::ed::sculpt_paint::flood_fill::FillDataGrids::add_initial(), BKE_subdiv_ccg_key_top_level(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), blender::ed::sculpt_paint::flood_fill::FillDataGrids::execute(), CCGKey::grid_area, SubdivCCGCoord::grid_index, SubdivCCG::grids_num, ik_chain_init_face_sets_fk_grids(), ik_chain_new(), SCULPT_FACE_SET_NONE, SculptSession::subdiv_ccg, and SubdivCCGCoord::to_index().
Referenced by ik_chain_init_face_sets_fk(), and ik_chain_init_face_sets_fk_grids().
|
static |
Definition at line 1577 of file sculpt_pose.cc.
References 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::ed::sculpt_paint::find_symm_verts_mesh(), ik_chain_init_face_sets_fk_mesh(), ik_chain_new(), ik_chain_origin_heads_init(), and SCULPT_FACE_SET_NONE.
Referenced by ik_chain_init_face_sets_fk(), and ik_chain_init_face_sets_fk_mesh().
|
static |
Definition at line 1160 of file sculpt_pose.cc.
References SculptSession::active_vert(), 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::ed::sculpt_paint::find_symm_verts_grids(), float, CCGKey::grid_area, SubdivCCGCoord::grid_index, SubdivCCG::grids_num, ik_chain_init_face_sets_grids(), ik_chain_new(), ik_chain_origin_heads_init(), SCULPT_check_vertex_pivot_symmetry(), SCULPT_FACE_SET_NONE, SCULPT_mesh_symmetry_xyz_get(), SculptSession::subdiv_ccg, SubdivCCGCoord::to_index(), and vert_inside_brush_radius().
Referenced by ik_chain_init_face_sets(), and ik_chain_init_face_sets_grids().
|
static |
Definition at line 999 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::ed::sculpt_paint::find_symm_verts_mesh(), float, ik_chain_init_face_sets_mesh(), ik_chain_new(), ik_chain_origin_heads_init(), SCULPT_check_vertex_pivot_symmetry(), SCULPT_FACE_SET_NONE, SCULPT_mesh_symmetry_xyz_get(), blender::Span< T >::size(), vert_inside_brush_radius(), and blender::ed::sculpt_paint::vert_neighbors_get_mesh().
Referenced by ik_chain_init_face_sets(), and ik_chain_init_face_sets_mesh().
|
static |
Definition at line 892 of file sculpt_pose.cc.
References BKE_subdiv_ccg_key_top_level(), BM_elem_index_get, brush_num_effective_segments(), calc_pose_data(), depsgraph, grow_pose_factor(), ik_chain_init_topology(), ik_chain_new(), ik_chain_origin_heads_init(), blender::ed::sculpt_paint::nearest_vert_calc_bmesh(), blender::ed::sculpt_paint::nearest_vert_calc_grids(), blender::ed::sculpt_paint::nearest_vert_calc_mesh(), Brush::pose_offset, SCULPT_vertex_count_get(), SculptSession::subdiv_ccg, and blender::bke::pbvh::Tree::type().
Referenced by ik_chain_init(), and ik_chain_init_topology().
|
static |
Definition at line 845 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 856 of file sculpt_pose.cc.
References blender::math::distance(), 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_mesh(), ik_chain_init_face_sets_grids(), ik_chain_init_face_sets_mesh(), ik_chain_init_topology(), and ik_chain_origin_heads_init().
| void blender::ed::sculpt_paint::pose::pose_brush_init | ( | const Depsgraph & | depsgraph, |
| Object & | ob, | ||
| SculptSession & | ss, | ||
| const Brush & | brush ) |
Calculate the pose origin and (Optionally the pose factor) that is used when using the pose brush.
| r_pose_origin | Must be a valid pointer. |
| r_pose_factor | Optional, when set to NULL it won't be calculated. |
Definition at line 1897 of file sculpt_pose.cc.
References 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 blender::ed::sculpt_paint::do_brush_action(), 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 1909 of file sculpt_pose.cc.
References depsgraph, 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 1929 of file sculpt_pose.cc.
References BKE_curvemapping_init(), SculptSession::cache, Brush::curve, 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 47 of file sculpt_pose.cc.
References 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 86 of file sculpt_pose.cc.
References axis_angle_normalized_to_quat(), BKE_brush_curve_strength(), 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 119 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 107 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 625 of file sculpt_pose.cc.
References blender::math::distance(), SCULPT_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().