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

Classes

struct  FilterLocalData
 
struct  LocalData
 
struct  MaskOperation
 

Enumerations

enum class  FilterType {
  Smooth = 0 , Sharpen = 1 , Grow = 2 , Shrink = 3 ,
  ContrastIncrease = 5 , ContrastDecrease = 6
}
 
enum class  InitMode { Random , FaceSet , Island }
 

Functions

void write_mask_mesh (const Depsgraph &depsgraph, Object &object, const IndexMask &node_mask, FunctionRef< void(MutableSpan< float >, Span< int >)> write_fn)
 
static BLI_NOINLINE void copy_old_hidden_mask_mesh (const Span< int > verts, const Span< bool > hide_vert, const Span< float > mask, const MutableSpan< float > new_mask)
 
static BLI_NOINLINE void multiply_add (const Span< float > src, const float factor, const float offset, const MutableSpan< float > dst)
 
static BLI_NOINLINE void mask_increase_contrast (const Span< float > src, const MutableSpan< float > dst)
 
static BLI_NOINLINE void mask_decrease_contrast (const Span< float > src, const MutableSpan< float > dst)
 
static BLI_NOINLINE void sharpen_masks (const Span< float > old_masks, const MutableSpan< float > new_mask)
 
static void apply_new_mask_mesh (const Depsgraph &depsgraph, Object &object, const IndexMask &node_mask, const OffsetIndices< int > node_verts, const Span< float > new_mask, MutableSpan< float > mask)
 
static void smooth_mask_mesh (const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > vert_to_face_map, const Span< bool > hide_poly, const Span< bool > hide_vert, const Span< float > mask, const bke::pbvh::MeshNode &node, FilterLocalData &tls, MutableSpan< float > new_mask)
 
static void sharpen_mask_mesh (const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > vert_to_face_map, const Span< bool > hide_poly, const Span< bool > hide_vert, const Span< float > mask, const bke::pbvh::MeshNode &node, FilterLocalData &tls, MutableSpan< float > new_mask)
 
static void grow_mask_mesh (const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > vert_to_face_map, const Span< bool > hide_poly, const Span< bool > hide_vert, const Span< float > mask, const bke::pbvh::MeshNode &node, FilterLocalData &tls, MutableSpan< float > new_mask)
 
static void shrink_mask_mesh (const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > vert_to_face_map, const Span< bool > hide_poly, const Span< bool > hide_vert, const Span< float > mask, const bke::pbvh::MeshNode &node, FilterLocalData &tls, MutableSpan< float > new_mask)
 
static bool increase_contrast_mask_mesh (const Depsgraph &depsgraph, const Object &object, const Span< bool > hide_vert, bke::pbvh::MeshNode &node, FilterLocalData &tls, MutableSpan< float > mask)
 
static bool decrease_contrast_mask_mesh (const Depsgraph &depsgraph, const Object &object, const Span< bool > hide_vert, bke::pbvh::MeshNode &node, FilterLocalData &tls, MutableSpan< float > mask)
 
static BLI_NOINLINE void copy_old_hidden_mask_grids (const SubdivCCG &subdiv_ccg, const Span< int > grids, const MutableSpan< float > new_mask)
 
static void apply_new_mask_grids (const Depsgraph &depsgraph, Object &object, const IndexMask &node_mask, const OffsetIndices< int > node_verts, const Span< float > new_mask)
 
static void smooth_mask_grids (const SubdivCCG &subdiv_ccg, const bke::pbvh::GridsNode &node, MutableSpan< float > new_mask)
 
static void sharpen_mask_grids (const SubdivCCG &subdiv_ccg, const bke::pbvh::GridsNode &node, FilterLocalData &tls, MutableSpan< float > new_mask)
 
static void grow_mask_grids (const SubdivCCG &subdiv_ccg, const bke::pbvh::GridsNode &node, MutableSpan< float > new_mask)
 
static void shrink_mask_grids (const SubdivCCG &subdiv_ccg, const bke::pbvh::GridsNode &node, MutableSpan< float > new_mask)
 
static bool increase_contrast_mask_grids (const Depsgraph &depsgraph, const Object &object, bke::pbvh::GridsNode &node, FilterLocalData &tls)
 
static bool decrease_contrast_mask_grids (const Depsgraph &depsgraph, const Object &object, bke::pbvh::GridsNode &node, FilterLocalData &tls)
 
static BLI_NOINLINE void copy_old_hidden_mask_bmesh (const int mask_offset, const Set< BMVert *, 0 > &verts, const MutableSpan< float > new_mask)
 
static void apply_new_mask_bmesh (const Depsgraph &depsgraph, Object &object, const int mask_offset, const IndexMask &node_mask, const OffsetIndices< int > node_verts, const Span< float > new_mask)
 
static void smooth_mask_bmesh (const int mask_offset, bke::pbvh::BMeshNode &node, MutableSpan< float > new_mask)
 
static void sharpen_mask_bmesh (const BMesh &bm, const int mask_offset, bke::pbvh::BMeshNode &node, FilterLocalData &tls, MutableSpan< float > new_mask)
 
static void grow_mask_bmesh (const int mask_offset, bke::pbvh::BMeshNode &node, MutableSpan< float > new_mask)
 
static void shrink_mask_bmesh (const int mask_offset, bke::pbvh::BMeshNode &node, MutableSpan< float > new_mask)
 
static bool increase_contrast_mask_bmesh (const Depsgraph &depsgraph, Object &object, const int mask_offset, bke::pbvh::BMeshNode &node, FilterLocalData &tls)
 
static bool decrease_contrast_mask_bmesh (const Depsgraph &depsgraph, Object &object, const int mask_offset, bke::pbvh::BMeshNode &node, FilterLocalData &tls)
 
static int sculpt_mask_filter_exec (bContext *C, wmOperator *op)
 
void SCULPT_OT_mask_filter (wmOperatorType *ot)
 
void SCULPT_OT_mask_init (wmOperatorType *ot)
 
static void init_mask_grids (Main &bmain, Scene &scene, Depsgraph &depsgraph, Object &object, const IndexMask &node_mask, FunctionRef< void(const BitGroupVector<> &, int, MutableSpan< float >)> write_fn)
 
static int sculpt_mask_init_exec (bContext *C, wmOperator *op)
 
Public API
Array< floatduplicate_mask (const Object &object)
 
void mix_new_masks (const Span< float > new_masks, const Span< float > factors, const MutableSpan< float > masks)
 
void clamp_mask (const MutableSpan< float > masks)
 
void invert_mask (const MutableSpan< float > masks)
 
void gather_mask_bmesh (const BMesh &bm, const Set< BMVert *, 0 > &verts, const MutableSpan< float > r_mask)
 
void gather_mask_grids (const SubdivCCG &subdiv_ccg, const Span< int > grids, const MutableSpan< float > r_mask)
 
void scatter_mask_grids (const Span< float > mask, SubdivCCG &subdiv_ccg, const Span< int > grids)
 
void scatter_mask_bmesh (const Span< float > mask, const BMesh &bm, const Set< BMVert *, 0 > &verts)
 
static float average_masks (const int mask_offset, const Span< const BMVert * > verts)
 
void average_neighbor_mask_bmesh (const int mask_offset, const Set< BMVert *, 0 > &verts, const MutableSpan< float > new_masks)
 
void update_mask_mesh (const Depsgraph &depsgraph, Object &object, const IndexMask &node_mask, FunctionRef< void(MutableSpan< float >, Span< int >)> update_fn)
 
bool mask_equals_array_grids (const Span< float > masks, const CCGKey &key, const Span< int > grids, const Span< float > values)
 
bool mask_equals_array_bmesh (const int mask_offset, const Set< BMVert *, 0 > &verts, const Span< float > values)
 
Gesture-based Mask Operators

Operators that act upon a user-selected area.

static void gesture_begin (bContext &C, wmOperator &op, gesture::GestureData &gesture_data)
 
static float mask_gesture_get_new_value (const float elem, FloodFillMode mode, float value)
 
static void gesture_apply_for_symmetry_pass (bContext &, gesture::GestureData &gesture_data)
 
static void gesture_end (bContext &C, gesture::GestureData &gesture_data)
 
static void init_operation (bContext &C, gesture::GestureData &gesture_data, wmOperator &op)
 
static void gesture_operator_properties (wmOperatorType *ot)
 
static int gesture_box_exec (bContext *C, wmOperator *op)
 
static int gesture_lasso_exec (bContext *C, wmOperator *op)
 
static int gesture_line_exec (bContext *C, wmOperator *op)
 
static int gesture_polyline_exec (bContext *C, wmOperator *op)
 
void PAINT_OT_mask_lasso_gesture (wmOperatorType *ot)
 
void PAINT_OT_mask_box_gesture (wmOperatorType *ot)
 
void PAINT_OT_mask_line_gesture (wmOperatorType *ot)
 
void PAINT_OT_mask_polyline_gesture (wmOperatorType *ot)
 
Mask By Color
static float color_delta_get (const float3 &color_a, const float3 &color_b, const float threshold, const bool invert)
 
static float final_mask_get (const float current_mask, const float new_mask, const bool invert, const bool preserve_mask)
 
static void mask_by_color_contiguous_mesh (const Depsgraph &depsgraph, Object &object, const int vert, const float threshold, const bool invert, const bool preserve_mask)
 
static void mask_by_color_full_mesh (const Depsgraph &depsgraph, Object &object, const int vert, const float threshold, const bool invert, const bool preserve_mask)
 
static int mask_by_color_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static void SCULPT_OT_mask_by_color (wmOperatorType *ot)
 

Global Mask Operators

Operators that act upon the entirety of a given object's mesh.

enum class  FloodFillMode { Value = SEL_OP_SUB , InverseValue = SEL_OP_ADD , InverseMeshValue = SEL_OP_XOR }
 
static const EnumPropertyItem mode_items []
 
static Span< intget_hidden_verts (const bke::pbvh::MeshNode &node, const Span< bool > hide_vert, Vector< int > &indices)
 
static bool try_remove_mask_mesh (const Depsgraph &depsgraph, Object &object, const IndexMask &node_mask)
 
static void fill_mask_mesh (const Depsgraph &depsgraph, Object &object, const float value, const IndexMask &node_mask)
 
static void fill_mask_grids (Main &bmain, const Scene &scene, Depsgraph &depsgraph, Object &object, const float value, const IndexMask &node_mask)
 
static void fill_mask_bmesh (const Depsgraph &depsgraph, Object &object, const float value, const IndexMask &node_mask)
 
static void fill_mask (Main &bmain, const Scene &scene, Depsgraph &depsgraph, Object &object, const float value)
 
static void invert_mask_grids (Main &bmain, const Scene &scene, Depsgraph &depsgraph, Object &object, const IndexMask &node_mask)
 
static void invert_mask_bmesh (const Depsgraph &depsgraph, Object &object, const IndexMask &node_mask)
 
static void invert_mask (Main &bmain, const Scene &scene, Depsgraph &depsgraph, Object &object)
 
static int mask_flood_fill_exec (bContext *C, wmOperator *op)
 
void PAINT_OT_mask_flood_fill (wmOperatorType *ot)
 

Mask from Cavity

enum class  ApplyMaskMode : int8_t {
  Mix , Multiply , Divide , Add ,
  Subtract
}
 
enum class  MaskSettingsSource : int8_t { Operator , Scene , Brush }
 
enum class  MaskBoundaryMode : int8_t { Mesh , FaceSets }
 
static EnumPropertyItem mix_modes []
 
static EnumPropertyItem settings_sources []
 
static void calc_new_masks (const ApplyMaskMode mode, const Span< float > node_mask, const MutableSpan< float > new_mask)
 
static void apply_mask_mesh (const Depsgraph &depsgraph, const Object &object, const Span< bool > hide_vert, const auto_mask::Cache &automasking, const ApplyMaskMode mode, const float factor, const bool invert_automask, const bke::pbvh::MeshNode &node, LocalData &tls, const MutableSpan< float > mask)
 
static void apply_mask_grids (const Depsgraph &depsgraph, Object &object, const auto_mask::Cache &automasking, const ApplyMaskMode mode, const float factor, const bool invert_automask, const bke::pbvh::GridsNode &node, LocalData &tls)
 
static void apply_mask_bmesh (const Depsgraph &depsgraph, Object &object, const auto_mask::Cache &automasking, const ApplyMaskMode mode, const float factor, const float invert_automask, bke::pbvh::BMeshNode &node, LocalData &tls)
 
static void apply_mask_from_settings (const Depsgraph &depsgraph, Object &object, bke::pbvh::Tree &pbvh, const IndexMask &node_mask, const auto_mask::Cache &automasking, const ApplyMaskMode mode, const float factor, const bool invert_automask)
 
static int mask_from_cavity_exec (bContext *C, wmOperator *op)
 
static void mask_from_cavity_ui (bContext *C, wmOperator *op)
 
static void SCULPT_OT_mask_from_cavity (wmOperatorType *ot)
 
static int mask_from_boundary_exec (bContext *C, wmOperator *op)
 
static void mask_from_boundary_ui (bContext *C, wmOperator *op)
 
static void SCULPT_OT_mask_from_boundary (wmOperatorType *ot)
 

Enumeration Type Documentation

◆ ApplyMaskMode

Enumerator
Mix 
Multiply 
Divide 
Add 
Subtract 

Definition at line 891 of file sculpt_ops.cc.

◆ FilterType

Enumerator
Smooth 
Sharpen 
Grow 
Shrink 
ContrastIncrease 
ContrastDecrease 

Definition at line 40 of file sculpt_filter_mask.cc.

◆ FloodFillMode

Enumerator
Value 
InverseValue 
InverseMeshValue 

Definition at line 281 of file paint_mask.cc.

◆ InitMode

Enumerator
Random 
FaceSet 
Island 

Definition at line 45 of file sculpt_mask_init.cc.

◆ MaskBoundaryMode

Enumerator
Mesh 
FaceSets 

Definition at line 1324 of file sculpt_ops.cc.

◆ MaskSettingsSource

Enumerator
Operator 
Scene 
Brush 

Definition at line 908 of file sculpt_ops.cc.

Function Documentation

◆ apply_mask_bmesh()

◆ apply_mask_from_settings()

◆ apply_mask_grids()

◆ apply_mask_mesh()

◆ apply_new_mask_bmesh()

◆ apply_new_mask_grids()

◆ apply_new_mask_mesh()

◆ average_masks()

static float blender::ed::sculpt_paint::mask::average_masks ( const int mask_offset,
const Span< const BMVert * > verts )
static

Definition at line 169 of file paint_mask.cc.

References BM_ELEM_CD_GET_FLOAT, float, sum(), and verts.

Referenced by average_neighbor_mask_bmesh().

◆ average_neighbor_mask_bmesh()

void blender::ed::sculpt_paint::mask::average_neighbor_mask_bmesh ( const int mask_offset,
const Set< BMVert *, 0 > & verts,
const MutableSpan< float > new_masks )

◆ calc_new_masks()

static void blender::ed::sculpt_paint::mask::calc_new_masks ( const ApplyMaskMode mode,
const Span< float > node_mask,
const MutableSpan< float > new_mask )
static

◆ clamp_mask()

void blender::ed::sculpt_paint::mask::clamp_mask ( const MutableSpan< float > masks)

◆ color_delta_get()

static float blender::ed::sculpt_paint::mask::color_delta_get ( const float3 & color_a,
const float3 & color_b,
const float threshold,
const bool invert )
static

◆ copy_old_hidden_mask_bmesh()

static BLI_NOINLINE void blender::ed::sculpt_paint::mask::copy_old_hidden_mask_bmesh ( const int mask_offset,
const Set< BMVert *, 0 > & verts,
const MutableSpan< float > new_mask )
static

◆ copy_old_hidden_mask_grids()

◆ copy_old_hidden_mask_mesh()

static BLI_NOINLINE void blender::ed::sculpt_paint::mask::copy_old_hidden_mask_mesh ( const Span< int > verts,
const Span< bool > hide_vert,
const Span< float > mask,
const MutableSpan< float > new_mask )
static

◆ decrease_contrast_mask_bmesh()

◆ decrease_contrast_mask_grids()

◆ decrease_contrast_mask_mesh()

◆ duplicate_mask()

◆ fill_mask()

static void blender::ed::sculpt_paint::mask::fill_mask ( Main & bmain,
const Scene & scene,
Depsgraph & depsgraph,
Object & object,
const float value )
static

◆ fill_mask_bmesh()

◆ fill_mask_grids()

◆ fill_mask_mesh()

◆ final_mask_get()

static float blender::ed::sculpt_paint::mask::final_mask_get ( const float current_mask,
const float new_mask,
const bool invert,
const bool preserve_mask )
static

Definition at line 711 of file sculpt_ops.cc.

References invert().

Referenced by mask_by_color_contiguous_mesh(), and mask_by_color_full_mesh().

◆ gather_mask_bmesh()

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

◆ gather_mask_grids()

◆ gesture_apply_for_symmetry_pass()

◆ gesture_begin()

static void blender::ed::sculpt_paint::mask::gesture_begin ( bContext & C,
wmOperator & op,
gesture::GestureData & gesture_data )
static

◆ gesture_box_exec()

static int blender::ed::sculpt_paint::mask::gesture_box_exec ( bContext * C,
wmOperator * op )
static

◆ gesture_end()

static void blender::ed::sculpt_paint::mask::gesture_end ( bContext & C,
gesture::GestureData & gesture_data )
static

◆ gesture_lasso_exec()

static int blender::ed::sculpt_paint::mask::gesture_lasso_exec ( bContext * C,
wmOperator * op )
static

◆ gesture_line_exec()

static int blender::ed::sculpt_paint::mask::gesture_line_exec ( bContext * C,
wmOperator * op )
static

◆ gesture_operator_properties()

◆ gesture_polyline_exec()

static int blender::ed::sculpt_paint::mask::gesture_polyline_exec ( bContext * C,
wmOperator * op )
static

◆ get_hidden_verts()

static Span< int > blender::ed::sculpt_paint::mask::get_hidden_verts ( const bke::pbvh::MeshNode & node,
const Span< bool > hide_vert,
Vector< int > & indices )
static

◆ grow_mask_bmesh()

static void blender::ed::sculpt_paint::mask::grow_mask_bmesh ( const int mask_offset,
bke::pbvh::BMeshNode & node,
MutableSpan< float > new_mask )
static

◆ grow_mask_grids()

◆ grow_mask_mesh()

static void blender::ed::sculpt_paint::mask::grow_mask_mesh ( const OffsetIndices< int > faces,
const Span< int > corner_verts,
const GroupedSpan< int > vert_to_face_map,
const Span< bool > hide_poly,
const Span< bool > hide_vert,
const Span< float > mask,
const bke::pbvh::MeshNode & node,
FilterLocalData & tls,
MutableSpan< float > new_mask )
static

◆ increase_contrast_mask_bmesh()

◆ increase_contrast_mask_grids()

◆ increase_contrast_mask_mesh()

◆ init_mask_grids()

◆ init_operation()

◆ invert_mask() [1/2]

void blender::ed::sculpt_paint::mask::invert_mask ( const MutableSpan< float > masks)

◆ invert_mask() [2/2]

static void blender::ed::sculpt_paint::mask::invert_mask ( Main & bmain,
const Scene & scene,
Depsgraph & depsgraph,
Object & object )
static

◆ invert_mask_bmesh()

◆ invert_mask_grids()

◆ mask_by_color_contiguous_mesh()

static void blender::ed::sculpt_paint::mask::mask_by_color_contiguous_mesh ( const Depsgraph & depsgraph,
Object & object,
const int vert,
const float threshold,
const bool invert,
const bool preserve_mask )
static

◆ mask_by_color_full_mesh()

static void blender::ed::sculpt_paint::mask::mask_by_color_full_mesh ( const Depsgraph & depsgraph,
Object & object,
const int vert,
const float threshold,
const bool invert,
const bool preserve_mask )
static

◆ mask_by_color_invoke()

◆ mask_decrease_contrast()

static BLI_NOINLINE void blender::ed::sculpt_paint::mask::mask_decrease_contrast ( const Span< float > src,
const MutableSpan< float > dst )
static

◆ mask_equals_array_bmesh()

bool blender::ed::sculpt_paint::mask::mask_equals_array_bmesh ( const int mask_offset,
const Set< BMVert *, 0 > & verts,
const Span< float > values )

Definition at line 251 of file paint_mask.cc.

References BLI_assert, BM_ELEM_CD_GET_FLOAT, and verts.

Referenced by apply_new_mask_bmesh().

◆ mask_equals_array_grids()

bool blender::ed::sculpt_paint::mask::mask_equals_array_grids ( Span< float > masks,
const CCGKey & key,
Span< int > grids,
Span< float > values )

Check whether array data is the same as the stored mask for the referenced geometry.

Definition at line 236 of file paint_mask.cc.

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

Referenced by apply_new_mask_grids().

◆ mask_flood_fill_exec()

◆ mask_from_boundary_exec()

static int blender::ed::sculpt_paint::mask::mask_from_boundary_exec ( bContext * C,
wmOperator * op )
static

◆ mask_from_boundary_ui()

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

◆ mask_from_cavity_exec()

static int blender::ed::sculpt_paint::mask::mask_from_cavity_exec ( bContext * C,
wmOperator * op )
static

Definition at line 1133 of file sculpt_ops.cc.

References blender::bke::pbvh::all_leaf_nodes(), apply_mask_from_settings(), Brush::automasking_boundary_edges_propagation_steps, Brush::automasking_cavity_blur_steps, Sculpt::automasking_cavity_blur_steps, Brush::automasking_cavity_curve, Sculpt::automasking_cavity_curve, Sculpt::automasking_cavity_curve_op, Brush::automasking_cavity_factor, Sculpt::automasking_cavity_factor, Brush::automasking_flags, Sculpt::automasking_flags, BKE_base_is_visible(), BKE_paint_brush_for_read(), BKE_report(), BKE_sculpt_mask_layers_ensure(), BKE_sculpt_multires_active(), BKE_sculpt_update_object_for_edit(), Brush, BRUSH_AUTOMASKING_CAVITY_ALL, BRUSH_AUTOMASKING_CAVITY_INVERTED, BRUSH_AUTOMASKING_CAVITY_NORMAL, BRUSH_AUTOMASKING_CAVITY_USE_CURVE, blender::ed::sculpt_paint::auto_mask::cache_init(), CTX_data_active_base(), CTX_data_active_object(), CTX_data_depsgraph_pointer(), CTX_data_main(), CTX_data_scene(), CTX_data_tool_settings(), CTX_wm_view3d(), depsgraph, blender::ed::sculpt_paint::flush_update_done(), blender::ed::sculpt_paint::undo::Mask, blender::ed::sculpt_paint::Mask, Operator, OPERATOR_CANCELLED, OPERATOR_FINISHED, Sculpt::paint, blender::bke::object::pbvh_get(), wmOperator::ptr, blender::ed::sculpt_paint::undo::push_begin(), blender::ed::sculpt_paint::undo::push_end(), blender::ed::sculpt_paint::undo::push_nodes(), wmOperator::reports, RNA_boolean_get(), RNA_enum_get(), RNA_float_get(), RNA_int_get(), RPT_WARNING, Scene, ToolSettings::sculpt, Brush::sculpt_brush_type, SCULPT_BRUSH_TYPE_SMOOTH, SCULPT_tag_update_overlays(), SCULPT_vertex_random_access_ensure(), and blender::bke::pbvh::Tree::tag_masks_changed().

Referenced by SCULPT_OT_mask_from_cavity().

◆ mask_from_cavity_ui()

◆ mask_gesture_get_new_value()

static float blender::ed::sculpt_paint::mask::mask_gesture_get_new_value ( const float elem,
FloodFillMode mode,
float value )
static

◆ mask_increase_contrast()

static BLI_NOINLINE void blender::ed::sculpt_paint::mask::mask_increase_contrast ( const Span< float > src,
const MutableSpan< float > dst )
static

◆ mix_new_masks()

void blender::ed::sculpt_paint::mask::mix_new_masks ( const Span< float > new_masks,
const Span< float > factors,
const MutableSpan< float > masks )

Definition at line 98 of file paint_mask.cc.

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

Referenced by apply_mask_bmesh(), apply_mask_grids(), and apply_mask_mesh().

◆ multiply_add()

static BLI_NOINLINE void blender::ed::sculpt_paint::mask::multiply_add ( const Span< float > src,
const float factor,
const float offset,
const MutableSpan< float > dst )
static

◆ PAINT_OT_mask_box_gesture()

◆ PAINT_OT_mask_flood_fill()

◆ PAINT_OT_mask_lasso_gesture()

◆ PAINT_OT_mask_line_gesture()

◆ PAINT_OT_mask_polyline_gesture()

◆ scatter_mask_bmesh()

void blender::ed::sculpt_paint::mask::scatter_mask_bmesh ( const Span< float > mask,
const BMesh & bm,
const Set< BMVert *, 0 > & verts )

◆ scatter_mask_grids()

void blender::ed::sculpt_paint::mask::scatter_mask_grids ( const Span< float > mask,
SubdivCCG & subdiv_ccg,
const Span< int > grids )

◆ sculpt_mask_filter_exec()

static int blender::ed::sculpt_paint::mask::sculpt_mask_filter_exec ( bContext * C,
wmOperator * op )
static

Definition at line 686 of file sculpt_filter_mask.cc.

References blender::bke::pbvh::all_leaf_nodes(), apply_new_mask_bmesh(), apply_new_mask_grids(), apply_new_mask_mesh(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), BKE_base_is_visible(), BKE_sculpt_mask_layers_ensure(), BKE_sculpt_multires_active(), BKE_sculpt_update_object_for_edit(), BKE_subdiv_ccg_key_top_level(), bm, SculptSession::bm, BM_mesh_elem_index_ensure(), BM_VERT, blender::bke::pbvh::BMesh, CD_PROP_FLOAT, blender::ed::sculpt_paint::create_node_vert_offsets(), blender::ed::sculpt_paint::create_node_vert_offsets_bmesh(), CTX_data_active_base(), CTX_data_active_object(), CTX_data_depsgraph_pointer(), CTX_data_main(), CTX_data_scene(), CTX_wm_view3d(), CustomData_get_offset_named(), Object::data, decrease_contrast_mask_bmesh(), decrease_contrast_mask_grids(), decrease_contrast_mask_mesh(), depsgraph, blender::bke::Face, blender::ed::sculpt_paint::flush_update_done(), blender::ed::sculpt_paint::flush_update_step(), blender::index_mask::IndexMask::foreach_index(), blender::index_mask::IndexMask::from_bools(), blender::bke::pbvh::Grids, grow_mask_bmesh(), grow_mask_grids(), grow_mask_mesh(), increase_contrast_mask_bmesh(), increase_contrast_mask_grids(), increase_contrast_mask_mesh(), int, blender::threading::EnumerableThreadSpecific< T >::local(), blender::ed::sculpt_paint::Mask, blender::bke::pbvh::Mesh, blender::index_mask::IndexMask::min_array_size(), blender::bke::pbvh::Tree::nodes(), OPERATOR_CANCELLED, OPERATOR_FINISHED, blender::bke::object::pbvh_get(), blender::bke::Point, pos, wmOperator::ptr, blender::ed::sculpt_paint::undo::push_begin(), blender::ed::sculpt_paint::undo::push_end(), RNA_boolean_get(), RNA_enum_get(), RNA_int_get(), Object::sculpt, SCULPT_tag_update_overlays(), SCULPT_vertex_count_get(), sharpen_mask_bmesh(), sharpen_mask_grids(), sharpen_mask_mesh(), shrink_mask_bmesh(), shrink_mask_grids(), shrink_mask_mesh(), smooth_mask_bmesh(), smooth_mask_grids(), smooth_mask_mesh(), SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::tag_masks_changed(), blender::offset_indices::OffsetIndices< T >::total_size(), blender::bke::pbvh::Tree::type(), and BMesh::vdata.

Referenced by SCULPT_OT_mask_filter().

◆ sculpt_mask_init_exec()

static int blender::ed::sculpt_paint::mask::sculpt_mask_init_exec ( bContext * C,
wmOperator * op )
static

Definition at line 110 of file sculpt_mask_init.cc.

References blender::bke::pbvh::all_leaf_nodes(), BKE_base_is_visible(), BKE_pbvh_bmesh_node_unique_verts(), BKE_sculpt_update_object_for_edit(), BKE_subdiv_ccg_foreach_visible_grid_vert(), BKE_subdiv_ccg_key_top_level(), BLI_hash_int_01(), BLI_time_now_seconds(), SculptSession::bm, BM_ELEM_CD_SET_FLOAT, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, blender::bke::pbvh::BMesh, CD_PROP_FLOAT, CTX_data_active_base(), CTX_data_active_object(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_main(), CTX_data_scene(), CTX_wm_view3d(), CustomData_get_offset_named(), Object::data, depsgraph, blender::ed::sculpt_paint::islands::ensure_cache(), blender::bke::Face, FaceSet, blender::index_mask::IndexMask::foreach_index(), CCGKey::grid_area, SubdivCCG::grid_to_face_map, blender::bke::pbvh::Grids, init_mask_grids(), blender::index_mask::IndexMask::is_empty(), Island, blender::bke::pbvh::Mesh, blender::bke::pbvh::node_update_mask_bmesh(), blender::bke::pbvh::Tree::nodes(), OPERATOR_CANCELLED, OPERATOR_FINISHED, blender::bke::object::pbvh_get(), wmOperator::ptr, blender::ed::sculpt_paint::undo::push_begin(), blender::ed::sculpt_paint::undo::push_end(), Random, RNA_enum_get(), Object::sculpt, SCULPT_tag_update_overlays(), seed, SculptSession::subdiv_ccg, blender::bke::pbvh::Tree::tag_masks_changed(), blender::bke::pbvh::Tree::type(), BMesh::vdata, blender::ed::sculpt_paint::face_set::vert_face_set_get(), blender::ed::sculpt_paint::islands::vert_id_get(), verts, and write_mask_mesh().

Referenced by SCULPT_OT_mask_init().

◆ SCULPT_OT_mask_by_color()

◆ SCULPT_OT_mask_filter()

◆ SCULPT_OT_mask_from_boundary()

◆ SCULPT_OT_mask_from_cavity()

◆ SCULPT_OT_mask_init()

◆ sharpen_mask_bmesh()

◆ sharpen_mask_grids()

◆ sharpen_mask_mesh()

◆ sharpen_masks()

static BLI_NOINLINE void blender::ed::sculpt_paint::mask::sharpen_masks ( const Span< float > old_masks,
const MutableSpan< float > new_mask )
static

◆ shrink_mask_bmesh()

static void blender::ed::sculpt_paint::mask::shrink_mask_bmesh ( const int mask_offset,
bke::pbvh::BMeshNode & node,
MutableSpan< float > new_mask )
static

◆ shrink_mask_grids()

◆ shrink_mask_mesh()

static void blender::ed::sculpt_paint::mask::shrink_mask_mesh ( const OffsetIndices< int > faces,
const Span< int > corner_verts,
const GroupedSpan< int > vert_to_face_map,
const Span< bool > hide_poly,
const Span< bool > hide_vert,
const Span< float > mask,
const bke::pbvh::MeshNode & node,
FilterLocalData & tls,
MutableSpan< float > new_mask )
static

◆ smooth_mask_bmesh()

static void blender::ed::sculpt_paint::mask::smooth_mask_bmesh ( const int mask_offset,
bke::pbvh::BMeshNode & node,
MutableSpan< float > new_mask )
static

◆ smooth_mask_grids()

static void blender::ed::sculpt_paint::mask::smooth_mask_grids ( const SubdivCCG & subdiv_ccg,
const bke::pbvh::GridsNode & node,
MutableSpan< float > new_mask )
static

◆ smooth_mask_mesh()

static void blender::ed::sculpt_paint::mask::smooth_mask_mesh ( const OffsetIndices< int > faces,
const Span< int > corner_verts,
const GroupedSpan< int > vert_to_face_map,
const Span< bool > hide_poly,
const Span< bool > hide_vert,
const Span< float > mask,
const bke::pbvh::MeshNode & node,
FilterLocalData & tls,
MutableSpan< float > new_mask )
static

◆ try_remove_mask_mesh()

static bool blender::ed::sculpt_paint::mask::try_remove_mask_mesh ( const Depsgraph & depsgraph,
Object & object,
const IndexMask & node_mask )
static

◆ update_mask_mesh()

◆ write_mask_mesh()

Variable Documentation

◆ mix_modes

EnumPropertyItem blender::ed::sculpt_paint::mask::mix_modes[]
static
Initial value:
= {
{int(ApplyMaskMode::Mix), "MIX", ICON_NONE, "Mix", ""},
{int(ApplyMaskMode::Multiply), "MULTIPLY", ICON_NONE, "Multiply", ""},
{int(ApplyMaskMode::Divide), "DIVIDE", ICON_NONE, "Divide", ""},
{int(ApplyMaskMode::Add), "ADD", ICON_NONE, "Add", ""},
{int(ApplyMaskMode::Subtract), "SUBTRACT", ICON_NONE, "Subtract", ""},
{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 899 of file sculpt_ops.cc.

Referenced by SCULPT_OT_mask_from_boundary(), and SCULPT_OT_mask_from_cavity().

◆ mode_items

const EnumPropertyItem blender::ed::sculpt_paint::mask::mode_items[]
static
Initial value:
= {
{int(FloodFillMode::Value),
"VALUE",
0,
"Value",
"Set mask to the level specified by the 'value' property"},
{int(FloodFillMode::InverseValue),
"VALUE_INVERSE",
0,
"Value Inverted",
"Set mask to the level specified by the inverted 'value' property"},
{int(FloodFillMode::InverseMeshValue), "INVERT", 0, "Invert", "Invert the mask"},
{0}}

Definition at line 287 of file paint_mask.cc.

Referenced by gesture_operator_properties(), and PAINT_OT_mask_flood_fill().

◆ settings_sources

EnumPropertyItem blender::ed::sculpt_paint::mask::settings_sources[]
static
Initial value:
= {
{int(MaskSettingsSource::Operator),
"OPERATOR",
ICON_NONE,
"Operator",
"Use settings from operator properties"},
{int(MaskSettingsSource::Brush), "BRUSH", ICON_NONE, "Brush", "Use settings from brush"},
{int(MaskSettingsSource::Scene), "SCENE", ICON_NONE, "Scene", "Use settings from scene"},
{0, nullptr, 0, nullptr, nullptr}}

Definition at line 910 of file sculpt_ops.cc.

Referenced by SCULPT_OT_mask_from_boundary(), and SCULPT_OT_mask_from_cavity().