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  CurvesGeometry
class  CurvesSculptCommonContext
class  CurvesSculptStrokeOperation
struct  CurvesSurfaceTransforms
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
class  ReverseUVSampler
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)
BPy_StructRNA * depsgraph

Definition at line 3406 of file sculpt.cc.

◆ DeltaProjectionFunc

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

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

Enumeration Type Documentation

◆ FillToolModalKey

Enumerator
Cancel 
Confirm 
ExtensionModeToggle 
ExtensionLengthen 
ExtensionShorten 
ExtensionDrag 
ExtensionCollide 
Invert 
Precision 

Definition at line 1565 of file grease_pencil_draw_ops.cc.

◆ PaintCursorDrawingType

Enumerator
PAINT_CURSOR_CURVE 
PAINT_CURSOR_2D 
PAINT_CURSOR_3D 

Definition at line 1236 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()

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

◆ accumulate_area_center()

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()

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()

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()

◆ 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 7031 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()

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 6978 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()

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.

References distance().

Referenced by accumulate_area_center().

◆ area_normal_and_center_get_normal_radius()

◆ area_normal_and_center_get_position_radius()

◆ area_normal_calc_weight()

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.

References distance().

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()

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

◆ brush_asset_delete_poll()

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()

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()

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()

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

◆ brush_asset_save_exec()

◆ brush_asset_save_poll()

◆ brush_delta_update()

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::bke::pbvh::Mesh, 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, blender::bke::object::pbvh_get(), 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()

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

◆ brush_needs_rake_rotation()

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()

void blender::ed::sculpt_paint::BRUSH_OT_asset_activate ( wmOperatorType * ot)

◆ BRUSH_OT_asset_delete()

void blender::ed::sculpt_paint::BRUSH_OT_asset_delete ( wmOperatorType * ot)

◆ BRUSH_OT_asset_edit_metadata()

◆ BRUSH_OT_asset_load_preview()

◆ BRUSH_OT_asset_revert()

void blender::ed::sculpt_paint::BRUSH_OT_asset_revert ( wmOperatorType * ot)

Definition at line 807 of file brush_asset_ops.cc.

References brush_asset_revert_exec(), brush_asset_revert_poll(), and ot.

Referenced by ED_operatortypes_paint().

◆ BRUSH_OT_asset_save()

void blender::ed::sculpt_paint::BRUSH_OT_asset_save ( wmOperatorType * ot)

Definition at line 764 of file brush_asset_ops.cc.

References brush_asset_save_exec(), brush_asset_save_poll(), and ot.

Referenced by ED_operatortypes_paint().

◆ 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()

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

◆ brush_tool_get()

◆ brush_type_needs_original()

◆ brush_uses_topology_rake()

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()

◆ 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()

◆ calc_bmesh() [1/24]

◆ 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 6775 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]

◆ calc_brush_texture_factors() [2/2]

◆ calc_distances()

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

◆ calc_faces() [1/21]

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()

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()

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()

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]

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

◆ 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 7350 of file sculpt.cc.

References BLI_assert, calc_vert_neighbors(), faces, result, 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::smooth::calc_relaxed_translations_bmesh(), blender::ed::sculpt_paint::smooth::calc_relaxed_translations_faces(), blender::ed::sculpt_paint::smooth::calc_relaxed_translations_grids(), 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 7392 of file sculpt.cc.

References BLI_assert, calc_vert_neighbors(), result, 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 )

References faces, result, and verts.

◆ 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 )

Find vertices connected to the indexed vertices across faces. For boundary vertices (stored in the boundary_verts argument), only include other boundary vertices. Also skip connectivity across hidden faces and skip neighbors of corner vertices.

Note
See calc_vert_neighbors for information on why we use a Vector per element.

Definition at line 7405 of file sculpt.cc.

References BLI_assert, calc_vert_neighbors_interior(), blender::Vector< T, InlineBufferCapacity, Allocator >::clear(), faces, blender::Vector< T, InlineBufferCapacity, Allocator >::remove_if(), result, blender::Span< T >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), vert_neighbors_get_mesh(), and verts.

Referenced by blender::ed::sculpt_paint::filter::calc_smooth_filter(), calc_vert_neighbors_interior(), calc_vert_neighbors_interior(), and calc_vert_neighbors_interior().

◆ 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 7042 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()

◆ copy_indices()

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

Definition at line 7152 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]

◆ 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()

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()

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()

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()

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

◆ curve_mask_free()

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

◆ CURVES_OT_sculptmode_toggle()

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

◆ curves_sculpt_brush_uses_spacing()

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 C, CTX_wm_region_view3d(), and curves_sculpt_poll().

Referenced by curves_sculptmode_enter().

◆ curves_sculptmode_enter()

◆ curves_sculptmode_exit()

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

Definition at line 309 of file curves_sculpt_ops.cc.

References C, CTX_data_active_object(), Object::mode, and OB_MODE_OBJECT.

Referenced by curves_sculptmode_toggle_exec().

◆ curves_sculptmode_toggle_exec()

◆ diameter_to_curve_mask_size()

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()

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::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(), blender::bke::pbvh::BMesh, BRUSH_MULTIPLANE_SCRAPE_DYNAMIC, BRUSH_ORIGINAL_NORMAL, blender::ed::sculpt_paint::StrokeCache::bstrength, SculptSession::cache, calc_area_normal(), calc_brush_plane(), blender::math::cross(), DEG2RADF, depsgraph, do_multiplane_scrape_brush(), blender::math::dot(), Brush::flag, Brush::flag2, float, 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::interpolate(), blender::math::invert(), is_zero_v3(), blender::threading::EnumerableThreadSpecific< T >::local(), blender::MatBase< T, NumCol, NumRow, Alignment >::location(), blender::ed::sculpt_paint::StrokeCache::location_symm, blender::bke::pbvh::Mesh, blender::math::midpoint(), blender::ed::sculpt_paint::StrokeCache::mirror_symmetry_pass, mul_v3_mat3_m4v3(), blender::ed::sculpt_paint::StrokeCache::multiplane_scrape_angle, Brush::multiplane_scrape_angle, blender::bke::pbvh::Tree::nodes(), blender::math::normalize(), normalize_m4(), normalize_v3(), Sculpt::paint, blender::bke::object::pbvh_get(), plane_from_point_normal_v3(), SubdivCCG::positions, blender::ed::sculpt_paint::StrokeCache::pressure, blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), RAD2DEGF, blender::ed::sculpt_paint::StrokeCache::radial_symmetry_pass, blender::ed::sculpt_paint::StrokeCache::radius, rotate_v3_v3v3fl(), sample, sample_surface(), blender::ed::sculpt_paint::StrokeCache::scale, SCULPT_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::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(), 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()

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()

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, U, 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()

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()

◆ fake_neighbor_search_mesh()

◆ fill_active_color()

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>
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]

void blender::ed::sculpt_paint::fill_factor_from_hide_and_mask ( Span< bool > hide_vert,
Span< float > mask,
Span< int > verts,
MutableSpan< float > r_factors )

Calculate initial influence factors based on vertex visibility and masking.

Definition at line 6504 of file sculpt.cc.

References BLI_assert, blender::MutableSpan< T >::fill(), blender::Span< T >::is_empty(), blender::MutableSpan< T >::size(), and verts.

◆ fill_mesh_color()

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>
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 )

◆ 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 )

◆ 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 7554 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()

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 6653 of file sculpt.cc.

References BLI_assert, SculptSession::cache, ED_view3d_clipping_test(), filter_region_clip_factors(), blender::MatBase< float, 4, 4 >::identity(), 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()

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()

◆ 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 )

Triggers redraws, updates, and dependency graph tags as necessary when a brush stroke finishes.

Definition at line 5069 of file sculpt.cc.

References bScreen::areabase, BKE_pbvh_bmesh_after_stroke(), BKE_sculptsession_use_pbvh_draw(), SculptSession::bm, blender::bke::pbvh::BMesh, C, CTX_wm_manager(), CTX_wm_region_view3d(), Object::data, DEG_id_tag_update(), ED_area_tag_redraw_regiontype(), ED_region_tag_redraw(), flush_update_done(), Object::id, ID_REAL_USERS, ID_RECALC_GEOMETRY, Image, LISTBASE_FOREACH, blender::bke::object::pbvh_get(), Position, RegionView3D::rflag, RGN_TYPE_WINDOW, RV3D_PAINTING, Object::sculpt, SCULPT_fake_neighbors_free(), SPACE_IMAGE, SPACE_VIEW3D, SpaceLink::spacetype, blender::bke::pbvh::store_bounds_orig(), blender::bke::pbvh::Tree::type(), and WM_window_get_active_screen().

Referenced by blender::ed::sculpt_paint::face_set::edit_modify_coordinates(), end_transform(), blender::ed::sculpt_paint::expand::finish(), flush_update_done(), blender::ed::sculpt_paint::project::gesture_end(), blender::ed::sculpt_paint::mask::mask_by_color_invoke(), blender::ed::sculpt_paint::mask::mask_from_boundary_exec(), blender::ed::sculpt_paint::mask::mask_from_cavity_exec(), blender::ed::sculpt_paint::expand::restore_original_state(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_modal(), blender::ed::sculpt_paint::color::sculpt_color_filter_end(), blender::ed::sculpt_paint::mask::sculpt_mask_filter_exec(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_end(), and stroke_done().

◆ flush_update_step()

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

Triggers redraws, updates, and dependency graph tags as necessary after each brush calculation.

Definition at line 4960 of file sculpt.cc.

References BKE_sculptsession_use_pbvh_draw(), blender::bke::pbvh::bounds_get(), C, SculptSession::cache, CTX_data_active_object(), CTX_data_depsgraph_pointer(), CTX_wm_region(), CTX_wm_region_view3d(), blender::ed::sculpt_paint::StrokeCache::current_r, Object::data, DEG_id_tag_update(), depsgraph, ED_region_tag_redraw(), ED_region_tag_redraw_partial(), extend_redraw_rect_previous(), flush_update_step(), Object::id, ID_RECALC_GEOMETRY, ID_RECALC_SHADING, Image, blender::bke::pbvh::Mesh, SculptSession::modifier, SculptSession::multires, MULTIRES_COORDS_MODIFIED, multires_mark_as_modified(), blender::bke::object::pbvh_get(), Position, RegionView3D::rflag, Object::runtime, RV3D_PAINTING, Object::sculpt, SCULPT_get_redraw_rect(), SculptSession::shapekey_active, blender::bke::pbvh::Tree::type(), ARegion::winrct, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

Referenced by blender::ed::sculpt_paint::face_set::edit_modify_coordinates(), flush_update_step(), blender::ed::sculpt_paint::project::gesture_end(), blender::ed::sculpt_paint::expand::restore_original_state(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_modal(), blender::ed::sculpt_paint::color::sculpt_color_filter_apply(), blender::ed::sculpt_paint::mask::sculpt_mask_filter_exec(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_apply(), stroke_update_step(), blender::ed::sculpt_paint::expand::update_for_vert(), and update_modal_transform().

◆ 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

◆ 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 >  )

References gather_data_bmesh().

◆ gather_data_bmesh< float3 >()

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

References gather_data_bmesh().

◆ gather_data_bmesh< int >()

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

References gather_data_bmesh().

◆ 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 6106 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::bke::ccg::grid_range(), 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_data_grids< float >(), gather_data_grids< float3 >(), gather_data_grids< int >(), 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 >  )

References gather_data_grids().

◆ 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 6096 of file sculpt.cc.

References BLI_assert, gather_data_mesh(), indices, 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(), gather_data_mesh< bool >(), gather_data_mesh< float >(), gather_data_mesh< float3 >(), gather_data_mesh< float4 >(), gather_data_mesh< int >(), 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 >  )

References gather_data_mesh().

◆ 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, blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), 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()

◆ get_stroke_operation()

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, C, 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(), blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), 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()

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

Definition at line 1333 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(), C, 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::VArray< T >::ForSingle(), 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, ARegion::winrct, WM_cursor_modal_restore(), and wmEvent::xy.

Referenced by grease_pencil_fill_event_modal_map().

◆ grease_pencil_brush_cursor_draw()

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

Definition at line 1513 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::greasepencil::brush_using_vertex_color(), 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_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, OB_GREASE_PENCIL, blender::ed::sculpt_paint::PaintCursorContext::paint, 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, x, blender::VecBase< T, Size >::xyz(), blender::ed::sculpt_paint::PaintCursorContext::y, and y.

Referenced by paint_draw_2D_view_brush_cursor().

◆ grease_pencil_brush_stroke_cancel()

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()

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

Definition at line 288 of file grease_pencil_draw_ops.cc.

References C, wmOperator::customdata, and paint_stroke_modal().

Referenced by GREASE_PENCIL_OT_brush_stroke().

◆ grease_pencil_brush_stroke_poll()

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

◆ grease_pencil_eraser_draw()

◆ grease_pencil_fill_cancel()

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

Definition at line 1719 of file grease_pencil_draw_ops.cc.

References C, and 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()

void blender::ed::sculpt_paint::grease_pencil_fill_extension_cut ( const bContext & C,
ed::greasepencil::ExtensionData & extension_data,
Span< int > origin_drawings,
Span< int > origin_points )
static

◆ grease_pencil_fill_extension_lines_from_circles()

◆ grease_pencil_fill_get_extension_data()

ed::greasepencil::ExtensionData blender::ed::sculpt_paint::grease_pencil_fill_get_extension_data ( const bContext & C,
const GreasePencilFillOpData & op_data )
static

◆ 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()

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()

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

Definition at line 394 of file grease_pencil_draw_ops.cc.

References C, wmOperator::customdata, and paint_stroke_modal().

Referenced by GREASE_PENCIL_OT_sculpt_paint().

◆ grease_pencil_sculpt_paint_poll()

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

◆ grease_pencil_update_extend()

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

◆ grease_pencil_vertex_brush_stroke_cancel()

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()

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()

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

◆ grease_pencil_weight_brush_stroke_cancel()

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()

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()

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

◆ image_paint_brush_type_raycast_original()

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

Definition at line 255 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()

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()

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

◆ is_sampled_curve_valid()

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().

Referenced by ED_spacetypes_keymap().

◆ library_is_editable()

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

◆ library_ref_to_user_library()

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()

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

Definition at line 382 of file paint_cursor.cc.

References BKE_brush_curve_strength_clamped(), data, float, len, size(), sqrtf, x, and y.

Referenced by load_tex_cursor().

◆ load_tex_task_cb_ex()

◆ make_tex_snap()

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

Definition at line 132 of file paint_cursor.cc.

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

Referenced by load_tex().

◆ mask_border_weight_calc()

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

◆ move_last_point_and_resample()

void blender::ed::sculpt_paint::move_last_point_and_resample ( MoveAndResampleBuffers & buffer,
MutableSpan< float3 > positions,
const float3 & new_last_position )

◆ 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()

◆ 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()

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(), and proj_paint_color_attribute_create().

◆ 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().

Referenced by ED_spacetypes_init().

◆ optimize_exec()

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 2247 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(), sculpt_find_nearest_to_ray_cb(), and sculpt_raycast_cb().

◆ 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 1760 of file paint_stroke.cc.

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

Referenced by paint_stroke_modal(), and SCULPT_brush_cursor_poll().

◆ paint_brush_stroke_add_step()

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 540 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, C, 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 1754 of file paint_stroke.cc.

References brush_tool_get(), and C.

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 291 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, C, 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()

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

Definition at line 1294 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, ARegion::regiontype, 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()

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

Definition at line 1954 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()

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

Definition at line 1762 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()

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()

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

Definition at line 2126 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()

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

Definition at line 1399 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, 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()

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()

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 548 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, 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, texture, Texture3D, Brush::texture_overlay_alpha, U, 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()

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()

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()

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()

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 1462 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, C, 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, 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 1173 of file paint_stroke.cc.

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

Referenced by ED_keymap_paint().

◆ 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 904 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, C, 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, 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()

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

Definition at line 730 of file paint_stroke.cc.

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

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()

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

Definition at line 487 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()

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

◆ paint_stroke_use_scene_spacing()

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 1153 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 1146 of file paint_stroke.cc.

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

Referenced by stencil_control_poll().

◆ paint_update_mouse_cursor()

◆ paint_use_2d_cursor()

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

◆ pbvh_gather_cursor_update()

◆ pbvh_gather_generic()

◆ pbvh_gather_texpaint()

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()

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 7018 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()

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

◆ redo_empty_ui()

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

Definition at line 5485 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]

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 C, 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 createTransSculpt(), 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()

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

◆ same_tex_snap()

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::bke::crazyspace::GeometryDeformation::positions, 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()

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()

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 7247 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 7237 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 7230 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 >  )

References scatter_data_bmesh().

◆ scatter_data_bmesh< 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 6136 of file sculpt.cc.

References BLI_assert, indices, 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(), scatter_data_mesh< bool >(), scatter_data_mesh< float >(), scatter_data_mesh< float3 >(), scatter_data_mesh< float4 >(), scatter_data_mesh< int >(), 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 >  )

References scatter_data_mesh().

◆ 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()

◆ SCULPT_CURVES_OT_brush_stroke()

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

◆ SCULPT_CURVES_OT_min_distance_edit()

◆ SCULPT_CURVES_OT_select_grow()

◆ SCULPT_CURVES_OT_select_random()

◆ sculpt_curves_stroke_cancel()

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

◆ sculpt_curves_stroke_invoke()

◆ sculpt_curves_stroke_modal()

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

◆ sculpt_fix_noise_tear()

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, TEX_NOISE, 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()

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()

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

Definition at line 173 of file sculpt_ops.cc.

References optimize_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and SCULPT_mode_poll().

Referenced by operatortypes_sculpt().

◆ SCULPT_OT_sample_color()

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

◆ SCULPT_OT_sculptmode_toggle()

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

◆ SCULPT_OT_set_persistent_base()

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

◆ SCULPT_OT_set_pivot_position()

◆ SCULPT_OT_symmetrize()

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

◆ sculpt_transform_all_vertices()

◆ sculpt_update_cache_invariants()

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, C, 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(), smooth_brush_toggle_on(), 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()

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, C, 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::cloth::is_cloth_deform_brush(), 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, Scene::toolsettings, ToolSettings::unified_paint_settings, 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()

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()

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

◆ set_pivot_position_poll_property()

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()

◆ smooth_brush_toggle_off()

◆ smooth_brush_toggle_on()

◆ smooth_fill_strokes()

◆ start_brush_operation()

◆ stroke_done() [1/4]

◆ stroke_done() [2/4]

◆ stroke_done() [3/4]

◆ stroke_done() [4/4]

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

◆ stroke_get_location() [1/2]

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]

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

◆ stroke_redraw()

◆ stroke_test_start() [1/3]

◆ stroke_test_start() [2/3]

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 C, and 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 )

◆ 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 7277 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()

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()

◆ 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 7200 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()

◆ vert_neighbors_get_bmesh()

◆ 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()

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

◆ visit_library_catalogs_catalog_for_search()

◆ visit_library_prop_catalogs_catalog_for_search_fn()

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:
= {
"ORIGIN",
0,
"Origin",
"Sets the pivot to the origin of the sculpt"},
"UNMASKED",
0,
"Unmasked",
"Sets the pivot position to the average position of the unmasked vertices"},
"BORDER",
0,
"Mask Border",
"Sets the pivot position to the center of the border of the mask"},
"ACTIVE",
0,
"Active Vertex",
"Sets the pivot position to the active vertex position"},
"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().