Blender V5.0
blender::ed::sculpt_paint::brushes Namespace Reference

Namespaces

namespace  bmesh_topology_rake_cc
namespace  clay_strips
namespace  plane
namespace  clay_cc
namespace  clay_strips_cc
namespace  clay_thumb_cc
namespace  crease_cc
namespace  draw_cc
namespace  draw_face_sets_cc
namespace  draw_sharp_cc
namespace  draw_vector_displacement_cc
namespace  elastic_deform_cc
namespace  enhance_details_cc
namespace  grab_cc
namespace  inflate_cc
namespace  layer_cc
namespace  mask_cc
namespace  multires_displacement_eraser_cc
namespace  multires_displacement_smear_cc
namespace  pinch_cc
namespace  plane_cc
namespace  relax_cc
namespace  rotate_cc
namespace  smooth_cc
namespace  smooth_mask_cc
namespace  snake_hook_cc
namespace  surface_smooth_cc
namespace  thumb_cc
namespace  topology_slide_cc

Classes

struct  CursorSampleResult
struct  ScrapeSampleData
struct  LocalData
struct  MeshLocalData
struct  GridLocalData
struct  BMeshLocalData
struct  SculptProjectVector

Functions

static BLI_NOINLINE void calc_translations (const Set< BMVert *, 0 > &verts, const float3 &direction, const MutableSpan< float3 > translations)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &direction, const float strength, bke::pbvh::BMeshNode &node, LocalData &tls)
void do_bmesh_topology_rake_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, const float input_strength)
void do_clay_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_clay_strips_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask, const float3 &plane_normal, const float3 &plane_center)
void do_clay_thumb_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
float clay_thumb_get_stabilized_pressure (const StrokeCache &cache)
void do_crease_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_blob_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_displacement_eraser_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_displacement_smear_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_draw_face_sets_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_draw_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_draw_vector_displacement_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_draw_sharp_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_elastic_deform_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_enhance_details_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_plane_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, const float3 &plane_normal, const float3 &plane_center)
void do_grab_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_gravity_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_inflate_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
void do_layer_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_mask_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_multiplane_scrape_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void multiplane_scrape_preview_draw (uint gpuattr, const Brush &brush, const SculptSession &ss, const float outline_col[3], float outline_alpha)
void do_pinch_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_nudge_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_relax_face_sets_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_rotate_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_smooth_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, float brush_strength)
void do_smooth_mask_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, float brush_strength)
void do_snake_hook_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_surface_smooth_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_thumb_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_topology_slide_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
void do_topology_relax_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
static BLI_NOINLINE void calc_closest_to_plane (const float4 &test_plane, const Span< float3 > positions, const Span< int > verts, const MutableSpan< float3 > translations)
static BLI_NOINLINE void calc_closest_to_plane (const float4 &test_plane, const Span< float3 > positions, const MutableSpan< float3 > translations)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4 &test_plane, const float strength, const MeshAttributeData &attribute_data, const Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float4 &test_plane, const float strength, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float4 &test_plane, const float strength, bke::pbvh::BMeshNode &node, LocalData &tls)
static void calc_local_positions (const Span< float3 > vert_positions, const Span< int > verts, const float4x4 &mat, const MutableSpan< float2 > xy_positions, const MutableSpan< float > z_positions)
static void calc_local_positions (const Span< float3 > positions, const float4x4 &mat, const MutableSpan< float2 > xy_positions, const MutableSpan< float > z_positions)
static void apply_z_axis_factors (const Span< float > z_positions, const MutableSpan< float > factors)
static void apply_plane_trim_factors (const Brush &brush, const Span< float > z_positions, const MutableSpan< float > factors)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4x4 &mat, const float3 &offset, const Span< float3 > vert_normals, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float4x4 &mat, const float3 &offset, const bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float4x4 &mat, const float3 &offset, bke::pbvh::BMeshNode &node, LocalData &tls)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4 &plane_tilt, const float strength, const MeshAttributeData &attribute_data, const Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4 &plane_tilt, const float strength, const bke::pbvh::GridsNode &node, Object &object, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4 &plane_tilt, const float strength, Object &object, bke::pbvh::BMeshNode &node, LocalData &tls)
static BLI_NOINLINE void translations_from_position (const Span< float3 > positions_eval, const Span< int > verts, const float3 &location, const MutableSpan< float3 > translations)
static BLI_NOINLINE void translations_from_position (const Span< float3 > positions, const float3 &location, const MutableSpan< float3 > translations)
static BLI_NOINLINE void add_offset_to_translations (const MutableSpan< float3 > translations, const Span< float > factors, const float3 &offset)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float3 &offset, const float strength, const MeshAttributeData &attribute_data, const Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &offset, const float strength, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &offset, const float strength, bke::pbvh::BMeshNode &node, LocalData &tls)
static void do_crease_or_blob_brush (const Depsgraph &depsgraph, const Sculpt &sd, const bool invert_strength, Object &object, const IndexMask &node_mask)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float3 &offset, const MeshAttributeData &attribute_data, const Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &offset, const bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &offset, bke::pbvh::BMeshNode &node, LocalData &tls)
static void offset_positions (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const float3 &offset, const IndexMask &node_mask)
static void calc_face_centers (const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< float3 > vert_positions, const Span< int > face_indices, const MutableSpan< float3 > positions)
static void calc_face_normals (const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< float3 > vert_positions, const Span< int > face_indices, const MutableSpan< float3 > normals)
static BLI_NOINLINE void fill_factor_from_hide_and_mask (const Mesh &mesh, const Span< int > face_indices, const MutableSpan< float > r_factors)
static BLI_NOINLINE void apply_face_set (const int face_set_id, const Span< int > face_indices, const Span< float > factors, const MutableSpan< int > face_sets)
static void calc_faces (const Depsgraph &depsgraph, Object &object, const Brush &brush, const float strength, const int face_set_id, Span< float3 > positions_eval, const bke::pbvh::MeshNode &node, const Span< int > face_indices, MeshLocalData &tls, const MutableSpan< int > face_sets)
static void do_draw_face_sets_brush_mesh (const Depsgraph &depsgraph, Object &object, const Brush &brush, const IndexMask &node_mask)
static BLI_NOINLINE void calc_face_indices_grids (const SubdivCCG &subdiv_ccg, const Span< int > grids, const MutableSpan< int > face_indices)
static void calc_grids (const Depsgraph &depsgraph, Object &object, const Brush &brush, const float strength, const int face_set_id, const bke::pbvh::GridsNode &node, GridLocalData &tls, const MutableSpan< int > face_sets)
static void do_draw_face_sets_brush_grids (const Depsgraph &depsgraph, Object &object, const Brush &brush, const IndexMask &node_mask)
static BLI_NOINLINE void fill_factor_from_hide_and_mask (const BMesh &bm, const Set< BMFace *, 0L > &faces, const MutableSpan< float > r_factors)
static void calc_face_centers (const Set< BMFace *, 0L > &faces, const MutableSpan< float3 > centers)
static BLI_NOINLINE void apply_face_set (const int face_set_id, const Set< BMFace *, 0 > &faces, const MutableSpan< float > factors, const int cd_offset)
static void calc_bmesh (Object &object, const Brush &brush, const float strength, const int face_set_id, bke::pbvh::BMeshNode &node, BMeshLocalData &tls, const int cd_offset)
static void do_draw_face_sets_brush_bmesh (const Depsgraph &depsgraph, Object &object, const Brush &brush, const IndexMask &node_mask)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float3 &offset, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &offset, const bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &offset, bke::pbvh::BMeshNode &node, LocalData &tls)
static void offset_positions (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const float3 &offset, const IndexMask &node_mask)
static void calc_brush_texture_colors (SculptSession &ss, const Brush &brush, const Span< float3 > vert_positions, const Span< int > verts, const MutableSpan< float3 > r_colors)
static void calc_brush_texture_colors (SculptSession &ss, const Brush &brush, const Span< float3 > positions, const MutableSpan< float3 > r_colors)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const Span< float3 > vert_normals, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, bke::pbvh::BMeshNode &node, LocalData &tls)
static BLI_NOINLINE void calc_translations (const Brush &brush, const StrokeCache &cache, const KelvinletParams &kelvinet_params, const float3 &location, const float3 &offset, const Span< float3 > positions, const MutableSpan< float3 > translations)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const KelvinletParams &kelvinet_params, const float3 &offset, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const KelvinletParams &kelvinet_params, const float3 &offset, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const KelvinletParams &kelvinet_params, const float3 &offset, bke::pbvh::BMeshNode &node, LocalData &tls)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const MeshAttributeData &attribute_data, const Span< float3 > vert_normals, const Span< float3 > all_translations, const float strength, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const Span< float3 > all_translations, const float strength, const bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const Span< float3 > all_translations, const float strength, bke::pbvh::BMeshNode &node, LocalData &tls)
static void calc_translations_faces (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_poly, const bke::pbvh::MeshNode &node, LocalData &tls, const MutableSpan< float3 > all_translations)
static void calc_translations_grids (const SubdivCCG &subdiv_ccg, const bke::pbvh::GridsNode &node, LocalData &tls, const MutableSpan< float3 > all_translations)
static void calc_translations_bmesh (const bke::pbvh::BMeshNode &node, LocalData &tls, const MutableSpan< float3 > all_translations)
static BLI_NOINLINE void calc_silhouette_factors (const StrokeCache &cache, const float3 &offset, const Span< float3 > normals, const MutableSpan< float > factors)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float3 &offset, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &offset, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &offset, bke::pbvh::BMeshNode &node, LocalData &tls)
static BLI_NOINLINE void apply_scale (const MutableSpan< float3 > translations, const float3 &scale)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float3 &scale, const MeshAttributeData &attribute_data, const Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &scale, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &scale, bke::pbvh::BMeshNode &node, LocalData &tls)
static BLI_NOINLINE void offset_displacement_factors (const MutableSpan< float > displacement_factors, const Span< float > factors, const float strength)
static BLI_NOINLINE void reset_displacement_factors (const MutableSpan< float > displacement_factors, const Span< float > factors, const float strength)
static BLI_NOINLINE void clamp_displacement_factors (const MutableSpan< float > displacement_factors, const Span< float > masks)
static BLI_NOINLINE void calc_translations (const Span< float3 > orig_positions, const Span< float3 > orig_normals, const Span< float3 > positions, const Span< float > displacement_factors, const Span< float > factors, const float height, const MutableSpan< float3 > r_translations)
static BLI_NOINLINE void calc_translations (const Span< float3 > base_positions, const Span< float3 > base_normals, const Span< int > verts, const Span< float3 > positions, const Span< float > displacement_factors, const Span< float > factors, const float height, const MutableSpan< float3 > r_translations)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const MeshAttributeData &attribute_data, const Span< float3 > vert_normals, const bool use_persistent_base, const Span< float3 > persistent_base_positions, const Span< float3 > persistent_base_normals, Object &object, bke::pbvh::MeshNode &node, LocalData &tls, MutableSpan< float > layer_displacement_factor, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, Object &object, const bool use_persistent_base, const Span< float3 > persistent_base_positions, const Span< float3 > persistent_base_normals, bke::pbvh::GridsNode &node, LocalData &tls, MutableSpan< float > layer_displacement_factor)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, Object &object, bke::pbvh::BMeshNode &node, LocalData &tls, MutableSpan< float > layer_displacement_factor)
static BLI_NOINLINE void apply_factors (const float strength, const Span< float > current_masks, const Span< float > factors, const MutableSpan< float > masks)
static BLI_NOINLINE void clamp_mask (const MutableSpan< float > masks)
static void calc_faces (const Depsgraph &depsgraph, const Brush &brush, const float strength, const Span< float3 > positions, const Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, Object &object, const Span< bool > hide_vert, LocalData &tls, const MutableSpan< float > mask)
static void calc_grids (const Depsgraph &depsgraph, Object &object, const Brush &brush, const float strength, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, Object &object, const Brush &brush, const float strength, bke::pbvh::BMeshNode &node, LocalData &tls)
static ScrapeSampleData join_samples (const ScrapeSampleData &a, const ScrapeSampleData &b)
static BLI_NOINLINE void filter_plane_side_factors (const Span< float3 > positions, const Span< float3 > local_positions, const std::array< float4, 2 > &scrape_planes, const MutableSpan< float > factors)
static BLI_NOINLINE void calc_distances (const Span< float3 > local_positions, const MutableSpan< float > distances)
static BLI_NOINLINE void calc_translations (const Span< float3 > positions, const Span< float3 > local_positions, const std::array< float4, 2 > &scrape_planes, const MutableSpan< float3 > translations)
static BLI_NOINLINE void accumulate_samples (const Span< float3 > positions, const Span< float3 > local_positions, const Span< float3 > normals, const Span< float > factors, ScrapeSampleData &sample)
static void sample_node_surface_mesh (const Depsgraph &depsgraph, const Object &object, const Brush &brush, const float4x4 &mat, const Span< float3 > vert_positions, const Span< float3 > vert_normals, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, ScrapeSampleData &sample, LocalData &tls)
static void sample_node_surface_grids (const Depsgraph &depsgraph, const Object &object, const Brush &brush, const float4x4 &mat, const bke::pbvh::GridsNode &node, ScrapeSampleData &sample, LocalData &tls)
static void sample_node_surface_bmesh (const Depsgraph &depsgraph, const Object &object, const Brush &brush, const float4x4 &mat, const bke::pbvh::BMeshNode &node, ScrapeSampleData &sample, LocalData &tls)
static std::optional< ScrapeSampleDatasample_surface (const Depsgraph &depsgraph, const Object &object, const Brush &brush, const float4x4 &mat, const IndexMask &node_mask)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4x4 &mat, const std::array< float4, 2 > &scrape_planes, const float angle, const float strength, const Span< float3 > vert_normals, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4x4 &mat, const std::array< float4, 2 > &scrape_planes, const float angle, const float strength, const bke::pbvh::GridsNode &node, Object &object, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4x4 &mat, const std::array< float4, 2 > &scrape_planes, const float angle, const float strength, bke::pbvh::BMeshNode &node, Object &object, LocalData &tls)
static BLI_NOINLINE void calc_limit_positions (const SubdivCCG &subdiv_ccg, const Span< int > grids, const MutableSpan< float3 > limit_positions)
static void calc_node (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float strength, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_node (const Depsgraph &depsgraph, Object &object, const Brush &brush, const float strength, const bke::pbvh::GridsNode &node, LocalData &tls)
static BLI_NOINLINE void eval_all_limit_positions (const SubdivCCG &subdiv_ccg, const MutableSpan< float3 > limit_positions)
static BLI_NOINLINE void store_node_prev_displacement (const Span< float3 > limit_positions, const Span< float3 > positions, const CCGKey &key, const bke::pbvh::GridsNode &node, const MutableSpan< float3 > prev_displacement)
static BLI_NOINLINE void calc_translations (const Span< float3 > positions, const float3 &location, const std::array< float3, 2 > &stroke_xz, const MutableSpan< float3 > translations)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const std::array< float3, 2 > &stroke_xz, const float strength, const MeshAttributeData &attribute_data, const Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const std::array< float3, 2 > &stroke_xz, const float strength, const bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const std::array< float3, 2 > &stroke_xz, const float strength, bke::pbvh::BMeshNode &node, LocalData &tls)
static void calc_local_positions (const float4x4 &mat, const Span< int > verts, const Span< float3 > positions, const MutableSpan< float3 > local_positions)
static void calc_local_distances (const float height, const float depth, const MutableSpan< float3 > local_positions, const MutableSpan< float > distances)
static void scale_factors_by_height_and_depth (const float height, const float depth, const MutableSpan< float3 > local_positions, const MutableSpan< float > factors)
static void calc_translations (const float3 &plane_normal, const float radius, const float strength, const MutableSpan< float3 > local_positions, const MutableSpan< float > factors, const MutableSpan< float3 > r_translations)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4x4 &mat, const float3 &plane_normal, const float strength, const float height, const float depth, const MeshAttributeData &attribute_data, const Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float4x4 &mat, const float3 &plane_normal, const float strength, const float height, const float depth, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float4x4 &mat, const float3 &plane_normal, const float strength, const float height, const float depth, bke::pbvh::BMeshNode &node, LocalData &tls)
static BLI_NOINLINE void calc_translations (const Span< float3 > positions, const float3 &axis, const Span< float > angles, const float3 &center, const MutableSpan< float3 > translations)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float angle, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float angle, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float angle, bke::pbvh::BMeshNode &node, LocalData &tls)
static Vector< floatiteration_strengths (const float strength)
static BLI_NOINLINE void apply_positions_faces (const Sculpt &sd, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const Span< float > factors, const Span< float3 > new_positions, const PositionDeformData &position_data)
static BLI_NOINLINE void do_smooth_brush_mesh (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, Object &object, const IndexMask &node_mask, const float brush_strength)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, const OffsetIndices< int > faces, const Span< int > corner_verts, const BitSpan boundary_verts, Object &object, const Brush &brush, const float strength, const bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float strength, bke::pbvh::BMeshNode &node, LocalData &tls)
static Vector< floatiteration_strengths (const float strength)
static void apply_masks_faces (const Depsgraph &depsgraph, const Brush &brush, const Span< float3 > positions_eval, const Span< float3 > vert_normals, const Span< bool > hide_vert, const bke::pbvh::MeshNode &node, const float strength, Object &object, LocalData &tls, const Span< float > mask_averages, MutableSpan< float > mask)
static void do_smooth_brush_mesh (const Depsgraph &depsgraph, const Brush &brush, Object &object, const IndexMask &node_mask, const float brush_strength)
static void calc_grids (const Depsgraph &depsgraph, Object &object, const Brush &brush, const float strength, const bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, Object &object, const int mask_offset, const Brush &brush, const float strength, bke::pbvh::BMeshNode &node, LocalData &tls)
static void sculpt_project_v3_cache_init (SculptProjectVector *spvc, const float3 &plane)
static void sculpt_project_v3 (const SculptProjectVector *spvc, const float3 &vec, float3 &r_vec)
static float3 sculpt_rake_rotate (const StrokeCache &cache, const float3 &sculpt_co, const float3 &v_co, float factor)
static BLI_NOINLINE void calc_pinch_influence (const Brush &brush, const StrokeCache &cache, const float3 &grab_delta, const SculptProjectVector *spvc, const Span< float3 > positions, const Span< float > factors, const MutableSpan< float3 > translations)
static BLI_NOINLINE void calc_rake_rotation_influence (const StrokeCache &cache, const Span< float3 > positions, const Span< float > factors, const MutableSpan< float3 > translations)
static BLI_NOINLINE void calc_kelvinet_translation (const StrokeCache &cache, const Span< float3 > positions, const Span< float > factors, const MutableSpan< float3 > translations)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const SculptProjectVector *spvc, const float3 &grab_delta, const Span< float3 > vert_normals, const MeshAttributeData &attribute_data, bke::pbvh::MeshNode &node, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, SculptProjectVector *spvc, const float3 &grab_delta, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, SculptProjectVector *spvc, const float3 &grab_delta, bke::pbvh::BMeshNode &node, LocalData &tls)
static BLI_NOINLINE void clamp_factors (const MutableSpan< float > factors)
static BLI_NOINLINE void do_surface_smooth_brush_mesh (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const IndexMask &node_mask, Object &object, const MutableSpan< float3 > all_laplacian_disp)
static BLI_NOINLINE void do_surface_smooth_brush_grids (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const IndexMask &node_mask, Object &object, const MutableSpan< float3 > all_laplacian_disp)
static BLI_NOINLINE void do_surface_smooth_brush_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const IndexMask &node_mask, Object &object, const MutableSpan< float3 > all_laplacian_disp)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float3 &offset, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &offset, bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float3 &offset, bke::pbvh::BMeshNode &node, LocalData &tls)
static BLI_NOINLINE void calc_translation_directions (const Brush &brush, const StrokeCache &cache, const Span< float3 > positions, const MutableSpan< float3 > r_translations)
static void add_neighbor_influence (const float3 &position, const float3 &dir, const float3 &neighbor_position, float3 &translation)
static BLI_NOINLINE void calc_neighbor_influence (const Span< float3 > vert_positions, const Span< float3 > positions, const GroupedSpan< int > vert_neighbors, const MutableSpan< float3 > translations)
static BLI_NOINLINE void calc_neighbor_influence (const SubdivCCG &subdiv_ccg, const Span< int > grids, const MutableSpan< float3 > translations)
static BLI_NOINLINE void calc_neighbor_influence (const Span< float3 > positions, const Set< BMVert *, 0 > &verts, const MutableSpan< float3 > translations)
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > vert_to_face_map, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, LocalData &tls, const PositionDeformData &position_data)
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const bke::pbvh::GridsNode &node, LocalData &tls)
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, bke::pbvh::BMeshNode &node, LocalData &tls)

Variables

constexpr float FACE_SET_BRUSH_MIN_FADE = 0.05f

Function Documentation

◆ accumulate_samples()

BLI_NOINLINE void blender::ed::sculpt_paint::brushes::accumulate_samples ( const Span< float3 > positions,
const Span< float3 > local_positions,
const Span< float3 > normals,
const Span< float > factors,
ScrapeSampleData & sample )
static

◆ calc_bmesh() [1/24]

void blender::ed::sculpt_paint::brushes::calc_bmesh ( const Depsgraph & depsgraph,
const Sculpt & sd,
const Brush & brush,
const float4x4 & mat,
const std::array< float4, 2 > & scrape_planes,
const float angle,
const float strength,
bke::pbvh::BMeshNode & node,
Object & object,
LocalData & tls )
static

Definition at line 486 of file multiplane_scrape.cc.

References angle(), blender::ed::sculpt_paint::apply_hardness_to_distances(), blender::ed::sculpt_paint::apply_translations(), blender::ed::sculpt_paint::StrokeCache::automasking, BKE_pbvh_bmesh_node_unique_verts(), SculptSession::bm, BRUSH_FRONTFACE, SculptSession::cache, blender::ed::sculpt_paint::calc_brush_distances(), blender::ed::sculpt_paint::calc_brush_strength_factors(), calc_distances(), blender::ed::sculpt_paint::calc_front_face(), blender::ed::sculpt_paint::auto_mask::calc_vert_factors(), blender::ed::sculpt_paint::clip_and_lock_translations(), depsgraph, blender::ed::sculpt_paint::brushes::LocalData::distances, blender::ed::sculpt_paint::brushes::LocalData::factors, Brush::falloff_shape, blender::ed::sculpt_paint::filter_distances_with_radius(), filter_plane_side_factors(), blender::ed::sculpt_paint::filter_plane_trim_limit_factors(), blender::ed::sculpt_paint::filter_region_clip_factors(), Brush::flag, blender::ed::sculpt_paint::gather_bmesh_positions(), blender::ed::sculpt_paint::brushes::LocalData::local_positions, blender::ed::sculpt_paint::brushes::LocalData::positions, blender::ed::sculpt_paint::StrokeCache::radius, Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::ed::sculpt_paint::scale_factors(), blender::ed::sculpt_paint::scale_translations(), blender::math::transform_points(), blender::ed::sculpt_paint::brushes::LocalData::translations, verts, and blender::ed::sculpt_paint::StrokeCache::view_normal_symm.

◆ calc_distances()

BLI_NOINLINE void blender::ed::sculpt_paint::brushes::calc_distances ( const Span< float3 > local_positions,
const MutableSpan< float > distances )
static

◆ calc_faces() [1/21]

void blender::ed::sculpt_paint::brushes::calc_faces ( const Depsgraph & depsgraph,
const Sculpt & sd,
const Brush & brush,
const float4x4 & mat,
const std::array< float4, 2 > & scrape_planes,
const float angle,
const float strength,
const Span< float3 > vert_normals,
const MeshAttributeData & attribute_data,
const bke::pbvh::MeshNode & node,
Object & object,
LocalData & tls,
const PositionDeformData & position_data )
static

Definition at line 360 of file multiplane_scrape.cc.

References angle(), blender::ed::sculpt_paint::apply_hardness_to_distances(), blender::ed::sculpt_paint::StrokeCache::automasking, BRUSH_FRONTFACE, SculptSession::cache, blender::ed::sculpt_paint::calc_brush_distances(), blender::ed::sculpt_paint::calc_brush_strength_factors(), calc_distances(), blender::ed::sculpt_paint::calc_front_face(), blender::ed::sculpt_paint::auto_mask::calc_vert_factors(), blender::ed::sculpt_paint::clip_and_lock_translations(), depsgraph, blender::ed::sculpt_paint::brushes::LocalData::distances, blender::ed::sculpt_paint::brushes::LocalData::factors, Brush::falloff_shape, blender::ed::sculpt_paint::filter_distances_with_radius(), filter_plane_side_factors(), blender::ed::sculpt_paint::filter_plane_trim_limit_factors(), blender::ed::sculpt_paint::filter_region_clip_factors(), Brush::flag, blender::ed::sculpt_paint::gather_data_mesh(), blender::ed::sculpt_paint::MeshAttributeData::hide_vert, blender::ed::sculpt_paint::brushes::LocalData::local_positions, blender::ed::sculpt_paint::MeshAttributeData::mask, blender::ed::sculpt_paint::brushes::LocalData::positions, blender::ed::sculpt_paint::StrokeCache::radius, Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::ed::sculpt_paint::scale_factors(), blender::ed::sculpt_paint::scale_translations(), blender::math::transform_points(), blender::ed::sculpt_paint::brushes::LocalData::translations, blender::bke::pbvh::MeshNode::verts(), verts, and blender::ed::sculpt_paint::StrokeCache::view_normal_symm.

◆ calc_grids() [1/23]

void blender::ed::sculpt_paint::brushes::calc_grids ( const Depsgraph & depsgraph,
const Sculpt & sd,
const Brush & brush,
const float4x4 & mat,
const std::array< float4, 2 > & scrape_planes,
const float angle,
const float strength,
const bke::pbvh::GridsNode & node,
Object & object,
LocalData & tls )
static

Definition at line 424 of file multiplane_scrape.cc.

References angle(), blender::ed::sculpt_paint::apply_hardness_to_distances(), blender::ed::sculpt_paint::apply_translations(), blender::ed::sculpt_paint::StrokeCache::automasking, BRUSH_FRONTFACE, SculptSession::cache, blender::ed::sculpt_paint::calc_brush_distances(), blender::ed::sculpt_paint::calc_brush_strength_factors(), calc_distances(), blender::ed::sculpt_paint::calc_front_face(), blender::ed::sculpt_paint::auto_mask::calc_grids_factors(), blender::ed::sculpt_paint::clip_and_lock_translations(), depsgraph, blender::ed::sculpt_paint::brushes::LocalData::distances, blender::ed::sculpt_paint::brushes::LocalData::factors, Brush::falloff_shape, blender::ed::sculpt_paint::filter_distances_with_radius(), filter_plane_side_factors(), blender::ed::sculpt_paint::filter_plane_trim_limit_factors(), blender::ed::sculpt_paint::filter_region_clip_factors(), Brush::flag, blender::ed::sculpt_paint::gather_grids_positions(), blender::bke::pbvh::GridsNode::grids(), blender::ed::sculpt_paint::brushes::LocalData::local_positions, blender::ed::sculpt_paint::brushes::LocalData::positions, blender::ed::sculpt_paint::StrokeCache::radius, Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::ed::sculpt_paint::scale_factors(), blender::ed::sculpt_paint::scale_translations(), blender::MutableSpan< T >::size(), SculptSession::subdiv_ccg, blender::math::transform_points(), blender::ed::sculpt_paint::brushes::LocalData::translations, and blender::ed::sculpt_paint::StrokeCache::view_normal_symm.

◆ calc_translations() [1/8]

BLI_NOINLINE void blender::ed::sculpt_paint::brushes::calc_translations ( const Span< float3 > positions,
const Span< float3 > local_positions,
const std::array< float4, 2 > & scrape_planes,
const MutableSpan< float3 > translations )
static

◆ clay_thumb_get_stabilized_pressure()

float blender::ed::sculpt_paint::brushes::clay_thumb_get_stabilized_pressure ( const StrokeCache & cache)

◆ do_blob_brush()

void blender::ed::sculpt_paint::brushes::do_blob_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & ob,
const IndexMask & node_mask )

Definition at line 273 of file crease.cc.

References depsgraph.

Referenced by blender::ed::sculpt_paint::do_brush_action().

◆ do_bmesh_topology_rake_brush()

◆ do_clay_brush()

◆ do_clay_strips_brush()

void blender::ed::sculpt_paint::brushes::do_clay_strips_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & ob,
const IndexMask & node_mask,
const float3 & plane_normal,
const float3 & plane_center )

◆ do_clay_thumb_brush()

void blender::ed::sculpt_paint::brushes::do_clay_thumb_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & ob,
const IndexMask & node_mask )

Definition at line 142 of file clay_thumb.cc.

References BKE_paint_brush_for_read(), blender::bke::pbvh::BMesh, BRUSH_ORIGINAL_NORMAL, blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, blender::ed::sculpt_paint::calc_area_normal(), blender::ed::sculpt_paint::calc_brush_plane(), blender::ed::sculpt_paint::StrokeCache::clay_thumb_brush, clay_thumb_get_stabilized_pressure(), blender::math::cross(), DEG2RADF, depsgraph, Brush::flag, blender::bke::pbvh::Tree::flush_bounds_to_parents(), blender::index_mask::IndexMask::foreach_index(), blender::math::from_scale(), blender::ed::sculpt_paint::StrokeCache::front_angle, blender::ed::sculpt_paint::StrokeCache::grab_delta_symm, SubdivCCG::grid_area, blender::bke::pbvh::Grids, i, blender::MatBase< float, 4, 4 >::identity(), blender::math::is_zero(), blender::threading::EnumerableThreadSpecific< T >::local(), blender::MatBase< T, NumCol, NumRow, Alignment >::location(), blender::ed::sculpt_paint::StrokeCache::location_symm, blender::bke::pbvh::Mesh, blender::bke::pbvh::Tree::nodes(), normalize_m4(), Sculpt::paint, blender::bke::object::pbvh_get(), plane_from_point_normal_v3(), SubdivCCG::positions, blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), blender::ed::sculpt_paint::StrokeCache::radius, rotate_v3_v3v3fl(), SCULPT_DISP_DIR_AREA, Brush::sculpt_plane, SCULPT_stroke_is_first_brush_step_of_symmetry_pass(), SCULPT_stroke_is_main_symmetry_pass(), blender::bke::pbvh::Tree::tag_positions_changed(), blender::bke::pbvh::Tree::type(), blender::bke::pbvh::update_node_bounds_bmesh(), blender::bke::pbvh::update_node_bounds_grids(), blender::bke::pbvh::update_node_bounds_mesh(), blender::bke::pbvh::vert_normals_eval(), blender::MatBase< T, NumCol, NumRow, Alignment >::x_axis(), blender::MatBase< T, NumCol, NumRow, Alignment >::y_axis(), and blender::MatBase< T, NumCol, NumRow, Alignment >::z_axis().

Referenced by blender::ed::sculpt_paint::do_brush_action().

◆ do_crease_brush()

void blender::ed::sculpt_paint::brushes::do_crease_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & ob,
const IndexMask & node_mask )

Definition at line 265 of file crease.cc.

References depsgraph.

Referenced by blender::ed::sculpt_paint::do_brush_action().

◆ do_displacement_eraser_brush()

◆ do_displacement_smear_brush()

◆ do_draw_brush()

void blender::ed::sculpt_paint::brushes::do_draw_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & object,
const IndexMask & node_mask )

◆ do_draw_face_sets_brush()

◆ do_draw_sharp_brush()

◆ do_draw_vector_displacement_brush()

◆ do_elastic_deform_brush()

void blender::ed::sculpt_paint::brushes::do_elastic_deform_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & object,
const IndexMask & node_mask )

◆ do_enhance_details_brush()

◆ do_grab_brush()

◆ do_gravity_brush()

void blender::ed::sculpt_paint::brushes::do_gravity_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & ob,
const IndexMask & node_mask )

◆ do_inflate_brush()

◆ do_layer_brush()

◆ do_mask_brush()

◆ do_multiplane_scrape_brush()

void blender::ed::sculpt_paint::brushes::do_multiplane_scrape_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & object,
const IndexMask & node_mask )

Definition at line 547 of file multiplane_scrape.cc.

References angle_v3v3(), BKE_paint_brush_for_read(), BLI_assert, blender::bke::pbvh::BMesh, BRUSH_MULTIPLANE_SCRAPE_DYNAMIC, BRUSH_ORIGINAL_NORMAL, blender::ed::sculpt_paint::brush_plane_offset_get(), blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, blender::ed::sculpt_paint::calc_area_normal(), blender::ed::sculpt_paint::calc_brush_plane(), blender::math::cross(), DEG2RADF, depsgraph, do_multiplane_scrape_brush(), blender::math::dot(), Brush::flag, Brush::flag2, float, blender::bke::pbvh::Tree::flush_bounds_to_parents(), blender::index_mask::IndexMask::foreach_index(), blender::ed::sculpt_paint::StrokeCache::grab_delta_symm, SubdivCCG::grid_area, blender::bke::pbvh::Grids, i, blender::MatBase< float, 4, 4 >::identity(), blender::math::interpolate(), blender::math::invert(), is_zero_v3(), blender::threading::EnumerableThreadSpecific< T >::local(), blender::MatBase< T, NumCol, NumRow, Alignment >::location(), blender::ed::sculpt_paint::StrokeCache::location_symm, blender::bke::pbvh::Mesh, blender::math::midpoint(), blender::ed::sculpt_paint::StrokeCache::mirror_symmetry_pass, mul_v3_mat3_m4v3(), blender::ed::sculpt_paint::StrokeCache::multiplane_scrape_angle, Brush::multiplane_scrape_angle, blender::bke::pbvh::Tree::nodes(), blender::math::normalize(), normalize_m4(), normalize_v3(), Sculpt::paint, blender::bke::object::pbvh_get(), plane_from_point_normal_v3(), SubdivCCG::positions, blender::ed::sculpt_paint::StrokeCache::pressure, blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), RAD2DEGF, blender::ed::sculpt_paint::StrokeCache::radial_symmetry_pass, blender::ed::sculpt_paint::StrokeCache::radius, rotate_v3_v3v3fl(), sample, sample_surface(), blender::ed::sculpt_paint::StrokeCache::scale, SCULPT_DISP_DIR_AREA, Brush::sculpt_plane, SCULPT_stroke_is_first_brush_step_of_symmetry_pass(), blender::ed::sculpt_paint::StrokeCache::stroke_local_mat, blender::bke::pbvh::Tree::tag_positions_changed(), blender::bke::pbvh::Tree::type(), blender::bke::pbvh::update_node_bounds_bmesh(), blender::bke::pbvh::update_node_bounds_grids(), blender::bke::pbvh::update_node_bounds_mesh(), blender::bke::pbvh::vert_normals_eval(), blender::MatBase< T, NumCol, NumRow, Alignment >::x_axis(), blender::MatBase< T, NumCol, NumRow, Alignment >::y_axis(), and blender::MatBase< T, NumCol, NumRow, Alignment >::z_axis().

Referenced by blender::ed::sculpt_paint::do_brush_action(), and do_multiplane_scrape_brush().

◆ do_nudge_brush()

void blender::ed::sculpt_paint::brushes::do_nudge_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & object,
const IndexMask & node_mask )

◆ do_pinch_brush()

void blender::ed::sculpt_paint::brushes::do_pinch_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & object,
const IndexMask & node_mask )

Definition at line 172 of file pinch.cc.

References BKE_paint_brush_for_read(), blender::bke::pbvh::BMesh, blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, blender::ed::sculpt_paint::calc_brush_plane(), blender::math::cross(), depsgraph, blender::bke::pbvh::Tree::flush_bounds_to_parents(), blender::index_mask::IndexMask::foreach_index(), blender::ed::sculpt_paint::StrokeCache::grab_delta_symm, SubdivCCG::grid_area, blender::bke::pbvh::Grids, i, blender::MatBase< float, 4, 4 >::identity(), blender::math::is_zero(), blender::threading::EnumerableThreadSpecific< T >::local(), blender::MatBase< T, NumCol, NumRow, Alignment >::location(), blender::ed::sculpt_paint::StrokeCache::location_symm, blender::bke::pbvh::Mesh, blender::bke::pbvh::Tree::nodes(), blender::math::normalize(), normalize_m4(), Sculpt::paint, blender::bke::object::pbvh_get(), SubdivCCG::positions, blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), SCULPT_stroke_is_first_brush_step_of_symmetry_pass(), blender::bke::pbvh::Tree::tag_positions_changed(), blender::bke::pbvh::Tree::type(), blender::bke::pbvh::update_node_bounds_bmesh(), blender::bke::pbvh::update_node_bounds_grids(), blender::bke::pbvh::update_node_bounds_mesh(), blender::bke::pbvh::vert_normals_eval(), blender::MatBase< T, NumCol, NumRow, Alignment >::x_axis(), blender::MatBase< T, NumCol, NumRow, Alignment >::y_axis(), and blender::MatBase< T, NumCol, NumRow, Alignment >::z_axis().

Referenced by blender::ed::sculpt_paint::do_brush_action().

◆ do_plane_brush()

void blender::ed::sculpt_paint::brushes::do_plane_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & object,
const IndexMask & node_mask,
const float3 & plane_normal,
const float3 & plane_center )

Definition at line 361 of file plane.cc.

References BKE_paint_brush_for_read(), blender::bke::pbvh::BMesh, BRUSH_PLANE_INVERT_DISPLACEMENT, blender::ed::sculpt_paint::brush_plane_offset_get(), BRUSH_PLANE_SWAP_HEIGHT_AND_DEPTH, blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, blender::math::cross(), depsgraph, blender::bke::pbvh::Tree::flush_bounds_to_parents(), blender::index_mask::IndexMask::foreach_index(), blender::math::from_scale(), blender::ed::sculpt_paint::StrokeCache::grab_delta_symm, SubdivCCG::grid_area, blender::bke::pbvh::Grids, i, blender::MatBase< float, 4, 4 >::identity(), blender::ed::sculpt_paint::StrokeCache::initial_direction_flipped, blender::math::invert(), blender::math::is_zero(), blender::threading::EnumerableThreadSpecific< T >::local(), blender::MatBase< T, NumCol, NumRow, Alignment >::location(), blender::bke::pbvh::Mesh, blender::bke::pbvh::Tree::nodes(), blender::math::normalize(), Sculpt::paint, blender::bke::object::pbvh_get(), Brush::plane_depth, Brush::plane_height, Brush::plane_inversion_mode, SubdivCCG::positions, blender::ed::sculpt_paint::StrokeCache::radius, blender::ed::sculpt_paint::StrokeCache::scale, blender::bke::pbvh::Tree::tag_positions_changed(), blender::ed::sculpt_paint::tilt_apply_to_normal(), Brush::tilt_strength_factor, blender::bke::pbvh::Tree::type(), blender::bke::pbvh::update_node_bounds_bmesh(), blender::bke::pbvh::update_node_bounds_grids(), blender::bke::pbvh::update_node_bounds_mesh(), blender::bke::pbvh::vert_normals_eval(), blender::MatBase< T, NumCol, NumRow, Alignment >::x_axis(), blender::MatBase< T, NumCol, NumRow, Alignment >::y_axis(), and blender::MatBase< T, NumCol, NumRow, Alignment >::z_axis().

Referenced by blender::ed::sculpt_paint::do_brush_action().

◆ do_relax_face_sets_brush()

◆ do_rotate_brush()

◆ do_smooth_brush()

◆ do_smooth_mask_brush()

◆ do_snake_hook_brush()

◆ do_surface_smooth_brush()

◆ do_thumb_brush()

◆ do_topology_relax_brush()

◆ do_topology_slide_brush()

◆ filter_plane_side_factors()

BLI_NOINLINE void blender::ed::sculpt_paint::brushes::filter_plane_side_factors ( const Span< float3 > positions,
const Span< float3 > local_positions,
const std::array< float4, 2 > & scrape_planes,
const MutableSpan< float > factors )
static

◆ join_samples()

◆ multiplane_scrape_preview_draw()

◆ offset_positions() [1/2]

◆ offset_positions() [2/2]

◆ sample_node_surface_bmesh()

void blender::ed::sculpt_paint::brushes::sample_node_surface_bmesh ( const Depsgraph & depsgraph,
const Object & object,
const Brush & brush,
const float4x4 & mat,
const bke::pbvh::BMeshNode & node,
ScrapeSampleData & sample,
LocalData & tls )
static

◆ sample_node_surface_grids()

void blender::ed::sculpt_paint::brushes::sample_node_surface_grids ( const Depsgraph & depsgraph,
const Object & object,
const Brush & brush,
const float4x4 & mat,
const bke::pbvh::GridsNode & node,
ScrapeSampleData & sample,
LocalData & tls )
static

◆ sample_node_surface_mesh()

void blender::ed::sculpt_paint::brushes::sample_node_surface_mesh ( const Depsgraph & depsgraph,
const Object & object,
const Brush & brush,
const float4x4 & mat,
const Span< float3 > vert_positions,
const Span< float3 > vert_normals,
const MeshAttributeData & attribute_data,
const bke::pbvh::MeshNode & node,
ScrapeSampleData & sample,
LocalData & tls )
static

◆ sample_surface()

std::optional< ScrapeSampleData > blender::ed::sculpt_paint::brushes::sample_surface ( const Depsgraph & depsgraph,
const Object & object,
const Brush & brush,
const float4x4 & mat,
const IndexMask & node_mask )
static

Samples and partitions the underlying mesh data to aggregate position and normal data based on positive and negative brush local x-axis positions.

Returns
an empty optional to indicate that no samples were taken.

Definition at line 284 of file multiplane_scrape.cc.

References depsgraph, blender::bke::pbvh::Grids, blender::index_mask::IndexMask::index_range(), join_samples(), blender::bke::pbvh::Mesh, blender::bke::pbvh::Tree::nodes(), blender::threading::parallel_reduce(), blender::bke::object::pbvh_get(), result, sample, blender::bke::pbvh::Tree::type(), blender::bke::pbvh::vert_normals_eval(), and blender::bke::pbvh::vert_positions_eval().

Referenced by do_multiplane_scrape_brush().