Blender V4.3
blender::ed::sculpt_paint Namespace Reference

Namespaces

namespace  auto_mask
 
namespace  bmesh_topology_rake_cc
 
namespace  boundary
 
namespace  canvas
 
namespace  clay_cc
 
namespace  clay_strips_cc
 
namespace  clay_thumb_cc
 
namespace  cloth
 
namespace  color
 
namespace  crease_cc
 
namespace  draw_cc
 
namespace  draw_face_sets_cc
 
namespace  draw_sharp_cc
 
namespace  draw_vector_displacement_cc
 
namespace  dyntopo
 
namespace  elastic_deform_cc
 
namespace  enhance_details_cc
 
namespace  expand
 
namespace  face_set
 
namespace  filter
 
namespace  flatten_cc
 
namespace  flood_fill
 
namespace  geodesic
 
namespace  gesture
 
namespace  grab_cc
 
namespace  greasepencil
 
namespace  hide
 
namespace  image
 
namespace  inflate_cc
 
namespace  islands
 
namespace  layer_cc
 
namespace  mask
 
namespace  mask_cc
 
namespace  min_distance_edit
 
namespace  multires_displacement_eraser_cc
 
namespace  multires_displacement_smear_cc
 
namespace  paint
 
namespace  pinch_cc
 
namespace  pose
 
namespace  project
 
namespace  relax_cc
 
namespace  rotate_cc
 
namespace  select_grow
 
namespace  select_random
 
namespace  smooth
 
namespace  smooth_cc
 
namespace  smooth_mask_cc
 
namespace  snake_hook_cc
 
namespace  surface_smooth_cc
 
namespace  thumb_cc
 
namespace  topology_slide_cc
 
namespace  trim
 
namespace  undo
 
namespace  vwpaint
 

Classes

class  AddOperation
 
struct  AddOperationExecutor
 
struct  AreaNormalCenterData
 
struct  AveragePositionAccumulation
 
struct  BMeshLocalData
 
struct  BrushPositionCandidate
 
class  CombOperation
 
struct  CombOperationExecutor
 
struct  CurvesBrush3D
 
struct  CurvesConstraintSolver
 
class  CurvesEffect
 
class  CurvesEffectOperation
 
struct  CurvesEffectOperationExecutor
 
class  CurvesSculptCommonContext
 
class  CurvesSculptStrokeOperation
 
class  DeleteOperation
 
struct  DeleteOperationExecutor
 
class  DensityAddOperation
 
struct  DensityAddOperationExecutor
 
class  DensitySubtractOperation
 
struct  DensitySubtractOperationExecutor
 
class  ExtrapolateCurvesEffect
 
struct  FillToolTargetInfo
 
struct  GreasePencilFillOpData
 
class  GreasePencilStrokeOperation
 
struct  GridLocalData
 
struct  InputSample
 
struct  LoadTexData
 
struct  LocalData
 
struct  MeshAttributeData
 
struct  MeshLocalData
 
struct  MoveAndResampleBuffers
 
struct  NearestVertData
 
struct  OrigPositionData
 
struct  PaintCursorContext
 
class  PaintModeData
 
struct  PaintSample
 
struct  PaintStroke
 
class  PinchOperation
 
struct  PinchOperationExecutor
 
class  PositionDeformData
 
class  PuffOperation
 
struct  PuffOperationExecutor
 
struct  SampleLocalData
 
class  ScaleCurvesEffect
 
struct  ScrapeSampleData
 
struct  SculptCurvesBrushStrokeData
 
struct  SculptProjectVector
 
class  SelectionPaintOperation
 
struct  SelectionPaintOperationExecutor
 
class  ShrinkCurvesEffect
 
struct  SlideCurveInfo
 
struct  SlideInfo
 
class  SlideOperation
 
struct  SlideOperationExecutor
 
class  SmoothOperation
 
struct  SmoothOperationExecutor
 
class  SnakeHookOperation
 
struct  SnakeHookOperatorExecutor
 
struct  StrokeCache
 
struct  StrokeExtension
 
struct  TransformLocalData
 

Typedefs

using IndexedFilterFn
 
using GenericFilterFn = FunctionRef<void(Span<float3>, const float4 &, MutableSpan<float>)>
 
using DeltaProjectionFunc
 
using StrokeGetLocation
 
using StrokeTestStart = bool (*)(bContext *C, wmOperator *op, const float mouse[2])
 
using StrokeUpdateStep
 
using StrokeRedraw = void (*)(const bContext *C, PaintStroke *stroke, bool final)
 
using StrokeDone = void (*)(const bContext *C, PaintStroke *stroke)
 
using BrushActionFunc
 

Enumerations

enum  PaintCursorDrawingType { PAINT_CURSOR_CURVE , PAINT_CURSOR_2D , PAINT_CURSOR_3D }
 
enum class  UpdateType {
  Position , Mask , Visibility , Color ,
  Image , FaceSet
}
 
enum class  TransformDisplacementMode { Original = 0 , Incremental = 1 }
 
enum class  PivotPositionMode {
  Origin = 0 , Unmasked = 1 , MaskBorder = 2 , ActiveVert = 3 ,
  CursorSurface = 4
}
 

Functions

bool report_if_shape_key_is_locked (const Object &ob, ReportList *reports)
 
void operatortypes_sculpt ()
 
void keymap_sculpt (wmKeyConfig *keyconf)
 
void update_modal_transform (bContext *C, Object &ob)
 
void init_transform (bContext *C, Object &ob, const float mval_fl[2], const char *undo_name)
 
void end_transform (bContext *C, Object &ob)
 
bool object_active_color_fill (Object &ob, const float fill_color[4], bool only_selected)
 
static int brush_asset_activate_exec (bContext *C, wmOperator *op)
 
void BRUSH_OT_asset_activate (wmOperatorType *ot)
 
static std::optional< AssetLibraryReferencelibrary_to_library_ref (const asset_system::AssetLibrary &library)
 
static AssetLibraryReference user_library_to_library_ref (const bUserAssetLibrary &user_library)
 
static const bUserAssetLibrarylibrary_ref_to_user_library (const AssetLibraryReference &library_ref)
 
static void refresh_asset_library (const bContext *C, const AssetLibraryReference &library_ref)
 
static void refresh_asset_library (const bContext *C, const bUserAssetLibrary &user_library)
 
static bool brush_asset_save_as_poll (bContext *C)
 
static const bUserAssetLibraryget_asset_library_from_prop (PointerRNA &ptr)
 
static asset_system::AssetCatalogasset_library_ensure_catalog (asset_system::AssetLibrary &library, const asset_system::AssetCatalogPath &path)
 
static asset_system::AssetCatalogasset_library_ensure_catalogs_in_path (asset_system::AssetLibrary &library, const asset_system::AssetCatalogPath &path)
 
static void show_catalog_in_asset_shelf (const bContext &C, const StringRefNull catalog_path)
 
static int brush_asset_save_as_exec (bContext *C, wmOperator *op)
 
static bool library_is_editable (const AssetLibraryReference &library)
 
static int brush_asset_save_as_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
static const EnumPropertyItemrna_asset_library_reference_itemf (bContext *, PointerRNA *, PropertyRNA *, bool *r_free)
 
static void visit_library_catalogs_catalog_for_search (const Main &bmain, const bUserAssetLibrary &user_library, const StringRef edit_text, const FunctionRef< void(StringPropertySearchVisitParams)> visit_fn)
 
static void visit_library_prop_catalogs_catalog_for_search_fn (const bContext *C, PointerRNA *ptr, PropertyRNA *, const char *edit_text, FunctionRef< void(StringPropertySearchVisitParams)> visit_fn)
 
void BRUSH_OT_asset_save_as (wmOperatorType *ot)
 
static int brush_asset_edit_metadata_exec (bContext *C, wmOperator *op)
 
static int brush_asset_edit_metadata_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
static void visit_active_library_catalogs_catalog_for_search_fn (const bContext *C, PointerRNA *, PropertyRNA *, const char *edit_text, FunctionRef< void(StringPropertySearchVisitParams)> visit_fn)
 
static bool brush_asset_edit_metadata_poll (bContext *C)
 
void BRUSH_OT_asset_edit_metadata (wmOperatorType *ot)
 
static int brush_asset_load_preview_exec (bContext *C, wmOperator *op)
 
static int brush_asset_load_preview_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void BRUSH_OT_asset_load_preview (wmOperatorType *ot)
 
static bool brush_asset_delete_poll (bContext *C)
 
static int brush_asset_delete_exec (bContext *C, wmOperator *op)
 
static int brush_asset_delete_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
void BRUSH_OT_asset_delete (wmOperatorType *ot)
 
static bool brush_asset_save_poll (bContext *C)
 
static int brush_asset_save_exec (bContext *C, wmOperator *op)
 
void BRUSH_OT_asset_save (wmOperatorType *ot)
 
static bool brush_asset_revert_poll (bContext *C)
 
static int brush_asset_revert_exec (bContext *C, wmOperator *op)
 
void BRUSH_OT_asset_revert (wmOperatorType *ot)
 
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)
 
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)
 
void do_clay_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
static BLI_NOINLINE void apply_z_axis_falloff (const Span< float3 > vert_positions, const Span< int > verts, const float4x4 &mat, const MutableSpan< float > factors)
 
static BLI_NOINLINE void apply_z_axis_falloff (const Span< float3 > positions, const float4x4 &mat, const MutableSpan< float > factors)
 
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4x4 &mat, const float4 &plane, const float strength, const bool flip, 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 float4 &plane, const float strength, const bool flip, 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 float4 &plane, const float strength, const bool flip, bke::pbvh::BMeshNode &node, LocalData &tls)
 
void do_clay_strips_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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)
 
void do_clay_thumb_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
float clay_thumb_get_stabilized_pressure (const StrokeCache &cache)
 
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 Scene &scene, const Sculpt &sd, const bool invert_strength, Object &object, const IndexMask &node_mask)
 
void do_crease_brush (const Depsgraph &depsgraph, const Scene &scene, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
void do_blob_brush (const Depsgraph &depsgraph, const Scene &scene, const Sculpt &sd, 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)
 
void do_draw_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_gravity_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, 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)
 
void do_draw_face_sets_brush (const Depsgraph &depsgraph, const Sculpt &sd, 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 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)
 
void do_draw_sharp_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, 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 Span< float > factors, const MutableSpan< float4 > r_colors)
 
static void calc_brush_texture_colors (SculptSession &ss, const Brush &brush, const Span< float3 > positions, const Span< float > factors, const MutableSpan< float4 > 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)
 
void do_draw_vector_displacement_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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)
 
void do_elastic_deform_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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)
 
void calc_smooth_translations (const Depsgraph &depsgraph, const Object &object, const IndexMask &node_mask, const MutableSpan< float3 > translations)
 
void do_enhance_details_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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)
 
void do_grab_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
void geometry_preview_lines_update (Depsgraph &depsgraph, Object &object, SculptSession &ss, float radius)
 
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)
 
void do_inflate_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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, 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)
 
void do_layer_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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)
 
void do_mask_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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 ScrapeSampleData sample_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)
 
void do_multiplane_scrape_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
void multiplane_scrape_preview_draw (const uint gpuattr, const Brush &brush, const SculptSession &ss, const float outline_col[3], const float outline_alpha)
 
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)
 
void do_displacement_eraser_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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)
 
void do_displacement_smear_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
 
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)
 
void do_pinch_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
static void calc_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const float4 &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, const IndexedFilterFn filter)
 
static void calc_grids (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float4 &plane, const float strength, bke::pbvh::GridsNode &node, LocalData &tls, const GenericFilterFn filter)
 
static void calc_bmesh (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const Brush &brush, const float4 &plane, const float strength, bke::pbvh::BMeshNode &node, LocalData &tls, const GenericFilterFn filter)
 
static void do_plane_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, const float direction, const IndexedFilterFn indexed_filter, const GenericFilterFn generic_filter)
 
void do_flatten_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
void do_fill_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
void do_scrape_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_topology_relax_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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)
 
void do_rotate_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
static Vector< floatiteration_strengths (const float strength)
 
static BLI_NOINLINE void apply_positions_faces (const Depsgraph &depsgraph, const Sculpt &sd, const Brush &brush, const MeshAttributeData &attribute_data, const Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, const float strength, Object &object, LocalData &tls, 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)
 
void do_smooth_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, const float brush_strength)
 
static Vector< floatiteration_strengths (const float strength)
 
static void calc_smooth_masks_faces (const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > vert_to_face_map, const Span< bool > hide_poly, const Span< int > verts, const Span< float > masks, LocalData &tls, const MutableSpan< float > new_masks)
 
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)
 
void do_smooth_mask_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask, float brush_strength)
 
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)
 
void do_snake_hook_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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)
 
void do_surface_smooth_brush (const Depsgraph &depsgraph, const Sculpt &sd, 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 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)
 
void do_thumb_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
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 Span< Vector< 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)
 
void do_topology_slide_brush (const Depsgraph &depsgraph, const Sculpt &sd, Object &object, const IndexMask &node_mask)
 
std::unique_ptr< CurvesSculptStrokeOperationnew_add_operation ()
 
static std::optional< float3find_curves_brush_position (const CurvesGeometry &curves, const float3 &ray_start_cu, const float3 &ray_end_cu, const float brush_radius_re, const ARegion &region, const RegionView3D &rv3d, const Object &object, const Span< float3 > positions)
 
std::optional< CurvesBrush3Dsample_curves_3d_brush (const Depsgraph &depsgraph, const ARegion &region, const View3D &v3d, const RegionView3D &rv3d, const Object &curves_object, const float2 &brush_pos_re, const float brush_radius_re)
 
std::optional< CurvesBrush3Dsample_curves_surface_3d_brush (const Depsgraph &depsgraph, const ARegion &region, const View3D &v3d, const CurvesSurfaceTransforms &transforms, const BVHTreeFromMesh &surface_bvh, const float2 &brush_pos_re, const float brush_radius_re)
 
Vector< float4x4get_symmetry_brush_transforms (const eCurvesSymmetryType symmetry)
 
float transform_brush_radius (const float4x4 &transform, const float3 &brush_position, const float old_radius)
 
void move_last_point_and_resample (MoveAndResampleBuffers &buffer, MutableSpan< float3 > positions, const float3 &new_last_position)
 
void report_empty_original_surface (ReportList *reports)
 
void report_empty_evaluated_surface (ReportList *reports)
 
void report_missing_surface (ReportList *reports)
 
void report_missing_uv_map_on_original_surface (ReportList *reports)
 
void report_missing_uv_map_on_evaluated_surface (ReportList *reports)
 
void report_invalid_uv_map (ReportList *reports)
 
std::unique_ptr< CurvesSculptStrokeOperationnew_comb_operation ()
 
std::unique_ptr< CurvesSculptStrokeOperationnew_delete_operation ()
 
static bool use_add_density_mode (const BrushStrokeMode brush_mode, const bContext &C, const StrokeExtension &stroke_start)
 
std::unique_ptr< CurvesSculptStrokeOperationnew_density_operation (const BrushStrokeMode brush_mode, const bContext &C, const StrokeExtension &stroke_start)
 
std::unique_ptr< CurvesSculptStrokeOperationnew_grow_shrink_operation (const BrushStrokeMode brush_mode, const bContext &C)
 
std::unique_ptr< CurvesSculptStrokeOperationnew_snake_hook_operation ()
 
std::unique_ptr< CurvesSculptStrokeOperationnew_selection_paint_operation (const BrushStrokeMode brush_mode, const bContext &C)
 
std::unique_ptr< CurvesSculptStrokeOperationnew_pinch_operation (const BrushStrokeMode brush_mode, const bContext &C)
 
std::unique_ptr< CurvesSculptStrokeOperationnew_smooth_operation ()
 
std::unique_ptr< CurvesSculptStrokeOperationnew_puff_operation ()
 
std::unique_ptr< CurvesSculptStrokeOperationnew_slide_operation ()
 
bke::SpanAttributeWriter< floatfloat_selection_ensure (Curves &curves_id)
 
static void SCULPT_CURVES_OT_select_random (wmOperatorType *ot)
 
static void SCULPT_CURVES_OT_select_grow (wmOperatorType *ot)
 
static void SCULPT_CURVES_OT_min_distance_edit (wmOperatorType *ot)
 
void scale_translations (MutableSpan< float3 > translations, Span< float > factors)
 
void scale_translations (MutableSpan< float3 > translations, float factor)
 
void scale_factors (MutableSpan< float > factors, float strength)
 
void scale_factors (MutableSpan< float > factors, Span< float > strengths)
 
void translations_from_offset_and_factors (const float3 &offset, Span< float > factors, MutableSpan< float3 > r_translations)
 
void translations_from_new_positions (Span< float3 > new_positions, Span< int > verts, Span< float3 > old_positions, MutableSpan< float3 > translations)
 
void translations_from_new_positions (Span< float3 > new_positions, Span< float3 > old_positions, MutableSpan< float3 > translations)
 
void transform_positions (Span< float3 > src, const float4x4 &transform, MutableSpan< float3 > dst)
 
void transform_positions (const float4x4 &transform, MutableSpan< float3 > positions)
 
template<typename T >
void gather_data_mesh (Span< T > src, Span< int > indices, MutableSpan< T > dst)
 
template<typename T >
MutableSpan< Tgather_data_mesh (const Span< T > src, const Span< int > indices, Vector< T > &dst)
 
template<typename T >
void gather_data_grids (const SubdivCCG &subdiv_ccg, Span< T > src, Span< int > grids, MutableSpan< T > node_data)
 
template<typename T >
MutableSpan< Tgather_data_grids (const SubdivCCG &subdiv_ccg, const Span< T > src, const Span< int > grids, Vector< T > &dst)
 
template<typename T >
void gather_data_bmesh (Span< T > src, const Set< BMVert *, 0 > &verts, MutableSpan< T > node_data)
 
template<typename T >
MutableSpan< Tgather_data_bmesh (const Span< T > src, const Set< BMVert *, 0 > &verts, Vector< T > &dst)
 
template<typename T >
void scatter_data_mesh (Span< T > src, Span< int > indices, MutableSpan< T > dst)
 
template<typename T >
void scatter_data_grids (const SubdivCCG &subdiv_ccg, Span< T > node_data, Span< int > grids, MutableSpan< T > dst)
 
template<typename T >
void scatter_data_bmesh (Span< T > node_data, const Set< BMVert *, 0 > &verts, MutableSpan< T > dst)
 
MutableSpan< float3gather_grids_positions (const SubdivCCG &subdiv_ccg, const Span< int > grids, Vector< float3 > &positions)
 
void gather_bmesh_positions (const Set< BMVert *, 0 > &verts, MutableSpan< float3 > positions)
 
MutableSpan< float3gather_bmesh_positions (const Set< BMVert *, 0 > &verts, Vector< float3 > &positions)
 
void gather_grids_normals (const SubdivCCG &subdiv_ccg, Span< int > grids, MutableSpan< float3 > normals)
 
void gather_bmesh_normals (const Set< BMVert *, 0 > &verts, MutableSpan< float3 > normals)
 
void calc_factors_common_mesh (const Depsgraph &depsgraph, const Brush &brush, const Object &object, const MeshAttributeData &attribute_data, Span< float3 > positions, Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, Vector< float > &r_factors, Vector< float > &r_distances)
 
void calc_factors_common_mesh_indexed (const Depsgraph &depsgraph, const Brush &brush, const Object &object, const MeshAttributeData &attribute_data, Span< float3 > vert_positions, Span< float3 > vert_normals, const bke::pbvh::MeshNode &node, Vector< float > &r_factors, Vector< float > &r_distances)
 
void calc_factors_common_grids (const Depsgraph &depsgraph, const Brush &brush, const Object &object, Span< float3 > positions, const bke::pbvh::GridsNode &node, Vector< float > &r_factors, Vector< float > &r_distances)
 
void calc_factors_common_bmesh (const Depsgraph &depsgraph, const Brush &brush, const Object &object, Span< float3 > positions, bke::pbvh::BMeshNode &node, Vector< float > &r_factors, Vector< float > &r_distances)
 
void calc_factors_common_from_orig_data_mesh (const Depsgraph &depsgraph, const Brush &brush, const Object &object, const MeshAttributeData &attribute_data, Span< float3 > positions, Span< float3 > normals, const bke::pbvh::MeshNode &node, Vector< float > &r_factors, Vector< float > &r_distances)
 
void calc_factors_common_from_orig_data_grids (const Depsgraph &depsgraph, const Brush &brush, const Object &object, Span< float3 > positions, Span< float3 > normals, const bke::pbvh::GridsNode &node, Vector< float > &r_factors, Vector< float > &r_distances)
 
void calc_factors_common_from_orig_data_bmesh (const Depsgraph &depsgraph, const Brush &brush, const Object &object, Span< float3 > positions, Span< float3 > normals, bke::pbvh::BMeshNode &node, Vector< float > &r_factors, Vector< float > &r_distances)
 
void fill_factor_from_hide (Span< bool > hide_vert, Span< int > verts, MutableSpan< float > r_factors)
 
void fill_factor_from_hide (const SubdivCCG &subdiv_ccg, Span< int > grids, MutableSpan< float > r_factors)
 
void fill_factor_from_hide (const Set< BMVert *, 0 > &verts, MutableSpan< float > r_factors)
 
void fill_factor_from_hide_and_mask (Span< bool > hide_vert, Span< float > mask, Span< int > verts, MutableSpan< float > r_factors)
 
void fill_factor_from_hide_and_mask (const SubdivCCG &subdiv_ccg, Span< int > grids, MutableSpan< float > r_factors)
 
void fill_factor_from_hide_and_mask (const BMesh &bm, const Set< BMVert *, 0 > &verts, MutableSpan< float > r_factors)
 
void calc_front_face (const float3 &view_normal, Span< float3 > normals, MutableSpan< float > factors)
 
void calc_front_face (const float3 &view_normal, Span< float3 > vert_normals, Span< int > vert_indices, MutableSpan< float > factors)
 
void calc_front_face (const float3 &view_normal, const SubdivCCG &subdiv_ccg, Span< int > grids, MutableSpan< float > factors)
 
void calc_front_face (const float3 &view_normal, const Set< BMVert *, 0 > &verts, MutableSpan< float > factors)
 
void calc_front_face (const float3 &view_normal, const Set< BMFace *, 0 > &faces, MutableSpan< float > factors)
 
void filter_region_clip_factors (const SculptSession &ss, Span< float3 > vert_positions, Span< int > verts, MutableSpan< float > factors)
 
void filter_region_clip_factors (const SculptSession &ss, Span< float3 > positions, MutableSpan< float > factors)
 
void calc_brush_distances (const SculptSession &ss, Span< float3 > vert_positions, Span< int > vert_indices, eBrushFalloffShape falloff_shape, MutableSpan< float > r_distances)
 
void calc_brush_distances (const SculptSession &ss, Span< float3 > positions, eBrushFalloffShape falloff_shape, MutableSpan< float > r_distances)
 
void calc_brush_distances_squared (const SculptSession &ss, Span< float3 > vert_positions, Span< int > vert_indices, eBrushFalloffShape falloff_shape, MutableSpan< float > r_distances)
 
void calc_brush_distances_squared (const SculptSession &ss, Span< float3 > positions, eBrushFalloffShape falloff_shape, MutableSpan< float > r_distances)
 
void filter_distances_with_radius (float radius, Span< float > distances, MutableSpan< float > factors)
 
void calc_brush_cube_distances (const Brush &brush, const float4x4 &mat, Span< float3 > positions, Span< int > verts, MutableSpan< float > r_distances, MutableSpan< float > factors)
 
void calc_brush_cube_distances (const Brush &brush, const float4x4 &mat, Span< float3 > positions, MutableSpan< float > r_distances, MutableSpan< float > factors)
 
void apply_hardness_to_distances (float radius, float hardness, MutableSpan< float > distances)
 
void apply_hardness_to_distances (const StrokeCache &cache, const MutableSpan< float > distances)
 
void calc_brush_strength_factors (const StrokeCache &cache, const Brush &brush, Span< float > distances, MutableSpan< float > factors)
 
void calc_brush_texture_factors (const SculptSession &ss, const Brush &brush, Span< float3 > vert_positions, Span< int > vert_indices, MutableSpan< float > factors)
 
void calc_brush_texture_factors (const SculptSession &ss, const Brush &brush, Span< float3 > positions, MutableSpan< float > factors)
 
void apply_translations (Span< float3 > translations, Span< int > verts, MutableSpan< float3 > positions)
 
void apply_translations (Span< float3 > translations, Span< int > grids, SubdivCCG &subdiv_ccg)
 
void apply_translations (Span< float3 > translations, const Set< BMVert *, 0 > &verts)
 
void project_translations (MutableSpan< float3 > translations, const float3 &plane)
 
void reset_translations_to_original (MutableSpan< float3 > translations, Span< float3 > positions, Span< float3 > orig_positions)
 
void apply_crazyspace_to_translations (Span< float3x3 > deform_imats, Span< int > verts, MutableSpan< float3 > translations)
 
void clip_and_lock_translations (const Sculpt &sd, const SculptSession &ss, Span< float3 > positions, Span< int > verts, MutableSpan< float3 > translations)
 
void clip_and_lock_translations (const Sculpt &sd, const SculptSession &ss, Span< float3 > positions, MutableSpan< float3 > translations)
 
void update_shape_keys (Object &object, const Mesh &mesh, const KeyBlock &active_key, Span< int > verts, Span< float3 > translations, Span< float3 > positions_orig)
 
OffsetIndices< intcreate_node_vert_offsets (const Span< bke::pbvh::MeshNode > nodes, const IndexMask &nodes_mask, Array< int > &node_data)
 
OffsetIndices< intcreate_node_vert_offsets (const CCGKey &key, const Span< bke::pbvh::GridsNode > nodes, const IndexMask &nodes_mask, Array< int > &node_data)
 
OffsetIndices< intcreate_node_vert_offsets_bmesh (const Span< bke::pbvh::BMeshNode > nodes, const IndexMask &nodes_mask, Array< int > &node_data)
 
void calc_vert_neighbors (OffsetIndices< int > faces, Span< int > corner_verts, GroupedSpan< int > vert_to_face, Span< bool > hide_poly, Span< int > verts, MutableSpan< Vector< int > > result)
 
void calc_vert_neighbors (const SubdivCCG &subdiv_ccg, Span< int > grids, MutableSpan< Vector< SubdivCCGCoord > > result)
 
void calc_vert_neighbors (Set< BMVert *, 0 > verts, MutableSpan< Vector< BMVert * > > result)
 
void calc_vert_neighbors_interior (OffsetIndices< int > faces, Span< int > corner_verts, GroupedSpan< int > vert_to_face, BitSpan boundary_verts, Span< bool > hide_poly, Span< int > verts, MutableSpan< Vector< int > > result)
 
void calc_vert_neighbors_interior (OffsetIndices< int > faces, Span< int > corner_verts, BitSpan boundary_verts, const SubdivCCG &subdiv_ccg, Span< int > grids, MutableSpan< Vector< SubdivCCGCoord > > result)
 
void calc_vert_neighbors_interior (const Set< BMVert *, 0 > &verts, MutableSpan< Vector< BMVert * > > result)
 
void calc_translations_to_plane (Span< float3 > vert_positions, Span< int > verts, const float4 &plane, MutableSpan< float3 > translations)
 
void calc_translations_to_plane (Span< float3 > positions, const float4 &plane, MutableSpan< float3 > translations)
 
void filter_verts_outside_symmetry_area (Span< float3 > positions, const float3 &pivot, ePaintSymmetryFlags symm, MutableSpan< float > factors)
 
void filter_plane_trim_limit_factors (const Brush &brush, const StrokeCache &cache, Span< float3 > translations, MutableSpan< float > factors)
 
void filter_below_plane_factors (Span< float3 > vert_positions, Span< int > verts, const float4 &plane, MutableSpan< float > factors)
 
void filter_below_plane_factors (Span< float3 > positions, const float4 &plane, MutableSpan< float > factors)
 
void filter_above_plane_factors (Span< float3 > vert_positions, Span< int > verts, const float4 &plane, MutableSpan< float > factors)
 
void filter_above_plane_factors (Span< float3 > positions, const float4 &plane, MutableSpan< float > factors)
 
static int same_tex_snap (TexSnapshot *snap, MTex *mtex, ViewContext *vc, bool col, float zoom)
 
static void make_tex_snap (TexSnapshot *snap, ViewContext *vc, float zoom)
 
static void load_tex_task_cb_ex (void *__restrict userdata, const int j, const TaskParallelTLS *__restrict tls)
 
static int load_tex (Brush *br, ViewContext *vc, float zoom, bool col, bool primary)
 
static void load_tex_cursor_task_cb (void *__restrict userdata, const int j, const TaskParallelTLS *__restrict)
 
static int load_tex_cursor (Brush *br, ViewContext *vc, float zoom)
 
static int project_brush_radius (ViewContext *vc, float radius, const float location[3])
 
static bool paint_draw_tex_overlay (UnifiedPaintSettings *ups, Brush *brush, ViewContext *vc, int x, int y, float zoom, const PaintMode mode, bool col, bool primary)
 
static bool paint_draw_cursor_overlay (UnifiedPaintSettings *ups, Brush *brush, ViewContext *vc, int x, int y, float zoom)
 
static bool paint_draw_alpha_overlay (UnifiedPaintSettings *ups, Brush *brush, ViewContext *vc, int x, int y, float zoom, PaintMode mode)
 
BLI_INLINE void draw_tri_point (uint pos, const float sel_col[4], const float pivot_col[4], float *co, float width, bool selected)
 
BLI_INLINE void draw_rect_point (uint pos, const float sel_col[4], const float handle_col[4], const float *co, float width, bool selected)
 
BLI_INLINE void draw_bezier_handle_lines (uint pos, const float sel_col[4], BezTriple *bez)
 
static void paint_draw_curve_cursor (Brush *brush, ViewContext *vc)
 
static void paint_cursor_update_unprojected_radius (UnifiedPaintSettings &ups, Brush &brush, ViewContext &vc, const float location[3])
 
static void cursor_draw_point_screen_space (const uint gpuattr, const ARegion *region, const float true_location[3], const float obmat[4][4], const int size)
 
static void cursor_draw_tiling_preview (const uint gpuattr, const ARegion *region, const float true_location[3], const Sculpt &sd, const Object &ob, const float radius)
 
static void cursor_draw_point_with_symmetry (const uint gpuattr, const ARegion *region, const float true_location[3], const Sculpt &sd, const Object &ob, const float radius)
 
static void sculpt_geometry_preview_lines_draw (const Depsgraph &depsgraph, const uint gpuattr, const Brush &brush, const Object &object)
 
static void SCULPT_layer_brush_height_preview_draw (const uint gpuattr, const Brush &brush, const float rds, const float line_width, const float outline_col[3], const float alpha)
 
static bool paint_use_2d_cursor (PaintMode mode)
 
static bool paint_cursor_context_init (bContext *C, const int x, const int y, PaintCursorContext *pcontext)
 
static void paint_cursor_update_pixel_radius (PaintCursorContext *pcontext)
 
static void paint_cursor_sculpt_session_update_and_init (PaintCursorContext *pcontext)
 
static void paint_update_mouse_cursor (PaintCursorContext *pcontext)
 
static void paint_draw_2D_view_brush_cursor_default (PaintCursorContext *pcontext)
 
static void grease_pencil_eraser_draw (PaintCursorContext *pcontext)
 
static void grease_pencil_brush_cursor_draw (PaintCursorContext *pcontext)
 
static void paint_draw_2D_view_brush_cursor (PaintCursorContext *pcontext)
 
static void paint_draw_legacy_3D_view_brush_cursor (PaintCursorContext *pcontext)
 
static void paint_draw_3D_view_inactive_brush_cursor (PaintCursorContext *pcontext)
 
static void paint_cursor_update_object_space_radius (PaintCursorContext *pcontext)
 
static void paint_cursor_drawing_setup_cursor_space (PaintCursorContext *pcontext)
 
static void paint_cursor_draw_main_inactive_cursor (PaintCursorContext *pcontext)
 
static void paint_cursor_pose_brush_segments_draw (PaintCursorContext *pcontext)
 
static void paint_cursor_pose_brush_origins_draw (PaintCursorContext *pcontext)
 
static void paint_cursor_preview_boundary_data_pivot_draw (PaintCursorContext *pcontext)
 
static void paint_cursor_preview_boundary_data_update (PaintCursorContext *pcontext)
 
static void paint_cursor_draw_3d_view_brush_cursor_inactive (PaintCursorContext *pcontext)
 
static void paint_cursor_cursor_draw_3d_view_brush_cursor_active (PaintCursorContext *pcontext)
 
static void paint_cursor_draw_3D_view_brush_cursor (PaintCursorContext *pcontext)
 
static bool paint_cursor_is_3d_view_navigating (PaintCursorContext *pcontext)
 
static bool paint_cursor_is_brush_cursor_enabled (PaintCursorContext *pcontext)
 
static void paint_cursor_update_rake_rotation (PaintCursorContext *pcontext)
 
static void paint_cursor_check_and_draw_alpha_overlays (PaintCursorContext *pcontext)
 
static void paint_cursor_update_anchored_location (PaintCursorContext *pcontext)
 
static void paint_cursor_setup_2D_drawing (PaintCursorContext *pcontext)
 
static void paint_cursor_setup_3D_drawing (PaintCursorContext *pcontext)
 
static void paint_cursor_restore_drawing_state ()
 
static void paint_draw_cursor (bContext *C, int x, int y, void *)
 
static int aa_samples_per_texel_axis (const Brush *brush, const float radius)
 
static void update_curve_mask (CurveMaskCache *curve_mask_cache, const Brush *brush, const int diameter, const float radius, const float cursor_position[2])
 
static bool is_sampled_curve_valid (const CurveMaskCache *curve_mask_cache, const Brush *brush)
 
static void sampled_curve_free (CurveMaskCache *curve_mask_cache)
 
static void update_sampled_curve (CurveMaskCache *curve_mask_cache, const Brush *brush)
 
static size_t diameter_to_curve_mask_size (const int diameter)
 
static bool is_curve_mask_size_valid (const CurveMaskCache *curve_mask_cache, const int diameter)
 
static void curve_mask_free (CurveMaskCache *curve_mask_cache)
 
static void curve_mask_allocate (CurveMaskCache *curve_mask_cache, const int diameter)
 
PaintStrokepaint_stroke_new (bContext *C, wmOperator *op, StrokeGetLocation get_location, StrokeTestStart test_start, StrokeUpdateStep update_step, StrokeRedraw redraw, StrokeDone done, int event_type)
 
void paint_stroke_free (bContext *C, wmOperator *op, PaintStroke *stroke)
 
bool paint_space_stroke_enabled (const Brush &br, PaintMode mode)
 
bool paint_supports_dynamic_size (const Brush &br, PaintMode mode)
 
bool paint_supports_dynamic_tex_coords (const Brush &br, PaintMode mode)
 
bool paint_supports_smooth_stroke (PaintStroke *stroke, const Brush &br, PaintMode mode)
 
bool paint_supports_texture (PaintMode mode)
 
wmKeyMappaint_stroke_modal_keymap (wmKeyConfig *keyconf)
 
int paint_stroke_modal (bContext *C, wmOperator *op, const wmEvent *event, PaintStroke **stroke_p)
 
int paint_stroke_exec (bContext *C, wmOperator *op, PaintStroke *stroke)
 
void paint_stroke_cancel (bContext *C, wmOperator *op, PaintStroke *stroke)
 
bool paint_stroke_flipped (PaintStroke *stroke)
 
bool paint_stroke_inverted (PaintStroke *stroke)
 
ViewContextpaint_stroke_view_context (PaintStroke *stroke)
 
void * paint_stroke_mode_data (PaintStroke *stroke)
 
float paint_stroke_distance_get (PaintStroke *stroke)
 
void paint_stroke_set_mode_data (PaintStroke *stroke, std::unique_ptr< PaintModeData > mode_data)
 
bool paint_stroke_started (PaintStroke *stroke)
 
void paint_stroke_jitter_pos (Scene &scene, const PaintStroke &stroke, const PaintMode mode, const Brush &brush, const float pressure, const float mval[2], float r_mouse_out[2])
 
bool paint_brush_tool_poll (bContext *C)
 
bool paint_brush_cursor_poll (bContext *C)
 
bool paint_brush_update (bContext *C, const Brush &brush, PaintMode mode, PaintStroke *stroke, const float mouse_init[2], float mouse[2], float pressure, float r_location[3], bool *r_location_is_set)
 
float3 symmetry_flip (const float3 &src, const ePaintSymmetryFlags symm)
 
static void paint_draw_smooth_cursor (bContext *C, int x, int y, void *customdata)
 
static void paint_draw_line_cursor (bContext *C, int x, int y, void *customdata)
 
static bool image_paint_brush_type_require_location (const Brush &brush, const PaintMode mode)
 
static bool paint_stroke_use_scene_spacing (const Brush &brush, const PaintMode mode)
 
static bool image_paint_brush_type_raycast_original (const Brush &brush, PaintMode)
 
static bool image_paint_brush_type_require_inbetween_mouse_events (const Brush &brush, const PaintMode mode)
 
static bool paint_stroke_use_dash (const Brush &brush)
 
static bool paint_stroke_use_jitter (PaintMode mode, const Brush &brush, bool invert)
 
static void paint_brush_stroke_add_step (bContext *C, wmOperator *op, PaintStroke *stroke, const float mval[2], float pressure)
 
static bool paint_smooth_stroke (PaintStroke *stroke, const PaintSample *sample, PaintMode mode, float r_mouse[2], float *r_pressure)
 
static float paint_space_stroke_spacing (bContext *C, const Scene *scene, PaintStroke *stroke, float size_pressure, float spacing_pressure)
 
static float paint_stroke_overlapped_curve (const Brush &br, float x, float spacing)
 
static float paint_stroke_integrate_overlap (const Brush &br, float factor)
 
static float paint_space_stroke_spacing_variable (bContext *C, const Scene *scene, PaintStroke *stroke, float pressure, float dpressure, float length)
 
static int paint_space_stroke (bContext *C, wmOperator *op, PaintStroke *stroke, const float final_mouse[2], float final_pressure)
 
static void stroke_done (bContext *C, wmOperator *op, PaintStroke *stroke)
 
static bool curves_sculpt_brush_uses_spacing (const eBrushCurvesSculptType tool)
 
static bool sculpt_is_grab_tool (const Brush &br)
 
static void paint_stroke_add_sample (PaintStroke *stroke, int input_samples, float x, float y, float pressure)
 
static void paint_stroke_sample_average (const PaintStroke *stroke, PaintSample *average)
 
static void paint_line_strokes_spacing (bContext *C, wmOperator *op, PaintStroke *stroke, float spacing, float *length_residue, const float old_pos[2], const float new_pos[2])
 
static void paint_stroke_line_end (bContext *C, wmOperator *op, PaintStroke *stroke, const float mouse[2])
 
static bool paint_stroke_curve_end (bContext *C, wmOperator *op, PaintStroke *stroke)
 
static void paint_stroke_line_constrain (PaintStroke *stroke, float mouse[2])
 
static const bToolRefbrush_tool_get (const bContext *C)
 
template<typename T >
static void fill_bm_face_or_corner_attribute (BMesh &bm, const T &value, const AttrDomain domain, const int cd_offset, const bool use_vert_sel)
 
template<typename T >
static void fill_mesh_face_or_corner_attribute (Mesh &mesh, const T &value, const AttrDomain domain, const MutableSpan< T > data, const bool use_vert_sel, const bool use_face_sel, const bool affect_alpha)
 
static void fill_mesh_color (Mesh &mesh, const ColorPaint4f &color, const StringRef attribute_name, const bool use_vert_sel, const bool use_face_sel, const bool affect_alpha)
 
static bool fill_active_color (Object &ob, ColorPaint4f fill_color, bool only_selected=true, bool affect_alpha=true)
 
float sculpt_calc_radius (const ViewContext &vc, const Brush &brush, const Scene &scene, const float3 location)
 
Span< float3vert_positions_for_grab_active_get (const Depsgraph &depsgraph, const Object &object)
 
Span< BMVert * > vert_neighbors_get_bmesh (BMVert &vert, Vector< BMVert *, 64 > &r_neighbors)
 
Span< BMVert * > vert_neighbors_get_interior_bmesh (BMVert &vert, Vector< BMVert *, 64 > &r_neighbors)
 
Span< intvert_neighbors_get_mesh (const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > vert_to_face, const Span< bool > hide_poly, const int vert, Vector< int > &r_neighbors)
 
std::optional< intnearest_vert_calc_mesh (const bke::pbvh::Tree &pbvh, const Span< float3 > vert_positions, const Span< bool > hide_vert, const float3 &location, const float max_distance, const bool use_original)
 
std::optional< SubdivCCGCoordnearest_vert_calc_grids (const bke::pbvh::Tree &pbvh, const SubdivCCG &subdiv_ccg, const float3 &location, const float max_distance, const bool use_original)
 
std::optional< BMVert * > nearest_vert_calc_bmesh (const bke::pbvh::Tree &pbvh, const float3 &location, const float max_distance, const bool use_original)
 
static void rake_data_update (SculptRakeData *srd, const float co[3])
 
static float area_normal_and_center_get_normal_radius (const SculptSession &ss, const Brush &brush)
 
static float area_normal_and_center_get_position_radius (const SculptSession &ss, const Brush &brush)
 
static float area_normal_calc_weight (const float distance, const float radius_inv)
 
static float3 area_center_calc_weighted (const float3 &test_location, const float distance, const float radius_inv, const float3 &co)
 
static void accumulate_area_center (const float3 &test_location, const float3 &position, const float distance, const float radius_inv, const int flip_index, AreaNormalCenterData &anctd)
 
static void accumulate_area_normal (const float3 &normal, const float distance, const float radius_inv, const int flip_index, AreaNormalCenterData &anctd)
 
static void calc_area_normal_and_center_node_mesh (const Object &object, const Span< float3 > vert_positions, const Span< float3 > vert_normals, const Span< bool > hide_vert, const Brush &brush, const bool use_area_nos, const bool use_area_cos, const bke::pbvh::MeshNode &node, SampleLocalData &tls, AreaNormalCenterData &anctd)
 
static void calc_area_normal_and_center_node_grids (const Object &object, const Brush &brush, const bool use_area_nos, const bool use_area_cos, const bke::pbvh::GridsNode &node, SampleLocalData &tls, AreaNormalCenterData &anctd)
 
static void calc_area_normal_and_center_node_bmesh (const Object &object, const Brush &brush, const bool use_area_nos, const bool use_area_cos, const bool has_bm_orco, const bke::pbvh::BMeshNode &node, SampleLocalData &tls, AreaNormalCenterData &anctd)
 
static AreaNormalCenterData calc_area_normal_and_center_reduce (const AreaNormalCenterData &a, const AreaNormalCenterData &b)
 
void calc_area_center (const Depsgraph &depsgraph, const Brush &brush, const Object &ob, const IndexMask &node_mask, float r_area_co[3])
 
std::optional< float3calc_area_normal (const Depsgraph &depsgraph, const Brush &brush, const Object &ob, const IndexMask &node_mask)
 
void calc_area_normal_and_center (const Depsgraph &depsgraph, const Brush &brush, const Object &ob, const IndexMask &node_mask, float r_area_no[3], float r_area_co[3])
 
bool node_fully_masked_or_hidden (const bke::pbvh::Node &node)
 
bool node_in_sphere (const bke::pbvh::Node &node, const float3 &location, const float radius_sq, const bool original)
 
bool node_in_cylinder (const DistRayAABB_Precalc &ray_dist_precalc, const bke::pbvh::Node &node, const float radius_sq, const bool original)
 
static IndexMask pbvh_gather_cursor_update (Object &ob, bool use_original, IndexMaskMemory &memory)
 
static IndexMask pbvh_gather_generic (Object &ob, const Brush &brush, bool use_original, float radius_scale, IndexMaskMemory &memory)
 
static IndexMask pbvh_gather_texpaint (Object &ob, const Brush &brush, const bool use_original, const float radius_scale, IndexMaskMemory &memory)
 
static float3 calc_sculpt_normal (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
 
static void update_sculpt_normal (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const IndexMask &node_mask)
 
static void calc_local_from_screen (const ViewContext &vc, const float center[3], const float screen_dir[2], float r_local_dir[3])
 
static void calc_brush_local_mat (const float rotation, const Object &ob, float local_mat[4][4], float local_mat_inv[4][4])
 
void calc_brush_plane (const Depsgraph &depsgraph, const Brush &brush, Object &ob, const IndexMask &node_mask, float3 &r_area_no, float3 &r_area_co)
 
static void dynamic_topology_update (const Depsgraph &depsgraph, const Scene &, const Sculpt &sd, Object &ob, const Brush &brush, UnifiedPaintSettings &, PaintModeSettings &)
 
static void push_undo_nodes (const Depsgraph &depsgraph, Object &ob, const Brush &brush, const IndexMask &node_mask)
 
static void do_brush_action (const Depsgraph &depsgraph, const Scene &scene, const Sculpt &sd, Object &ob, const Brush &brush, UnifiedPaintSettings &ups, PaintModeSettings &paint_mode_settings)
 
static void do_tiled (const Depsgraph &depsgraph, const Scene &scene, const Sculpt &sd, Object &ob, const Brush &brush, UnifiedPaintSettings &ups, PaintModeSettings &paint_mode_settings, const BrushActionFunc action)
 
static void do_radial_symmetry (const Depsgraph &depsgraph, const Scene &scene, const Sculpt &sd, Object &ob, const Brush &brush, UnifiedPaintSettings &ups, PaintModeSettings &paint_mode_settings, const BrushActionFunc action, const ePaintSymmetryFlags symm, const int axis, const float)
 
static void sculpt_fix_noise_tear (const Sculpt &sd, Object &ob)
 
static void do_symmetrical_brush_actions (const Depsgraph &depsgraph, const Scene &scene, const Sculpt &sd, Object &ob, const BrushActionFunc action, UnifiedPaintSettings &ups, PaintModeSettings &paint_mode_settings)
 
static void sculpt_init_mirror_clipping (const Object &ob, const SculptSession &ss)
 
static void smooth_brush_toggle_on (const bContext *C, Paint *paint, StrokeCache *cache)
 
static void smooth_brush_toggle_off (const bContext *C, Paint *paint, StrokeCache *cache)
 
static void sculpt_update_cache_invariants (bContext *C, Sculpt &sd, SculptSession &ss, wmOperator *op, const float mval[2])
 
static float brush_dynamic_size_get (const Brush &brush, const StrokeCache &cache, float initial_size)
 
static bool need_delta_from_anchored_origin (const Brush &brush)
 
static bool need_delta_for_tip_orientation (const Brush &brush)
 
static void brush_delta_update (const Depsgraph &depsgraph, UnifiedPaintSettings &ups, const Object &ob, const Brush &brush)
 
static void cache_paint_invariants_update (StrokeCache &cache, const Brush &brush)
 
static void sculpt_update_cache_variants (bContext *C, Sculpt &sd, Object &ob, PointerRNA *ptr)
 
static bool sculpt_needs_connectivity_info (const Sculpt &sd, const Brush &brush, const Object &object, int stroke_mode)
 
void flush_update_step (bContext *C, UpdateType update_type)
 
void flush_update_done (const bContext *C, Object &ob, UpdateType update_type)
 
static bool stroke_test_start (bContext *C, wmOperator *op, const float mval[2])
 
static void stroke_update_step (bContext *C, wmOperator *, PaintStroke *stroke, PointerRNA *itemptr)
 
static void brush_exit_tex (Sculpt &sd)
 
static void stroke_done (const bContext *C, PaintStroke *)
 
static int sculpt_brush_stroke_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static int sculpt_brush_stroke_exec (bContext *C, wmOperator *op)
 
static void sculpt_brush_stroke_cancel (bContext *C, wmOperator *op)
 
static int brush_stroke_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void redo_empty_ui (bContext *, wmOperator *)
 
void SCULPT_OT_brush_stroke (wmOperatorType *ot)
 
static void fake_neighbor_init (Object &object, const float max_dist)
 
static void pose_fake_neighbors_free (SculptSession &ss)
 
static void fake_neighbor_search_mesh (const SculptSession &ss, const Span< float3 > vert_positions, const Span< bool > hide_vert, const float3 &location, const float max_distance_sq, const int island_id, const bke::pbvh::MeshNode &node, NearestVertData &nvtd)
 
static void fake_neighbor_search_grids (const SculptSession &ss, const CCGKey &key, const Span< float3 > positions, const BitGroupVector<> &grid_hidden, const float3 &location, const float max_distance_sq, const int island_id, const bke::pbvh::GridsNode &node, NearestVertData &nvtd)
 
static void fake_neighbor_search_bmesh (const SculptSession &ss, const float3 &location, const float max_distance_sq, const int island_id, const bke::pbvh::BMeshNode &node, NearestVertData &nvtd)
 
static void fake_neighbor_search (const Depsgraph &depsgraph, const Object &ob, const float max_distance_sq, MutableSpan< int > fake_neighbors)
 
template void gather_data_mesh< bool > (Span< bool >, Span< int >, MutableSpan< bool >)
 
template void gather_data_mesh< int > (Span< int >, Span< int >, MutableSpan< int >)
 
template void gather_data_mesh< float > (Span< float >, Span< int >, MutableSpan< float >)
 
template void gather_data_mesh< float3 > (Span< float3 >, Span< int >, MutableSpan< float3 >)
 
template void gather_data_mesh< float4 > (Span< float4 >, Span< int >, MutableSpan< float4 >)
 
template void gather_data_grids< int > (const SubdivCCG &, Span< int >, Span< int >, MutableSpan< int >)
 
template void gather_data_grids< float > (const SubdivCCG &, Span< float >, Span< int >, MutableSpan< float >)
 
template void gather_data_grids< float3 > (const SubdivCCG &, Span< float3 >, Span< int >, MutableSpan< float3 >)
 
template void gather_data_bmesh< int > (Span< int >, const Set< BMVert *, 0 > &, MutableSpan< int >)
 
template void gather_data_bmesh< float > (Span< float >, const Set< BMVert *, 0 > &, MutableSpan< float >)
 
template void gather_data_bmesh< float3 > (Span< float3 >, const Set< BMVert *, 0 > &, MutableSpan< float3 >)
 
template void scatter_data_mesh< bool > (Span< bool >, Span< int >, MutableSpan< bool >)
 
template void scatter_data_mesh< int > (Span< int >, Span< int >, MutableSpan< int >)
 
template void scatter_data_mesh< float > (Span< float >, Span< int >, MutableSpan< float >)
 
template void scatter_data_mesh< float3 > (Span< float3 >, Span< int >, MutableSpan< float3 >)
 
template void scatter_data_mesh< float4 > (Span< float4 >, Span< int >, MutableSpan< float4 >)
 
template void scatter_data_grids< float > (const SubdivCCG &, Span< float >, Span< int >, MutableSpan< float >)
 
template void scatter_data_grids< float3 > (const SubdivCCG &, Span< float3 >, Span< int >, MutableSpan< float3 >)
 
template void scatter_data_bmesh< float > (Span< float >, const Set< BMVert *, 0 > &, MutableSpan< float >)
 
template void scatter_data_bmesh< float3 > (Span< float3 >, const Set< BMVert *, 0 > &, MutableSpan< float3 >)
 
static void copy_indices (const Span< float3 > src, const Span< int > indices, MutableSpan< float3 > dst)
 
void calc_vert_neighbors (Set< BMVert *, 0 > verts, const MutableSpan< Vector< BMVert * > > result)
 
Vector< intfind_symm_verts_mesh (const Depsgraph &depsgraph, const Object &object, const int original_vert, const float max_distance)
 
Vector< intfind_symm_verts_grids (const Object &object, const int original_vert, const float max_distance)
 
Vector< intfind_symm_verts_bmesh (const Object &object, const int original_vert, const float max_distance)
 
Vector< intfind_symm_verts (const Depsgraph &depsgraph, const Object &object, const int original_vert, const float max_distance)
 
std::optional< OrigPositionDataorig_position_data_lookup_mesh_all_verts (const Object &object, const bke::pbvh::MeshNode &node)
 
std::optional< OrigPositionDataorig_position_data_lookup_mesh (const Object &object, const bke::pbvh::MeshNode &node)
 
OrigPositionData orig_position_data_get_mesh (const Object &object, const bke::pbvh::MeshNode &node)
 
std::optional< OrigPositionDataorig_position_data_lookup_grids (const Object &object, const bke::pbvh::GridsNode &node)
 
OrigPositionData orig_position_data_get_grids (const Object &object, const bke::pbvh::GridsNode &node)
 
void orig_position_data_gather_bmesh (const BMLog &bm_log, const Set< BMVert *, 0 > &verts, MutableSpan< float3 > positions, MutableSpan< float3 > normals)
 
std::optional< Span< float4 > > orig_color_data_lookup_mesh (const Object &object, const bke::pbvh::MeshNode &node)
 
Span< float4orig_color_data_get_mesh (const Object &object, const bke::pbvh::MeshNode &node)
 
std::optional< Span< int > > orig_face_set_data_lookup_mesh (const Object &object, const bke::pbvh::MeshNode &node)
 
std::optional< Span< int > > orig_face_set_data_lookup_grids (const Object &object, const bke::pbvh::GridsNode &node)
 
std::optional< Span< float > > orig_mask_data_lookup_mesh (const Object &object, const bke::pbvh::MeshNode &node)
 
std::optional< Span< float > > orig_mask_data_lookup_grids (const Object &object, const bke::pbvh::GridsNode &node)
 
void SCULPT_OT_set_pivot_position (wmOperatorType *ot)
 
static std::array< float4x4, 8 > transform_matrices_init (const SculptSession &ss, const ePaintSymmetryFlags symm, const TransformDisplacementMode t_mode)
 
static BLI_NOINLINE void calc_symm_area_transform_translations (const Span< float3 > positions, const std::array< float4x4, 8 > &transform_mats, const MutableSpan< float3 > translations)
 
static BLI_NOINLINE void filter_translations_with_symmetry (const Span< float3 > positions, const ePaintSymmetryFlags symm, const MutableSpan< float3 > translations)
 
static void transform_node_mesh (const Sculpt &sd, const std::array< float4x4, 8 > &transform_mats, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, TransformLocalData &tls, const PositionDeformData &position_data)
 
static void transform_node_grids (const Sculpt &sd, const std::array< float4x4, 8 > &transform_mats, const bke::pbvh::GridsNode &node, Object &object, TransformLocalData &tls)
 
static void transform_node_bmesh (const Sculpt &sd, const std::array< float4x4, 8 > &transform_mats, bke::pbvh::BMeshNode &node, Object &object, TransformLocalData &tls)
 
static void sculpt_transform_all_vertices (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob)
 
static BLI_NOINLINE void calc_transform_translations (const float4x4 &elastic_transform_mat, const Span< float3 > positions, const MutableSpan< float3 > r_translations)
 
static BLI_NOINLINE void apply_kelvinet_to_translations (const KelvinletParams &params, const float3 &elastic_transform_pivot, const Span< float3 > positions, const MutableSpan< float3 > translations)
 
static void elastic_transform_node_mesh (const Sculpt &sd, const KelvinletParams &params, const float4x4 &elastic_transform_mat, const float3 &elastic_transform_pivot, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, TransformLocalData &tls, const PositionDeformData &position_data)
 
static void elastic_transform_node_grids (const Sculpt &sd, const KelvinletParams &params, const float4x4 &elastic_transform_mat, const float3 &elastic_transform_pivot, const bke::pbvh::GridsNode &node, Object &object, TransformLocalData &tls)
 
static void elastic_transform_node_bmesh (const Sculpt &sd, const KelvinletParams &params, const float4x4 &elastic_transform_mat, const float3 &elastic_transform_pivot, bke::pbvh::BMeshNode &node, Object &object, TransformLocalData &tls)
 
static void transform_radius_elastic (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const float transform_radius)
 
static bool set_pivot_depends_on_cursor (bContext &, wmOperatorType &, PointerRNA *ptr)
 
static AveragePositionAccumulation combine_average_position_accumulation (const AveragePositionAccumulation &a, const AveragePositionAccumulation &b)
 
static BLI_NOINLINE void accumulate_weighted_average_position (const Span< float3 > positions, const Span< float > factors, AveragePositionAccumulation &total)
 
static float3 average_unmasked_position (const Depsgraph &depsgraph, const Object &object, const float3 &pivot, const ePaintSymmetryFlags symm)
 
static BLI_NOINLINE void mask_border_weight_calc (const Span< float > masks, const MutableSpan< float > factors)
 
static float3 average_mask_border_position (const Depsgraph &depsgraph, const Object &object, const float3 &pivot, const ePaintSymmetryFlags symm)
 
static int set_pivot_position_exec (bContext *C, wmOperator *op)
 
static int set_pivot_position_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static bool set_pivot_position_poll_property (const bContext *, wmOperator *op, const PropertyRNA *prop)
 
Sculpt Mode Toggle Operator
void object_sculpt_mode_enter (Main &bmain, Depsgraph &depsgraph, Scene &scene, Object &ob, bool force_dyntopo, ReportList *reports)
 
void object_sculpt_mode_enter (bContext *C, Depsgraph &depsgraph, ReportList *reports)
 
void object_sculpt_mode_exit (Main &bmain, Depsgraph &depsgraph, Scene &scene, Object &ob)
 
void object_sculpt_mode_exit (bContext *C, Depsgraph &depsgraph)
 
void ensure_valid_pivot (const Object &ob, Scene &scene)
 
static void init_sculpt_mode_session (Main &bmain, Depsgraph &depsgraph, Scene &scene, Object &ob)
 
static int sculpt_mode_toggle_exec (bContext *C, wmOperator *op)
 
static void SCULPT_OT_sculptmode_toggle (wmOperatorType *ot)
 
Brush Stroke Operator
float brush_radius_factor (const Brush &brush, const StrokeExtension &stroke_extension)
 
float brush_radius_get (const Scene &scene, const Brush &brush, const StrokeExtension &stroke_extension)
 
float brush_strength_factor (const Brush &brush, const StrokeExtension &stroke_extension)
 
float brush_strength_get (const Scene &scene, const Brush &brush, const StrokeExtension &stroke_extension)
 
static std::unique_ptr< CurvesSculptStrokeOperationstart_brush_operation (bContext &C, wmOperator &op, const StrokeExtension &stroke_start)
 
static bool stroke_get_location (bContext *C, float out[3], const float mouse[2], bool)
 
static bool stroke_test_start (bContext *C, wmOperator *op, const float mouse[2])
 
static void stroke_update_step (bContext *C, wmOperator *op, PaintStroke *, PointerRNA *stroke_element)
 
static void stroke_done (const bContext *C, PaintStroke *stroke)
 
static int sculpt_curves_stroke_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static int sculpt_curves_stroke_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void sculpt_curves_stroke_cancel (bContext *C, wmOperator *op)
 
static void SCULPT_CURVES_OT_brush_stroke (wmOperatorType *ot)
 
static bool grease_pencil_brush_stroke_poll (bContext *C)
 
static int grease_pencil_brush_stroke_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static int grease_pencil_brush_stroke_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void grease_pencil_brush_stroke_cancel (bContext *C, wmOperator *op)
 
static void GREASE_PENCIL_OT_brush_stroke (wmOperatorType *ot)
 
Poll Functions
bool curves_sculpt_poll (bContext *C)
 
bool curves_sculpt_poll_view3d (bContext *C)
 
Toggle Sculpt Mode
static void curves_sculptmode_enter (bContext *C)
 
static void curves_sculptmode_exit (bContext *C)
 
static int curves_sculptmode_toggle_exec (bContext *C, wmOperator *op)
 
static void CURVES_OT_sculptmode_toggle (wmOperatorType *ot)
 
Common Paint Operator Functions
static bool stroke_get_location (bContext *, float out[3], const float mouse[2], bool)
 
static std::unique_ptr< GreasePencilStrokeOperationget_stroke_operation (bContext &C, wmOperator *op)
 
static bool stroke_test_start (bContext *C, wmOperator *op, const float mouse[2])
 
static void stroke_update_step (bContext *C, wmOperator *op, PaintStroke *stroke, PointerRNA *stroke_element)
 
static void stroke_redraw (const bContext *C, PaintStroke *, bool)
 
static void stroke_done (const bContext *C, PaintStroke *stroke)
 
Sculpt Operator
static bool grease_pencil_sculpt_paint_poll (bContext *C)
 
static int grease_pencil_sculpt_paint_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static int grease_pencil_sculpt_paint_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void grease_pencil_sculpt_paint_cancel (bContext *C, wmOperator *op)
 
static void GREASE_PENCIL_OT_sculpt_paint (wmOperatorType *ot)
 
Weight Brush Stroke Operator
static bool grease_pencil_weight_brush_stroke_poll (bContext *C)
 
static int grease_pencil_weight_brush_stroke_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static int grease_pencil_weight_brush_stroke_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void grease_pencil_weight_brush_stroke_cancel (bContext *C, wmOperator *op)
 
static void GREASE_PENCIL_OT_weight_brush_stroke (wmOperatorType *ot)
 
Vertex Brush Stroke Operator
static bool grease_pencil_vertex_brush_stroke_poll (bContext *C)
 
static int grease_pencil_vertex_brush_stroke_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static int grease_pencil_vertex_brush_stroke_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void grease_pencil_vertex_brush_stroke_cancel (bContext *C, wmOperator *op)
 
static void GREASE_PENCIL_OT_vertex_brush_stroke (wmOperatorType *ot)
 
Brush Capabilities

Avoid duplicate checks, internal logic only, share logic with rna_def_sculpt_capabilities where possible.

static bool brush_type_needs_original (const char sculpt_brush_type)
 
static bool brush_uses_topology_rake (const SculptSession &ss, const Brush &brush)
 
static int sculpt_brush_needs_normal (const SculptSession &ss, const Sculpt &sd, const Brush &brush)
 
static bool brush_needs_rake_rotation (const Brush &brush)
 
Set Persistent Base Operator
static int set_persistent_base_exec (bContext *C, wmOperator *)
 
static void SCULPT_OT_set_persistent_base (wmOperatorType *ot)
 
Optimize Operator
static int optimize_exec (bContext *C, wmOperator *)
 
static void SCULPT_OT_optimize (wmOperatorType *ot)
 
Symmetrize Operator
static bool no_multires_poll (bContext *C)
 
static int symmetrize_exec (bContext *C, wmOperator *op)
 
static void SCULPT_OT_symmetrize (wmOperatorType *ot)
 
Sample Color Operator
static int sample_color_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
static void SCULPT_OT_sample_color (wmOperatorType *ot)
 

Variables

constexpr float FACE_SET_BRUSH_MIN_FADE = 0.05f
 
constexpr int AntiAliasingSamplesPerTexelAxisMin = 3
 
constexpr int AntiAliasingSamplesPerTexelAxisMax = 16
 
constexpr int CurveSamplesBaseLen = 1024
 Number of samples to use between 0..1.
 
constexpr int CurveSamplesLen = M_SQRT2 * CurveSamplesBaseLen + 1
 Number of samples to store in the cache.
 
static constexpr float transform_mirror_max_distance_eps = 0.00002f
 
static EnumPropertyItem prop_sculpt_pivot_position_types []
 

Bucket Fill Operator

enum class  FillToolModalKey : int8_t {
  Cancel = 1 , Confirm , ExtensionModeToggle , ExtensionLengthen ,
  ExtensionShorten , ExtensionDrag , ExtensionCollide , Invert ,
  Precision
}
 
static void grease_pencil_fill_extension_cut (const bContext &C, ed::greasepencil::ExtensionData &extension_data, Span< int > origin_drawings, Span< int > origin_points)
 
static void grease_pencil_fill_extension_lines_from_circles (const bContext &C, ed::greasepencil::ExtensionData &extension_data, Span< int >, Span< int >)
 
static ed::greasepencil::ExtensionData grease_pencil_fill_get_extension_data (const bContext &C, const GreasePencilFillOpData &op_data)
 
static void grease_pencil_fill_status_indicators (bContext &C, const GreasePencilFillOpData &op_data)
 
static void grease_pencil_fill_overlay_cb (const bContext *C, ARegion *, void *arg)
 
static void grease_pencil_fill_update_overlay (const ARegion &region, GreasePencilFillOpData &op_data)
 
static void grease_pencil_update_extend (bContext &C, GreasePencilFillOpData &op_data)
 
static VArray< bool > get_fill_boundary_layers (const GreasePencil &grease_pencil, eGP_FillLayerModes fill_layer_mode)
 
static Vector< FillToolTargetInfoensure_editable_drawings (const Scene &scene, GreasePencil &grease_pencil, bke::greasepencil::Layer &target_layer)
 
static void smooth_fill_strokes (bke::CurvesGeometry &curves, const IndexMask &stroke_mask)
 
static bke::CurvesGeometry simplify_fixed (bke::CurvesGeometry &curves, const int step)
 
static bool grease_pencil_apply_fill (bContext &C, wmOperator &op, const wmEvent &event)
 
static bool grease_pencil_fill_init (bContext &C, wmOperator &op)
 
static void grease_pencil_fill_exit (bContext &C, wmOperator &op)
 
static int grease_pencil_fill_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
static int grease_pencil_fill_event_modal_map (bContext *C, wmOperator *op, const wmEvent *event)
 
static int grease_pencil_fill_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void grease_pencil_fill_cancel (bContext *C, wmOperator *op)
 
static void GREASE_PENCIL_OT_fill (wmOperatorType *ot)
 

Detailed Description

The code below uses a suffix naming convention to indicate the coordinate space: cu: Local space of the curves object that is being edited. su: Local space of the surface object. wo: World space. re: 2D coordinates within the region.

The code below uses a prefix naming convention to indicate the coordinate space: cu: Local space of the curves object that is being edited. su: Local space of the surface object. wo: World space. re: 2D coordinates within the region.

The code below uses a prefix naming convention to indicate the coordinate space: cu: Local space of the curves object that is being edited. su: Local space of the surface object. wo: World space. re: 2D coordinates within the region.

The code below uses a suffix naming convention to indicate the coordinate space: cu: Local space of the curves object that is being edited. wo: World space. re: 2D coordinates within the region.

The code below uses a suffix naming convention to indicate the coordinate space:

  • cu: Local space of the curves object that is being edited.
  • su: Local space of the surface object.
  • wo: World space.
  • re: 2D coordinates within the region.

The code below uses a prefix naming convention to indicate the coordinate space:

  • cu: Local space of the curves object that is being edited.
  • su: Local space of the surface object.
  • wo: World space.
  • re: 2D coordinates within the region.

Typedef Documentation

◆ BrushActionFunc

Initial value:
void (*)(const Depsgraph &depsgraph,
const Scene &scene,
const Sculpt &sd,
Object &ob,
const Brush &brush,
PaintModeSettings &paint_mode_settings)
const Depsgraph * depsgraph

Definition at line 3406 of file sculpt.cc.

◆ DeltaProjectionFunc

Initial value:
std::function<float3(const float3 position, const float2 &screen_delta)>

Projects a screen-space displacement vector into layer space. Current position (in layer space) is used to compute the perspective distance (zfac). Returns the new layer space position with the projected delta applied.

Definition at line 39 of file grease_pencil_intern.hh.

◆ StrokeDone

using blender::ed::sculpt_paint::StrokeDone = void (*)(const bContext *C, PaintStroke *stroke)

Definition at line 80 of file paint_intern.hh.

◆ StrokeGetLocation

Initial value:
bool (*)(bContext *C,
float location[3],
const float mouse[2],
bool force_original)
#define C
Definition RandGen.cpp:29

Definition at line 70 of file paint_intern.hh.

◆ StrokeRedraw

using blender::ed::sculpt_paint::StrokeRedraw = void (*)(const bContext *C, PaintStroke *stroke, bool final)

Definition at line 79 of file paint_intern.hh.

◆ StrokeTestStart

using blender::ed::sculpt_paint::StrokeTestStart = bool (*)(bContext *C, wmOperator *op, const float mouse[2])

Definition at line 74 of file paint_intern.hh.

◆ StrokeUpdateStep

Initial value:
void (*)(bContext *C,
PaintStroke *stroke,
PointerRNA *itemptr)

Definition at line 75 of file paint_intern.hh.

Enumeration Type Documentation

◆ FillToolModalKey

Enumerator
Cancel 
Confirm 
ExtensionModeToggle 
ExtensionLengthen 
ExtensionShorten 
ExtensionDrag 
ExtensionCollide 
Invert 
Precision 

Definition at line 1564 of file grease_pencil_draw_ops.cc.

◆ PaintCursorDrawingType

Enumerator
PAINT_CURSOR_CURVE 
PAINT_CURSOR_2D 
PAINT_CURSOR_3D 

Definition at line 1231 of file paint_cursor.cc.

◆ PivotPositionMode

Enumerator
Origin 
Unmasked 
MaskBorder 
ActiveVert 
CursorSurface 

Definition at line 587 of file sculpt_transform.cc.

◆ TransformDisplacementMode

Enumerator
Original 
Incremental 

Definition at line 140 of file sculpt_intern.hh.

◆ UpdateType

Enumerator
Position 
Mask 
Visibility 
Color 
Image 
FaceSet 

Definition at line 112 of file sculpt_intern.hh.

Function Documentation

◆ aa_samples_per_texel_axis()

static int blender::ed::sculpt_paint::aa_samples_per_texel_axis ( const Brush * brush,
const float radius )
static

◆ accumulate_area_center()

static void blender::ed::sculpt_paint::accumulate_area_center ( const float3 & test_location,
const float3 & position,
const float distance,
const float radius_inv,
const int flip_index,
AreaNormalCenterData & anctd )
static

◆ accumulate_area_normal()

static void blender::ed::sculpt_paint::accumulate_area_normal ( const float3 & normal,
const float distance,
const float radius_inv,
const int flip_index,
AreaNormalCenterData & anctd )
static

◆ accumulate_samples()

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

◆ accumulate_weighted_average_position()

static BLI_NOINLINE void blender::ed::sculpt_paint::accumulate_weighted_average_position ( const Span< float3 > positions,
const Span< float > factors,
AveragePositionAccumulation & total )
static

Definition at line 644 of file sculpt_transform.cc.

References BLI_assert, and blender::Span< T >::size().

◆ apply_crazyspace_to_translations()

void blender::ed::sculpt_paint::apply_crazyspace_to_translations ( Span< float3x3 > deform_imats,
Span< int > verts,
MutableSpan< float3 > translations )

Rotate translations to account for rotations from procedural deformation.

Todo
Don't invert deform_imats on object evaluation. Instead just invert them on-demand in brush implementations. This would be better because only the inversions required for affected vertices would be necessary.

Definition at line 7011 of file sculpt.cc.

References apply_crazyspace_to_translations(), BLI_assert, blender::MutableSpan< T >::size(), blender::math::transform_point(), and verts.

Referenced by apply_crazyspace_to_translations(), blender::ed::sculpt_paint::PositionDeformData::deform(), and blender::ed::sculpt_paint::undo::restore_position_from_undo_step().

◆ apply_hardness_to_distances() [1/2]

void blender::ed::sculpt_paint::apply_hardness_to_distances ( const StrokeCache & cache,
const MutableSpan< float > distances )
inline

◆ apply_hardness_to_distances() [2/2]

◆ apply_kelvinet_to_translations()

static BLI_NOINLINE void blender::ed::sculpt_paint::apply_kelvinet_to_translations ( const KelvinletParams & params,
const float3 & elastic_transform_pivot,
const Span< float3 > positions,
const MutableSpan< float3 > translations )
static

◆ apply_translations() [1/3]

void blender::ed::sculpt_paint::apply_translations ( Span< float3 > translations,
const Set< BMVert *, 0 > & verts )

◆ apply_translations() [2/3]

◆ apply_translations() [3/3]

void blender::ed::sculpt_paint::apply_translations ( Span< float3 > translations,
Span< int > verts,
MutableSpan< float3 > positions )

Many brushes end up calculating translations from the original positions. Instead of applying these directly to the modified values, it's helpful to process them separately to easily calculate various effects like clipping. After they are processed, this function can be used to simply add them to the final vertex positions.

Definition at line 6958 of file sculpt.cc.

References apply_translations(), BLI_assert, blender::Span< T >::size(), and verts.

Referenced by blender::ed::sculpt_paint::project::apply_projection_bmesh(), blender::ed::sculpt_paint::project::apply_projection_grids(), apply_translations(), apply_translations(), apply_translations(), blender::ed::sculpt_paint::boundary::calc_bend_bmesh(), blender::ed::sculpt_paint::boundary::calc_bend_grids(), calc_bmesh(), blender::ed::sculpt_paint::pose::calc_bmesh(), blender::ed::sculpt_paint::filter::calc_enhance_details_filter(), blender::ed::sculpt_paint::filter::calc_erase_displacement_filter(), blender::ed::sculpt_paint::boundary::calc_grab_bmesh(), blender::ed::sculpt_paint::boundary::calc_grab_grids(), calc_grids(), blender::ed::sculpt_paint::pose::calc_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_bmesh(), blender::ed::sculpt_paint::filter::calc_inflate_filter(), blender::ed::sculpt_paint::boundary::calc_inflate_grids(), blender::ed::sculpt_paint::filter::calc_random_filter(), blender::ed::sculpt_paint::filter::calc_relax_face_sets_filter(), blender::ed::sculpt_paint::filter::calc_relax_filter(), blender::ed::sculpt_paint::filter::calc_scale_filter(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), blender::ed::sculpt_paint::boundary::calc_slide_bmesh(), blender::ed::sculpt_paint::boundary::calc_slide_grids(), blender::ed::sculpt_paint::boundary::calc_smooth_bmesh(), blender::ed::sculpt_paint::filter::calc_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_smooth_grids(), blender::ed::sculpt_paint::filter::calc_sphere_filter(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_twist_bmesh(), blender::ed::sculpt_paint::boundary::calc_twist_grids(), blender::ed::sculpt_paint::PositionDeformData::deform(), elastic_transform_node_bmesh(), elastic_transform_node_grids(), blender::ed::sculpt_paint::undo::restore_position_from_undo_step(), transform_node_bmesh(), transform_node_grids(), and update_shape_keys().

◆ area_center_calc_weighted()

static float3 blender::ed::sculpt_paint::area_center_calc_weighted ( const float3 & test_location,
const float distance,
const float radius_inv,
const float3 & co )
static

Definition at line 1351 of file sculpt.cc.

Referenced by accumulate_area_center().

◆ area_normal_and_center_get_normal_radius()

◆ area_normal_and_center_get_position_radius()

◆ area_normal_calc_weight()

static float blender::ed::sculpt_paint::area_normal_calc_weight ( const float distance,
const float radius_inv )
static

Definition at line 1344 of file sculpt.cc.

Referenced by accumulate_area_normal().

◆ asset_library_ensure_catalog()

◆ asset_library_ensure_catalogs_in_path()

◆ average_mask_border_position()

◆ average_unmasked_position()

◆ brush_asset_activate_exec()

◆ brush_asset_delete_exec()

◆ brush_asset_delete_invoke()

static int blender::ed::sculpt_paint::brush_asset_delete_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

◆ brush_asset_delete_poll()

static bool blender::ed::sculpt_paint::brush_asset_delete_poll ( bContext * C)
static

◆ brush_asset_edit_metadata_exec()

◆ brush_asset_edit_metadata_invoke()

◆ brush_asset_edit_metadata_poll()

◆ brush_asset_load_preview_exec()

◆ brush_asset_load_preview_invoke()

static int blender::ed::sculpt_paint::brush_asset_load_preview_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ brush_asset_revert_exec()

◆ brush_asset_revert_poll()

static bool blender::ed::sculpt_paint::brush_asset_revert_poll ( bContext * C)
static

◆ brush_asset_save_as_exec()

◆ brush_asset_save_as_invoke()

◆ brush_asset_save_as_poll()

static bool blender::ed::sculpt_paint::brush_asset_save_as_poll ( bContext * C)
static

◆ brush_asset_save_exec()

◆ brush_asset_save_poll()

◆ brush_delta_update()

static void blender::ed::sculpt_paint::brush_delta_update ( const Depsgraph & depsgraph,
UnifiedPaintSettings & ups,
const Object & ob,
const Brush & brush )
static

Definition at line 4039 of file sculpt.cc.

References SculptSession::active_vert(), SculptSession::active_vert_position(), add_v3_v3(), UnifiedPaintSettings::anchored_initial_mouse, UnifiedPaintSettings::anchored_size, blender::math::AxisAngleBase< T, AngleT >::angle(), blender::math::AxisAngleBase< T, AngleT >::axis(), BRUSH_ANCHORED, BRUSH_CLOTH_DEFORM_SNAKE_HOOK, brush_delta_update(), BRUSH_GRAB_ACTIVE_VERTEX, brush_needs_rake_rotation(), brush_uses_topology_rake(), SculptSession::cache, Brush::cloth_deform_type, copy_v2_v2(), copy_v3_v3(), depsgraph, UnifiedPaintSettings::draw_anchored, ED_view3d_win_to_3d(), ELEM, eps, Brush::falloff_shape, Brush::flag, SculptRakeData::follow_co, SculptRakeData::follow_dist, blender::ed::sculpt_paint::StrokeCache::grab_delta, blender::ed::sculpt_paint::StrokeCache::initial_mouse, invert_m4_m4(), is_zero_v3(), len_squared_v3v3(), blender::ed::sculpt_paint::StrokeCache::location, blender::ed::sculpt_paint::StrokeCache::mouse_event, mul_mat3_m4_v3(), mul_v3_m4v3(), need_delta_for_tip_orientation(), need_delta_from_anchored_origin(), normalize_v3(), blender::ed::sculpt_paint::StrokeCache::old_grab_location, blender::ed::sculpt_paint::StrokeCache::orig_grab_location, PAINT_FALLOFF_SHAPE_TUBE, UnifiedPaintSettings::pixel_radius, project_plane_v3_v3v3(), blender::ed::sculpt_paint::StrokeCache::radius, blender::ed::sculpt_paint::StrokeCache::rake_data, rake_data_update(), Brush::rake_factor, blender::ed::sculpt_paint::StrokeCache::rake_rotation, blender::ed::sculpt_paint::StrokeCache::rake_rotation_symm, ViewContext::region, Object::sculpt, Brush::sculpt_brush_type, SCULPT_BRUSH_TYPE_BOUNDARY, SCULPT_BRUSH_TYPE_CLAY_STRIPS, SCULPT_BRUSH_TYPE_CLAY_THUMB, SCULPT_BRUSH_TYPE_CLOTH, SCULPT_BRUSH_TYPE_ELASTIC_DEFORM, SCULPT_BRUSH_TYPE_GRAB, SCULPT_BRUSH_TYPE_MULTIPLANE_SCRAPE, SCULPT_BRUSH_TYPE_NUDGE, SCULPT_BRUSH_TYPE_PAINT, SCULPT_BRUSH_TYPE_PINCH, SCULPT_BRUSH_TYPE_POSE, SCULPT_BRUSH_TYPE_SMEAR, SCULPT_BRUSH_TYPE_SNAKE_HOOK, SCULPT_BRUSH_TYPE_THUMB, SCULPT_RAKE_BRUSH_FACTOR, SCULPT_stroke_is_first_brush_step_of_symmetry_pass(), sqrtf, square_f(), sub_v3_v3(), sub_v3_v3v3(), blender::math::to_quaternion(), blender::bke::pbvh::Tree::type(), v2, ViewContext::v3d, blender::ed::sculpt_paint::StrokeCache::vc, vert_positions_for_grab_active_get(), blender::ed::sculpt_paint::StrokeCache::view_normal, and zero_v3().

Referenced by brush_delta_update(), and sculpt_update_cache_variants().

◆ brush_dynamic_size_get()

◆ brush_exit_tex()

static void blender::ed::sculpt_paint::brush_exit_tex ( Sculpt & sd)
static

◆ brush_needs_rake_rotation()

static bool blender::ed::sculpt_paint::brush_needs_rake_rotation ( const Brush & brush)
static

Definition at line 808 of file sculpt.cc.

References Brush::rake_factor, Brush::sculpt_brush_type, and SCULPT_BRUSH_TYPE_HAS_RAKE.

Referenced by brush_delta_update().

◆ BRUSH_OT_asset_activate()

◆ BRUSH_OT_asset_delete()

◆ BRUSH_OT_asset_edit_metadata()

◆ BRUSH_OT_asset_load_preview()

◆ BRUSH_OT_asset_revert()

◆ BRUSH_OT_asset_save()

◆ BRUSH_OT_asset_save_as()

◆ brush_radius_factor()

◆ brush_radius_get()

float blender::ed::sculpt_paint::brush_radius_get ( const Scene & scene,
const Brush & brush,
const StrokeExtension & stroke_extension )

◆ brush_strength_factor()

float blender::ed::sculpt_paint::brush_strength_factor ( const Brush & brush,
const StrokeExtension & stroke_extension )

◆ brush_strength_get()

◆ brush_stroke_modal()

static int blender::ed::sculpt_paint::brush_stroke_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ brush_tool_get()

◆ brush_type_needs_original()

static bool blender::ed::sculpt_paint::brush_type_needs_original ( const char sculpt_brush_type)
static

◆ brush_uses_topology_rake()

static bool blender::ed::sculpt_paint::brush_uses_topology_rake ( const SculptSession & ss,
const Brush & brush )
static

◆ cache_paint_invariants_update()

◆ calc_area_center()

◆ calc_area_normal()

◆ calc_area_normal_and_center()

void blender::ed::sculpt_paint::calc_area_normal_and_center ( const Depsgraph & depsgraph,
const Brush & brush,
const Object & ob,
const IndexMask & node_mask,
float r_area_no[3],
float r_area_co[3] )

This calculates flatten center and area normal together, amortizing the memory bandwidth and loop overhead to calculate both at the same time.

Definition at line 1944 of file sculpt.cc.

References SculptSession::bm, calc_area_normal_and_center(), calc_area_normal_and_center_reduce(), Object::data, depsgraph, blender::index_mask::IndexMask::index_range(), blender::bke::pbvh::Tree::nodes(), Object::sculpt, and blender::bke::pbvh::Tree::type().

Referenced by calc_area_normal_and_center(), and calc_brush_plane().

◆ calc_area_normal_and_center_node_bmesh()

◆ calc_area_normal_and_center_node_grids()

◆ calc_area_normal_and_center_node_mesh()

◆ calc_area_normal_and_center_reduce()

static AreaNormalCenterData blender::ed::sculpt_paint::calc_area_normal_and_center_reduce ( const AreaNormalCenterData & a,
const AreaNormalCenterData & b )
static

◆ calc_bmesh() [1/24]

static void blender::ed::sculpt_paint::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

◆ calc_brush_cube_distances() [1/2]

void blender::ed::sculpt_paint::calc_brush_cube_distances ( const Brush & brush,
const float4x4 & mat,
Span< float3 > positions,
MutableSpan< float > r_distances,
MutableSpan< float > factors )

◆ calc_brush_cube_distances() [2/2]

void blender::ed::sculpt_paint::calc_brush_cube_distances ( const Brush & brush,
const float4x4 & mat,
Span< float3 > positions,
Span< int > verts,
MutableSpan< float > r_distances,
MutableSpan< float > factors )

◆ calc_brush_distances() [1/2]

void blender::ed::sculpt_paint::calc_brush_distances ( const SculptSession & ss,
Span< float3 > positions,
eBrushFalloffShape falloff_shape,
MutableSpan< float > r_distances )

Definition at line 6761 of file sculpt.cc.

References calc_brush_distances(), and calc_brush_distances_squared().

◆ calc_brush_distances() [2/2]

void blender::ed::sculpt_paint::calc_brush_distances ( const SculptSession & ss,
Span< float3 > vert_positions,
Span< int > vert_indices,
eBrushFalloffShape falloff_shape,
MutableSpan< float > r_distances )

◆ calc_brush_distances_squared() [1/2]

◆ calc_brush_distances_squared() [2/2]

◆ calc_brush_local_mat()

◆ calc_brush_plane()

◆ calc_brush_strength_factors()

◆ calc_brush_texture_factors() [1/2]

void blender::ed::sculpt_paint::calc_brush_texture_factors ( const SculptSession & ss,
const Brush & brush,
Span< float3 > positions,
MutableSpan< float > factors )

◆ calc_brush_texture_factors() [2/2]

◆ calc_distances()

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

◆ calc_faces() [1/21]

static void blender::ed::sculpt_paint::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

◆ calc_factors_common_bmesh()

◆ calc_factors_common_from_orig_data_bmesh()

◆ calc_factors_common_from_orig_data_grids()

◆ calc_factors_common_from_orig_data_mesh()

◆ calc_factors_common_grids()

◆ calc_factors_common_mesh()

◆ calc_factors_common_mesh_indexed()

◆ calc_front_face() [1/5]

void blender::ed::sculpt_paint::calc_front_face ( const float3 & view_normal,
const Set< BMFace *, 0 > & faces,
MutableSpan< float > factors )

◆ calc_front_face() [2/5]

void blender::ed::sculpt_paint::calc_front_face ( const float3 & view_normal,
const Set< BMVert *, 0 > & verts,
MutableSpan< float > factors )

◆ calc_front_face() [3/5]

◆ calc_front_face() [4/5]

◆ calc_front_face() [5/5]

void blender::ed::sculpt_paint::calc_front_face ( const float3 & view_normal,
Span< float3 > vert_normals,
Span< int > vert_indices,
MutableSpan< float > factors )

◆ calc_grids() [1/23]

◆ calc_local_from_screen()

static void blender::ed::sculpt_paint::calc_local_from_screen ( const ViewContext & vc,
const float center[3],
const float screen_dir[2],
float r_local_dir[3] )
static

◆ calc_sculpt_normal()

◆ calc_smooth_translations()

void blender::ed::sculpt_paint::calc_smooth_translations ( const Depsgraph & depsgraph,
const Object & object,
const IndexMask & node_mask,
MutableSpan< float3 > translations )

◆ calc_symm_area_transform_translations()

static BLI_NOINLINE void blender::ed::sculpt_paint::calc_symm_area_transform_translations ( const Span< float3 > positions,
const std::array< float4x4, 8 > & transform_mats,
const MutableSpan< float3 > translations )
static

◆ calc_transform_translations()

static BLI_NOINLINE void blender::ed::sculpt_paint::calc_transform_translations ( const float4x4 & elastic_transform_mat,
const Span< float3 > positions,
const MutableSpan< float3 > r_translations )
static

◆ calc_translations() [1/7]

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

Definition at line 99 of file multiplane_scrape.cc.

References closest(), and closest_to_plane_normalized_v3().

Referenced by calc_bmesh(), calc_faces(), and calc_grids().

◆ calc_translations_to_plane() [1/2]

void blender::ed::sculpt_paint::calc_translations_to_plane ( Span< float3 > positions,
const float4 & plane,
MutableSpan< float3 > translations )

◆ calc_translations_to_plane() [2/2]

void blender::ed::sculpt_paint::calc_translations_to_plane ( Span< float3 > vert_positions,
Span< int > verts,
const float4 & plane,
MutableSpan< float3 > translations )

◆ calc_vert_neighbors() [1/4]

◆ calc_vert_neighbors() [2/4]

void blender::ed::sculpt_paint::calc_vert_neighbors ( OffsetIndices< int > faces,
Span< int > corner_verts,
GroupedSpan< int > vert_to_face,
Span< bool > hide_poly,
Span< int > verts,
MutableSpan< Vector< int > > result )

Find vertices connected to the indexed vertices across faces.

Does not handle boundary vertices differently, so this method is generally inappropriate for functions that are related to coordinates. See calc_vert_neighbors_interior

Note
A vector allocated per element is typically not a good strategy for performance because of each vector's 24 byte overhead, non-contiguous memory, and the possibility of further heap allocations. However, it's done here for now for two reasons:
  1. In typical quad meshes there are just 4 neighbors, which fit in the inline buffer.
  2. We want to avoid using edges, and the remaining topology map we have access to is the vertex to face map. That requires deduplication when building the neighbors, which requires some intermediate data structure like a vector anyway.

Definition at line 7330 of file sculpt.cc.

References BLI_assert, calc_vert_neighbors(), blender::Span< T >::size(), vert_neighbors_get_mesh(), and verts.

Referenced by blender::ed::sculpt_paint::smooth::blur_geometry_data_array(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), blender::ed::sculpt_paint::boundary::calc_smooth_bmesh(), blender::ed::sculpt_paint::boundary::calc_smooth_grids(), blender::ed::sculpt_paint::boundary::calc_smooth_mesh(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), calc_vert_neighbors(), calc_vert_neighbors(), calc_vert_neighbors(), blender::ed::sculpt_paint::color::color_filter_task(), blender::ed::sculpt_paint::color::do_color_smooth_task(), blender::ed::sculpt_paint::cloth::ensure_nodes_constraints(), blender::ed::sculpt_paint::pose::grow_factors_mesh(), blender::ed::sculpt_paint::mask::grow_mask_mesh(), blender::ed::sculpt_paint::filter::mesh_filter_sharpen_init(), blender::ed::sculpt_paint::color::sculpt_color_presmooth_init(), blender::ed::sculpt_paint::mask::sharpen_mask_mesh(), blender::ed::sculpt_paint::mask::shrink_mask_mesh(), and blender::ed::sculpt_paint::mask::smooth_mask_mesh().

◆ calc_vert_neighbors() [3/4]

void blender::ed::sculpt_paint::calc_vert_neighbors ( Set< BMVert *, 0 > verts,
const MutableSpan< Vector< BMVert * > > result )

Definition at line 7372 of file sculpt.cc.

References BLI_assert, calc_vert_neighbors(), vert_neighbors_get_bmesh(), and verts.

◆ calc_vert_neighbors() [4/4]

void blender::ed::sculpt_paint::calc_vert_neighbors ( Set< BMVert *, 0 > verts,
MutableSpan< Vector< BMVert * > > result )

◆ calc_vert_neighbors_interior() [1/3]

void blender::ed::sculpt_paint::calc_vert_neighbors_interior ( const Set< BMVert *, 0 > & verts,
MutableSpan< Vector< BMVert * > > result )

◆ calc_vert_neighbors_interior() [2/3]

◆ calc_vert_neighbors_interior() [3/3]

void blender::ed::sculpt_paint::calc_vert_neighbors_interior ( OffsetIndices< int > faces,
Span< int > corner_verts,
GroupedSpan< int > vert_to_face,
BitSpan boundary_verts,
Span< bool > hide_poly,
Span< int > verts,
MutableSpan< Vector< int > > result )

◆ clay_thumb_get_stabilized_pressure()

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

◆ clip_and_lock_translations() [1/2]

◆ clip_and_lock_translations() [2/2]

void blender::ed::sculpt_paint::clip_and_lock_translations ( const Sculpt & sd,
const SculptSession & ss,
Span< float3 > positions,
Span< int > verts,
MutableSpan< float3 > translations )

Modify translations based on sculpt mode axis locking and mirroring clipping.

Definition at line 7022 of file sculpt.cc.

References blender::math::abs(), BLI_assert, SculptSession::cache, clip_and_lock_translations(), ClipX, blender::ed::sculpt_paint::StrokeCache::flag, Sculpt::flags, blender::ed::sculpt_paint::StrokeCache::mat, blender::ed::sculpt_paint::StrokeCache::mat_inv, blender::ed::sculpt_paint::StrokeCache::mirror_modifier_clip, SCULPT_LOCK_X, blender::MutableSpan< T >::size(), blender::ed::sculpt_paint::StrokeCache::tolerance, blender::math::transform_point(), and verts.

Referenced by blender::ed::sculpt_paint::project::apply_projection_bmesh(), blender::ed::sculpt_paint::project::apply_projection_grids(), blender::ed::sculpt_paint::project::apply_projection_mesh(), blender::ed::sculpt_paint::boundary::calc_bend_bmesh(), blender::ed::sculpt_paint::boundary::calc_bend_grids(), blender::ed::sculpt_paint::boundary::calc_bend_mesh(), calc_bmesh(), blender::ed::sculpt_paint::pose::calc_bmesh(), blender::ed::sculpt_paint::filter::calc_enhance_details_filter(), blender::ed::sculpt_paint::filter::calc_erase_displacement_filter(), calc_faces(), blender::ed::sculpt_paint::boundary::calc_grab_bmesh(), blender::ed::sculpt_paint::boundary::calc_grab_grids(), blender::ed::sculpt_paint::boundary::calc_grab_mesh(), calc_grids(), blender::ed::sculpt_paint::pose::calc_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_bmesh(), blender::ed::sculpt_paint::filter::calc_inflate_filter(), blender::ed::sculpt_paint::boundary::calc_inflate_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_mesh(), blender::ed::sculpt_paint::pose::calc_mesh(), blender::ed::sculpt_paint::filter::calc_random_filter(), blender::ed::sculpt_paint::filter::calc_relax_face_sets_filter(), blender::ed::sculpt_paint::filter::calc_relax_filter(), blender::ed::sculpt_paint::filter::calc_scale_filter(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), blender::ed::sculpt_paint::boundary::calc_slide_bmesh(), blender::ed::sculpt_paint::boundary::calc_slide_grids(), blender::ed::sculpt_paint::boundary::calc_slide_mesh(), blender::ed::sculpt_paint::boundary::calc_smooth_bmesh(), blender::ed::sculpt_paint::filter::calc_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_smooth_grids(), blender::ed::sculpt_paint::boundary::calc_smooth_mesh(), blender::ed::sculpt_paint::filter::calc_sphere_filter(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_twist_bmesh(), blender::ed::sculpt_paint::boundary::calc_twist_grids(), blender::ed::sculpt_paint::boundary::calc_twist_mesh(), clip_and_lock_translations(), clip_and_lock_translations(), blender::ed::sculpt_paint::cloth::do_simulation_step(), blender::ed::sculpt_paint::face_set::edit_fairing(), elastic_transform_node_bmesh(), elastic_transform_node_grids(), elastic_transform_node_mesh(), transform_node_bmesh(), transform_node_grids(), and transform_node_mesh().

◆ combine_average_position_accumulation()

static AveragePositionAccumulation blender::ed::sculpt_paint::combine_average_position_accumulation ( const AveragePositionAccumulation & a,
const AveragePositionAccumulation & b )
static

◆ copy_indices()

static void blender::ed::sculpt_paint::copy_indices ( const Span< float3 > src,
const Span< int > indices,
MutableSpan< float3 > dst )
static

Definition at line 7132 of file sculpt.cc.

References copy_indices(), and indices.

Referenced by copy_indices(), and blender::ed::sculpt_paint::PositionDeformData::deform().

◆ create_node_vert_offsets() [1/2]

OffsetIndices< int > blender::ed::sculpt_paint::create_node_vert_offsets ( const CCGKey & key,
const Span< bke::pbvh::GridsNode > nodes,
const IndexMask & nodes_mask,
Array< int > & node_data )

◆ create_node_vert_offsets() [2/2]

OffsetIndices< int > blender::ed::sculpt_paint::create_node_vert_offsets ( const Span< bke::pbvh::MeshNode > nodes,
const IndexMask & nodes_mask,
Array< int > & node_data )

◆ create_node_vert_offsets_bmesh()

◆ cursor_draw_point_screen_space()

static void blender::ed::sculpt_paint::cursor_draw_point_screen_space ( const uint gpuattr,
const ARegion * region,
const float true_location[3],
const float obmat[4][4],
const int size )
static

◆ cursor_draw_point_with_symmetry()

static void blender::ed::sculpt_paint::cursor_draw_point_with_symmetry ( const uint gpuattr,
const ARegion * region,
const float true_location[3],
const Sculpt & sd,
const Object & ob,
const float radius )
static

◆ cursor_draw_tiling_preview()

static void blender::ed::sculpt_paint::cursor_draw_tiling_preview ( const uint gpuattr,
const ARegion * region,
const float true_location[3],
const Sculpt & sd,
const Object & ob,
const float radius )
static

◆ curve_mask_allocate()

static void blender::ed::sculpt_paint::curve_mask_allocate ( CurveMaskCache * curve_mask_cache,
const int diameter )
static

◆ curve_mask_free()

static void blender::ed::sculpt_paint::curve_mask_free ( CurveMaskCache * curve_mask_cache)
static

◆ CURVES_OT_sculptmode_toggle()

◆ curves_sculpt_brush_uses_spacing()

static bool blender::ed::sculpt_paint::curves_sculpt_brush_uses_spacing ( const eBrushCurvesSculptType tool)
static

◆ curves_sculpt_poll()

bool blender::ed::sculpt_paint::curves_sculpt_poll ( bContext * C)

◆ curves_sculpt_poll_view3d()

bool blender::ed::sculpt_paint::curves_sculpt_poll_view3d ( bContext * C)

Definition at line 68 of file curves_sculpt_ops.cc.

References CTX_wm_region_view3d(), and curves_sculpt_poll().

Referenced by curves_sculptmode_enter().

◆ curves_sculptmode_enter()

◆ curves_sculptmode_exit()

static void blender::ed::sculpt_paint::curves_sculptmode_exit ( bContext * C)
static

◆ curves_sculptmode_toggle_exec()

◆ diameter_to_curve_mask_size()

static size_t blender::ed::sculpt_paint::diameter_to_curve_mask_size ( const int diameter)
static

Definition at line 125 of file paint_image_2d_curve_mask.cc.

Referenced by curve_mask_allocate(), and is_curve_mask_size_valid().

◆ do_blob_brush()

void blender::ed::sculpt_paint::do_blob_brush ( const Depsgraph & depsgraph,
const Scene & scene,
const Sculpt & sd,
Object & object,
const IndexMask & node_mask )

Definition at line 279 of file crease.cc.

References depsgraph.

Referenced by do_brush_action().

◆ do_bmesh_topology_rake_brush()

◆ do_brush_action()

static void blender::ed::sculpt_paint::do_brush_action ( const Depsgraph & depsgraph,
const Scene & scene,
const Sculpt & sd,
Object & ob,
const Brush & brush,
UnifiedPaintSettings & ups,
PaintModeSettings & paint_mode_settings )
static

Definition at line 3022 of file sculpt.cc.

References blender::ed::sculpt_paint::StrokeCache::accum, blender::ed::sculpt_paint::face_set::active_face_set_get(), add_v3_v3(), blender::bke::pbvh::all_leaf_nodes(), blender::ed::sculpt_paint::StrokeCache::alt_smooth, blender::ed::sculpt_paint::StrokeCache::automasking, Brush::autosmooth_factor, UnifiedPaintSettings::average_stroke_accum, UnifiedPaintSettings::average_stroke_counter, BKE_brush_has_cube_tip(), BLI_assert, blender::ed::sculpt_paint::cloth::brush_affected_nodes_gather(), BRUSH_ANCHORED, BRUSH_DEFORM_TARGET_CLOTH_SIM, BRUSH_DIR_IN, BRUSH_INVERSE_SMOOTH_PRESSURE, BRUSH_INVERT_TO_SCRAPE_FILL, MTex::brush_map_mode, BRUSH_MASK_DRAW, BRUSH_MASK_SMOOTH, BRUSH_ORIGINAL_NORMAL, blender::ed::sculpt_paint::cloth::brush_simulation_create(), BRUSH_SMOOTH_DEFORM_LAPLACIAN, BRUSH_SMOOTH_DEFORM_SURFACE, blender::ed::sculpt_paint::cloth::brush_store_simulation_state(), brush_type_needs_original(), BRUSH_USE_COLOR_AS_DISPLACEMENT, brush_uses_topology_rake(), blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, blender::ed::sculpt_paint::auto_mask::cache_init(), blender::ed::sculpt_paint::StrokeCache::cloth_sim, copy_v3_v3(), Brush::deform_target, depsgraph, do_blob_brush(), do_bmesh_topology_rake_brush(), blender::ed::sculpt_paint::boundary::do_boundary_brush(), do_clay_brush(), do_clay_strips_brush(), do_clay_thumb_brush(), blender::ed::sculpt_paint::cloth::do_cloth_brush(), do_crease_brush(), do_displacement_eraser_brush(), do_displacement_smear_brush(), do_draw_brush(), do_draw_face_sets_brush(), do_draw_sharp_brush(), do_draw_vector_displacement_brush(), do_elastic_deform_brush(), do_enhance_details_brush(), do_fill_brush(), do_flatten_brush(), do_grab_brush(), do_gravity_brush(), do_inflate_brush(), do_layer_brush(), do_mask_brush(), do_multiplane_scrape_brush(), do_nudge_brush(), blender::ed::sculpt_paint::color::do_paint_brush(), do_pinch_brush(), blender::ed::sculpt_paint::pose::do_pose_brush(), do_relax_face_sets_brush(), do_rotate_brush(), do_scrape_brush(), blender::ed::sculpt_paint::cloth::do_simulation_step(), blender::ed::sculpt_paint::color::do_smear_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(), ELEM, blender::ed::sculpt_paint::cloth::ensure_nodes_constraints(), Brush::falloff_shape, blender::ed::sculpt_paint::face_set::find_next_available_id(), Brush::flag, Brush::flag2, blender::ed::sculpt_paint::StrokeCache::invert, invert(), blender::Array< T, InlineBufferCapacity, Allocator >::is_empty(), blender::index_mask::IndexMask::is_empty(), blender::ed::sculpt_paint::auto_mask::is_enabled(), UnifiedPaintSettings::last_stroke_valid, blender::ed::sculpt_paint::StrokeCache::location, blender::ed::sculpt_paint::StrokeCache::location_symm, M_SQRT2, Brush::mask_tool, Brush::mtex, MTEX_MAP_MODE_AREA, mul_m4_v3(), blender::ed::sculpt_paint::StrokeCache::paint_face_set, PAINT_FALLOFF_SHAPE_SPHERE, pbvh_gather_generic(), pbvh_gather_texpaint(), blender::bke::object::pbvh_get(), blender::ed::sculpt_paint::StrokeCache::pen_flip, blender::ed::sculpt_paint::pose::pose_brush_init(), blender::ed::sculpt_paint::StrokeCache::pressure, push_undo_nodes(), Sculpt, Object::sculpt, sculpt_brush_needs_normal(), Brush::sculpt_brush_type, SCULPT_BRUSH_TYPE_BLOB, SCULPT_BRUSH_TYPE_BOUNDARY, SCULPT_BRUSH_TYPE_CLAY, SCULPT_BRUSH_TYPE_CLAY_STRIPS, SCULPT_BRUSH_TYPE_CLAY_THUMB, SCULPT_BRUSH_TYPE_CLOTH, SCULPT_BRUSH_TYPE_CREASE, SCULPT_BRUSH_TYPE_DISPLACEMENT_ERASER, SCULPT_BRUSH_TYPE_DISPLACEMENT_SMEAR, SCULPT_BRUSH_TYPE_DRAW, SCULPT_BRUSH_TYPE_DRAW_FACE_SETS, SCULPT_BRUSH_TYPE_DRAW_SHARP, SCULPT_BRUSH_TYPE_ELASTIC_DEFORM, SCULPT_BRUSH_TYPE_FILL, SCULPT_BRUSH_TYPE_FLATTEN, SCULPT_BRUSH_TYPE_GRAB, SCULPT_BRUSH_TYPE_INFLATE, SCULPT_BRUSH_TYPE_LAYER, SCULPT_BRUSH_TYPE_MASK, SCULPT_BRUSH_TYPE_MULTIPLANE_SCRAPE, SCULPT_brush_type_needs_all_pbvh_nodes(), SCULPT_BRUSH_TYPE_NUDGE, SCULPT_BRUSH_TYPE_PAINT, SCULPT_BRUSH_TYPE_PINCH, SCULPT_BRUSH_TYPE_POSE, SCULPT_BRUSH_TYPE_ROTATE, SCULPT_BRUSH_TYPE_SCRAPE, SCULPT_BRUSH_TYPE_SLIDE_RELAX, SCULPT_BRUSH_TYPE_SMEAR, SCULPT_BRUSH_TYPE_SMOOTH, SCULPT_BRUSH_TYPE_SNAKE_HOOK, SCULPT_BRUSH_TYPE_THUMB, sculpt_needs_pbvh_pixels(), sculpt_pbvh_update_pixels(), SCULPT_stroke_is_first_brush_step(), SCULPT_stroke_is_main_symmetry_pass(), SCULPT_vertex_count_get(), blender::ed::sculpt_paint::cloth::sim_activate_nodes(), Brush::smooth_deform_type, blender::ed::sculpt_paint::StrokeCache::supports_gravity, blender::ed::sculpt_paint::StrokeCache::surface_smooth_laplacian_disp, Brush::topology_rake_factor, true, update_brush_local_mat(), and update_sculpt_normal().

Referenced by stroke_update_step().

◆ do_clay_brush()

◆ do_clay_strips_brush()

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

Definition at line 254 of file clay_strips.cc.

References BKE_paint_brush_for_read(), blender::bke::pbvh::BMesh, BRUSH_ORIGINAL_NORMAL, blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, calc_area_normal(), calc_brush_plane(), blender::math::cross(), depsgraph, Brush::flag, blender::bke::pbvh::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, blender::MatBase< float, 4, 4 >::identity(), 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(), plane_from_point_normal_v3(), SubdivCCG::positions, blender::ed::sculpt_paint::StrokeCache::radius, blender::ed::sculpt_paint::StrokeCache::scale, SCULPT_brush_plane_offset_get(), SCULPT_DISP_DIR_AREA, Brush::sculpt_plane, SCULPT_tilt_apply_to_normal(), blender::bke::pbvh::Tree::tag_positions_changed(), Brush::tilt_strength_factor, Brush::tip_scale_x, 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 do_brush_action().

◆ do_clay_thumb_brush()

void blender::ed::sculpt_paint::do_clay_thumb_brush ( const Depsgraph & depsgraph,
const Sculpt & sd,
Object & object,
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, calc_area_normal(), 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::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, blender::MatBase< float, 4, 4 >::identity(), invert_m4_m4(), 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, mul_m4_m4m4(), 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 do_brush_action().

◆ do_crease_brush()

void blender::ed::sculpt_paint::do_crease_brush ( const Depsgraph & depsgraph,
const Scene & scene,
const Sculpt & sd,
Object & object,
const IndexMask & node_mask )

Definition at line 270 of file crease.cc.

References depsgraph.

Referenced by do_brush_action().

◆ do_displacement_eraser_brush()

◆ do_displacement_smear_brush()

◆ do_draw_brush()

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

◆ do_draw_face_sets_brush()

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

◆ do_draw_sharp_brush()

◆ do_draw_vector_displacement_brush()

◆ do_elastic_deform_brush()

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

◆ do_enhance_details_brush()

◆ do_fill_brush()

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

Definition at line 271 of file plane.cc.

References depsgraph, filter_above_plane_factors(), and verts.

Referenced by do_brush_action().

◆ do_flatten_brush()

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

Definition at line 251 of file plane.cc.

References depsgraph.

Referenced by do_brush_action().

◆ do_grab_brush()

◆ do_gravity_brush()

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

◆ do_inflate_brush()

◆ do_layer_brush()

◆ do_mask_brush()

◆ do_multiplane_scrape_brush()

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

Definition at line 518 of file multiplane_scrape.cc.

References angle_v3v3(), BKE_paint_brush_for_read(), BRUSH_MULTIPLANE_SCRAPE_DYNAMIC, BRUSH_ORIGINAL_NORMAL, blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, calc_area_normal(), calc_bmesh(), calc_brush_plane(), calc_faces(), calc_grids(), blender::math::cross(), DEG2RADF, depsgraph, do_multiplane_scrape_brush(), blender::math::dot(), Brush::flag, Brush::flag2, float, blender::index_mask::IndexMask::foreach_index(), blender::ed::sculpt_paint::StrokeCache::grab_delta_symm, SubdivCCG::grid_area, 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::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, 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_brush_plane_offset_get(), 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::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 do_brush_action(), and do_multiplane_scrape_brush().

◆ do_nudge_brush()

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

◆ do_pinch_brush()

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

Definition at line 175 of file pinch.cc.

References BKE_paint_brush_for_read(), blender::bke::pbvh::BMesh, blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, calc_brush_plane(), blender::math::cross(), depsgraph, blender::ed::sculpt_paint::PositionDeformData::eval, blender::bke::pbvh::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, 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 do_brush_action().

◆ do_radial_symmetry()

static void blender::ed::sculpt_paint::do_radial_symmetry ( const Depsgraph & depsgraph,
const Scene & scene,
const Sculpt & sd,
Object & ob,
const Brush & brush,
UnifiedPaintSettings & ups,
PaintModeSettings & paint_mode_settings,
const BrushActionFunc action,
const ePaintSymmetryFlags symm,
const int axis,
const float  )
static

◆ do_relax_face_sets_brush()

◆ do_rotate_brush()

◆ do_scrape_brush()

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

Definition at line 293 of file plane.cc.

References depsgraph, filter_below_plane_factors(), and verts.

Referenced by do_brush_action().

◆ do_smooth_brush()

◆ do_smooth_mask_brush()

◆ do_snake_hook_brush()

◆ do_surface_smooth_brush()

◆ do_symmetrical_brush_actions()

◆ do_thumb_brush()

◆ do_tiled()

◆ do_topology_relax_brush()

◆ do_topology_slide_brush()

◆ draw_bezier_handle_lines()

BLI_INLINE void blender::ed::sculpt_paint::draw_bezier_handle_lines ( uint pos,
const float sel_col[4],
BezTriple * bez )

◆ draw_rect_point()

BLI_INLINE void blender::ed::sculpt_paint::draw_rect_point ( uint pos,
const float sel_col[4],
const float handle_col[4],
const float * co,
float width,
bool selected )

◆ draw_tri_point()

BLI_INLINE void blender::ed::sculpt_paint::draw_tri_point ( uint pos,
const float sel_col[4],
const float pivot_col[4],
float * co,
float width,
bool selected )

◆ dynamic_topology_update()

static void blender::ed::sculpt_paint::dynamic_topology_update ( const Depsgraph & depsgraph,
const Scene & ,
const Sculpt & sd,
Object & ob,
const Brush & brush,
UnifiedPaintSettings & ,
PaintModeSettings &  )
static

Definition at line 2904 of file sculpt.cc.

References blender::ed::sculpt_paint::StrokeCache::accum, BKE_pbvh_bmesh_node_save_orig(), BKE_pbvh_node_mark_topology_update(), SculptSession::bm, SculptSession::bm_log, blender::bke::pbvh::bmesh_update_topology(), SculptVertexInfo::boundary, BRUSH_FRONTFACE, blender::ed::sculpt_paint::dyntopo::detail_size::brush_to_detail_size(), brush_type_needs_original(), SculptSession::cache, blender::bits::BitVector< InlineBufferCapacity, Allocator >::clear(), Sculpt::constant_detail, blender::ed::sculpt_paint::dyntopo::detail_size::constant_to_detail_size(), copy_v3_v3(), depsgraph, Sculpt::detail_percent, Sculpt::detail_size, blender::ed::sculpt_paint::StrokeCache::dyntopo_pixel_radius, blender::ed::sculpt_paint::dyntopo::detail_size::EDGE_LENGTH_MIN_FACTOR, Brush::falloff_shape, Brush::flag, Sculpt::flags, blender::index_mask::IndexMask::foreach_index(), blender::index_mask::IndexMask::is_empty(), blender::ed::sculpt_paint::StrokeCache::location, blender::ed::sculpt_paint::StrokeCache::location_symm, blender::ed::sculpt_paint::undo::Mask, mul_m4_v3(), blender::bke::pbvh::Tree::nodes(), PAINT_FALLOFF_SHAPE_SPHERE, PBVH_Collapse, pbvh_gather_generic(), blender::bke::object::pbvh_get(), PBVH_Subdivide, blender::ed::sculpt_paint::undo::Position, blender::ed::sculpt_paint::undo::push_nodes(), blender::ed::sculpt_paint::StrokeCache::radius, blender::ed::sculpt_paint::dyntopo::detail_size::relative_to_detail_size(), Object::sculpt, Brush::sculpt_brush_type, SCULPT_BRUSH_TYPE_MASK, SCULPT_BRUSH_TYPE_SIMPLIFY, SCULPT_DYNTOPO_COLLAPSE, SCULPT_DYNTOPO_DETAIL_BRUSH, SCULPT_DYNTOPO_DETAIL_CONSTANT, SCULPT_DYNTOPO_DETAIL_MANUAL, SCULPT_DYNTOPO_SUBDIVIDE, blender::bke::pbvh::Tree::tag_positions_changed(), blender::bke::pbvh::Tree::tag_topology_changed(), true, SculptSession::vertex_info, and blender::ed::sculpt_paint::StrokeCache::view_normal_symm.

Referenced by stroke_update_step().

◆ elastic_transform_node_bmesh()

◆ elastic_transform_node_grids()

◆ elastic_transform_node_mesh()

◆ end_transform()

void blender::ed::sculpt_paint::end_transform ( bContext * C,
Object & ob )

◆ ensure_editable_drawings()

◆ ensure_valid_pivot()

◆ fake_neighbor_init()

static void blender::ed::sculpt_paint::fake_neighbor_init ( Object & object,
const float max_dist )
static

◆ fake_neighbor_search()

◆ fake_neighbor_search_bmesh()

◆ fake_neighbor_search_grids()

static void blender::ed::sculpt_paint::fake_neighbor_search_grids ( const SculptSession & ss,
const CCGKey & key,
const Span< float3 > positions,
const BitGroupVector<> & grid_hidden,
const float3 & location,
const float max_distance_sq,
const int island_id,
const bke::pbvh::GridsNode & node,
NearestVertData & nvtd )
static

◆ fake_neighbor_search_mesh()

static void blender::ed::sculpt_paint::fake_neighbor_search_mesh ( const SculptSession & ss,
const Span< float3 > vert_positions,
const Span< bool > hide_vert,
const float3 & location,
const float max_distance_sq,
const int island_id,
const bke::pbvh::MeshNode & node,
NearestVertData & nvtd )
static

◆ fill_active_color()

static bool blender::ed::sculpt_paint::fill_active_color ( Object & ob,
ColorPaint4f fill_color,
bool only_selected = true,
bool affect_alpha = true )
static

◆ fill_bm_face_or_corner_attribute()

template<typename T >
static void blender::ed::sculpt_paint::fill_bm_face_or_corner_attribute ( BMesh & bm,
const T & value,
const AttrDomain domain,
const int cd_offset,
const bool use_vert_sel )
static

◆ fill_factor_from_hide() [1/3]

void blender::ed::sculpt_paint::fill_factor_from_hide ( const Set< BMVert *, 0 > & verts,
MutableSpan< float > r_factors )

◆ fill_factor_from_hide() [2/3]

◆ fill_factor_from_hide() [3/3]

◆ fill_factor_from_hide_and_mask() [1/5]

void blender::ed::sculpt_paint::fill_factor_from_hide_and_mask ( const BMesh & bm,
const Set< BMVert *, 0 > & verts,
MutableSpan< float > r_factors )

◆ fill_factor_from_hide_and_mask() [2/5]

◆ fill_factor_from_hide_and_mask() [3/5]

◆ fill_mesh_color()

static void blender::ed::sculpt_paint::fill_mesh_color ( Mesh & mesh,
const ColorPaint4f & color,
const StringRef attribute_name,
const bool use_vert_sel,
const bool use_face_sel,
const bool affect_alpha )
static

◆ fill_mesh_face_or_corner_attribute()

template<typename T >
static void blender::ed::sculpt_paint::fill_mesh_face_or_corner_attribute ( Mesh & mesh,
const T & value,
const AttrDomain domain,
const MutableSpan< T > data,
const bool use_vert_sel,
const bool use_face_sel,
const bool affect_alpha )
static

◆ filter_above_plane_factors() [1/2]

void blender::ed::sculpt_paint::filter_above_plane_factors ( Span< float3 > positions,
const float4 & plane,
MutableSpan< float > factors )

Definition at line 7569 of file sculpt.cc.

References filter_above_plane_factors(), and plane_point_side_v3().

◆ filter_above_plane_factors() [2/2]

void blender::ed::sculpt_paint::filter_above_plane_factors ( Span< float3 > vert_positions,
Span< int > verts,
const float4 & plane,
MutableSpan< float > factors )

◆ filter_below_plane_factors() [1/2]

void blender::ed::sculpt_paint::filter_below_plane_factors ( Span< float3 > positions,
const float4 & plane,
MutableSpan< float > factors )

Definition at line 7546 of file sculpt.cc.

References filter_below_plane_factors(), and plane_point_side_v3().

◆ filter_below_plane_factors() [2/2]

void blender::ed::sculpt_paint::filter_below_plane_factors ( Span< float3 > vert_positions,
Span< int > verts,
const float4 & plane,
MutableSpan< float > factors )

Ignore points below the plane.

Definition at line 7534 of file sculpt.cc.

References filter_below_plane_factors(), plane_point_side_v3(), and verts.

Referenced by do_scrape_brush(), filter_below_plane_factors(), and filter_below_plane_factors().

◆ filter_distances_with_radius()

◆ filter_plane_side_factors()

static BLI_NOINLINE void blender::ed::sculpt_paint::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

◆ filter_plane_trim_limit_factors()

void blender::ed::sculpt_paint::filter_plane_trim_limit_factors ( const Brush & brush,
const StrokeCache & cache,
Span< float3 > translations,
MutableSpan< float > factors )

◆ filter_region_clip_factors() [1/2]

◆ filter_region_clip_factors() [2/2]

void blender::ed::sculpt_paint::filter_region_clip_factors ( const SculptSession & ss,
Span< float3 > vert_positions,
Span< int > verts,
MutableSpan< float > factors )

When the 3D view's clipping planes are enabled, brushes shouldn't have any effect on vertices outside of the planes, because they're not visible. This function disables the factors for those vertices.

Definition at line 6639 of file sculpt.cc.

References BLI_assert, SculptSession::cache, ED_view3d_clipping_test(), filter_region_clip_factors(), blender::ed::sculpt_paint::StrokeCache::mirror_symmetry_pass, blender::ed::sculpt_paint::StrokeCache::radial_symmetry_pass, SculptSession::rv3d, ViewContext::rv3d, RV3D_CLIPPING_ENABLED, blender::MutableSpan< T >::size(), blender::ed::sculpt_paint::StrokeCache::symm_rot_mat_inv, symmetry_flip(), blender::math::transform_point(), SculptSession::v3d, ViewContext::v3d, blender::ed::sculpt_paint::StrokeCache::vc, and verts.

Referenced by calc_bmesh(), calc_faces(), calc_factors_common_bmesh(), calc_factors_common_from_orig_data_bmesh(), calc_factors_common_from_orig_data_grids(), calc_factors_common_from_orig_data_mesh(), calc_factors_common_grids(), calc_factors_common_mesh(), calc_factors_common_mesh_indexed(), blender::ed::sculpt_paint::cloth::calc_forces_bmesh(), blender::ed::sculpt_paint::cloth::calc_forces_grids(), blender::ed::sculpt_paint::cloth::calc_forces_mesh(), calc_grids(), blender::ed::sculpt_paint::color::do_color_smooth_task(), blender::ed::sculpt_paint::color::do_paint_brush_task(), blender::ed::sculpt_paint::color::do_smear_brush_task(), filter_region_clip_factors(), filter_region_clip_factors(), sample_node_surface_bmesh(), sample_node_surface_grids(), and sample_node_surface_mesh().

◆ filter_translations_with_symmetry()

static BLI_NOINLINE void blender::ed::sculpt_paint::filter_translations_with_symmetry ( const Span< float3 > positions,
const ePaintSymmetryFlags symm,
const MutableSpan< float3 > translations )
static

◆ filter_verts_outside_symmetry_area()

void blender::ed::sculpt_paint::filter_verts_outside_symmetry_area ( Span< float3 > positions,
const float3 & pivot,
ePaintSymmetryFlags symm,
MutableSpan< float > factors )

◆ find_curves_brush_position()

static std::optional< float3 > blender::ed::sculpt_paint::find_curves_brush_position ( const CurvesGeometry & curves,
const float3 & ray_start_cu,
const float3 & ray_end_cu,
const float brush_radius_re,
const ARegion & region,
const RegionView3D & rv3d,
const Object & object,
const Span< float3 > positions )
static

◆ find_symm_verts()

◆ find_symm_verts_bmesh()

◆ find_symm_verts_grids()

◆ find_symm_verts_mesh()

◆ float_selection_ensure()

◆ flush_update_done()

void blender::ed::sculpt_paint::flush_update_done ( const bContext * C,
Object & ob,
UpdateType update_type )

◆ flush_update_step()

void blender::ed::sculpt_paint::flush_update_step ( bContext * C,
UpdateType update_type )

◆ gather_bmesh_normals()

◆ gather_bmesh_positions() [1/2]

void blender::ed::sculpt_paint::gather_bmesh_positions ( const Set< BMVert *, 0 > & verts,
MutableSpan< float3 > positions )

◆ gather_bmesh_positions() [2/2]

MutableSpan< float3 > blender::ed::sculpt_paint::gather_bmesh_positions ( const Set< BMVert *, 0 > & verts,
Vector< float3 > & positions )
inline

Definition at line 141 of file mesh_brush_common.hh.

References gather_bmesh_positions(), and verts.

◆ gather_data_bmesh() [1/2]

template<typename T >
MutableSpan< T > blender::ed::sculpt_paint::gather_data_bmesh ( const Span< T > src,
const Set< BMVert *, 0 > & verts,
Vector< T > & dst )

◆ gather_data_bmesh() [2/2]

◆ gather_data_bmesh< float >()

template void blender::ed::sculpt_paint::gather_data_bmesh< float > ( Span< float > ,
const Set< BMVert *, 0 > & ,
MutableSpan< float >  )

◆ gather_data_bmesh< float3 >()

template void blender::ed::sculpt_paint::gather_data_bmesh< float3 > ( Span< float3 > ,
const Set< BMVert *, 0 > & ,
MutableSpan< float3 >  )

◆ gather_data_bmesh< int >()

template void blender::ed::sculpt_paint::gather_data_bmesh< int > ( Span< int > ,
const Set< BMVert *, 0 > & ,
MutableSpan< int >  )

◆ gather_data_grids() [1/2]

template<typename T >
MutableSpan< T > blender::ed::sculpt_paint::gather_data_grids ( const SubdivCCG & subdiv_ccg,
const Span< T > src,
const Span< int > grids,
Vector< T > & dst )

◆ gather_data_grids() [2/2]

template<typename T >
void blender::ed::sculpt_paint::gather_data_grids ( const SubdivCCG & subdiv_ccg,
Span< T > src,
Span< int > grids,
MutableSpan< T > node_data )

Definition at line 6092 of file sculpt.cc.

References BKE_subdiv_ccg_key_top_level(), BLI_assert, blender::MutableSpan< T >::copy_from(), gather_data_grids(), CCGKey::grid_area, blender::Span< T >::index_range(), blender::MutableSpan< T >::size(), blender::Span< T >::size(), blender::MutableSpan< T >::slice(), and blender::Span< T >::slice().

Referenced by blender::ed::sculpt_paint::boundary::calc_bend_grids(), blender::ed::sculpt_paint::cloth::calc_constraint_factors(), blender::ed::sculpt_paint::filter::calc_enhance_details_filter(), blender::ed::sculpt_paint::filter::calc_erase_displacement_filter(), blender::ed::sculpt_paint::cloth::calc_forces_grids(), blender::ed::sculpt_paint::boundary::calc_grab_grids(), blender::ed::sculpt_paint::pose::calc_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_grids(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), blender::ed::sculpt_paint::boundary::calc_slide_grids(), blender::ed::sculpt_paint::boundary::calc_smooth_grids(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_twist_grids(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_grids(), gather_data_grids(), gather_data_grids(), gather_grids_normals(), gather_grids_positions(), blender::ed::sculpt_paint::mask::gather_mask_grids(), blender::ed::sculpt_paint::mask::increase_contrast_mask_grids(), blender::ed::sculpt_paint::mask::sharpen_mask_grids(), blender::ed::sculpt_paint::undo::store_mask_grids(), and blender::ed::sculpt_paint::undo::store_positions_grids().

◆ gather_data_grids< float >()

◆ gather_data_grids< float3 >()

◆ gather_data_grids< int >()

template void blender::ed::sculpt_paint::gather_data_grids< int > ( const SubdivCCG & ,
Span< int > ,
Span< int > ,
MutableSpan< int >  )

◆ gather_data_mesh() [1/2]

template<typename T >
MutableSpan< T > blender::ed::sculpt_paint::gather_data_mesh ( const Span< T > src,
const Span< int > indices,
Vector< T > & dst )

◆ gather_data_mesh() [2/2]

template<typename T >
void blender::ed::sculpt_paint::gather_data_mesh ( Span< T > src,
Span< int > indices,
MutableSpan< T > dst )

Gather data from an array aligned with all geometry vertices.

Definition at line 6082 of file sculpt.cc.

References BLI_assert, gather_data_mesh(), and blender::MutableSpan< T >::size().

Referenced by blender::ed::sculpt_paint::cloth::apply_filter_forces_mesh(), blender::ed::sculpt_paint::mask::apply_mask_mesh(), blender::ed::sculpt_paint::project::apply_projection_mesh(), blender::ed::sculpt_paint::cloth::apply_scale_filter(), blender::ed::sculpt_paint::boundary::calc_bend_mesh(), blender::ed::sculpt_paint::cloth::calc_constraint_factors(), blender::ed::sculpt_paint::filter::calc_enhance_details_filter(), calc_faces(), blender::ed::sculpt_paint::cloth::calc_forces_bmesh(), blender::ed::sculpt_paint::cloth::calc_forces_mesh(), blender::ed::sculpt_paint::boundary::calc_grab_mesh(), blender::ed::sculpt_paint::filter::calc_inflate_filter(), blender::ed::sculpt_paint::boundary::calc_inflate_mesh(), blender::ed::sculpt_paint::pose::calc_mesh(), blender::ed::sculpt_paint::filter::calc_random_filter(), blender::ed::sculpt_paint::filter::calc_scale_filter(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), blender::ed::sculpt_paint::boundary::calc_slide_mesh(), blender::ed::sculpt_paint::filter::calc_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_smooth_mesh(), blender::ed::sculpt_paint::filter::calc_sphere_filter(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_twist_mesh(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_mesh(), blender::ed::sculpt_paint::color::do_paint_brush_task(), elastic_transform_node_mesh(), blender::ed::sculpt_paint::face_set::face_hide_update(), blender::ed::sculpt_paint::face_set::face_sets_update(), blender::ed::sculpt_paint::hide::flush_face_changes_node(), gather_data_mesh(), gather_data_mesh(), blender::ed::sculpt_paint::mask::increase_contrast_mask_mesh(), sample_node_surface_mesh(), blender::ed::sculpt_paint::mask::sharpen_mask_mesh(), blender::ed::sculpt_paint::cloth::solve_verts_simulation(), blender::ed::sculpt_paint::undo::store_face_sets(), blender::ed::sculpt_paint::undo::store_mask_mesh(), blender::ed::sculpt_paint::undo::store_positions_mesh(), blender::ed::sculpt_paint::mask::update_mask_mesh(), and blender::ed::sculpt_paint::hide::vert_hide_update().

◆ gather_data_mesh< bool >()

template void blender::ed::sculpt_paint::gather_data_mesh< bool > ( Span< bool > ,
Span< int > ,
MutableSpan< bool >  )

◆ gather_data_mesh< float >()

◆ gather_data_mesh< float3 >()

◆ gather_data_mesh< float4 >()

◆ gather_data_mesh< int >()

◆ gather_grids_normals()

void blender::ed::sculpt_paint::gather_grids_normals ( const SubdivCCG & subdiv_ccg,
Span< int > grids,
MutableSpan< float3 > normals )

◆ gather_grids_positions()

MutableSpan< float3 > blender::ed::sculpt_paint::gather_grids_positions ( const SubdivCCG & subdiv_ccg,
const Span< int > grids,
Vector< float3 > & positions )
inline

Fill the output array with all positions in the geometry referenced by the indices.

Definition at line 131 of file mesh_brush_common.hh.

References BKE_subdiv_ccg_key_top_level(), gather_data_grids(), CCGKey::grid_area, SubdivCCG::positions, and blender::Span< T >::size().

Referenced by blender::ed::sculpt_paint::cloth::apply_filter_forces_grids(), blender::ed::sculpt_paint::project::apply_projection_grids(), calc_area_normal_and_center_node_grids(), blender::ed::sculpt_paint::boundary::calc_bend_grids(), blender::ed::sculpt_paint::filter::calc_enhance_details_filter(), blender::ed::sculpt_paint::filter::calc_erase_displacement_filter(), blender::ed::sculpt_paint::cloth::calc_forces_grids(), blender::ed::sculpt_paint::boundary::calc_grab_grids(), calc_grids(), blender::ed::sculpt_paint::pose::calc_grids(), blender::ed::sculpt_paint::filter::calc_inflate_filter(), blender::ed::sculpt_paint::boundary::calc_inflate_grids(), blender::ed::sculpt_paint::filter::calc_random_filter(), blender::ed::sculpt_paint::filter::calc_relax_face_sets_filter(), blender::ed::sculpt_paint::filter::calc_relax_filter(), blender::ed::sculpt_paint::filter::calc_scale_filter(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), blender::ed::sculpt_paint::boundary::calc_slide_grids(), blender::ed::sculpt_paint::filter::calc_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_smooth_grids(), blender::ed::sculpt_paint::filter::calc_sphere_filter(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_twist_grids(), elastic_transform_node_grids(), and sample_node_surface_grids().

◆ geometry_preview_lines_update()

◆ get_asset_library_from_prop()

◆ get_fill_boundary_layers()

static VArray< bool > blender::ed::sculpt_paint::get_fill_boundary_layers ( const GreasePencil & grease_pencil,
eGP_FillLayerModes fill_layer_mode )
static

◆ get_stroke_operation()

static std::unique_ptr< GreasePencilStrokeOperation > blender::ed::sculpt_paint::get_stroke_operation ( bContext & C,
wmOperator * op )
static

Definition at line 87 of file grease_pencil_draw_ops.cc.

References BKE_paint_brush_for_read(), BKE_paint_get_active_from_context(), BKE_paintmode_get_active_from_context(), BLI_assert_unreachable, BRUSH_STROKE_ERASE, BRUSH_STROKE_SMOOTH, GPAINT_BRUSH_TYPE_DRAW, GPAINT_BRUSH_TYPE_ERASE, GPAINT_BRUSH_TYPE_FILL, GPAINT_BRUSH_TYPE_TINT, GPencil, Brush::gpencil_brush_type, Brush::gpencil_sculpt_brush_type, Brush::gpencil_vertex_brush_type, Brush::gpencil_weight_brush_type, GPSCULPT_BRUSH_TYPE_CLONE, GPSCULPT_BRUSH_TYPE_GRAB, GPSCULPT_BRUSH_TYPE_PINCH, GPSCULPT_BRUSH_TYPE_PUSH, GPSCULPT_BRUSH_TYPE_RANDOMIZE, GPSCULPT_BRUSH_TYPE_SMOOTH, GPSCULPT_BRUSH_TYPE_STRENGTH, GPSCULPT_BRUSH_TYPE_THICKNESS, GPSCULPT_BRUSH_TYPE_TWIST, GPVERTEX_BRUSH_TYPE_AVERAGE, GPVERTEX_BRUSH_TYPE_BLUR, GPVERTEX_BRUSH_TYPE_DRAW, GPVERTEX_BRUSH_TYPE_REPLACE, GPVERTEX_BRUSH_TYPE_SMEAR, GPVERTEX_BRUSH_TYPE_TINT, GPWEIGHT_BRUSH_TYPE_AVERAGE, GPWEIGHT_BRUSH_TYPE_BLUR, GPWEIGHT_BRUSH_TYPE_DRAW, GPWEIGHT_BRUSH_TYPE_SMEAR, blender::ed::sculpt_paint::greasepencil::new_clone_operation(), blender::ed::sculpt_paint::greasepencil::new_erase_operation(), blender::ed::sculpt_paint::greasepencil::new_grab_operation(), blender::ed::sculpt_paint::greasepencil::new_paint_operation(), blender::ed::sculpt_paint::greasepencil::new_pinch_operation(), blender::ed::sculpt_paint::greasepencil::new_push_operation(), blender::ed::sculpt_paint::greasepencil::new_randomize_operation(), blender::ed::sculpt_paint::greasepencil::new_smooth_operation(), blender::ed::sculpt_paint::greasepencil::new_strength_operation(), blender::ed::sculpt_paint::greasepencil::new_thickness_operation(), blender::ed::sculpt_paint::greasepencil::new_tint_operation(), blender::ed::sculpt_paint::greasepencil::new_twist_operation(), blender::ed::sculpt_paint::greasepencil::new_vertex_average_operation(), blender::ed::sculpt_paint::greasepencil::new_vertex_blur_operation(), blender::ed::sculpt_paint::greasepencil::new_vertex_paint_operation(), blender::ed::sculpt_paint::greasepencil::new_vertex_replace_operation(), blender::ed::sculpt_paint::greasepencil::new_vertex_smear_operation(), blender::ed::sculpt_paint::greasepencil::new_weight_paint_average_operation(), blender::ed::sculpt_paint::greasepencil::new_weight_paint_blur_operation(), blender::ed::sculpt_paint::greasepencil::new_weight_paint_draw_operation(), blender::ed::sculpt_paint::greasepencil::new_weight_paint_smear_operation(), wmOperator::ptr, RNA_enum_get(), SculptGreasePencil, VertexGPencil, and WeightGPencil.

Referenced by stroke_update_step().

◆ get_symmetry_brush_transforms()

Vector< float4x4 > blender::ed::sculpt_paint::get_symmetry_brush_transforms ( const eCurvesSymmetryType symmetry)

Definition at line 321 of file curves_sculpt_brush.cc.

References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), CURVES_SYMMETRY_X, CURVES_SYMMETRY_Y, CURVES_SYMMETRY_Z, blender::MatBase< float, 4, 4 >::identity(), x, y, and z().

Referenced by blender::ed::sculpt_paint::CombOperationExecutor::comb_projected_with_symmetry(), blender::ed::sculpt_paint::CombOperationExecutor::comb_spherical_with_symmetry(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_projected_with_symmetry(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_spherical_with_symmetry(), blender::ed::sculpt_paint::PuffOperationExecutor::find_curve_weights_projected_with_symmetry(), blender::ed::sculpt_paint::SlideOperationExecutor::find_curves_to_slide_with_symmetry(), blender::ed::sculpt_paint::PuffOperationExecutor::find_curves_weights_spherical_with_symmetry(), blender::ed::sculpt_paint::SmoothOperationExecutor::find_projected_smooth_factors_with_symmetry(), blender::ed::sculpt_paint::SmoothOperationExecutor::find_spherical_smooth_factors_with_symmetry(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::gather_influences_projected(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::gather_influences_spherical(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_curve_selection_projected_with_symmetry(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_curve_selection_spherical_with_symmetry(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_point_selection_projected_with_symmetry(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_point_selection_spherical_with_symmetry(), blender::ed::sculpt_paint::PinchOperationExecutor::pinch_projected_with_symmetry(), blender::ed::sculpt_paint::PinchOperationExecutor::pinch_spherical_with_symmetry(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::projected_snake_hook_with_symmetry(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::reduce_density_projected_with_symmetry(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::reduce_density_spherical_with_symmetry(), blender::ed::sculpt_paint::AddOperationExecutor::sample_in_center_with_symmetry(), blender::ed::sculpt_paint::AddOperationExecutor::sample_projected_with_symmetry(), blender::ed::sculpt_paint::DensityAddOperationExecutor::sample_projected_with_symmetry(), blender::ed::sculpt_paint::AddOperationExecutor::sample_spherical_with_symmetry(), blender::ed::sculpt_paint::DensityAddOperationExecutor::sample_spherical_with_symmetry(), and blender::ed::sculpt_paint::SnakeHookOperatorExecutor::spherical_snake_hook_with_symmetry().

◆ grease_pencil_apply_fill()

static bool blender::ed::sculpt_paint::grease_pencil_apply_fill ( bContext & C,
wmOperator & op,
const wmEvent & event )
static

Definition at line 1332 of file grease_pencil_draw_ops.cc.

References blender::IndexRange::after(), blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), BKE_brush_tag_unsaved_changes(), BKE_paint_brush(), BLI_rcti_isect_pt_v(), blender::ed::greasepencil::calculate_texture_space(), blender::bke::AttributeAccessor::contains(), CTX_data_active_object(), CTX_data_depsgraph_pointer(), CTX_data_scene(), CTX_data_tool_settings(), CTX_wm_region(), CTX_wm_window(), blender::bke::Curve, blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), wmOperator::customdata, ED_view3d_viewcontext_init(), ensure_editable_drawings(), BrushGpencilSettings::fill_extend_fac, BrushGpencilSettings::fill_layer_mode, BrushGpencilSettings::fill_simplylvl, BrushGpencilSettings::fill_threshold, blender::bke::SpanAttributeWriter< T >::finish(), blender::ed::greasepencil::FitToView, BrushGpencilSettings::flag, blender::bke::GeometrySet::from_curves(), Curves::geometry, blender::bke::GeometrySet::get_curves_for_write(), get_fill_boundary_layers(), GP_BRUSH_FILL_HIDE, ToolSettings::gp_paint, GP_TOOL_FLAG_PAINT_ONBACK, ToolSettings::gpencil_flags, Brush::gpencil_settings, grease_pencil_fill_get_extension_data(), blender::bke::GeometrySet::has_curves(), blender::geometry::join_geometries(), blender::bke::greasepencil::LEGACY_RADIUS_CONVERSION_FACTOR, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), wmEvent::mval, GpPaint::paint, simplify_fixed(), smooth_fill_strokes(), blender::bke::CurvesGeometry::tag_topology_changed(), ViewContext::v3d, WM_cursor_modal_restore(), and wmEvent::xy.

Referenced by grease_pencil_fill_event_modal_map().

◆ grease_pencil_brush_cursor_draw()

static void blender::ed::sculpt_paint::grease_pencil_brush_cursor_draw ( PaintCursorContext * pcontext)
static

Definition at line 1508 of file paint_cursor.cc.

References BKE_brush_color_get(), BKE_brush_size_get(), BKE_grease_pencil_object_material_from_brush_get(), BLI_rcti_isect_pt(), blender::ed::sculpt_paint::PaintCursorContext::brush, BRUSH_LOCK_SIZE, BRUSH_SMOOTH_STROKE, blender::ed::sculpt_paint::PaintCursorContext::C, CTX_data_active_object(), ELEM, Brush::flag, ToolSettings::gp_paint, GPAINT_BRUSH_TYPE_DRAW, GPAINT_BRUSH_TYPE_ERASE, GPAINT_BRUSH_TYPE_FILL, GPAINT_BRUSH_TYPE_TINT, GPencil, Brush::gpencil_brush_type, Brush::gpencil_settings, GPPAINT_FLAG_USE_VERTEXCOLOR, GPPAINT_MODE_BOTH, GPPAINT_MODE_STROKE, GPU_line_width(), grease_pencil_eraser_draw(), imm_draw_circle_wire_2d(), immUniformColor4f(), int, blender::ed::sculpt_paint::PaintCursorContext::mode, GpPaint::mode, OB_GREASE_PENCIL, blender::ed::sculpt_paint::PaintCursorContext::paint, Paint::paint_cursor_col, blender::ed::sculpt_paint::PaintCursorContext::pixel_radius, blender::ed::sculpt_paint::PaintCursorContext::pos, blender::ed::greasepencil::DrawingPlacement::project(), project_brush_radius(), blender::ed::sculpt_paint::PaintCursorContext::region, Brush::rgb, GreasePencil::runtime, blender::ed::sculpt_paint::PaintCursorContext::scene, ViewContext::scene, Brush::size, MaterialGPencilStyle::stroke_rgba, Scene::toolsettings, Brush::unprojected_radius, ViewContext::v3d, blender::ed::sculpt_paint::PaintCursorContext::vc, BrushGpencilSettings::vertex_mode, VertexGPencil, ARegion::winrct, blender::ed::sculpt_paint::PaintCursorContext::x, blender::VecBase< T, Size >::xyz(), and blender::ed::sculpt_paint::PaintCursorContext::y.

Referenced by paint_draw_2D_view_brush_cursor().

◆ grease_pencil_brush_stroke_cancel()

static void blender::ed::sculpt_paint::grease_pencil_brush_stroke_cancel ( bContext * C,
wmOperator * op )
static

◆ grease_pencil_brush_stroke_invoke()

◆ grease_pencil_brush_stroke_modal()

static int blender::ed::sculpt_paint::grease_pencil_brush_stroke_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ grease_pencil_brush_stroke_poll()

static bool blender::ed::sculpt_paint::grease_pencil_brush_stroke_poll ( bContext * C)
static

◆ grease_pencil_eraser_draw()

◆ grease_pencil_fill_cancel()

static void blender::ed::sculpt_paint::grease_pencil_fill_cancel ( bContext * C,
wmOperator * op )
static

Definition at line 1718 of file grease_pencil_draw_ops.cc.

References grease_pencil_fill_exit().

Referenced by GREASE_PENCIL_OT_fill().

◆ grease_pencil_fill_event_modal_map()

◆ grease_pencil_fill_exit()

◆ grease_pencil_fill_extension_cut()

◆ grease_pencil_fill_extension_lines_from_circles()

◆ grease_pencil_fill_get_extension_data()

◆ grease_pencil_fill_init()

◆ grease_pencil_fill_invoke()

◆ grease_pencil_fill_modal()

◆ grease_pencil_fill_overlay_cb()

◆ grease_pencil_fill_status_indicators()

◆ grease_pencil_fill_update_overlay()

◆ GREASE_PENCIL_OT_brush_stroke()

◆ GREASE_PENCIL_OT_fill()

◆ GREASE_PENCIL_OT_sculpt_paint()

◆ GREASE_PENCIL_OT_vertex_brush_stroke()

◆ GREASE_PENCIL_OT_weight_brush_stroke()

◆ grease_pencil_sculpt_paint_cancel()

static void blender::ed::sculpt_paint::grease_pencil_sculpt_paint_cancel ( bContext * C,
wmOperator * op )
static

◆ grease_pencil_sculpt_paint_invoke()

◆ grease_pencil_sculpt_paint_modal()

static int blender::ed::sculpt_paint::grease_pencil_sculpt_paint_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ grease_pencil_sculpt_paint_poll()

static bool blender::ed::sculpt_paint::grease_pencil_sculpt_paint_poll ( bContext * C)
static

◆ grease_pencil_update_extend()

static void blender::ed::sculpt_paint::grease_pencil_update_extend ( bContext & C,
GreasePencilFillOpData & op_data )
static

◆ grease_pencil_vertex_brush_stroke_cancel()

static void blender::ed::sculpt_paint::grease_pencil_vertex_brush_stroke_cancel ( bContext * C,
wmOperator * op )
static

◆ grease_pencil_vertex_brush_stroke_invoke()

◆ grease_pencil_vertex_brush_stroke_modal()

static int blender::ed::sculpt_paint::grease_pencil_vertex_brush_stroke_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ grease_pencil_vertex_brush_stroke_poll()

static bool blender::ed::sculpt_paint::grease_pencil_vertex_brush_stroke_poll ( bContext * C)
static

◆ grease_pencil_weight_brush_stroke_cancel()

static void blender::ed::sculpt_paint::grease_pencil_weight_brush_stroke_cancel ( bContext * C,
wmOperator * op )
static

◆ grease_pencil_weight_brush_stroke_invoke()

◆ grease_pencil_weight_brush_stroke_modal()

static int blender::ed::sculpt_paint::grease_pencil_weight_brush_stroke_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ grease_pencil_weight_brush_stroke_poll()

static bool blender::ed::sculpt_paint::grease_pencil_weight_brush_stroke_poll ( bContext * C)
static

◆ image_paint_brush_type_raycast_original()

static bool blender::ed::sculpt_paint::image_paint_brush_type_raycast_original ( const Brush & brush,
PaintMode  )
static

Definition at line 250 of file paint_stroke.cc.

References BRUSH_ANCHORED, BRUSH_DRAG_DOT, and Brush::flag.

Referenced by paint_stroke_new().

◆ image_paint_brush_type_require_inbetween_mouse_events()

static bool blender::ed::sculpt_paint::image_paint_brush_type_require_inbetween_mouse_events ( const Brush & brush,
const PaintMode mode )
static

◆ image_paint_brush_type_require_location()

◆ init_sculpt_mode_session()

◆ init_transform()

◆ is_curve_mask_size_valid()

static bool blender::ed::sculpt_paint::is_curve_mask_size_valid ( const CurveMaskCache * curve_mask_cache,
const int diameter )
static

◆ is_sampled_curve_valid()

static bool blender::ed::sculpt_paint::is_sampled_curve_valid ( const CurveMaskCache * curve_mask_cache,
const Brush * brush )
static

◆ join_samples()

◆ keymap_sculpt()

void blender::ed::sculpt_paint::keymap_sculpt ( wmKeyConfig * keyconf)

Definition at line 1542 of file sculpt_ops.cc.

References blender::ed::sculpt_paint::filter::modal_keymap().

◆ library_is_editable()

static bool blender::ed::sculpt_paint::library_is_editable ( const AssetLibraryReference & library)
static

◆ library_ref_to_user_library()

static const bUserAssetLibrary * blender::ed::sculpt_paint::library_ref_to_user_library ( const AssetLibraryReference & library_ref)
static

◆ library_to_library_ref()

◆ load_tex()

◆ load_tex_cursor()

◆ load_tex_cursor_task_cb()

static void blender::ed::sculpt_paint::load_tex_cursor_task_cb ( void *__restrict userdata,
const int j,
const TaskParallelTLS * __restrict )
static

Definition at line 377 of file paint_cursor.cc.

References BKE_brush_curve_strength_clamped(), float, len, Brush::size, size(), and sqrtf.

Referenced by load_tex_cursor().

◆ load_tex_task_cb_ex()

◆ make_tex_snap()

static void blender::ed::sculpt_paint::make_tex_snap ( TexSnapshot * snap,
ViewContext * vc,
float zoom )
static

Definition at line 127 of file paint_cursor.cc.

References ViewContext::region, snap(), ARegion::winx, and ARegion::winy.

Referenced by load_tex().

◆ mask_border_weight_calc()

static BLI_NOINLINE void blender::ed::sculpt_paint::mask_border_weight_calc ( const Span< float > masks,
const MutableSpan< float > factors )
static

Definition at line 766 of file sculpt_transform.cc.

References mask_border_weight_calc().

Referenced by mask_border_weight_calc().

◆ move_last_point_and_resample()

◆ multiplane_scrape_preview_draw()

◆ nearest_vert_calc_bmesh()

◆ nearest_vert_calc_grids()

◆ nearest_vert_calc_mesh()

◆ need_delta_for_tip_orientation()

◆ need_delta_from_anchored_origin()

◆ new_add_operation()

std::unique_ptr< CurvesSculptStrokeOperation > blender::ed::sculpt_paint::new_add_operation ( )

Definition at line 513 of file curves_sculpt_add.cc.

References new_add_operation().

Referenced by new_add_operation(), and start_brush_operation().

◆ new_comb_operation()

std::unique_ptr< CurvesSculptStrokeOperation > blender::ed::sculpt_paint::new_comb_operation ( )

Definition at line 405 of file curves_sculpt_comb.cc.

Referenced by start_brush_operation().

◆ new_delete_operation()

std::unique_ptr< CurvesSculptStrokeOperation > blender::ed::sculpt_paint::new_delete_operation ( )

Definition at line 275 of file curves_sculpt_delete.cc.

Referenced by start_brush_operation().

◆ new_density_operation()

std::unique_ptr< CurvesSculptStrokeOperation > blender::ed::sculpt_paint::new_density_operation ( const BrushStrokeMode brush_mode,
const bContext & C,
const StrokeExtension & stroke_start )

◆ new_grow_shrink_operation()

◆ new_pinch_operation()

std::unique_ptr< CurvesSculptStrokeOperation > blender::ed::sculpt_paint::new_pinch_operation ( const BrushStrokeMode brush_mode,
const bContext & C )

◆ new_puff_operation()

std::unique_ptr< CurvesSculptStrokeOperation > blender::ed::sculpt_paint::new_puff_operation ( )

Definition at line 344 of file curves_sculpt_puff.cc.

Referenced by start_brush_operation().

◆ new_selection_paint_operation()

std::unique_ptr< CurvesSculptStrokeOperation > blender::ed::sculpt_paint::new_selection_paint_operation ( const BrushStrokeMode brush_mode,
const bContext & C )

◆ new_slide_operation()

std::unique_ptr< CurvesSculptStrokeOperation > blender::ed::sculpt_paint::new_slide_operation ( )

Definition at line 482 of file curves_sculpt_slide.cc.

References new_slide_operation().

Referenced by new_slide_operation(), and start_brush_operation().

◆ new_smooth_operation()

std::unique_ptr< CurvesSculptStrokeOperation > blender::ed::sculpt_paint::new_smooth_operation ( )

Definition at line 256 of file curves_sculpt_smooth.cc.

Referenced by start_brush_operation().

◆ new_snake_hook_operation()

std::unique_ptr< CurvesSculptStrokeOperation > blender::ed::sculpt_paint::new_snake_hook_operation ( )

Definition at line 305 of file curves_sculpt_snake_hook.cc.

Referenced by start_brush_operation().

◆ no_multires_poll()

static bool blender::ed::sculpt_paint::no_multires_poll ( bContext * C)
static

◆ node_fully_masked_or_hidden()

◆ node_in_cylinder()

bool blender::ed::sculpt_paint::node_in_cylinder ( const DistRayAABB_Precalc & ray_dist_precalc,
const bke::pbvh::Node & node,
const float radius_sq,
const bool original )

◆ node_in_sphere()

◆ object_active_color_fill()

bool blender::ed::sculpt_paint::object_active_color_fill ( Object & ob,
const float fill_color[4],
bool only_selected )

Fills the object's active color attribute layer with the fill color.

Parameters
only_selectedLimit the fill to selected faces or vertices.
Returns
true if successful.

Definition at line 2269 of file paint_vertex.cc.

References fill_active_color().

Referenced by blender::ed::geometry::geometry_color_attribute_add_exec().

◆ object_sculpt_mode_enter() [1/2]

void blender::ed::sculpt_paint::object_sculpt_mode_enter ( bContext * C,
Depsgraph & depsgraph,
ReportList * reports )

◆ object_sculpt_mode_enter() [2/2]

◆ object_sculpt_mode_exit() [1/2]

void blender::ed::sculpt_paint::object_sculpt_mode_exit ( bContext * C,
Depsgraph & depsgraph )

◆ object_sculpt_mode_exit() [2/2]

◆ offset_positions() [1/2]

◆ offset_positions() [2/2]

◆ operatortypes_sculpt()

void blender::ed::sculpt_paint::operatortypes_sculpt ( )

Definition at line 1502 of file sculpt_ops.cc.

References SCULPT_OT_brush_stroke(), blender::ed::sculpt_paint::cloth::SCULPT_OT_cloth_filter(), blender::ed::sculpt_paint::color::SCULPT_OT_color_filter(), blender::ed::sculpt_paint::dyntopo::SCULPT_OT_detail_flood_fill(), blender::ed::sculpt_paint::dyntopo::SCULPT_OT_dynamic_topology_toggle(), blender::ed::sculpt_paint::dyntopo::SCULPT_OT_dyntopo_detail_size_edit(), blender::ed::sculpt_paint::expand::SCULPT_OT_expand(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_set_box_gesture(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_set_change_visibility(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_set_lasso_gesture(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_set_line_gesture(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_set_polyline_gesture(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_sets_create(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_sets_edit(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_sets_init(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_sets_randomize_colors(), blender::ed::sculpt_paint::mask::SCULPT_OT_mask_by_color(), blender::ed::sculpt_paint::mask::SCULPT_OT_mask_filter(), blender::ed::sculpt_paint::mask::SCULPT_OT_mask_from_boundary(), blender::ed::sculpt_paint::mask::SCULPT_OT_mask_from_cavity(), blender::ed::sculpt_paint::mask::SCULPT_OT_mask_init(), blender::ed::sculpt_paint::filter::SCULPT_OT_mesh_filter(), SCULPT_OT_optimize(), blender::ed::sculpt_paint::project::SCULPT_OT_project_line_gesture(), SCULPT_OT_sample_color(), blender::ed::sculpt_paint::dyntopo::SCULPT_OT_sample_detail_size(), SCULPT_OT_sculptmode_toggle(), SCULPT_OT_set_persistent_base(), SCULPT_OT_set_pivot_position(), SCULPT_OT_symmetrize(), blender::ed::sculpt_paint::trim::SCULPT_OT_trim_box_gesture(), blender::ed::sculpt_paint::trim::SCULPT_OT_trim_lasso_gesture(), blender::ed::sculpt_paint::trim::SCULPT_OT_trim_line_gesture(), blender::ed::sculpt_paint::trim::SCULPT_OT_trim_polyline_gesture(), and WM_operatortype_append().

◆ optimize_exec()

static int blender::ed::sculpt_paint::optimize_exec ( bContext * C,
wmOperator *  )
static

◆ orig_color_data_get_mesh()

Span< float4 > blender::ed::sculpt_paint::orig_color_data_get_mesh ( const Object & object,
const bke::pbvh::MeshNode & node )
inline

◆ orig_color_data_lookup_mesh()

std::optional< Span< float4 > > blender::ed::sculpt_paint::orig_color_data_lookup_mesh ( const Object & object,
const bke::pbvh::MeshNode & node )

◆ orig_face_set_data_lookup_grids()

◆ orig_face_set_data_lookup_mesh()

◆ orig_mask_data_lookup_grids()

◆ orig_mask_data_lookup_mesh()

◆ orig_position_data_gather_bmesh()

◆ orig_position_data_get_grids()

◆ orig_position_data_get_mesh()

◆ orig_position_data_lookup_grids()

◆ orig_position_data_lookup_mesh()

◆ orig_position_data_lookup_mesh_all_verts()

std::optional< OrigPositionData > blender::ed::sculpt_paint::orig_position_data_lookup_mesh_all_verts ( const Object & object,
const bke::pbvh::MeshNode & node )

Retrieve positions from the latest undo state. This is often used for modal actions that depend on the initial state of the geometry from before the start of the action.

Definition at line 2185 of file sculpt_undo.cc.

References blender::ed::sculpt_paint::undo::get_node(), blender::ed::sculpt_paint::undo::Node::normal, blender::ed::sculpt_paint::undo::Position, and blender::ed::sculpt_paint::undo::Node::position.

Referenced by orig_position_data_lookup_mesh().

◆ paint_brush_cursor_poll()

bool blender::ed::sculpt_paint::paint_brush_cursor_poll ( bContext * C)

Returns true if the brush cursor should be activated.

Definition at line 1755 of file paint_stroke.cc.

References brush_tool_get(), bToolRef_Runtime::cursor, bToolRef::runtime, and WM_CURSOR_DEFAULT.

Referenced by paint_stroke_modal().

◆ paint_brush_stroke_add_step()

static void blender::ed::sculpt_paint::paint_brush_stroke_add_step ( bContext * C,
wmOperator * op,
PaintStroke * stroke,
const float mval[2],
float pressure )
static

Definition at line 535 of file paint_stroke.cc.

References add_v3_v3(), BKE_brush_use_alpha_pressure(), BKE_brush_use_size_pressure(), BKE_paint_brush_for_read(), BKE_paint_get_active_from_context(), BKE_paintmode_get_active_from_context(), BRUSH_SPACING_PRESSURE, copy_v2_v2(), copy_v3_v3(), CTX_data_scene(), Brush::dash_ratio, Brush::dash_samples, float, UnifiedPaintSettings::last_hit, UnifiedPaintSettings::last_location, blender::ed::sculpt_paint::PaintStroke::last_mouse_position, blender::ed::sculpt_paint::PaintStroke::last_pressure, blender::ed::sculpt_paint::PaintStroke::last_scene_spacing_delta, blender::ed::sculpt_paint::PaintStroke::last_world_space_position, mul_m4_v3(), ViewContext::obact, blender::ed::sculpt_paint::PaintStroke::original, paint_brush_update(), paint_stroke_jitter_pos(), paint_stroke_use_dash(), paint_stroke_use_scene_spacing(), blender::ed::sculpt_paint::PaintStroke::pen_flip, UnifiedPaintSettings::pixel_radius, wmOperator::ptr, RNA_boolean_set(), RNA_collection_add(), RNA_collection_clear(), RNA_float_set(), RNA_float_set_array(), SCULPT_stroke_get_location(), blender::ed::sculpt_paint::PaintStroke::tot_samples, blender::ed::sculpt_paint::PaintStroke::update_step, blender::ed::sculpt_paint::PaintStroke::ups, blender::ed::sculpt_paint::PaintStroke::vc, blender::ed::sculpt_paint::PaintStroke::x_tilt, and blender::ed::sculpt_paint::PaintStroke::y_tilt.

Referenced by paint_line_strokes_spacing(), paint_space_stroke(), paint_stroke_curve_end(), paint_stroke_line_end(), and paint_stroke_modal().

◆ paint_brush_tool_poll()

bool blender::ed::sculpt_paint::paint_brush_tool_poll ( bContext * C)

Returns true if the active tool uses brushes.

Definition at line 1749 of file paint_stroke.cc.

References brush_tool_get().

Referenced by paint_cursor_context_init(), paint_cursor_draw_3d_view_brush_cursor_inactive(), and SCULPT_poll().

◆ paint_brush_update()

bool blender::ed::sculpt_paint::paint_brush_update ( bContext * C,
const Brush & brush,
PaintMode mode,
PaintStroke * stroke,
const float mouse_init[2],
float mouse[2],
float pressure,
float r_location[3],
bool * r_location_is_set )

Initialize the stroke cache variants from operator properties.

Definition at line 286 of file paint_stroke.cc.

References UnifiedPaintSettings::anchored_initial_mouse, UnifiedPaintSettings::anchored_size, atan2f, BKE_brush_randomize_texture_coords(), BKE_brush_size_get(), BKE_brush_use_size_pressure(), BRUSH_ANCHORED, MTex::brush_angle_mode, BRUSH_CURVE, BRUSH_EDGE_TO_EDGE, blender::ed::sculpt_paint::PaintStroke::brush_init, MTex::brush_map_mode, UnifiedPaintSettings::brush_rotation, UnifiedPaintSettings::brush_rotation_sec, blender::ed::sculpt_paint::PaintStroke::cached_size_pressure, copy_v2_v2(), CTX_data_scene(), UnifiedPaintSettings::draw_anchored, ELEM, Brush::flag, float, blender::RandomNumberGenerator::from_random_seed(), blender::ed::sculpt_paint::PaintStroke::get_location, image_paint_brush_type_require_location(), blender::ed::sculpt_paint::PaintStroke::initial_mouse, UnifiedPaintSettings::initial_pixel_radius, UnifiedPaintSettings::last_rake, M_PI, Brush::mask_mtex, UnifiedPaintSettings::mask_tex_mouse, Brush::mtex, MTEX_ANGLE_RANDOM, MTEX_MAP_MODE_AREA, MTEX_MAP_MODE_RANDOM, MTEX_MAP_MODE_VIEW, blender::ed::sculpt_paint::PaintStroke::original, paint_calculate_rake_rotation(), paint_supports_dynamic_size(), paint_supports_dynamic_tex_coords(), UnifiedPaintSettings::pixel_radius, blender::ed::sculpt_paint::PaintStroke::rake_started, MTex::random_angle, blender::ed::sculpt_paint::PaintStroke::rng, UnifiedPaintSettings::size_pressure_value, sqrtf, UnifiedPaintSettings::stroke_active, blender::ed::sculpt_paint::PaintStroke::stroke_distance, MTex::tex, UnifiedPaintSettings::tex_mouse, blender::ed::sculpt_paint::PaintStroke::ups, zero_v3(), and blender::ed::sculpt_paint::PaintStroke::zoom_2d.

Referenced by paint_brush_stroke_add_step(), and blender::ed::sculpt_paint::image::ops::paint::paint_exec().

◆ paint_cursor_check_and_draw_alpha_overlays()

◆ paint_cursor_context_init()

static bool blender::ed::sculpt_paint::paint_cursor_context_init ( bContext * C,
const int x,
const int y,
PaintCursorContext * pcontext )
static

Definition at line 1289 of file paint_cursor.cc.

References Brush::add_col, BKE_brush_sculpt_has_secondary_color(), BKE_brush_size_get(), BKE_paint_brush(), BKE_paint_get_active_from_context(), BKE_paintmode_get_active_from_context(), blender::ed::sculpt_paint::PaintCursorContext::brush, BRUSH_CURVE, BRUSH_DIR_IN, blender::ed::sculpt_paint::PaintCursorContext::C, C, copy_v3_fl(), copy_v3_v3(), CTX_data_depsgraph_pointer(), CTX_data_scene(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_window(), blender::ed::sculpt_paint::PaintCursorContext::cursor_type, blender::ed::sculpt_paint::PaintCursorContext::depsgraph, SculptSession::draw_faded_cursor, UnifiedPaintSettings::draw_inverted, ED_view3d_viewcontext_init(), blender::ed::sculpt_paint::PaintCursorContext::final_radius, Brush::flag, float, get_imapaint_zoom(), blender::ed::sculpt_paint::PaintCursorContext::is_stroke_active, max_ff(), blender::ed::sculpt_paint::PaintCursorContext::mode, ViewContext::obact, blender::ed::sculpt_paint::PaintCursorContext::outline_alpha, blender::ed::sculpt_paint::PaintCursorContext::outline_col, blender::ed::sculpt_paint::PaintCursorContext::paint, paint_brush_tool_poll(), PAINT_CURSOR_2D, PAINT_CURSOR_3D, PAINT_CURSOR_CURVE, paint_use_2d_cursor(), blender::ed::sculpt_paint::PaintCursorContext::region, RGN_TYPE_WINDOW, blender::ed::sculpt_paint::PaintCursorContext::scene, Object::sculpt, blender::ed::sculpt_paint::PaintCursorContext::ss, UnifiedPaintSettings::stroke_active, Brush::sub_col, Scene::toolsettings, blender::ed::sculpt_paint::PaintCursorContext::translation, ToolSettings::unified_paint_settings, blender::ed::sculpt_paint::PaintCursorContext::ups, blender::ed::sculpt_paint::PaintCursorContext::vc, blender::ed::sculpt_paint::PaintCursorContext::win, blender::ed::sculpt_paint::PaintCursorContext::wm, blender::ed::sculpt_paint::PaintCursorContext::x, x, blender::ed::sculpt_paint::PaintCursorContext::y, y, and blender::ed::sculpt_paint::PaintCursorContext::zoomx.

Referenced by paint_draw_cursor().

◆ paint_cursor_cursor_draw_3d_view_brush_cursor_active()

static void blender::ed::sculpt_paint::paint_cursor_cursor_draw_3d_view_brush_cursor_active ( PaintCursorContext * pcontext)
static

Definition at line 1949 of file paint_cursor.cc.

References BLI_assert, blender::ed::sculpt_paint::PaintCursorContext::brush, BRUSH_CLOTH_FORCE_FALLOFF_PLANE, BRUSH_CLOTH_FORCE_FALLOFF_RADIAL, BRUSH_CLOTH_SIMULATION_AREA_LOCAL, blender::ed::sculpt_paint::PaintCursorContext::C, SculptSession::cache, Brush::cloth_force_falloff_type, Brush::cloth_sim_limit, Brush::cloth_simulation_area_type, CTX_wm_view3d(), blender::ed::sculpt_paint::PaintCursorContext::depsgraph, ED_view3d_draw_setup_view(), GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_pop_projection(), GPU_matrix_push(), GPU_matrix_push_projection(), blender::ed::sculpt_paint::StrokeCache::initial_location, blender::ed::sculpt_paint::StrokeCache::initial_normal, len_v3v3(), blender::ed::sculpt_paint::StrokeCache::location, blender::ed::sculpt_paint::PaintCursorContext::mode, multiplane_scrape_preview_draw(), ViewContext::obact, blender::ed::sculpt_paint::PaintCursorContext::outline_alpha, blender::ed::sculpt_paint::PaintCursorContext::outline_col, blender::ed::sculpt_paint::cloth::plane_falloff_preview_draw(), blender::ed::sculpt_paint::PaintCursorContext::pos, blender::ed::sculpt_paint::StrokeCache::radius, red, blender::ed::sculpt_paint::PaintCursorContext::region, blender::ed::sculpt_paint::PaintCursorContext::scene, Sculpt, Brush::sculpt_brush_type, SCULPT_BRUSH_TYPE_CLOTH, SCULPT_BRUSH_TYPE_GRAB, SCULPT_BRUSH_TYPE_MULTIPLANE_SCRAPE, sculpt_geometry_preview_lines_draw(), SCULPT_stroke_is_first_brush_step_of_symmetry_pass(), blender::ed::sculpt_paint::cloth::simulation_limits_draw(), blender::ed::sculpt_paint::PaintCursorContext::ss, blender::ed::sculpt_paint::PaintCursorContext::vc, blender::ed::sculpt_paint::PaintCursorContext::win, ARegion::winrct, blender::ed::sculpt_paint::PaintCursorContext::wm, wmViewport(), and wmWindowViewport().

Referenced by paint_cursor_draw_3D_view_brush_cursor().

◆ paint_cursor_draw_3D_view_brush_cursor()

◆ paint_cursor_draw_3d_view_brush_cursor_inactive()

static void blender::ed::sculpt_paint::paint_cursor_draw_3d_view_brush_cursor_inactive ( PaintCursorContext * pcontext)
static

Definition at line 1757 of file paint_cursor.cc.

References SculptSession::active_vert(), SculptSession::active_vert_index(), SculptSession::active_vert_position(), blender::ed::sculpt_paint::PaintCursorContext::alpha_overlay_drawn, BKE_sculpt_update_object_for_edit(), BLI_assert, bm, SculptSession::bm, BM_vert_at_index(), blender::bke::pbvh::BMesh, blender::ed::sculpt_paint::PaintCursorContext::brush, BRUSH_CLOTH_SIMULATION_AREA_GLOBAL, BRUSH_GRAB_ACTIVE_VERTEX, blender::ed::sculpt_paint::PaintCursorContext::C, Brush::cloth_simulation_area_type, BMVert::co, CTX_wm_view3d(), cursor_draw_point_screen_space(), cursor_draw_point_with_symmetry(), blender::ed::sculpt_paint::PaintCursorContext::depsgraph, ED_view3d_draw_setup_view(), blender::ed::sculpt_paint::boundary::edges_preview_draw(), SculptSession::expand_cache, Brush::falloff_shape, Brush::flag, geometry_preview_lines_update(), GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_pop_projection(), GPU_matrix_push(), GPU_matrix_push_projection(), blender::bke::pbvh::Grids, immUniformColor3fvAlpha(), blender::ed::sculpt_paint::expand::Cache::initial_active_vert, blender::ed::sculpt_paint::PaintCursorContext::is_cursor_over_mesh, len_v3v3(), blender::ed::sculpt_paint::PaintCursorContext::location, blender::bke::pbvh::Mesh, ViewContext::obact, blender::ed::sculpt_paint::PaintCursorContext::outline_alpha, blender::ed::sculpt_paint::PaintCursorContext::outline_col, paint_brush_tool_poll(), paint_cursor_draw_main_inactive_cursor(), paint_cursor_drawing_setup_cursor_space(), paint_cursor_pose_brush_origins_draw(), paint_cursor_pose_brush_segments_draw(), paint_cursor_preview_boundary_data_pivot_draw(), paint_cursor_preview_boundary_data_update(), paint_cursor_update_object_space_radius(), paint_draw_3D_view_inactive_brush_cursor(), paint_draw_legacy_3D_view_brush_cursor(), PAINT_FALLOFF_SHAPE_TUBE, blender::bke::object::pbvh_get(), blender::ed::sculpt_paint::boundary::pivot_line_preview_draw(), blender::ed::sculpt_paint::PaintCursorContext::pos, SculptSession::pose_ik_chain_preview, SubdivCCG::positions, blender::ed::sculpt_paint::PaintCursorContext::prev_active_vert_index, blender::ed::sculpt_paint::pose::preview_ik_chain_init(), blender::ed::sculpt_paint::PaintCursorContext::radius, blender::ed::sculpt_paint::PaintCursorContext::region, blender::ed::sculpt_paint::PaintCursorContext::scene, Brush::sculpt_brush_type, SCULPT_BRUSH_TYPE_BOUNDARY, SCULPT_BRUSH_TYPE_CLOTH, SCULPT_BRUSH_TYPE_GRAB, SCULPT_BRUSH_TYPE_LAYER, SCULPT_BRUSH_TYPE_POSE, sculpt_geometry_preview_lines_draw(), SCULPT_layer_brush_height_preview_draw(), SCULPT_vertex_random_access_ensure(), blender::ed::sculpt_paint::PaintCursorContext::sd, blender::ed::sculpt_paint::cloth::simulation_limits_draw(), blender::ed::sculpt_paint::PaintCursorContext::ss, SculptSession::subdiv_ccg, blender::ed::sculpt_paint::PaintCursorContext::vc, blender::bke::pbvh::vert_positions_eval(), vert_positions_for_grab_active_get(), blender::ed::sculpt_paint::PaintCursorContext::win, ARegion::winrct, blender::ed::sculpt_paint::PaintCursorContext::wm, wmViewport(), and wmWindowViewport().

Referenced by paint_cursor_draw_3D_view_brush_cursor().

◆ paint_cursor_draw_main_inactive_cursor()

◆ paint_cursor_drawing_setup_cursor_space()

◆ paint_cursor_is_3d_view_navigating()

static bool blender::ed::sculpt_paint::paint_cursor_is_3d_view_navigating ( PaintCursorContext * pcontext)
static

◆ paint_cursor_is_brush_cursor_enabled()

◆ paint_cursor_pose_brush_origins_draw()

◆ paint_cursor_pose_brush_segments_draw()

◆ paint_cursor_preview_boundary_data_pivot_draw()

◆ paint_cursor_preview_boundary_data_update()

◆ paint_cursor_restore_drawing_state()

static void blender::ed::sculpt_paint::paint_cursor_restore_drawing_state ( )
static

Definition at line 2121 of file paint_cursor.cc.

References GPU_blend(), GPU_BLEND_NONE, GPU_line_smooth(), and immUnbindProgram().

Referenced by paint_draw_cursor().

◆ paint_cursor_sculpt_session_update_and_init()

static void blender::ed::sculpt_paint::paint_cursor_sculpt_session_update_and_init ( PaintCursorContext * pcontext)
static

Definition at line 1394 of file paint_cursor.cc.

References SculptSession::active_vert_index(), BKE_brush_size_set(), BKE_brush_use_locked_size(), BLI_assert, blender::ed::sculpt_paint::PaintCursorContext::brush, blender::ed::sculpt_paint::PaintCursorContext::C, copy_v3_v3(), CTX_data_tool_settings(), blender::ed::sculpt_paint::PaintCursorContext::depsgraph, Brush::falloff_shape, float, blender::ed::sculpt_paint::PaintCursorContext::is_cursor_over_mesh, UnifiedPaintSettings::last_hit, UnifiedPaintSettings::last_location, blender::ed::sculpt_paint::PaintCursorContext::location, SculptCursorGeometryInfo::location, blender::ed::sculpt_paint::PaintCursorContext::mode, blender::ed::sculpt_paint::PaintCursorContext::normal, SculptCursorGeometryInfo::normal, ViewContext::obact, paint_cursor_update_pixel_radius(), paint_cursor_update_unprojected_radius(), PAINT_FALLOFF_SHAPE_SPHERE, blender::bke::object::pbvh_ensure(), blender::ed::sculpt_paint::PaintCursorContext::pixel_radius, blender::ed::sculpt_paint::PaintCursorContext::prev_active_vert_index, blender::ed::sculpt_paint::PaintCursorContext::region, blender::ed::sculpt_paint::PaintCursorContext::scene, blender::ed::sculpt_paint::PaintCursorContext::scene_space_location, Sculpt, ToolSettings::sculpt, SCULPT_cursor_geometry_info_update(), blender::ed::sculpt_paint::PaintCursorContext::sd, blender::ed::sculpt_paint::PaintCursorContext::ss, UnifiedPaintSettings::stroke_active, blender::ed::sculpt_paint::PaintCursorContext::ups, blender::ed::sculpt_paint::PaintCursorContext::vc, ARegion::winrct, blender::ed::sculpt_paint::PaintCursorContext::x, rcti::xmin, blender::ed::sculpt_paint::PaintCursorContext::y, and rcti::ymin.

Referenced by paint_cursor_draw_3D_view_brush_cursor().

◆ paint_cursor_setup_2D_drawing()

◆ paint_cursor_setup_3D_drawing()

◆ paint_cursor_update_anchored_location()

◆ paint_cursor_update_object_space_radius()

◆ paint_cursor_update_pixel_radius()

◆ paint_cursor_update_rake_rotation()

◆ paint_cursor_update_unprojected_radius()

◆ paint_draw_2D_view_brush_cursor()

static void blender::ed::sculpt_paint::paint_draw_2D_view_brush_cursor ( PaintCursorContext * pcontext)
static

◆ paint_draw_2D_view_brush_cursor_default()

◆ paint_draw_3D_view_inactive_brush_cursor()

◆ paint_draw_alpha_overlay()

◆ paint_draw_cursor()

◆ paint_draw_cursor_overlay()

◆ paint_draw_curve_cursor()

◆ paint_draw_legacy_3D_view_brush_cursor()

◆ paint_draw_line_cursor()

◆ paint_draw_smooth_cursor()

◆ paint_draw_tex_overlay()

static bool blender::ed::sculpt_paint::paint_draw_tex_overlay ( UnifiedPaintSettings * ups,
Brush * brush,
ViewContext * vc,
int x,
int y,
float zoom,
const PaintMode mode,
bool col,
bool primary )
static

Definition at line 543 of file paint_cursor.cc.

References UnifiedPaintSettings::anchored_initial_mouse, UnifiedPaintSettings::anchored_size, BKE_brush_size_get(), BKE_brush_use_size_pressure(), BLI_rcti_size_x(), BLI_rcti_size_y(), MTex::brush_map_mode, BRUSH_OVERLAY_PRIMARY, BRUSH_OVERLAY_SECONDARY, UnifiedPaintSettings::brush_rotation, UnifiedPaintSettings::brush_rotation_sec, col, copy_v3_v3(), UnifiedPaintSettings::draw_anchored, ELEM, GPU_blend(), GPU_BLEND_ALPHA_PREMULT, GPU_color_mask(), GPU_COMP_F32, GPU_DEPTH_NONE, GPU_depth_test(), GPU_FETCH_FLOAT, GPU_matrix_pop(), GPU_matrix_push(), GPU_matrix_rotate_2d(), GPU_matrix_scale_2f(), GPU_matrix_translate_2f(), GPU_matrix_translate_2fv(), GPU_PRIM_TRI_FAN, GPU_SAMPLER_EXTEND_MODE_CLAMP_TO_BORDER, GPU_SAMPLER_EXTEND_MODE_REPEAT, GPU_SAMPLER_FILTERING_LINEAR, GPU_SHADER_3D_IMAGE_COLOR, GPU_texture_unbind(), GPU_vertformat_attr_add(), Brush::image_brush_type, IMAGE_PAINT_BRUSH_TYPE_DRAW, immAttr2f(), immBegin(), immBindBuiltinProgram(), immBindTextureSampler(), immEnd(), immUnbindProgram(), immUniformColor4fv(), immVertex2f(), immVertexFormat(), load_tex(), Brush::mask_mtex, Brush::mask_overlay_alpha, Brush::mask_stencil_dimension, Brush::mask_stencil_pos, Brush::mtex, MTEX_MAP_MODE_STENCIL, MTEX_MAP_MODE_TILED, MTEX_MAP_MODE_VIEW, mul_v4_fl(), Brush::overlay_flags, TexSnapshot::overlay_texture, pos, primary_snap, quad, RAD2DEGF, ViewContext::region, MTex::rot, ViewContext::scene, secondary_snap, UnifiedPaintSettings::size_pressure_value, Brush::stencil_dimension, Brush::stencil_pos, UnifiedPaintSettings::stroke_active, MTex::tex, Texture3D, Brush::texture_overlay_alpha, ARegion::winrct, x, and y.

Referenced by paint_draw_alpha_overlay().

◆ paint_line_strokes_spacing()

◆ paint_smooth_stroke()

◆ paint_space_stroke()

◆ paint_space_stroke_enabled()

bool blender::ed::sculpt_paint::paint_space_stroke_enabled ( const Brush & br,
PaintMode mode )

◆ paint_space_stroke_spacing()

◆ paint_space_stroke_spacing_variable()

static float blender::ed::sculpt_paint::paint_space_stroke_spacing_variable ( bContext * C,
const Scene * scene,
PaintStroke * stroke,
float pressure,
float dpressure,
float length )
static

◆ paint_stroke_add_sample()

static void blender::ed::sculpt_paint::paint_stroke_add_sample ( PaintStroke * stroke,
int input_samples,
float x,
float y,
float pressure )
static

◆ paint_stroke_cancel()

◆ paint_stroke_curve_end()

static bool blender::ed::sculpt_paint::paint_stroke_curve_end ( bContext * C,
wmOperator * op,
PaintStroke * stroke )
static

◆ paint_stroke_distance_get()

float blender::ed::sculpt_paint::paint_stroke_distance_get ( PaintStroke * stroke)

◆ paint_stroke_exec()

◆ paint_stroke_flipped()

bool blender::ed::sculpt_paint::paint_stroke_flipped ( PaintStroke * stroke)

◆ paint_stroke_free()

◆ paint_stroke_integrate_overlap()

static float blender::ed::sculpt_paint::paint_stroke_integrate_overlap ( const Brush & br,
float factor )
static

◆ paint_stroke_inverted()

bool blender::ed::sculpt_paint::paint_stroke_inverted ( PaintStroke * stroke)

◆ paint_stroke_jitter_pos()

◆ paint_stroke_line_constrain()

◆ paint_stroke_line_end()

◆ paint_stroke_modal()

int blender::ed::sculpt_paint::paint_stroke_modal ( bContext * C,
wmOperator * op,
const wmEvent * event,
PaintStroke ** stroke_p )

Definition at line 1457 of file paint_stroke.cc.

References BKE_brush_input_samples_get(), BKE_paint_brush(), BKE_paint_get_active_from_context(), BKE_paintmode_get_active_from_context(), blender::ed::sculpt_paint::PaintStroke::brush, BRUSH_AIRBRUSH, BRUSH_ANCHORED, MTex::brush_angle_mode, BRUSH_DRAG_DOT, BRUSH_LINE, BRUSH_SMOOTH_STROKE, wmOperatorType::cancel, blender::ed::sculpt_paint::PaintStroke::constrain_line, copy_v2_fl2(), copy_v2_v2(), CTX_data_scene(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_window(), wmEvent::customdata, ELEM, blender::ed::sculpt_paint::PaintStroke::event_type, EVT_MODAL_MAP, EVT_RETKEY, EVT_SPACEKEY, Brush::flag, Paint::flags, image_paint_brush_type_require_inbetween_mouse_events(), INBETWEEN_MOUSEMOVE, ISMOUSE_MOTION, KM_ALT, KM_RELEASE, blender::ed::sculpt_paint::PaintStroke::last_mouse_position, blender::ed::sculpt_paint::PaintStroke::last_pressure, UnifiedPaintSettings::last_rake, blender::ed::sculpt_paint::PaintStroke::last_tablet_event_pressure, blender::ed::sculpt_paint::PaintStroke::last_world_space_position, len_v2(), Brush::mask_mtex, wmEvent::modifier, blender::ed::sculpt_paint::PaintSample::mouse, Brush::mtex, MTEX_ANGLE_RAKE, mul_m4_v3(), wmEvent::mval, NDOF_MOTION, ViewContext::obact, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RUNNING_MODAL, blender::ed::sculpt_paint::PaintStroke::original, UnifiedPaintSettings::overlap_factor, paint_brush_cursor_poll(), paint_brush_stroke_add_step(), paint_calculate_rake_rotation(), paint_draw_line_cursor(), paint_draw_smooth_cursor(), PAINT_SHOW_BRUSH, paint_smooth_stroke(), paint_space_stroke(), paint_space_stroke_enabled(), paint_stroke_add_sample(), paint_stroke_cancel(), paint_stroke_curve_end(), paint_stroke_integrate_overlap(), paint_stroke_line_constrain(), paint_stroke_line_end(), PAINT_STROKE_MODAL_CANCEL, paint_stroke_sample_average(), paint_stroke_use_scene_spacing(), paint_supports_smooth_stroke(), blender::ed::sculpt_paint::PaintStroke::pen_flip, blender::ed::sculpt_paint::PaintSample::pressure, Brush::rate, blender::ed::sculpt_paint::PaintStroke::redraw, RGN_TYPE_ANY, SCULPT_stroke_get_location(), SPACE_TYPE_ANY, blender::ed::sculpt_paint::PaintStroke::stroke_cursor, blender::ed::sculpt_paint::PaintStroke::stroke_distance, stroke_done(), blender::ed::sculpt_paint::PaintStroke::stroke_init, blender::ed::sculpt_paint::PaintStroke::stroke_over_mesh, blender::ed::sculpt_paint::PaintStroke::stroke_started, sub_v2_v2v2(), blender::ed::sculpt_paint::PaintStroke::test_start, TIMER, blender::ed::sculpt_paint::PaintStroke::timer, wmEvent::type, wmOperator::type, blender::ed::sculpt_paint::PaintStroke::ups, wmEvent::val, blender::ed::sculpt_paint::PaintStroke::vc, WM_event_is_tablet(), WM_event_tablet_data(), WM_event_timer_add(), WM_paint_cursor_activate(), WM_paint_cursor_tag_redraw(), blender::ed::sculpt_paint::PaintStroke::x_tilt, and blender::ed::sculpt_paint::PaintStroke::y_tilt.

Referenced by brush_stroke_modal(), grease_pencil_brush_stroke_modal(), grease_pencil_sculpt_paint_modal(), grease_pencil_vertex_brush_stroke_modal(), grease_pencil_weight_brush_stroke_modal(), blender::ed::sculpt_paint::image::ops::paint::paint_modal(), sculpt_curves_stroke_modal(), vpaint_modal(), and wpaint_modal().

◆ paint_stroke_modal_keymap()

wmKeyMap * blender::ed::sculpt_paint::paint_stroke_modal_keymap ( wmKeyConfig * keyconf)

Called in paint_ops.cc, on each regeneration of key-maps.

Definition at line 1168 of file paint_stroke.cc.

References PAINT_STROKE_MODAL_CANCEL, WM_modalkeymap_ensure(), and WM_modalkeymap_find().

◆ paint_stroke_mode_data()

◆ paint_stroke_new()

PaintStroke * blender::ed::sculpt_paint::paint_stroke_new ( bContext * C,
wmOperator * op,
StrokeGetLocation get_location,
StrokeTestStart test_start,
StrokeUpdateStep update_step,
StrokeRedraw redraw,
StrokeDone done,
int event_type )

Definition at line 899 of file paint_stroke.cc.

References UnifiedPaintSettings::average_stroke_accum, UnifiedPaintSettings::average_stroke_counter, BKE_brush_size_get(), BKE_curvemapping_init(), BKE_image_pool_acquire_ibuf(), BKE_image_pool_release_ibuf(), BKE_paint_brush(), BKE_paint_get_active_from_context(), BKE_paint_set_overlay_override(), BKE_paintmode_get_active_from_context(), blender::ed::sculpt_paint::PaintStroke::brush, BRUSH_CURVE, BRUSH_STROKE_INVERT, BRUSH_STROKE_NORMAL, ImBuf::byte_buffer, Paint::cavity_curve, ImBufByteBuffer::colorspace, UnifiedPaintSettings::colorspace, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_tool_settings(), CTX_wm_region_view3d(), Brush::curve, ImBufFloatBuffer::data, depsgraph, UnifiedPaintSettings::do_linear_conversion, blender::ed::sculpt_paint::PaintStroke::done, ED_view3d_viewcontext_init(), blender::ed::sculpt_paint::PaintStroke::event_type, Brush::flag, Paint::flags, ImBuf::float_buffer, get_imapaint_zoom(), blender::ed::sculpt_paint::PaintStroke::get_location, Tex::ima, image_paint_brush_type_raycast_original(), Tex::iuser, max_ff(), Brush::mtex, mul_v3_fl(), blender::ed::sculpt_paint::PaintStroke::original, UnifiedPaintSettings::overlap_factor, Brush::overlay_flags, PAINT_USE_CAVITY_MASK, wmOperator::ptr, blender::ed::sculpt_paint::PaintStroke::redraw, RegionView3D::rflag, RNA_enum_get(), RNA_enum_set(), RV3D_PAINTING, UnifiedPaintSettings::start_pixel_radius, UnifiedPaintSettings::stroke_active, blender::ed::sculpt_paint::PaintStroke::stroke_mode, blender::ed::sculpt_paint::PaintStroke::test_start, MTex::tex, TEX_IMAGE, Tex::type, ToolSettings::unified_paint_settings, blender::ed::sculpt_paint::PaintStroke::update_step, blender::ed::sculpt_paint::PaintStroke::ups, blender::ed::sculpt_paint::PaintStroke::vc, and blender::ed::sculpt_paint::PaintStroke::zoom_2d.

Referenced by grease_pencil_brush_stroke_invoke(), grease_pencil_sculpt_paint_invoke(), grease_pencil_vertex_brush_stroke_invoke(), grease_pencil_weight_brush_stroke_invoke(), blender::ed::sculpt_paint::image::ops::paint::paint_exec(), blender::ed::sculpt_paint::image::ops::paint::paint_invoke(), sculpt_brush_stroke_exec(), sculpt_brush_stroke_invoke(), sculpt_curves_stroke_invoke(), vpaint_exec(), vpaint_invoke(), wpaint_exec(), and wpaint_invoke().

◆ paint_stroke_overlapped_curve()

static float blender::ed::sculpt_paint::paint_stroke_overlapped_curve ( const Brush & br,
float x,
float spacing )
static

Definition at line 725 of file paint_stroke.cc.

References BKE_brush_curve_strength(), fabsf, max_ff(), and sum().

Referenced by paint_stroke_integrate_overlap().

◆ paint_stroke_sample_average()

◆ paint_stroke_set_mode_data()

void blender::ed::sculpt_paint::paint_stroke_set_mode_data ( PaintStroke * stroke,
std::unique_ptr< PaintModeData > mode_data )

◆ paint_stroke_started()

bool blender::ed::sculpt_paint::paint_stroke_started ( PaintStroke * stroke)

◆ paint_stroke_use_dash()

static bool blender::ed::sculpt_paint::paint_stroke_use_dash ( const Brush & brush)
static

Definition at line 482 of file paint_stroke.cc.

References BRUSH_CURVE, BRUSH_LINE, BRUSH_SPACE, and Brush::flag.

Referenced by paint_brush_stroke_add_step().

◆ paint_stroke_use_jitter()

static bool blender::ed::sculpt_paint::paint_stroke_use_jitter ( PaintMode mode,
const Brush & brush,
bool invert )
static

◆ paint_stroke_use_scene_spacing()

static bool blender::ed::sculpt_paint::paint_stroke_use_scene_spacing ( const Brush & brush,
const PaintMode mode )
static

◆ paint_stroke_view_context()

ViewContext * blender::ed::sculpt_paint::paint_stroke_view_context ( PaintStroke * stroke)

◆ paint_supports_dynamic_size()

bool blender::ed::sculpt_paint::paint_supports_dynamic_size ( const Brush & br,
PaintMode mode )

◆ paint_supports_dynamic_tex_coords()

bool blender::ed::sculpt_paint::paint_supports_dynamic_tex_coords ( const Brush & br,
PaintMode mode )

Return true if the brush size can change during paint (normally used for pressure).

Definition at line 1148 of file paint_stroke.cc.

References BRUSH_ANCHORED, Brush::flag, Sculpt, and sculpt_is_grab_tool().

Referenced by paint_brush_update().

◆ paint_supports_smooth_stroke()

◆ paint_supports_texture()

bool blender::ed::sculpt_paint::paint_supports_texture ( PaintMode mode)

Definition at line 1141 of file paint_stroke.cc.

References ELEM, Sculpt, Texture2D, Texture3D, and Vertex.

Referenced by stencil_control_poll().

◆ paint_update_mouse_cursor()

static void blender::ed::sculpt_paint::paint_update_mouse_cursor ( PaintCursorContext * pcontext)
static

◆ paint_use_2d_cursor()

static bool blender::ed::sculpt_paint::paint_use_2d_cursor ( PaintMode mode)
static

◆ pbvh_gather_cursor_update()

◆ pbvh_gather_generic()

◆ pbvh_gather_texpaint()

static IndexMask blender::ed::sculpt_paint::pbvh_gather_texpaint ( Object & ob,
const Brush & brush,
const bool use_original,
const float radius_scale,
IndexMaskMemory & memory )
static

Definition at line 2398 of file sculpt.cc.

References pbvh_gather_generic().

Referenced by do_brush_action().

◆ pose_fake_neighbors_free()

static void blender::ed::sculpt_paint::pose_fake_neighbors_free ( SculptSession & ss)
static

◆ project_brush_radius()

◆ project_translations()

void blender::ed::sculpt_paint::project_translations ( MutableSpan< float3 > translations,
const float3 & plane )

Align the translations with plane normal.

Definition at line 6998 of file sculpt.cc.

References blender::math::dot(), blender::MutableSpan< T >::index_range(), blender::math::length_squared(), project_translations(), and blender::math::rcp().

Referenced by project_translations().

◆ push_undo_nodes()

◆ rake_data_update()

static void blender::ed::sculpt_paint::rake_data_update ( SculptRakeData * srd,
const float co[3] )
static

◆ redo_empty_ui()

static void blender::ed::sculpt_paint::redo_empty_ui ( bContext * ,
wmOperator *  )
static

Definition at line 5471 of file sculpt.cc.

References redo_empty_ui().

Referenced by redo_empty_ui(), and SCULPT_OT_brush_stroke().

◆ refresh_asset_library() [1/2]

◆ refresh_asset_library() [2/2]

static void blender::ed::sculpt_paint::refresh_asset_library ( const bContext * C,
const bUserAssetLibrary & user_library )
static

Definition at line 135 of file brush_asset_ops.cc.

References refresh_asset_library(), and user_library_to_library_ref().

◆ report_empty_evaluated_surface()

◆ report_empty_original_surface()

◆ report_if_shape_key_is_locked()

bool blender::ed::sculpt_paint::report_if_shape_key_is_locked ( const Object & ob,
ReportList * reports )

Checks if the currently active Sculpt Mode on the object is targeting a locked shape key, and produces an error message if so (unless reports is null).

Returns
true if the shape key was locked.

Definition at line 128 of file sculpt.cc.

References BKE_reportf(), KeyBlock::flag, Object::id, KEYBLOCK_LOCKED_SHAPE, ID::name, RPT_ERROR, Object::sculpt, and SculptSession::shapekey_active.

Referenced by sculpt_brush_stroke_invoke(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_invoke(), and blender::ed::sculpt_paint::filter::sculpt_mesh_filter_start().

◆ report_invalid_uv_map()

void blender::ed::sculpt_paint::report_invalid_uv_map ( ReportList * reports)

◆ report_missing_surface()

◆ report_missing_uv_map_on_evaluated_surface()

void blender::ed::sculpt_paint::report_missing_uv_map_on_evaluated_surface ( ReportList * reports)

◆ report_missing_uv_map_on_original_surface()

void blender::ed::sculpt_paint::report_missing_uv_map_on_original_surface ( ReportList * reports)

◆ reset_translations_to_original()

void blender::ed::sculpt_paint::reset_translations_to_original ( MutableSpan< float3 > translations,
Span< float3 > positions,
Span< float3 > orig_positions )

◆ rna_asset_library_reference_itemf()

static const EnumPropertyItem * blender::ed::sculpt_paint::rna_asset_library_reference_itemf ( bContext * ,
PointerRNA * ,
PropertyRNA * ,
bool * r_free )
static

◆ same_tex_snap()

static int blender::ed::sculpt_paint::same_tex_snap ( TexSnapshot * snap,
MTex * mtex,
ViewContext * vc,
bool col,
float zoom )
static

◆ sample_color_invoke()

◆ sample_curves_3d_brush()

std::optional< CurvesBrush3D > blender::ed::sculpt_paint::sample_curves_3d_brush ( const Depsgraph & depsgraph,
const ARegion & region,
const View3D & v3d,
const RegionView3D & rv3d,
const Object & curves_object,
const float2 & brush_pos_re,
const float brush_radius_re )

Find 3d brush position based on cursor position for curves sculpting.

Definition at line 170 of file curves_sculpt_brush.cc.

References BKE_bvhtree_from_mesh_get(), BKE_object_get_evaluated_mesh(), BLI_bvhtree_ray_cast(), BLI_SCOPED_DEFER, BVHTREE_FROM_CORNER_TRIS, BVHTreeRayHit::co, Object::data, DEG_get_evaluated_object(), depsgraph, BVHTreeRayHit::dist, dist_to_line_v3(), blender::math::distance(), ED_view3d_win_to_segment_clipped(), find_curves_brush_position(), FLT_MAX, free_bvhtree_from_mesh(), Curves::geometry, blender::bke::crazyspace::get_evaluated_curves_deformation(), BVHTreeRayHit::index, blender::math::invert(), blender::math::normalize(), blender::ed::sculpt_paint::CurvesBrush3D::position_cu, blender::ed::sculpt_paint::CurvesBrush3D::radius_cu, BVHTreeFromMesh::raycast_callback, Curves::surface, blender::math::transform_point(), and BVHTreeFromMesh::tree.

Referenced by blender::ed::sculpt_paint::CurvesEffectOperationExecutor::execute(), blender::ed::sculpt_paint::PinchOperationExecutor::execute(), blender::ed::sculpt_paint::PuffOperationExecutor::execute(), blender::ed::sculpt_paint::SmoothOperationExecutor::execute(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::execute(), blender::ed::sculpt_paint::CombOperationExecutor::initialize_spherical_brush_reference_point(), blender::ed::sculpt_paint::DeleteOperationExecutor::initialize_spherical_brush_reference_point(), and blender::ed::sculpt_paint::SelectionPaintOperationExecutor::initialize_spherical_brush_reference_point().

◆ sample_curves_surface_3d_brush()

◆ sample_node_surface_bmesh()

◆ sample_node_surface_grids()

◆ sample_node_surface_mesh()

static void blender::ed::sculpt_paint::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()

◆ sampled_curve_free()

static void blender::ed::sculpt_paint::sampled_curve_free ( CurveMaskCache * curve_mask_cache)
static

◆ scale_factors() [1/2]

void blender::ed::sculpt_paint::scale_factors ( MutableSpan< float > factors,
float strength )

Definition at line 7227 of file sculpt.cc.

References scale_factors().

Referenced by blender::ed::sculpt_paint::cloth::apply_filter_forces_bmesh(), blender::ed::sculpt_paint::cloth::apply_filter_forces_grids(), blender::ed::sculpt_paint::cloth::apply_filter_forces_mesh(), blender::ed::sculpt_paint::mask::apply_mask_bmesh(), blender::ed::sculpt_paint::mask::apply_mask_grids(), blender::ed::sculpt_paint::mask::apply_mask_mesh(), blender::ed::sculpt_paint::boundary::calc_bend_bmesh(), blender::ed::sculpt_paint::boundary::calc_bend_grids(), blender::ed::sculpt_paint::boundary::calc_bend_mesh(), calc_bmesh(), blender::ed::sculpt_paint::filter::calc_enhance_details_filter(), blender::ed::sculpt_paint::filter::calc_erase_displacement_filter(), calc_faces(), blender::ed::sculpt_paint::cloth::calc_forces_bmesh(), blender::ed::sculpt_paint::cloth::calc_forces_grids(), blender::ed::sculpt_paint::cloth::calc_forces_mesh(), blender::ed::sculpt_paint::boundary::calc_grab_bmesh(), blender::ed::sculpt_paint::boundary::calc_grab_grids(), blender::ed::sculpt_paint::boundary::calc_grab_mesh(), calc_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_bmesh(), blender::ed::sculpt_paint::filter::calc_inflate_filter(), blender::ed::sculpt_paint::boundary::calc_inflate_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_mesh(), blender::ed::sculpt_paint::filter::calc_random_filter(), blender::ed::sculpt_paint::filter::calc_relax_face_sets_filter(), blender::ed::sculpt_paint::filter::calc_relax_filter(), blender::ed::sculpt_paint::filter::calc_scale_filter(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), blender::ed::sculpt_paint::boundary::calc_slide_bmesh(), blender::ed::sculpt_paint::boundary::calc_slide_grids(), blender::ed::sculpt_paint::boundary::calc_slide_mesh(), blender::ed::sculpt_paint::boundary::calc_smooth_bmesh(), blender::ed::sculpt_paint::filter::calc_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_smooth_grids(), blender::ed::sculpt_paint::boundary::calc_smooth_mesh(), blender::ed::sculpt_paint::filter::calc_sphere_filter(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_twist_bmesh(), blender::ed::sculpt_paint::boundary::calc_twist_grids(), blender::ed::sculpt_paint::boundary::calc_twist_mesh(), blender::ed::sculpt_paint::color::color_filter_task(), blender::ed::sculpt_paint::color::do_color_smooth_task(), blender::ed::sculpt_paint::color::do_paint_brush_task(), blender::ed::sculpt_paint::paint::image::do_paint_pixels(), blender::ed::sculpt_paint::color::do_smear_brush_task(), elastic_transform_node_bmesh(), elastic_transform_node_grids(), elastic_transform_node_mesh(), scale_factors(), scale_factors(), and blender::ed::sculpt_paint::cloth::solve_verts_simulation().

◆ scale_factors() [2/2]

void blender::ed::sculpt_paint::scale_factors ( MutableSpan< float > factors,
Span< float > strengths )

◆ scale_translations() [1/2]

void blender::ed::sculpt_paint::scale_translations ( MutableSpan< float3 > translations,
float factor )

Definition at line 7217 of file sculpt.cc.

References blender::MutableSpan< T >::index_range(), and scale_translations().

◆ scale_translations() [2/2]

void blender::ed::sculpt_paint::scale_translations ( MutableSpan< float3 > translations,
Span< float > factors )

Definition at line 7210 of file sculpt.cc.

References blender::MutableSpan< T >::index_range(), and scale_translations().

Referenced by blender::ed::sculpt_paint::cloth::apply_filter_forces_bmesh(), blender::ed::sculpt_paint::cloth::apply_filter_forces_grids(), blender::ed::sculpt_paint::cloth::apply_filter_forces_mesh(), blender::ed::sculpt_paint::project::apply_projection_bmesh(), blender::ed::sculpt_paint::project::apply_projection_grids(), blender::ed::sculpt_paint::project::apply_projection_mesh(), blender::ed::sculpt_paint::cloth::apply_scale_filter(), calc_bmesh(), blender::ed::sculpt_paint::pose::calc_bmesh(), blender::ed::sculpt_paint::filter::calc_enhance_details_filter(), blender::ed::sculpt_paint::filter::calc_erase_displacement_filter(), calc_faces(), blender::ed::sculpt_paint::cloth::calc_forces_bmesh(), blender::ed::sculpt_paint::cloth::calc_forces_grids(), blender::ed::sculpt_paint::cloth::calc_forces_mesh(), calc_grids(), blender::ed::sculpt_paint::pose::calc_grids(), blender::ed::sculpt_paint::filter::calc_inflate_filter(), blender::ed::sculpt_paint::pose::calc_mesh(), blender::ed::sculpt_paint::filter::calc_random_filter(), blender::ed::sculpt_paint::filter::calc_scale_filter(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), blender::ed::sculpt_paint::filter::calc_smooth_filter(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::face_set::edit_fairing(), elastic_transform_node_bmesh(), elastic_transform_node_grids(), elastic_transform_node_mesh(), scale_translations(), scale_translations(), blender::ed::sculpt_paint::cloth::solve_verts_simulation(), transform_node_bmesh(), transform_node_grids(), and transform_node_mesh().

◆ scatter_data_bmesh()

◆ scatter_data_bmesh< float >()

template void blender::ed::sculpt_paint::scatter_data_bmesh< float > ( Span< float > ,
const Set< BMVert *, 0 > & ,
MutableSpan< float >  )

◆ scatter_data_bmesh< float3 >()

template void blender::ed::sculpt_paint::scatter_data_bmesh< float3 > ( Span< float3 > ,
const Set< BMVert *, 0 > & ,
MutableSpan< float3 >  )

◆ scatter_data_grids()

◆ scatter_data_grids< float >()

◆ scatter_data_grids< float3 >()

◆ scatter_data_mesh()

template<typename T >
void blender::ed::sculpt_paint::scatter_data_mesh ( Span< T > src,
Span< int > indices,
MutableSpan< T > dst )

Scatter data from an array of the node's data to the referenced geometry vertices.

Definition at line 6122 of file sculpt.cc.

References BLI_assert, scatter_data_mesh(), and blender::Span< T >::size().

Referenced by blender::ed::sculpt_paint::cloth::apply_grab_brush(), blender::ed::sculpt_paint::mask::apply_mask_mesh(), blender::ed::sculpt_paint::mask::apply_new_mask_mesh(), blender::ed::sculpt_paint::cloth::apply_snake_hook_brush(), blender::ed::sculpt_paint::smooth::blur_geometry_data_array(), blender::ed::sculpt_paint::boundary::calc_bend_mesh(), blender::ed::sculpt_paint::cloth::calc_constraint_factors(), blender::ed::sculpt_paint::boundary::calc_grab_mesh(), blender::ed::sculpt_paint::boundary::calc_inflate_mesh(), blender::ed::sculpt_paint::pose::calc_mesh(), blender::ed::sculpt_paint::boundary::calc_slide_mesh(), blender::ed::sculpt_paint::boundary::calc_smooth_mesh(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_twist_mesh(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_mesh(), blender::ed::sculpt_paint::color::do_paint_brush_task(), blender::ed::sculpt_paint::face_set::face_hide_update(), blender::ed::sculpt_paint::face_set::face_sets_update(), blender::ed::sculpt_paint::hide::flush_face_changes_node(), blender::ed::sculpt_paint::mask::increase_contrast_mask_mesh(), blender::ed::sculpt_paint::filter::mesh_filter_sharpen_init(), blender::ed::sculpt_paint::undo::restore_face_set_from_undo_step(), blender::ed::sculpt_paint::undo::restore_mask_from_undo_step(), blender::ed::sculpt_paint::undo::restore_position_from_undo_step(), scatter_data_mesh(), blender::ed::sculpt_paint::mask::update_mask_mesh(), and blender::ed::sculpt_paint::hide::vert_hide_update().

◆ scatter_data_mesh< bool >()

template void blender::ed::sculpt_paint::scatter_data_mesh< bool > ( Span< bool > ,
Span< int > ,
MutableSpan< bool >  )

◆ scatter_data_mesh< float >()

◆ scatter_data_mesh< float3 >()

◆ scatter_data_mesh< float4 >()

◆ scatter_data_mesh< int >()

◆ sculpt_brush_needs_normal()

◆ sculpt_brush_stroke_cancel()

◆ sculpt_brush_stroke_exec()

◆ sculpt_brush_stroke_invoke()

◆ sculpt_calc_radius()

float blender::ed::sculpt_paint::sculpt_calc_radius ( const ViewContext & vc,
const Brush & brush,
const Scene & scene,
const float3 location )

◆ SCULPT_CURVES_OT_brush_stroke()

◆ SCULPT_CURVES_OT_min_distance_edit()

◆ SCULPT_CURVES_OT_select_grow()

◆ SCULPT_CURVES_OT_select_random()

◆ sculpt_curves_stroke_cancel()

static void blender::ed::sculpt_paint::sculpt_curves_stroke_cancel ( bContext * C,
wmOperator * op )
static

◆ sculpt_curves_stroke_invoke()

◆ sculpt_curves_stroke_modal()

static int blender::ed::sculpt_paint::sculpt_curves_stroke_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ sculpt_fix_noise_tear()

static void blender::ed::sculpt_paint::sculpt_fix_noise_tear ( const Sculpt & sd,
Object & ob )
static

Noise texture gives different values for the same input coord; this can tear a multi-resolution mesh during sculpting so do a stitch in this case.

Definition at line 3507 of file sculpt.cc.

References SculptSession::active, BKE_brush_mask_texture_get(), BKE_paint_brush_for_read(), SculptSession::multires, multires_stitch_grids(), OB_MODE_SCULPT, Sculpt::paint, Object::sculpt, MTex::tex, and Tex::type.

Referenced by stroke_update_step().

◆ sculpt_geometry_preview_lines_draw()

◆ sculpt_init_mirror_clipping()

◆ sculpt_is_grab_tool()

◆ SCULPT_layer_brush_height_preview_draw()

static void blender::ed::sculpt_paint::SCULPT_layer_brush_height_preview_draw ( const uint gpuattr,
const Brush & brush,
const float rds,
const float line_width,
const float outline_col[3],
const float alpha )
static

◆ sculpt_mode_toggle_exec()

◆ sculpt_needs_connectivity_info()

◆ SCULPT_OT_brush_stroke()

◆ SCULPT_OT_optimize()

◆ SCULPT_OT_sample_color()

◆ SCULPT_OT_sculptmode_toggle()

◆ SCULPT_OT_set_persistent_base()

static void blender::ed::sculpt_paint::SCULPT_OT_set_persistent_base ( wmOperatorType * ot)
static

◆ SCULPT_OT_set_pivot_position()

◆ SCULPT_OT_symmetrize()

◆ sculpt_transform_all_vertices()

◆ sculpt_update_cache_invariants()

static void blender::ed::sculpt_paint::sculpt_update_cache_invariants ( bContext * C,
Sculpt & sd,
SculptSession & ss,
wmOperator * op,
const float mval[2] )
static

Definition at line 3824 of file sculpt.cc.

References blender::ed::sculpt_paint::StrokeCache::accum, blender::ed::sculpt_paint::StrokeCache::alt_smooth, BKE_paint_brush(), BKE_paint_brush_for_read(), BLI_dial_init(), blender::ed::sculpt_paint::StrokeCache::brush, BRUSH_ACCUMULATE, BRUSH_ANCHORED, BRUSH_STROKE_INVERT, BRUSH_STROKE_SMOOTH, SculptSession::cache, copy_m3_m4(), copy_v2_v2(), copy_v3_v3(), CTX_data_active_object(), CTX_data_tool_settings(), SculptSession::cursor_location, SculptSession::cursor_normal, wmOperator::customdata, blender::ed::sculpt_paint::StrokeCache::dial, UnifiedPaintSettings::draw_inverted, ED_view3d_ob_project_mat_get(), ELEM, fabsf, blender::ed::sculpt_paint::StrokeCache::first_time, blender::ed::sculpt_paint::StrokeCache::flag, Brush::flag, blender::ed::sculpt_paint::StrokeCache::gravity_direction, Sculpt::gravity_factor, Sculpt::gravity_object, blender::ed::sculpt_paint::StrokeCache::initial_location, blender::ed::sculpt_paint::StrokeCache::initial_location_symm, blender::ed::sculpt_paint::StrokeCache::initial_mouse, blender::ed::sculpt_paint::StrokeCache::initial_normal, blender::ed::sculpt_paint::StrokeCache::initial_normal_symm, blender::ed::sculpt_paint::StrokeCache::invert, invert_m4_m4(), max_ff(), blender::ed::sculpt_paint::StrokeCache::mirror_modifier_clip, blender::ed::sculpt_paint::StrokeCache::mouse, blender::ed::sculpt_paint::StrokeCache::mouse_event, mul_m3_v3(), blender::ed::sculpt_paint::StrokeCache::normal_weight, Brush::normal_weight, normalize_v3(), normalize_v3_v3(), Sculpt::paint, ToolSettings::paint_mode, paint_stroke_view_context(), PIXEL_INPUT_THRESHHOLD, Brush::plane_trim, blender::ed::sculpt_paint::StrokeCache::plane_trim_squared, blender::ed::sculpt_paint::StrokeCache::projection_mat, wmOperator::ptr, RNA_enum_get(), Object::runtime, ViewContext::rv3d, blender::ed::sculpt_paint::StrokeCache::scale, Object::scale, Brush::sculpt_brush_type, SCULPT_BRUSH_TYPE_DISPLACEMENT_ERASER, SCULPT_BRUSH_TYPE_DISPLACEMENT_SMEAR, SCULPT_BRUSH_TYPE_DRAW_SHARP, SCULPT_BRUSH_TYPE_HAS_ACCUMULATE, SCULPT_BRUSH_TYPE_HAS_NORMAL_WEIGHT, SCULPT_BRUSH_TYPE_MASK, SCULPT_BRUSH_TYPE_PAINT, SCULPT_BRUSH_TYPE_ROTATE, SCULPT_BRUSH_TYPE_SIMPLIFY, SCULPT_BRUSH_TYPE_SMOOTH, sculpt_init_mirror_clipping(), sculpt_update_cache_invariants(), SCULPT_use_image_paint_brush(), blender::ed::sculpt_paint::StrokeCache::supports_gravity, UnifiedPaintSettings::tex_mouse, ToolSettings::unified_paint_settings, blender::ed::sculpt_paint::StrokeCache::vc, blender::ed::sculpt_paint::StrokeCache::view_normal, RegionView3D::viewinv, and zero_v2().

Referenced by sculpt_update_cache_invariants(), and stroke_test_start().

◆ sculpt_update_cache_variants()

static void blender::ed::sculpt_paint::sculpt_update_cache_variants ( bContext * C,
Sculpt & sd,
Object & ob,
PointerRNA * ptr )
static

Definition at line 4230 of file sculpt.cc.

References UnifiedPaintSettings::anchored_initial_mouse, UnifiedPaintSettings::anchored_size, BKE_brush_unprojected_radius_set(), BKE_brush_use_locked_size(), BKE_brush_use_size_pressure(), BKE_paint_brush(), BLI_dial_angle(), BRUSH_ANCHORED, brush_delta_update(), brush_dynamic_size_get(), BRUSH_EDGE_TO_EDGE, UnifiedPaintSettings::brush_rotation, blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, cache_paint_invariants_update(), blender::ed::sculpt_paint::StrokeCache::clay_thumb_brush, copy_v2_v2(), CTX_data_depsgraph_pointer(), CTX_data_scene(), depsgraph, blender::ed::sculpt_paint::StrokeCache::dial, UnifiedPaintSettings::draw_anchored, blender::ed::sculpt_paint::StrokeCache::dyntopo_pixel_radius, blender::ed::sculpt_paint::StrokeCache::first_time, Brush::flag, blender::ed::sculpt_paint::StrokeCache::initial_mouse, UnifiedPaintSettings::initial_pixel_radius, blender::ed::sculpt_paint::StrokeCache::initial_radius, blender::ed::sculpt_paint::StrokeCache::iteration_count, blender::ed::sculpt_paint::StrokeCache::location, blender::ed::sculpt_paint::StrokeCache::mouse, blender::ed::sculpt_paint::StrokeCache::mouse_event, Sculpt::paint, paint_calc_object_space_radius(), paint_supports_dynamic_size(), blender::ed::sculpt_paint::StrokeCache::pen_flip, UnifiedPaintSettings::pixel_radius, blender::ed::sculpt_paint::StrokeCache::pressure, blender::ed::sculpt_paint::StrokeCache::pressure_stabilizer, ptr, blender::ed::sculpt_paint::StrokeCache::radius, blender::ed::sculpt_paint::StrokeCache::radius_squared, RNA_boolean_get(), RNA_float_get(), RNA_float_get_array(), Sculpt, Object::sculpt, Brush::sculpt_brush_type, SCULPT_BRUSH_TYPE_CLAY_THUMB, SCULPT_BRUSH_TYPE_ROTATE, SCULPT_BRUSH_TYPE_SNAKE_HOOK, sculpt_calc_radius(), SCULPT_stroke_is_first_brush_step_of_symmetry_pass(), sculpt_update_cache_variants(), blender::ed::sculpt_paint::StrokeCache::special_rotation, blender::ed::sculpt_paint::StrokeCache::stabilizer_index, blender::ed::sculpt_paint::StrokeCache::tilt, blender::ed::sculpt_paint::StrokeCache::vc, and blender::ed::sculpt_paint::StrokeCache::vertex_rotation.

Referenced by sculpt_update_cache_variants(), and stroke_update_step().

◆ set_persistent_base_exec()

◆ set_pivot_depends_on_cursor()

static bool blender::ed::sculpt_paint::set_pivot_depends_on_cursor ( bContext & ,
wmOperatorType & ,
PointerRNA * ptr )
static

Definition at line 624 of file sculpt_transform.cc.

References CursorSurface, ptr, and RNA_enum_get().

Referenced by SCULPT_OT_set_pivot_position().

◆ set_pivot_position_exec()

◆ set_pivot_position_invoke()

static int blender::ed::sculpt_paint::set_pivot_position_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ set_pivot_position_poll_property()

static bool blender::ed::sculpt_paint::set_pivot_position_poll_property ( const bContext * ,
wmOperator * op,
const PropertyRNA * prop )
static

◆ show_catalog_in_asset_shelf()

◆ simplify_fixed()

static bke::CurvesGeometry blender::ed::sculpt_paint::simplify_fixed ( bke::CurvesGeometry & curves,
const int step )
static

◆ smooth_brush_toggle_off()

◆ smooth_brush_toggle_on()

◆ smooth_fill_strokes()

static void blender::ed::sculpt_paint::smooth_fill_strokes ( bke::CurvesGeometry & curves,
const IndexMask & stroke_mask )
static

◆ start_brush_operation()

◆ stroke_done() [1/4]

◆ stroke_done() [2/4]

◆ stroke_done() [3/4]

◆ stroke_done() [4/4]

static void blender::ed::sculpt_paint::stroke_done ( const bContext * C,
PaintStroke * stroke )
static

◆ stroke_get_location() [1/2]

static bool blender::ed::sculpt_paint::stroke_get_location ( bContext * ,
float out[3],
const float mouse[2],
bool  )
static

Definition at line 76 of file grease_pencil_draw_ops.cc.

◆ stroke_get_location() [2/2]

static bool blender::ed::sculpt_paint::stroke_get_location ( bContext * C,
float out[3],
const float mouse[2],
bool  )
static

◆ stroke_redraw()

static void blender::ed::sculpt_paint::stroke_redraw ( const bContext * C,
PaintStroke * ,
bool  )
static

◆ stroke_test_start() [1/3]

static bool blender::ed::sculpt_paint::stroke_test_start ( bContext * C,
wmOperator * op,
const float mouse[2] )
static

◆ stroke_test_start() [2/3]

static bool blender::ed::sculpt_paint::stroke_test_start ( bContext * C,
wmOperator * op,
const float mouse[2] )
static

Definition at line 174 of file grease_pencil_draw_ops.cc.

References UNUSED_VARS.

◆ stroke_test_start() [3/3]

◆ stroke_update_step() [1/3]

◆ stroke_update_step() [2/3]

◆ stroke_update_step() [3/3]

◆ symmetrize_exec()

◆ symmetry_flip()

◆ transform_brush_radius()

float blender::ed::sculpt_paint::transform_brush_radius ( const float4x4 & transform,
const float3 & brush_position,
const float old_radius )

◆ transform_matrices_init()

◆ transform_node_bmesh()

◆ transform_node_grids()

◆ transform_node_mesh()

◆ transform_positions() [1/2]

void blender::ed::sculpt_paint::transform_positions ( const float4x4 & transform,
MutableSpan< float3 > positions )

Definition at line 7289 of file sculpt.cc.

References blender::math::transform_point().

◆ transform_positions() [2/2]

void blender::ed::sculpt_paint::transform_positions ( Span< float3 > src,
const float4x4 & transform,
MutableSpan< float3 > dst )

◆ transform_radius_elastic()

◆ translations_from_new_positions() [1/2]

void blender::ed::sculpt_paint::translations_from_new_positions ( Span< float3 > new_positions,
Span< float3 > old_positions,
MutableSpan< float3 > translations )

◆ translations_from_new_positions() [2/2]

void blender::ed::sculpt_paint::translations_from_new_positions ( Span< float3 > new_positions,
Span< int > verts,
Span< float3 > old_positions,
MutableSpan< float3 > translations )

For brushes that calculate an averaged new position instead of generating a new translation vector.

Definition at line 7257 of file sculpt.cc.

References BLI_assert, blender::Span< T >::size(), translations_from_new_positions(), and verts.

Referenced by blender::ed::sculpt_paint::boundary::calc_bend_bmesh(), blender::ed::sculpt_paint::boundary::calc_bend_grids(), blender::ed::sculpt_paint::boundary::calc_bend_mesh(), blender::ed::sculpt_paint::filter::calc_erase_displacement_filter(), blender::ed::sculpt_paint::boundary::calc_grab_bmesh(), blender::ed::sculpt_paint::boundary::calc_grab_grids(), blender::ed::sculpt_paint::boundary::calc_grab_mesh(), blender::ed::sculpt_paint::boundary::calc_inflate_bmesh(), blender::ed::sculpt_paint::boundary::calc_inflate_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_mesh(), blender::ed::sculpt_paint::boundary::calc_slide_bmesh(), blender::ed::sculpt_paint::boundary::calc_slide_grids(), blender::ed::sculpt_paint::boundary::calc_slide_mesh(), blender::ed::sculpt_paint::boundary::calc_smooth_bmesh(), blender::ed::sculpt_paint::filter::calc_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_smooth_grids(), blender::ed::sculpt_paint::boundary::calc_smooth_mesh(), blender::ed::sculpt_paint::boundary::calc_twist_bmesh(), blender::ed::sculpt_paint::boundary::calc_twist_grids(), blender::ed::sculpt_paint::boundary::calc_twist_mesh(), blender::ed::sculpt_paint::undo::restore_position_from_undo_step(), translations_from_new_positions(), and translations_from_new_positions().

◆ translations_from_offset_and_factors()

◆ update_curve_mask()

static void blender::ed::sculpt_paint::update_curve_mask ( CurveMaskCache * curve_mask_cache,
const Brush * brush,
const int diameter,
const float radius,
const float cursor_position[2] )
static

◆ update_modal_transform()

◆ update_sampled_curve()

static void blender::ed::sculpt_paint::update_sampled_curve ( CurveMaskCache * curve_mask_cache,
const Brush * brush )
static

◆ update_sculpt_normal()

◆ update_shape_keys()

void blender::ed::sculpt_paint::update_shape_keys ( Object & object,
const Mesh & mesh,
const KeyBlock & active_key,
Span< int > verts,
Span< float3 > translations,
Span< float3 > positions_orig )

Applying final positions to shape keys is non-trivial because the mesh positions and the active shape key positions must be kept in sync, and shape keys dependent on the active key must also be modified.

Definition at line 7180 of file sculpt.cc.

References apply_translations(), BKE_keyblock_get_dependent_keys(), data, KeyBlock::data, LISTBASE_FOREACH_INDEX, KeyBlock::totelem, update_shape_keys(), and verts.

Referenced by blender::ed::sculpt_paint::undo::restore_position_from_undo_step(), and update_shape_keys().

◆ use_add_density_mode()

◆ user_library_to_library_ref()

static AssetLibraryReference blender::ed::sculpt_paint::user_library_to_library_ref ( const bUserAssetLibrary & user_library)
static

◆ vert_neighbors_get_bmesh()

Span< BMVert * > blender::ed::sculpt_paint::vert_neighbors_get_bmesh ( BMVert & vert,
Vector< BMVert *, 64 > & r_neighbors )

◆ vert_neighbors_get_interior_bmesh()

◆ vert_neighbors_get_mesh()

◆ vert_positions_for_grab_active_get()

Span< float3 > blender::ed::sculpt_paint::vert_positions_for_grab_active_get ( const Depsgraph & depsgraph,
const Object & object )

◆ visit_active_library_catalogs_catalog_for_search_fn()

◆ visit_library_catalogs_catalog_for_search()

◆ visit_library_prop_catalogs_catalog_for_search_fn()

static void blender::ed::sculpt_paint::visit_library_prop_catalogs_catalog_for_search_fn ( const bContext * C,
PointerRNA * ptr,
PropertyRNA * ,
const char * edit_text,
FunctionRef< void(StringPropertySearchVisitParams)> visit_fn )
static

Variable Documentation

◆ AntiAliasingSamplesPerTexelAxisMax

int blender::ed::sculpt_paint::AntiAliasingSamplesPerTexelAxisMax = 16
constexpr

Definition at line 22 of file paint_image_2d_curve_mask.cc.

Referenced by aa_samples_per_texel_axis().

◆ AntiAliasingSamplesPerTexelAxisMin

int blender::ed::sculpt_paint::AntiAliasingSamplesPerTexelAxisMin = 3
constexpr

Definition at line 21 of file paint_image_2d_curve_mask.cc.

Referenced by aa_samples_per_texel_axis().

◆ CurveSamplesBaseLen

int blender::ed::sculpt_paint::CurveSamplesBaseLen = 1024
constexpr

Number of samples to use between 0..1.

Definition at line 26 of file paint_image_2d_curve_mask.cc.

Referenced by update_curve_mask(), and update_sampled_curve().

◆ CurveSamplesLen

int blender::ed::sculpt_paint::CurveSamplesLen = M_SQRT2 * CurveSamplesBaseLen + 1
constexpr

Number of samples to store in the cache.

M_SQRT2 is used as brushes are circles and the curve_mask is square.

  • 1 to fix floating rounding issues.

Definition at line 33 of file paint_image_2d_curve_mask.cc.

Referenced by update_curve_mask(), and update_sampled_curve().

◆ prop_sculpt_pivot_position_types

EnumPropertyItem blender::ed::sculpt_paint::prop_sculpt_pivot_position_types[]
static
Initial value:
= {
{int(PivotPositionMode::Origin),
"ORIGIN",
0,
"Origin",
"Sets the pivot to the origin of the sculpt"},
{int(PivotPositionMode::Unmasked),
"UNMASKED",
0,
"Unmasked",
"Sets the pivot position to the average position of the unmasked vertices"},
{int(PivotPositionMode::MaskBorder),
"BORDER",
0,
"Mask Border",
"Sets the pivot position to the center of the border of the mask"},
{int(PivotPositionMode::ActiveVert),
"ACTIVE",
0,
"Active Vertex",
"Sets the pivot position to the active vertex position"},
{int(PivotPositionMode::CursorSurface),
"SURFACE",
0,
"Surface",
"Sets the pivot position to the surface under the cursor"},
{0, nullptr, 0, nullptr, nullptr},
}
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int

Definition at line 595 of file sculpt_transform.cc.

Referenced by SCULPT_OT_set_pivot_position().

◆ transform_mirror_max_distance_eps

float blender::ed::sculpt_paint::transform_mirror_max_distance_eps = 0.00002f
staticconstexpr

Definition at line 153 of file sculpt_transform.cc.

Referenced by filter_translations_with_symmetry().