Blender  V2.93
Macros | Functions
BKE_brush.h File Reference
#include "DNA_object_enums.h"

Go to the source code of this file.

Macros

#define BKE_brush_tool_get(brush, p)
 
#define BKE_brush_tool_set(brush, p, tool)
 

Functions

void BKE_brush_system_init (void)
 
void BKE_brush_system_exit (void)
 
struct BrushBKE_brush_add (struct Main *bmain, const char *name, const eObjectMode ob_mode)
 
struct BrushBKE_brush_add_gpencil (struct Main *bmain, struct ToolSettings *ts, const char *name, eObjectMode mode)
 
bool BKE_brush_delete (struct Main *bmain, struct Brush *brush)
 
void BKE_brush_init_gpencil_settings (struct Brush *brush)
 
struct BrushBKE_brush_first_search (struct Main *bmain, const eObjectMode ob_mode)
 
void BKE_brush_sculpt_reset (struct Brush *brush)
 
void BKE_brush_gpencil_paint_presets (struct Main *bmain, struct ToolSettings *ts, const bool reset)
 
void BKE_brush_gpencil_vertex_presets (struct Main *bmain, struct ToolSettings *ts, const bool reset)
 
void BKE_brush_gpencil_sculpt_presets (struct Main *bmain, struct ToolSettings *ts, const bool reset)
 
void BKE_brush_gpencil_weight_presets (struct Main *bmain, struct ToolSettings *ts, const bool reset)
 
void BKE_gpencil_brush_preset_set (struct Main *bmain, struct Brush *brush, const short type)
 
void BKE_brush_jitter_pos (const struct Scene *scene, struct Brush *brush, const float pos[2], float jitterpos[2])
 
void BKE_brush_randomize_texture_coords (struct UnifiedPaintSettings *ups, bool mask)
 
void BKE_brush_curve_preset (struct Brush *b, enum eCurveMappingPreset preset)
 
float BKE_brush_curve_strength_clamped (struct Brush *br, float p, const float len)
 
float BKE_brush_curve_strength (const struct Brush *br, float p, const float len)
 
float BKE_brush_sample_tex_3d (const struct Scene *scene, const struct Brush *br, const float point[3], float rgba[4], const int thread, struct ImagePool *pool)
 
float BKE_brush_sample_masktex (const struct Scene *scene, struct Brush *br, const float point[2], const int thread, struct ImagePool *pool)
 
unsigned int * BKE_brush_gen_texture_cache (struct Brush *br, int half_side, bool use_secondary)
 
struct ImBufBKE_brush_gen_radial_control_imbuf (struct Brush *br, bool secondary, bool display_gradient)
 
const floatBKE_brush_color_get (const struct Scene *scene, const struct Brush *brush)
 
const floatBKE_brush_secondary_color_get (const struct Scene *scene, const struct Brush *brush)
 
void BKE_brush_color_set (struct Scene *scene, struct Brush *brush, const float color[3])
 
int BKE_brush_size_get (const struct Scene *scene, const struct Brush *brush)
 
void BKE_brush_size_set (struct Scene *scene, struct Brush *brush, int size)
 
float BKE_brush_unprojected_radius_get (const struct Scene *scene, const struct Brush *brush)
 
void BKE_brush_unprojected_radius_set (struct Scene *scene, struct Brush *brush, float unprojected_radius)
 
float BKE_brush_alpha_get (const struct Scene *scene, const struct Brush *brush)
 
void BKE_brush_alpha_set (struct Scene *scene, struct Brush *brush, float alpha)
 
float BKE_brush_weight_get (const struct Scene *scene, const struct Brush *brush)
 
void BKE_brush_weight_set (const struct Scene *scene, struct Brush *brush, float value)
 
bool BKE_brush_use_locked_size (const struct Scene *scene, const struct Brush *brush)
 
bool BKE_brush_use_alpha_pressure (const struct Brush *brush)
 
bool BKE_brush_use_size_pressure (const struct Brush *brush)
 
bool BKE_brush_sculpt_has_secondary_color (const struct Brush *brush)
 
void BKE_brush_scale_unprojected_radius (float *unprojected_radius, int new_brush_size, int old_brush_size)
 
void BKE_brush_scale_size (int *r_brush_size, float new_unprojected_radius, float old_unprojected_radius)
 
void BKE_brush_debug_print_state (struct Brush *br)
 

Detailed Description

General operations for brushes.

Definition in file BKE_brush.h.

Macro Definition Documentation

◆ BKE_brush_tool_get

#define BKE_brush_tool_get (   brush,
 
)
Value:
(CHECK_TYPE_ANY(brush, struct Brush *, const struct Brush *), \
*(const char *)POINTER_OFFSET(brush, (p)->runtime.tool_offset))
#define CHECK_TYPE_ANY(...)
#define POINTER_OFFSET(v, ofs)

Definition at line 141 of file BKE_brush.h.

◆ BKE_brush_tool_set

#define BKE_brush_tool_set (   brush,
  p,
  tool 
)
Value:
{ \
CHECK_TYPE_ANY(brush, struct Brush *); \
*(char *)POINTER_OFFSET(brush, (p)->runtime.tool_offset) = tool; \
} \
((void)0)

Definition at line 144 of file BKE_brush.h.

Function Documentation

◆ BKE_brush_add()

struct Brush* BKE_brush_add ( Main bmain,
const char *  name,
const eObjectMode  ob_mode 
)
Note
Resulting brush will have two users: one as a fake user, another is assumed to be used by the caller.

Definition at line 492 of file brush.c.

References BKE_id_new(), ID_BR, and Brush::ob_mode.

Referenced by BKE_brush_add_gpencil(), BKE_paint_init(), BLO_update_defaults_startup_blend(), brush_add_exec(), brush_add_gpencil_exec(), brush_generic_tool_set(), and toolsystem_ref_link().

◆ BKE_brush_add_gpencil()

struct Brush* BKE_brush_add_gpencil ( struct Main bmain,
struct ToolSettings ts,
const char *  name,
eObjectMode  mode 
)

◆ BKE_brush_alpha_get()

float BKE_brush_alpha_get ( const struct Scene scene,
const struct Brush brush 
)

◆ BKE_brush_alpha_set()

void BKE_brush_alpha_set ( struct Scene scene,
struct Brush brush,
float  alpha 
)

◆ BKE_brush_color_get()

const float* BKE_brush_color_get ( const struct Scene scene,
const struct Brush brush 
)

◆ BKE_brush_color_set()

void BKE_brush_color_set ( struct Scene scene,
struct Brush brush,
const float  color[3] 
)

◆ BKE_brush_curve_preset()

void BKE_brush_curve_preset ( Brush b,
eCurveMappingPreset  preset 
)

◆ BKE_brush_curve_strength()

float BKE_brush_curve_strength ( const struct Brush br,
float  p,
const float  len 
)

◆ BKE_brush_curve_strength_clamped()

float BKE_brush_curve_strength_clamped ( struct Brush br,
float  p,
const float  len 
)

◆ BKE_brush_debug_print_state()

void BKE_brush_debug_print_state ( struct Brush br)

◆ BKE_brush_delete()

bool BKE_brush_delete ( struct Main bmain,
struct Brush brush 
)

◆ BKE_brush_first_search()

struct Brush* BKE_brush_first_search ( struct Main bmain,
const eObjectMode  ob_mode 
)

Definition at line 1559 of file brush.c.

References Main::brushes, ListBase::first, Brush::id, ID::next, NULL, and Brush::ob_mode.

Referenced by BKE_paint_init().

◆ BKE_brush_gen_radial_control_imbuf()

struct ImBuf* BKE_brush_gen_radial_control_imbuf ( struct Brush br,
bool  secondary,
bool  display_gradient 
)

◆ BKE_brush_gen_texture_cache()

unsigned int* BKE_brush_gen_texture_cache ( struct Brush br,
int  half_side,
bool  use_secondary 
)

◆ BKE_brush_gpencil_paint_presets()

void BKE_brush_gpencil_paint_presets ( struct Main bmain,
struct ToolSettings ts,
const bool  reset 
)

◆ BKE_brush_gpencil_sculpt_presets()

void BKE_brush_gpencil_sculpt_presets ( struct Main bmain,
struct ToolSettings ts,
const bool  reset 
)

◆ BKE_brush_gpencil_vertex_presets()

void BKE_brush_gpencil_vertex_presets ( struct Main bmain,
struct ToolSettings ts,
const bool  reset 
)

◆ BKE_brush_gpencil_weight_presets()

void BKE_brush_gpencil_weight_presets ( struct Main bmain,
struct ToolSettings ts,
const bool  reset 
)

◆ BKE_brush_init_gpencil_settings()

void BKE_brush_init_gpencil_settings ( struct Brush brush)

◆ BKE_brush_jitter_pos()

void BKE_brush_jitter_pos ( const struct Scene scene,
struct Brush brush,
const float  pos[2],
float  jitterpos[2] 
)

◆ BKE_brush_randomize_texture_coords()

void BKE_brush_randomize_texture_coords ( struct UnifiedPaintSettings ups,
bool  mask 
)

◆ BKE_brush_sample_masktex()

float BKE_brush_sample_masktex ( const struct Scene scene,
struct Brush br,
const float  point[2],
const int  thread,
struct ImagePool pool 
)

◆ BKE_brush_sample_tex_3d()

float BKE_brush_sample_tex_3d ( const struct Scene scene,
const struct Brush br,
const float  point[3],
float  rgba[4],
const int  thread,
struct ImagePool pool 
)

◆ BKE_brush_scale_size()

void BKE_brush_scale_size ( int *  r_brush_size,
float  new_unprojected_radius,
float  old_unprojected_radius 
)

Definition at line 2365 of file brush.c.

◆ BKE_brush_scale_unprojected_radius()

void BKE_brush_scale_unprojected_radius ( float unprojected_radius,
int  new_brush_size,
int  old_brush_size 
)

Definition at line 2352 of file brush.c.

References float().

◆ BKE_brush_sculpt_has_secondary_color()

bool BKE_brush_sculpt_has_secondary_color ( const struct Brush brush)

◆ BKE_brush_sculpt_reset()

void BKE_brush_sculpt_reset ( struct Brush brush)

Definition at line 1677 of file brush.c.

References Brush::add_col, Brush::alpha, Brush::area_radius_factor, Brush::autosmooth_factor, BKE_brush_curve_preset(), BRUSH_ACCUMULATE, BRUSH_ALPHA_PRESSURE, BRUSH_CLOTH_DEFORM_DRAG, BRUSH_CURVE_CONSTANT, BRUSH_CURVE_POW4, BRUSH_CURVE_SMOOTH, BRUSH_CURVE_SMOOTHER, BRUSH_CURVE_SPHERE, brush_defaults(), BRUSH_DIR_IN, BRUSH_ELASTIC_DEFORM_GRAB_TRISCALE, BRUSH_INVERT_TO_SCRAPE_FILL, BRUSH_MULTIPLANE_SCRAPE_DYNAMIC, BRUSH_MULTIPLANE_SCRAPE_PLANES_PREVIEW, BRUSH_POSE_IK_ANCHORED, BRUSH_SIZE_PRESSURE, BRUSH_SLIDE_DEFORM_DRAG, BRUSH_SPACE, BRUSH_SPACE_ATTEN, BRUSH_USE_CONNECTED_ONLY, Brush::cloth_damping, Brush::cloth_deform_type, Brush::cloth_mass, Brush::cloth_sim_falloff, Brush::cloth_sim_limit, Brush::curve_preset, CURVE_PRESET_SMOOTH, Brush::density, Brush::elastic_deform_type, Brush::elastic_deform_volume_preservation, Brush::flag, Brush::flag2, Brush::flow, Brush::hardness, Brush::height, Brush::multiplane_scrape_angle, Brush::normal_radius_factor, Brush::pose_ik_segments, Brush::pose_smooth_iterations, Brush::rake_factor, Brush::rgb, Brush::sculpt_tool, SCULPT_TOOL_BLOB, SCULPT_TOOL_BOUNDARY, SCULPT_TOOL_CLAY, SCULPT_TOOL_CLAY_STRIPS, SCULPT_TOOL_CLAY_THUMB, SCULPT_TOOL_CLOTH, SCULPT_TOOL_CREASE, SCULPT_TOOL_DISPLACEMENT_ERASER, SCULPT_TOOL_DISPLACEMENT_SMEAR, SCULPT_TOOL_DRAW, SCULPT_TOOL_DRAW_FACE_SETS, SCULPT_TOOL_DRAW_SHARP, SCULPT_TOOL_ELASTIC_DEFORM, SCULPT_TOOL_FILL, SCULPT_TOOL_FLATTEN, SCULPT_TOOL_GRAB, SCULPT_TOOL_INFLATE, SCULPT_TOOL_LAYER, SCULPT_TOOL_MASK, SCULPT_TOOL_MULTIPLANE_SCRAPE, SCULPT_TOOL_NUDGE, SCULPT_TOOL_PAINT, SCULPT_TOOL_PINCH, SCULPT_TOOL_POSE, SCULPT_TOOL_ROTATE, SCULPT_TOOL_SCRAPE, SCULPT_TOOL_SIMPLIFY, SCULPT_TOOL_SLIDE_RELAX, SCULPT_TOOL_SMEAR, SCULPT_TOOL_SMOOTH, SCULPT_TOOL_SNAKE_HOOK, SCULPT_TOOL_THUMB, Brush::size, Brush::slide_deform_type, Brush::spacing, Brush::sub_col, Brush::surface_smooth_current_vertex, Brush::surface_smooth_iterations, Brush::surface_smooth_shape_preservation, Brush::tip_roundness, Brush::tip_scale_x, and zero_v3().

Referenced by BLO_update_defaults_startup_blend(), and brush_reset_exec().

◆ BKE_brush_secondary_color_get()

const float* BKE_brush_secondary_color_get ( const struct Scene scene,
const struct Brush brush 
)

◆ BKE_brush_size_get()

int BKE_brush_size_get ( const struct Scene scene,
const struct Brush brush 
)

◆ BKE_brush_size_set()

void BKE_brush_size_set ( struct Scene scene,
struct Brush brush,
int  size 
)

◆ BKE_brush_system_exit()

void BKE_brush_system_exit ( void  )

Definition at line 426 of file brush.c.

References BLI_rng_free(), brush_rng, and NULL.

Referenced by BKE_blender_free().

◆ BKE_brush_system_init()

void BKE_brush_system_init ( void  )

Definition at line 420 of file brush.c.

References BLI_rng_new(), BLI_rng_srandom(), and brush_rng.

Referenced by main().

◆ BKE_brush_unprojected_radius_get()

float BKE_brush_unprojected_radius_get ( const struct Scene scene,
const struct Brush brush 
)

◆ BKE_brush_unprojected_radius_set()

void BKE_brush_unprojected_radius_set ( struct Scene scene,
struct Brush brush,
float  unprojected_radius 
)

◆ BKE_brush_use_alpha_pressure()

bool BKE_brush_use_alpha_pressure ( const struct Brush brush)

◆ BKE_brush_use_locked_size()

bool BKE_brush_use_locked_size ( const struct Scene scene,
const struct Brush brush 
)

◆ BKE_brush_use_size_pressure()

bool BKE_brush_use_size_pressure ( const struct Brush brush)

◆ BKE_brush_weight_get()

float BKE_brush_weight_get ( const struct Scene scene,
const struct Brush brush 
)

◆ BKE_brush_weight_set()

void BKE_brush_weight_set ( const struct Scene scene,
struct Brush brush,
float  value 
)

Referenced by weight_sample_invoke().

◆ BKE_gpencil_brush_preset_set()

void BKE_gpencil_brush_preset_set ( struct Main bmain,
struct Brush brush,
const short  type 
)

Definition at line 669 of file brush.c.

References ACTIVE_SMOOTH, BrushGpencilSettings::active_smooth, BrushGpencilSettings::aspect_ratio, BKE_curvemapping_init(), BKE_curvemapping_set_defaults(), BKE_gpencil_brush_material_set(), BKE_gpencil_material_add(), BLI_assert, BLI_findstring(), BRUSH_CURVE_SMOOTH, brush_gpencil_curvemap_reset(), CurveMapping::cm, copy_v2_fl(), Brush::curve_preset, BrushGpencilSettings::curve_sensitivity, BrushGpencilSettings::curve_strength, DEG2RAD, BrushGpencilSettings::draw_angle, BrushGpencilSettings::draw_angle_factor, BrushGpencilSettings::draw_jitter, BrushGpencilSettings::draw_random_press, BrushGpencilSettings::draw_random_strength, BrushGpencilSettings::draw_smoothfac, BrushGpencilSettings::draw_smoothlvl, BrushGpencilSettings::draw_strength, BrushGpencilSettings::draw_subdivide, BrushGpencilSettings::era_strength_f, BrushGpencilSettings::era_thickness_f, BrushGpencilSettings::eraser_mode, BrushGpencilSettings::fill_factor, BrushGpencilSettings::fill_leak, BrushGpencilSettings::fill_simplylvl, BrushGpencilSettings::fill_threshold, BrushGpencilSettings::flag, GP_BRUSH_DEFAULT_ERASER, GP_BRUSH_ERASER_HARD, GP_BRUSH_ERASER_SOFT, GP_BRUSH_ERASER_STROKE, GP_BRUSH_FILL_SHOW_EXTENDLINES, GP_BRUSH_GROUP_RANDOM, GP_BRUSH_GROUP_SETTINGS, GP_BRUSH_ICON_AIRBRUSH, GP_BRUSH_ICON_CHISEL, GP_BRUSH_ICON_ERASE_HARD, GP_BRUSH_ICON_ERASE_SOFT, GP_BRUSH_ICON_ERASE_STROKE, GP_BRUSH_ICON_FILL, GP_BRUSH_ICON_GPBRUSH_CLONE, GP_BRUSH_ICON_GPBRUSH_GRAB, GP_BRUSH_ICON_GPBRUSH_PINCH, GP_BRUSH_ICON_GPBRUSH_PUSH, GP_BRUSH_ICON_GPBRUSH_RANDOMIZE, GP_BRUSH_ICON_GPBRUSH_SMOOTH, GP_BRUSH_ICON_GPBRUSH_STRENGTH, GP_BRUSH_ICON_GPBRUSH_THICKNESS, GP_BRUSH_ICON_GPBRUSH_TWIST, GP_BRUSH_ICON_GPBRUSH_WEIGHT, GP_BRUSH_ICON_INK, GP_BRUSH_ICON_INKNOISE, GP_BRUSH_ICON_MARKER, GP_BRUSH_ICON_PEN, GP_BRUSH_ICON_PENCIL, GP_BRUSH_ICON_TINT, GP_BRUSH_ICON_VERTEX_AVERAGE, GP_BRUSH_ICON_VERTEX_BLUR, GP_BRUSH_ICON_VERTEX_DRAW, GP_BRUSH_ICON_VERTEX_REPLACE, GP_BRUSH_ICON_VERTEX_SMEAR, GP_BRUSH_MATERIAL_PINNED, GP_BRUSH_PRESET_AIRBRUSH, GP_BRUSH_PRESET_CLONE_STROKE, GP_BRUSH_PRESET_DRAW_WEIGHT, GP_BRUSH_PRESET_ERASER_HARD, GP_BRUSH_PRESET_ERASER_POINT, GP_BRUSH_PRESET_ERASER_SOFT, GP_BRUSH_PRESET_ERASER_STROKE, GP_BRUSH_PRESET_FILL_AREA, GP_BRUSH_PRESET_GRAB_STROKE, GP_BRUSH_PRESET_INK_PEN, GP_BRUSH_PRESET_INK_PEN_ROUGH, GP_BRUSH_PRESET_MARKER_BOLD, GP_BRUSH_PRESET_MARKER_CHISEL, GP_BRUSH_PRESET_PEN, GP_BRUSH_PRESET_PENCIL, GP_BRUSH_PRESET_PENCIL_SOFT, GP_BRUSH_PRESET_PINCH_STROKE, GP_BRUSH_PRESET_PUSH_STROKE, GP_BRUSH_PRESET_RANDOMIZE_STROKE, GP_BRUSH_PRESET_SMOOTH_STROKE, GP_BRUSH_PRESET_STRENGTH_STROKE, GP_BRUSH_PRESET_THICKNESS_STROKE, GP_BRUSH_PRESET_TINT, GP_BRUSH_PRESET_TWIST_STROKE, GP_BRUSH_PRESET_VERTEX_AVERAGE, GP_BRUSH_PRESET_VERTEX_BLUR, GP_BRUSH_PRESET_VERTEX_DRAW, GP_BRUSH_PRESET_VERTEX_REPLACE, GP_BRUSH_PRESET_VERTEX_SMEAR, GP_BRUSH_USE_JITTER_PRESSURE, GP_BRUSH_USE_PRESSURE, GP_BRUSH_USE_STRENGTH_PRESSURE, GP_MATERIAL_MODE_DOT, GP_SCULPT_FLAGMODE_APPLY_POSITION, GP_SCULPT_FLAGMODE_APPLY_THICKNESS, Material::gp_style, GPAINT_TOOL_DRAW, GPAINT_TOOL_ERASE, GPAINT_TOOL_FILL, GPAINT_TOOL_TINT, GPCURVE_PRESET_CHISEL_SENSIVITY, GPCURVE_PRESET_CHISEL_STRENGTH, GPCURVE_PRESET_INK, GPCURVE_PRESET_INKNOISE, GPCURVE_PRESET_MARKER, Brush::gpencil_sculpt_tool, Brush::gpencil_settings, Brush::gpencil_tool, Brush::gpencil_vertex_tool, Brush::gpencil_weight_tool, GPPAINT_MODE_BOTH, GPPAINT_MODE_FILL, GPSCULPT_TOOL_CLONE, GPSCULPT_TOOL_GRAB, GPSCULPT_TOOL_PINCH, GPSCULPT_TOOL_PUSH, GPSCULPT_TOOL_RANDOMIZE, GPSCULPT_TOOL_SMOOTH, GPSCULPT_TOOL_STRENGTH, GPSCULPT_TOOL_THICKNESS, GPSCULPT_TOOL_TWIST, GPVERTEX_TOOL_AVERAGE, GPVERTEX_TOOL_BLUR, GPVERTEX_TOOL_DRAW, GPVERTEX_TOOL_REPLACE, GPVERTEX_TOOL_SMEAR, GPWEIGHT_TOOL_DRAW, BrushGpencilSettings::hardeness, BrushGpencilSettings::icon_id, Material::id, id_us_min(), BrushGpencilSettings::input_samples, Main::materials, MaterialGPencilStyle::mode, NULL, BrushGpencilSettings::preset_type, Brush::rgb, BrushGpencilSettings::sculpt_flag, BrushGpencilSettings::sculpt_mode_flag, Brush::secondary_rgb, BrushGpencilSettings::simplify_f, Brush::size, SMOOTH_STROKE_FACTOR, Brush::smooth_stroke_factor, SMOOTH_STROKE_RADIUS, Brush::smooth_stroke_radius, type, ID::us, BrushGpencilSettings::vertex_factor, BrushGpencilSettings::vertex_mode, and zero_v3().

Referenced by BKE_brush_gpencil_paint_presets(), BKE_brush_gpencil_sculpt_presets(), BKE_brush_gpencil_vertex_presets(), BKE_brush_gpencil_weight_presets(), and gpencil_brush_reset_exec().