133#define PAINT_OVERRIDE_MASK \
134 (PAINT_OVERLAY_OVERRIDE_SECONDARY | PAINT_OVERLAY_OVERRIDE_PRIMARY | \
135 PAINT_OVERLAY_OVERRIDE_CURSOR)
142#define PAINT_SYMM_AREA_DEFAULT 0
151#define PAINT_SYMM_AREAS 8
252 eObjectMode ob_mode, std::optional<int> brush_type);
327 const float mouse_pos[2],
329 bool stroke_has_started);
341#define SCULPT_FACE_SET_NONE 0
377using ActiveVert = std::variant<std::monostate, int, SubdivCCGCoord, BMVert *>;
408 std::unique_ptr<blender::bke::pbvh::Tree>
pbvh;
void BKE_sculpt_update_object_after_eval(Depsgraph *depsgraph, Object *ob_eval)
PaletteColor * BKE_palette_color_add(Palette *palette)
bool BKE_paint_eraser_brush_set_default(Main *bmain, Paint *paint)
bool BKE_paint_select_grease_pencil_test(const Object *ob)
void BKE_paint_cavity_curve_preset(Paint *paint, int preset)
Brush * BKE_paint_eraser_brush(Paint *paint)
const uchar PAINT_CURSOR_SCULPT_GREASE_PENCIL[3]
void BKE_paint_invalidate_cursor_overlay(Scene *scene, ViewLayer *view_layer, CurveMapping *curve)
void BKE_palette_sort_hsv(tPaletteColorHSV *color_array, int totcol)
float paint_grid_paint_mask(const GridPaintMask *gpm, uint level, uint x, uint y)
bool BKE_palette_from_hash(Main *bmain, GHash *color_table, const char *name, bool linear)
bool BKE_paint_brush_set_essentials(Main *bmain, Paint *paint, const char *name)
void BKE_sculpt_sync_face_visibility_to_grids(const Mesh &mesh, SubdivCCG &subdiv_ccg)
void BKE_paint_invalidate_overlay_tex(Scene *scene, ViewLayer *view_layer, const Tex *tex)
void BKE_sculptsession_bm_to_me(Object *ob, bool reorder)
bool BKE_paint_brush_set(Paint *paint, Brush *brush)
bool BKE_paint_always_hide_test(const Object *ob)
PaintCurve * BKE_paint_curve_add(Main *bmain, const char *name)
std::optional< int > BKE_paint_get_brush_type_from_obmode(const Brush *brush, const eObjectMode ob_mode)
bool BKE_sculptsession_use_pbvh_draw(const Object *ob, const RegionView3D *rv3d)
void BKE_paint_brushes_ensure(Main *bmain, Paint *paint)
const uchar PAINT_CURSOR_PAINT_GREASE_PENCIL[3]
void BKE_sculptsession_free(Object *ob)
void BKE_palette_sort_svh(tPaletteColorHSV *color_array, int totcol)
std::variant< std::monostate, int, SubdivCCGCoord, BMVert * > ActiveVert
bool BKE_paint_use_unified_color(const ToolSettings *tool_settings, const Paint *paint)
const uchar PAINT_CURSOR_WEIGHT_PAINT[3]
void BKE_sculptsession_free_deformMats(SculptSession *ss)
bool BKE_paint_select_elem_test(const Object *ob)
Paint * BKE_paint_get_active(Scene *sce, ViewLayer *view_layer)
ePaintOverlayControlFlags BKE_paint_get_overlay_flags()
bool BKE_paint_select_vert_test(const Object *ob)
eObjectMode BKE_paint_object_mode_from_paintmode(PaintMode mode)
void BKE_palette_color_remove(Palette *palette, PaletteColor *color)
void BKE_paint_face_set_overlay_color_get(int face_set, int seed, uchar r_color[4])
void BKE_sculptsession_free_vwpaint_data(SculptSession *ss)
void BKE_palette_sort_vhs(tPaletteColorHSV *color_array, int totcol)
void BKE_paint_stroke_get_average(const Scene *scene, const Object *ob, float stroke[3])
const Brush * BKE_paint_eraser_brush_for_read(const Paint *paint)
void BKE_sculpt_update_object_before_eval(Object *ob_eval)
void BKE_paint_set_overlay_override(enum eOverlayFlags flag)
ePaintOverlayControlFlags
@ PAINT_OVERLAY_INVALID_CURVE
@ PAINT_OVERLAY_INVALID_TEXTURE_SECONDARY
@ PAINT_OVERLAY_OVERRIDE_CURSOR
@ PAINT_OVERLAY_INVALID_TEXTURE_PRIMARY
@ PAINT_OVERLAY_OVERRIDE_SECONDARY
@ PAINT_OVERLAY_OVERRIDE_PRIMARY
void BKE_paint_reset_overlay_invalid(ePaintOverlayControlFlags flag)
void BKE_paint_free(Paint *paint)
CurveMapping * BKE_sculpt_default_cavity_curve()
void paint_update_brush_rake_rotation(UnifiedPaintSettings &ups, const Brush &brush, float rotation)
const Brush * BKE_paint_brush_for_read(const Paint *paint)
void BKE_paint_copy(const Paint *src, Paint *dst, int flag)
bool BKE_paint_eraser_brush_set(Paint *paint, Brush *brush)
Paint * BKE_paint_get_active_from_paintmode(Scene *sce, PaintMode mode)
void BKE_paint_init(Main *bmain, Scene *sce, PaintMode mode, const uchar col[3], bool ensure_brushes=true)
const EnumPropertyItem * BKE_paint_get_tool_enum_from_paintmode(PaintMode mode)
bool BKE_paint_canvas_image_get(PaintModeSettings *settings, Object *ob, Image **r_image, ImageUser **r_image_user)
MultiresModifierData * BKE_sculpt_multires_active(const Scene *scene, Object *ob)
void BKE_sculpt_check_cavity_curves(Sculpt *sd)
Brush * BKE_paint_eraser_brush_from_essentials(Main *bmain, eObjectMode ob_mode, const char *name)
void BKE_sculpt_update_object_for_edit(Depsgraph *depsgraph, Object *ob_orig, bool is_paint_tool)
void BKE_paint_curve_clamp_endpoint_add_index(PaintCurve *pc, int add_index)
void BKE_sculpt_color_layer_create_if_needed(Object *object)
void BKE_palette_clear(Palette *palette)
Paint * BKE_paint_get_active_from_context(const bContext *C)
bool paint_is_bmesh_face_hidden(const BMFace *f)
void BKE_sculptsession_bm_to_me_for_render(Object *object)
bool BKE_paint_ensure(ToolSettings *ts, Paint **r_paint)
std::optional< AssetWeakReference > BKE_paint_brush_type_default_reference(eObjectMode ob_mode, std::optional< int > brush_type)
bool BKE_paint_brush_set_default(Main *bmain, Paint *paint)
Palette * BKE_palette_add(Main *bmain, const char *name)
const uchar PAINT_CURSOR_SCULPT[3]
bool BKE_paint_eraser_brush_set_essentials(Main *bmain, Paint *paint, const char *name)
uint BKE_paint_get_brush_type_offset_from_paintmode(PaintMode mode)
const uchar PAINT_CURSOR_TEXTURE_PAINT[3]
void BKE_palette_sort_luminance(tPaletteColorHSV *color_array, int totcol)
void BKE_sculptsession_free_pbvh(Object &object)
void BKE_paint_blend_read_data(BlendDataReader *reader, const Scene *scene, Paint *paint)
std::optional< int > BKE_paint_get_brush_type_from_paintmode(const Brush *brush, const PaintMode mode)
int BKE_paint_canvas_uvmap_layer_index_get(const PaintModeSettings *settings, Object *ob)
Brush * BKE_paint_brush(Paint *paint)
void BKE_sculpt_toolsettings_data_ensure(Main *bmain, Scene *scene)
bool paint_calculate_rake_rotation(UnifiedPaintSettings &ups, const Brush &brush, const float mouse_pos[2], PaintMode paint_mode, bool stroke_has_started)
Palette * BKE_paint_palette(Paint *paint)
void BKE_paint_palette_set(Paint *paint, Palette *palette)
const uchar PAINT_CURSOR_SCULPT_CURVES[3]
bool BKE_palette_is_empty(const Palette *palette)
PaintMode BKE_paintmode_get_active_from_context(const bContext *C)
const uchar PAINT_CURSOR_VERTEX_PAINT[3]
void BKE_sculpt_mask_layers_ensure(Depsgraph *depsgraph, Main *bmain, Object *ob, MultiresModifierData *mmd)
bool BKE_paint_brush_poll(const Paint *paint, const Brush *brush)
Brush * BKE_paint_brush_from_essentials(Main *bmain, eObjectMode obmode, const char *name)
bool paint_is_grid_face_hidden(blender::BoundedBitSpan grid_hidden, int gridsize, int x, int y)
bool BKE_object_sculpt_use_dyntopo(const Object *object)
void BKE_paint_brushes_set_default_references(ToolSettings *ts)
char * BKE_paint_canvas_key_get(PaintModeSettings *settings, Object *ob)
bool BKE_paint_select_face_test(const Object *ob)
PaintMode BKE_paintmode_get_from_tool(const bToolRef *tref)
void BKE_paint_brushes_validate(Main *bmain, Paint *paint)
void BKE_paint_invalidate_overlay_all()
void BKE_paint_blend_write(BlendWriter *writer, Paint *paint)
bool BKE_paint_ensure_from_paintmode(Scene *sce, PaintMode mode)
#define ENUM_OPERATORS(_type, _max)
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a color
BPy_StructRNA * depsgraph
static unsigned long seed
pbvh::Tree & pbvh_ensure(Depsgraph &depsgraph, Object &object)
pbvh::Tree * pbvh_get(Object &object)
VecBase< float, 4 > float4
VecBase< float, 3 > float3
blender::Vector< std::pair< blender::float3, blender::float3 > > edges
blender::float3 pivot_position
blender::float3 initial_vert_position
blender::Array< int > fake_neighbor_index
float current_max_distance
blender::Array< blender::float3 > initial_orig_coords
blender::Array< blender::float3 > initial_head_coords
blender::float4 prev_pivot_rot
blender::float3 last_normal
blender::ed::sculpt_paint::StrokeCache * cache
struct SculptSession::@254261273135317060024017237233241042170104042124 mode
std::optional< int > active_grid_index
void clear_active_vert(bool persist_last_active)
blender::ed::sculpt_paint::filter::Cache * filter_cache
std::optional< int > active_face_index
KeyBlock * shapekey_active
blender::float3 cursor_normal
blender::float3 prev_pivot_pos
blender::Array< int > vert_to_edge_indices
blender::float4 pivot_rot
SculptVertexInfo vertex_info
blender::SharedCache< blender::Vector< blender::float3 > > face_normals_deform
blender::GroupedSpan< int > vert_to_edge_map
std::unique_ptr< SculptBoundaryPreview > boundary_preview
blender::float3 cursor_view_normal
struct SculptSession::@251246223064352150223005211001050162321211037052 multires
blender::Array< MDeformVert > dvert_prev
blender::Array< int > preview_verts
ActiveVert active_vert() const
blender::Array< int > edge_to_face_offsets
blender::Array< blender::float3, 0 > deform_cos
blender::float3 cursor_location
blender::float3 active_vert_position(const Depsgraph &depsgraph, const Object &object) const
blender::float3 pivot_pos
int last_active_vert_index() const
std::unique_ptr< SculptPoseIKChainPreview > pose_ik_chain_preview
blender::float3 pivot_scale
blender::float3 init_pivot_pos
blender::float4 init_pivot_rot
std::unique_ptr< blender::bke::pbvh::Tree > pbvh
std::unique_ptr< SculptTopologyIslandCache > topology_island_cache
char * last_paint_canvas_key
blender::float3 prev_pivot_scale
blender::float3 init_pivot_scale
blender::Array< int > vert_to_edge_offsets
blender::GroupedSpan< int > edge_to_face_map
blender::SharedCache< blender::Vector< blender::float3 > > vert_normals_deform
blender::ed::sculpt_paint::expand::Cache * expand_cache
bool sticky_shading_color
int active_vert_index() const
ActiveVert last_active_vert() const
blender::Array< int > edge_to_face_indices
struct SculptSession::@254261273135317060024017237233241042170104042124::@371103373316252122004227004340313020053342354301 wpaint
blender::Array< blender::float3x3, 0 > deform_imats
MultiresModifierData * modifier
blender::float3 cursor_sampled_normal
SculptFakeNeighbors fake_neighbors
bool deform_modifiers_active
void set_active_vert(ActiveVert vert)
blender::Array< uint8_t > vert_island_ids
blender::BitVector boundary