Blender V4.3
paint_mask.cc File Reference
#include "paint_mask.hh"
#include <cstdlib>
#include "MEM_guardedalloc.h"
#include "DNA_object_types.h"
#include "BLI_array_utils.hh"
#include "BLI_bit_span_ops.hh"
#include "BLI_enumerable_thread_specific.hh"
#include "BLI_math_base.hh"
#include "BLI_span.hh"
#include "BLI_vector.hh"
#include "BKE_attribute.hh"
#include "BKE_brush.hh"
#include "BKE_ccg.hh"
#include "BKE_context.hh"
#include "BKE_mesh.hh"
#include "BKE_multires.hh"
#include "BKE_paint.hh"
#include "BKE_pbvh_api.hh"
#include "BKE_subdiv_ccg.hh"
#include "BKE_subsurf.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "ED_select_utils.hh"
#include "bmesh.hh"
#include "mesh_brush_common.hh"
#include "paint_intern.hh"
#include "sculpt_automask.hh"
#include "sculpt_gesture.hh"
#include "sculpt_hide.hh"
#include "sculpt_intern.hh"
#include "sculpt_undo.hh"

Go to the source code of this file.

Classes

struct  blender::ed::sculpt_paint::mask::MaskOperation
 

Namespaces

namespace  blender
 
namespace  blender::ed
 
namespace  blender::ed::sculpt_paint
 
namespace  blender::ed::sculpt_paint::mask
 

Functions

Public API
Array< floatblender::ed::sculpt_paint::mask::duplicate_mask (const Object &object)
 
void blender::ed::sculpt_paint::mask::mix_new_masks (const Span< float > new_masks, const Span< float > factors, const MutableSpan< float > masks)
 
void blender::ed::sculpt_paint::mask::clamp_mask (const MutableSpan< float > masks)
 
void blender::ed::sculpt_paint::mask::invert_mask (const MutableSpan< float > masks)
 
void blender::ed::sculpt_paint::mask::gather_mask_bmesh (const BMesh &bm, const Set< BMVert *, 0 > &verts, const MutableSpan< float > r_mask)
 
void blender::ed::sculpt_paint::mask::gather_mask_grids (const SubdivCCG &subdiv_ccg, const Span< int > grids, const MutableSpan< float > r_mask)
 
void blender::ed::sculpt_paint::mask::scatter_mask_grids (const Span< float > mask, SubdivCCG &subdiv_ccg, const Span< int > grids)
 
void blender::ed::sculpt_paint::mask::scatter_mask_bmesh (const Span< float > mask, const BMesh &bm, const Set< BMVert *, 0 > &verts)
 
static float blender::ed::sculpt_paint::mask::average_masks (const int mask_offset, const Span< const BMVert * > verts)
 
void blender::ed::sculpt_paint::mask::average_neighbor_mask_bmesh (const int mask_offset, const Set< BMVert *, 0 > &verts, const MutableSpan< float > new_masks)
 
void blender::ed::sculpt_paint::mask::update_mask_mesh (const Depsgraph &depsgraph, Object &object, const IndexMask &node_mask, FunctionRef< void(MutableSpan< float >, Span< int >)> update_fn)
 
bool blender::ed::sculpt_paint::mask::mask_equals_array_grids (const Span< float > masks, const CCGKey &key, const Span< int > grids, const Span< float > values)
 
bool blender::ed::sculpt_paint::mask::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 blender::ed::sculpt_paint::mask::gesture_begin (bContext &C, wmOperator &op, gesture::GestureData &gesture_data)
 
static float blender::ed::sculpt_paint::mask::mask_gesture_get_new_value (const float elem, FloodFillMode mode, float value)
 
static void blender::ed::sculpt_paint::mask::gesture_apply_for_symmetry_pass (bContext &, gesture::GestureData &gesture_data)
 
static void blender::ed::sculpt_paint::mask::gesture_end (bContext &C, gesture::GestureData &gesture_data)
 
static void blender::ed::sculpt_paint::mask::init_operation (bContext &C, gesture::GestureData &gesture_data, wmOperator &op)
 
static void blender::ed::sculpt_paint::mask::gesture_operator_properties (wmOperatorType *ot)
 
static int blender::ed::sculpt_paint::mask::gesture_box_exec (bContext *C, wmOperator *op)
 
static int blender::ed::sculpt_paint::mask::gesture_lasso_exec (bContext *C, wmOperator *op)
 
static int blender::ed::sculpt_paint::mask::gesture_line_exec (bContext *C, wmOperator *op)
 
static int blender::ed::sculpt_paint::mask::gesture_polyline_exec (bContext *C, wmOperator *op)
 
void blender::ed::sculpt_paint::mask::PAINT_OT_mask_lasso_gesture (wmOperatorType *ot)
 
void blender::ed::sculpt_paint::mask::PAINT_OT_mask_box_gesture (wmOperatorType *ot)
 
void blender::ed::sculpt_paint::mask::PAINT_OT_mask_line_gesture (wmOperatorType *ot)
 
void blender::ed::sculpt_paint::mask::PAINT_OT_mask_polyline_gesture (wmOperatorType *ot)
 

Global Mask Operators

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

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