Blender  V3.3
BKE_brush.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
11 #include "DNA_color_types.h"
12 #include "DNA_object_enums.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 struct Brush;
19 struct ImBuf;
20 struct ImagePool;
21 struct Main;
22 struct Scene;
23 struct ToolSettings;
25 
26 // enum eCurveMappingPreset;
27 
28 /* Globals for brush execution. */
29 
30 void BKE_brush_system_init(void);
31 void BKE_brush_system_exit(void);
32 
33 /* Data-block functions. */
34 
39 struct Brush *BKE_brush_add(struct Main *bmain, const char *name, eObjectMode ob_mode);
43 struct Brush *BKE_brush_add_gpencil(struct Main *bmain,
44  struct ToolSettings *ts,
45  const char *name,
46  eObjectMode mode);
50 bool BKE_brush_delete(struct Main *bmain, struct Brush *brush);
54 void BKE_brush_init_gpencil_settings(struct Brush *brush);
55 
57 
58 struct Brush *BKE_brush_first_search(struct Main *bmain, eObjectMode ob_mode);
59 
60 void BKE_brush_sculpt_reset(struct Brush *brush);
61 
65 void BKE_brush_gpencil_paint_presets(struct Main *bmain, struct ToolSettings *ts, bool reset);
69 void BKE_brush_gpencil_vertex_presets(struct Main *bmain, struct ToolSettings *ts, bool reset);
73 void BKE_brush_gpencil_sculpt_presets(struct Main *bmain, struct ToolSettings *ts, bool reset);
77 void BKE_brush_gpencil_weight_presets(struct Main *bmain, struct ToolSettings *ts, bool reset);
78 void BKE_gpencil_brush_preset_set(struct Main *bmain, struct Brush *brush, short type);
79 
80 void BKE_brush_jitter_pos(const struct Scene *scene,
81  struct Brush *brush,
82  const float pos[2],
83  float jitterpos[2]);
85 
86 /* Brush curve. */
87 
91 void BKE_brush_curve_preset(struct Brush *b, enum eCurveMappingPreset preset);
95 float BKE_brush_curve_strength_clamped(const struct Brush *br, float p, float len);
99 float BKE_brush_curve_strength(const struct Brush *br, float p, float len);
100 
101 /* Sampling. */
102 
110 float BKE_brush_sample_tex_3d(const struct Scene *scene,
111  const struct Brush *br,
112  const float point[3],
113  float rgba[4],
114  int thread,
115  struct ImagePool *pool);
117  struct Brush *br,
118  const float point[2],
119  int thread,
120  struct ImagePool *pool);
121 
126  bool secondary,
127  bool display_gradient);
128 
129 /* Unified strength size and color. */
130 
131 const float *BKE_brush_color_get(const struct Scene *scene, const struct Brush *brush);
132 const float *BKE_brush_secondary_color_get(const struct Scene *scene, const struct Brush *brush);
133 void BKE_brush_color_set(struct Scene *scene, struct Brush *brush, const float color[3]);
134 
135 int BKE_brush_size_get(const struct Scene *scene, const struct Brush *brush);
136 void BKE_brush_size_set(struct Scene *scene, struct Brush *brush, int size);
137 
138 float BKE_brush_unprojected_radius_get(const struct Scene *scene, const struct Brush *brush);
140  struct Brush *brush,
141  float unprojected_radius);
142 
143 float BKE_brush_alpha_get(const struct Scene *scene, const struct Brush *brush);
144 void BKE_brush_alpha_set(struct Scene *scene, struct Brush *brush, float alpha);
145 float BKE_brush_weight_get(const struct Scene *scene, const struct Brush *brush);
146 void BKE_brush_weight_set(const struct Scene *scene, struct Brush *brush, float value);
147 
148 bool BKE_brush_use_locked_size(const struct Scene *scene, const struct Brush *brush);
149 bool BKE_brush_use_alpha_pressure(const struct Brush *brush);
150 bool BKE_brush_use_size_pressure(const struct Brush *brush);
151 
152 bool BKE_brush_sculpt_has_secondary_color(const struct Brush *brush);
153 
157 void BKE_brush_scale_unprojected_radius(float *unprojected_radius,
158  int new_brush_size,
159  int old_brush_size);
160 
164 void BKE_brush_scale_size(int *r_brush_size,
165  float new_unprojected_radius,
166  float old_unprojected_radius);
167 
168 /* Accessors */
169 #define BKE_brush_tool_get(brush, p) \
170  (CHECK_TYPE_ANY(brush, struct Brush *, const struct Brush *), \
171  *(const char *)POINTER_OFFSET(brush, (p)->runtime.tool_offset))
172 #define BKE_brush_tool_set(brush, p, tool) \
173  { \
174  CHECK_TYPE_ANY(brush, struct Brush *); \
175  *(char *)POINTER_OFFSET(brush, (p)->runtime.tool_offset) = tool; \
176  } \
177  ((void)0)
178 
179 /* debugging only */
180 void BKE_brush_debug_print_state(struct Brush *br);
181 
182 #ifdef __cplusplus
183 }
184 #endif
bool BKE_brush_delete(struct Main *bmain, struct Brush *brush)
Definition: brush.cc:575
struct Brush * BKE_brush_add(struct Main *bmain, const char *name, eObjectMode ob_mode)
Definition: brush.cc:496
float BKE_brush_sample_masktex(const struct Scene *scene, struct Brush *br, const float point[2], int thread, struct ImagePool *pool)
float BKE_brush_curve_strength_clamped(const struct Brush *br, float p, float len)
void BKE_brush_size_set(struct Scene *scene, struct Brush *brush, int size)
Definition: brush.cc:2234
void BKE_brush_alpha_set(struct Scene *scene, struct Brush *brush, float alpha)
Definition: brush.cc:2313
float BKE_brush_curve_strength(const struct Brush *br, float p, float len)
float BKE_brush_sample_tex_3d(const struct Scene *scene, const struct Brush *br, const float point[3], float rgba[4], int thread, struct ImagePool *pool)
void BKE_brush_curve_preset(struct Brush *b, enum eCurveMappingPreset preset)
Definition: brush.cc:1942
void BKE_brush_init_curves_sculpt_settings(struct Brush *brush)
Definition: brush.cc:1554
bool BKE_brush_use_size_pressure(const struct Brush *brush)
void BKE_brush_init_gpencil_settings(struct Brush *brush)
Definition: brush.cc:509
struct ImBuf * BKE_brush_gen_radial_control_imbuf(struct Brush *br, bool secondary, bool display_gradient)
Definition: brush.cc:2500
void BKE_brush_gpencil_paint_presets(struct Main *bmain, struct ToolSettings *ts, bool reset)
Definition: brush.cc:1308
void BKE_brush_system_exit(void)
Definition: brush.cc:433
bool BKE_brush_sculpt_has_secondary_color(const struct Brush *brush)
void BKE_gpencil_brush_preset_set(struct Main *bmain, struct Brush *brush, short type)
Definition: brush.cc:669
struct Brush * BKE_brush_add_gpencil(struct Main *bmain, struct ToolSettings *ts, const char *name, eObjectMode mode)
Definition: brush.cc:536
float BKE_brush_weight_get(const struct Scene *scene, const struct Brush *brush)
const float * BKE_brush_secondary_color_get(const struct Scene *scene, const struct Brush *brush)
Definition: brush.cc:2216
float BKE_brush_alpha_get(const struct Scene *scene, const struct Brush *brush)
const float * BKE_brush_color_get(const struct Scene *scene, const struct Brush *brush)
Definition: brush.cc:2210
void BKE_brush_sculpt_reset(struct Brush *brush)
Definition: brush.cc:1683
void BKE_brush_randomize_texture_coords(struct UnifiedPaintSettings *ups, bool mask)
Definition: brush.cc:2399
void BKE_brush_system_init(void)
Definition: brush.cc:427
void BKE_brush_gpencil_weight_presets(struct Main *bmain, struct ToolSettings *ts, bool reset)
Definition: brush.cc:1529
int BKE_brush_size_get(const struct Scene *scene, const struct Brush *brush)
float BKE_brush_unprojected_radius_get(const struct Scene *scene, const struct Brush *brush)
void BKE_brush_scale_size(int *r_brush_size, float new_unprojected_radius, float old_unprojected_radius)
Definition: brush.cc:2363
void BKE_brush_unprojected_radius_set(struct Scene *scene, struct Brush *brush, float unprojected_radius)
Definition: brush.cc:2294
void BKE_brush_gpencil_sculpt_presets(struct Main *bmain, struct ToolSettings *ts, bool reset)
Definition: brush.cc:1455
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)
void BKE_brush_debug_print_state(struct Brush *br)
Definition: brush.cc:1577
void BKE_brush_color_set(struct Scene *scene, struct Brush *brush, const float color[3])
Definition: brush.cc:2222
void BKE_brush_jitter_pos(const struct Scene *scene, struct Brush *brush, const float pos[2], float jitterpos[2])
void BKE_brush_scale_unprojected_radius(float *unprojected_radius, int new_brush_size, int old_brush_size)
Definition: brush.cc:2351
struct Brush * BKE_brush_first_search(struct Main *bmain, eObjectMode ob_mode)
Definition: brush.cc:1567
void BKE_brush_gpencil_vertex_presets(struct Main *bmain, struct ToolSettings *ts, bool reset)
Definition: brush.cc:1409
bool BKE_brush_use_alpha_pressure(const struct Brush *brush)
eCurveMappingPreset
eObjectMode
_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 type
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Sky Generate a procedural sky texture Noise Generate fractal Perlin noise Wave Generate procedural bands or rings with noise Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a point
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 Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input 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 a color
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition: btDbvt.cpp:52
Definition: thread.h:34
Scene scene
int len
Definition: draw_manager.c:108
uint pos
ccl_gpu_kernel_postfix ccl_global float int int int int float bool reset
clear internal cached data and reset random seed
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
Definition: math_float4.h:513
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
static const pxr::TfToken rgba("rgba", pxr::TfToken::Immortal)
short ob_mode
Definition: BKE_main.h:121