98 #define PAINT_MODE_HAS_BRUSH(mode) !ELEM(mode, PAINT_MODE_SCULPT_UV)
110 #define PAINT_OVERRIDE_MASK \
111 (PAINT_OVERLAY_OVERRIDE_SECONDARY | PAINT_OVERLAY_OVERRIDE_PRIMARY | \
112 PAINT_OVERLAY_OVERRIDE_CURSOR)
118 #define PAINT_SYMM_AREA_DEFAULT 0
126 #define PAINT_SYMM_AREAS 8
151 struct GHash *color_table,
193 const struct MVert *mvert,
194 const struct MLoop *mloop);
206 const float mouse_pos[2]);
225 struct Paint *paint);
228 struct Paint *paint);
230 #define SCULPT_FACE_SET_NONE 0
typedef float(TangentPoint)[2]
bool paint_is_face_hidden(const struct MLoopTri *lt, const struct MVert *mvert, const struct MLoop *mloop)
struct Paint * BKE_paint_get_active(struct Scene *sce, struct ViewLayer *view_layer)
void BKE_sculptsession_free_vwpaint_data(struct SculptSession *ss)
eObjectMode BKE_paint_object_mode_from_paintmode(ePaintMode mode)
void BKE_sculptsession_bm_to_me_for_render(struct Object *object)
void BKE_paint_invalidate_overlay_tex(struct Scene *scene, struct ViewLayer *view_layer, const struct Tex *tex)
void BKE_paint_blend_write(struct BlendWriter *writer, struct Paint *paint)
struct Palette * BKE_paint_palette(struct Paint *paint)
void BKE_paint_brush_set(struct Paint *paint, struct Brush *br)
struct SculptPoseIKChainSegment SculptPoseIKChainSegment
struct Palette * BKE_palette_add(struct Main *bmain, const char *name)
struct SculptBoundaryPreviewEdge SculptBoundaryPreviewEdge
void BKE_sculpt_sync_face_set_visibility(struct Mesh *mesh, struct SubdivCCG *subdiv_ccg)
bool paint_calculate_rake_rotation(struct UnifiedPaintSettings *ups, struct Brush *brush, const float mouse_pos[2])
void BKE_sculpt_sync_face_sets_visibility_to_base_mesh(struct Mesh *mesh)
void BKE_paint_invalidate_cursor_overlay(struct Scene *scene, struct ViewLayer *view_layer, struct CurveMapping *curve)
void BKE_paint_toolslots_len_ensure(struct Paint *paint, int len)
void BKE_palette_sort_svh(struct tPaletteColorHSV *color_array, const int totcol)
bool BKE_paint_select_elem_test(struct Object *ob)
struct SculptClothLengthConstraint SculptClothLengthConstraint
float paint_grid_paint_mask(const struct GridPaintMask *gpm, uint level, uint x, uint y)
struct Paint * BKE_paint_get_active_from_paintmode(struct Scene *sce, ePaintMode mode)
void BKE_sculpt_sync_face_sets_visibility_to_grids(struct Mesh *mesh, struct SubdivCCG *subdiv_ccg)
void BKE_sculpt_toolsettings_data_ensure(struct Scene *scene)
ePaintMode BKE_paintmode_get_active_from_context(const struct bContext *C)
void BKE_paint_curve_set(struct Brush *br, struct PaintCurve *pc)
struct SculptSession SculptSession
void BKE_palette_sort_luminance(struct tPaletteColorHSV *color_array, const int totcol)
const char PAINT_CURSOR_VERTEX_PAINT[3]
void BKE_paint_copy(struct Paint *src, struct Paint *tar, const int flag)
void BKE_paint_runtime_init(const struct ToolSettings *ts, struct Paint *paint)
void BKE_sculpt_update_object_before_eval(struct Object *ob_eval)
struct SculptClothSimulation SculptClothSimulation
void BKE_sculpt_update_object_for_edit(struct Depsgraph *depsgraph, struct Object *ob_orig, bool need_pmap, bool need_mask, bool need_colors)
const char PAINT_CURSOR_SCULPT[3]
bool paint_is_bmesh_face_hidden(struct BMFace *f)
uint BKE_paint_get_brush_tool_offset_from_paintmode(const ePaintMode mode)
struct Brush * BKE_paint_toolslots_brush_get(struct Paint *paint, int slot_index)
void BKE_paint_toolslots_brush_update(struct Paint *paint)
@ SCULPT_CLOTH_NODE_UNINITIALIZED
@ SCULPT_CLOTH_NODE_ACTIVE
@ SCULPT_CLOTH_NODE_INACTIVE
struct SculptPersistentBase SculptPersistentBase
struct Brush * BKE_paint_brush(struct Paint *paint)
struct SculptBoundaryEditInfo SculptBoundaryEditInfo
void BKE_paint_init(struct Main *bmain, struct Scene *sce, ePaintMode mode, const char col[3])
bool BKE_paint_ensure(struct ToolSettings *ts, struct Paint **r_paint)
void BKE_paint_set_overlay_override(enum eOverlayFlags flag)
bool BKE_palette_from_hash(struct Main *bmain, struct GHash *color_table, const char *name, const bool linear)
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_palette_set(struct Paint *p, struct Palette *palette)
int BKE_sculpt_mask_layers_ensure(struct Object *ob, struct MultiresModifierData *mmd)
void BKE_paint_free(struct Paint *p)
void BKE_palette_color_remove(struct Palette *palette, struct PaletteColor *color)
struct SculptPoseIKChain SculptPoseIKChain
void BKE_sculptsession_free(struct Object *ob)
struct SculptVertexInfo SculptVertexInfo
struct Paint * BKE_paint_get_active_from_context(const struct bContext *C)
void BKE_paint_blend_read_lib(struct BlendLibReader *reader, struct Scene *scene, struct Paint *paint)
bool paint_is_grid_face_hidden(const unsigned int *grid_hidden, int gridsize, int x, int y)
const char PAINT_CURSOR_WEIGHT_PAINT[3]
struct SculptBoundary SculptBoundary
const struct EnumPropertyItem * BKE_paint_get_tool_enum_from_paintmode(ePaintMode mode)
void BKE_palette_sort_vhs(struct tPaletteColorHSV *color_array, const int totcol)
struct SculptFakeNeighbors SculptFakeNeighbors
bool BKE_paint_select_vert_test(struct Object *ob)
const char PAINT_CURSOR_TEXTURE_PAINT[3]
bool BKE_paint_select_face_test(struct Object *ob)
void BKE_paint_curve_clamp_endpoint_add_index(struct PaintCurve *pc, const int add_index)
void BKE_paint_toolslots_brush_update_ex(struct Paint *paint, struct Brush *brush)
void BKE_palette_clear(struct Palette *palette)
bool BKE_paint_ensure_from_paintmode(struct Scene *sce, ePaintMode mode)
void BKE_paint_toolslots_brush_validate(struct Main *bmain, struct Paint *paint)
void BKE_paint_stroke_get_average(struct Scene *scene, struct Object *ob, float stroke[3])
void BKE_paint_cavity_curve_preset(struct Paint *p, int preset)
void BKE_palette_sort_hsv(struct tPaletteColorHSV *color_array, const int totcol)
void BKE_sculptsession_free_deformMats(struct SculptSession *ss)
void BKE_paint_invalidate_overlay_all(void)
struct PaintCurve * BKE_paint_curve_add(struct Main *bmain, const char *name)
@ PAINT_MODE_VERTEX_GPENCIL
@ PAINT_MODE_WEIGHT_GPENCIL
@ PAINT_MODE_SCULPT_GPENCIL
void BKE_sculptsession_bm_to_me(struct Object *ob, bool reorder)
const char * BKE_paint_get_tool_prop_id_from_paintmode(ePaintMode mode)
void BKE_sculpt_bvh_update_from_ccg(struct PBVH *pbvh, struct SubdivCCG *subdiv_ccg)
struct PaletteColor * BKE_palette_color_add(struct Palette *palette)
void BKE_paint_face_set_overlay_color_get(const int face_set, const int seed, uchar r_color[4])
eSculptClothConstraintType
@ SCULPT_CLOTH_CONSTRAINT_DEFORMATION
@ SCULPT_CLOTH_CONSTRAINT_PIN
@ SCULPT_CLOTH_CONSTRAINT_SOFTBODY
@ SCULPT_CLOTH_CONSTRAINT_STRUCTURAL
void BKE_sculpt_update_object_after_eval(struct Depsgraph *depsgraph, struct Object *ob_eval)
struct PBVH * BKE_sculpt_object_pbvh_ensure(struct Depsgraph *depsgraph, struct Object *ob)
void BKE_paint_blend_read_data(struct BlendDataReader *reader, const struct Scene *scene, struct Paint *paint)
ePaintOverlayControlFlags BKE_paint_get_overlay_flags(void)
void BKE_sculpt_color_layer_create_if_needed(struct Object *object)
void BKE_paint_toolslots_init_from_main(struct Main *bmain)
struct MultiresModifierData * BKE_sculpt_multires_active(struct Scene *scene, struct Object *ob)
void paint_update_brush_rake_rotation(struct UnifiedPaintSettings *ups, struct Brush *brush, float rotation)
void BKE_sculpt_face_sets_ensure_from_base_mesh_visibility(struct Mesh *mesh)
ePaintMode BKE_paintmode_get_from_tool(const struct bToolRef *tref)
bool BKE_sculptsession_use_pbvh_draw(const struct Object *ob, const struct View3D *v3d)
@ SCULPT_MASK_LAYER_CALC_VERT
@ SCULPT_MASK_LAYER_CALC_LOOP
void BKE_sculpt_ensure_orig_mesh_data(struct Scene *scene, struct Object *object)
bool BKE_palette_is_empty(const struct Palette *palette)
struct Depsgraph Depsgraph
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
static unsigned long seed
const Depsgraph * depsgraph
struct SubdivCCG * subdiv_ccg
int num_propagation_steps
struct SculptBoundary::@52 twist
int max_propagation_steps
struct SculptBoundaryEditInfo * edit_info
float initial_vertex_position[3]
float(* pivot_rotation_axis)[3]
float initial_pivot_position[3]
struct SculptBoundary::@50 bend
struct SculptBoundary::@51 slide
SculptBoundaryPreviewEdge * edges
float(* pivot_positions)[3]
eSculptClothConstraintType type
float * deformation_strength
struct EdgeSet * created_length_constraints
struct ListBase * collider_list
struct GHash * node_state_index
int capacity_length_constraints
float(* deformation_pos)[3]
int tot_length_constraints
eSculptClothNodeSimState * node_state
SculptClothLengthConstraint * length_constraints
float(* last_iteration_pos)[3]
float * length_constraint_tweak
int * fake_neighbor_index
float current_max_distance
float pivot_mat[PAINT_SYMM_AREAS][4][4]
float trans_mat[PAINT_SYMM_AREAS][4][4]
float pivot_mat_inv[PAINT_SYMM_AREAS][4][4]
SculptPoseIKChainSegment * segments
float grab_delta_offset[3]
unsigned int texcache_side
struct SubdivCCG * subdiv_ccg
struct ImagePool * tex_pool
SculptPoseIKChain * pose_ik_chain_preview
struct MeshElemMap * epmap
float cursor_view_normal[3]
struct MDeformVert * dvert_prev
int preview_vert_index_count
struct Depsgraph * depsgraph
SculptVertexInfo vertex_info
struct RegionView3D * rv3d
struct KeyBlock * shapekey_active
float init_pivot_scale[3]
struct SculptSession::@54::@55 vpaint
union SculptSession::@54 mode
int * preview_vert_index_list
SculptBoundary * boundary_preview
struct MeshElemMap * vemap
float gesture_initial_location[3]
float gesture_initial_normal[3]
struct SculptVertexPaintGeomMap gmap
float prev_pivot_scale[3]
struct MeshElemMap * pmap
struct MultiresModifierData * modifier
float(* deform_imats)[3][3]
float cursor_sampled_normal[3]
struct StrokeCache * cache
struct SculptSession::@53 multires
unsigned int texcache_actual
unsigned int * previous_color
struct ExpandCache * expand_cache
struct SculptSession::@54::@56 wpaint
SculptFakeNeighbors fake_neighbors
SculptPersistentBase * persistent_base
struct FilterCache * filter_cache
bool deform_modifiers_active
int * connected_component
struct MeshElemMap * vert_to_loop
struct MeshElemMap * vert_to_poly