29 {0,
"ADD", ICON_ADD,
"Add",
"Add effect of brush"},
30 {
BRUSH_DIR_IN,
"SUBTRACT", ICON_REMOVE,
"Subtract",
"Subtract effect of brush"},
36 {0,
"SMOOTH", ICON_ADD,
"Smooth",
"Smooth the surface"},
41 "Enhance the surface detail"},
47 {0,
"DOTS", 0,
"Dots",
"Apply paint on each mouse move step"},
48 {
BRUSH_DRAG_DOT,
"DRAG_DOT", 0,
"Drag Dot",
"Allows a single dot to be carefully positioned"},
53 "Limit brush application to the distance specified by spacing"},
58 "Keep applying paint effect while holding mouse (spray)"},
59 {
BRUSH_ANCHORED,
"ANCHORED", 0,
"Anchored",
"Keep the brush anchored to the initial location"},
60 {
BRUSH_LINE,
"LINE", 0,
"Line",
"Draw a line with dabs separated according to spacing"},
65 "Define the stroke curve with a bezier curve (dabs are separated according to spacing)"},
80 static const EnumPropertyItem rna_enum_brush_texture_slot_map_texture_mode_items[] = {
169 "The brush is of type used for drawing strokes"},
170 {
GPAINT_TOOL_FILL,
"FILL", ICON_COLOR,
"Fill",
"The brush is of type used for filling areas"},
175 "The brush is used for erasing strokes"},
180 "The brush is of type used for tinting strokes"},
197 ICON_GPBRUSH_THICKNESS,
199 "Adjust thickness of strokes"},
202 ICON_GPBRUSH_STRENGTH,
204 "Adjust color strength of strokes"},
207 ICON_GPBRUSH_RANDOMIZE,
209 "Introduce jitter/randomness into strokes"},
214 "Translate the set of points initially within the brush circle"},
219 "Move points out of the way, as if combing them"},
224 "Rotate points around the midpoint of the brush"},
229 "Pull points towards the midpoint of the brush"},
234 "Paste copies of the strokes stored on the clipboard"},
242 "Weight Paint for Vertex Groups"},
269 "Erase strokes, fading their points strength and thickness"},
280 "Use both visible strokes and edit lines as fill boundary limits"},
295 {0,
"NORMAL", ICON_ADD,
"Normal",
"Fill internal area"},
296 {
BRUSH_DIR_IN,
"INVERT", ICON_REMOVE,
"Inverted",
"Fill inverted area"},
364 static bool rna_BrushCapabilitiesSculpt_has_accumulate_get(
PointerRNA *
ptr)
370 static bool rna_BrushCapabilitiesSculpt_has_topology_rake_get(
PointerRNA *
ptr)
376 static bool rna_BrushCapabilitiesSculpt_has_auto_smooth_get(
PointerRNA *
ptr)
383 static bool rna_BrushCapabilitiesSculpt_has_height_get(
PointerRNA *
ptr)
389 static bool rna_BrushCapabilitiesSculpt_has_jitter_get(
PointerRNA *
ptr)
400 static bool rna_BrushCapabilitiesSculpt_has_normal_weight_get(
PointerRNA *
ptr)
406 static bool rna_BrushCapabilitiesSculpt_has_rake_factor_get(
PointerRNA *
ptr)
412 static bool rna_BrushCapabilities_has_overlay_get(
PointerRNA *
ptr)
419 static bool rna_BrushCapabilitiesSculpt_has_persistence_get(
PointerRNA *
ptr)
425 static bool rna_BrushCapabilitiesSculpt_has_pinch_factor_get(
PointerRNA *
ptr)
431 static bool rna_BrushCapabilitiesSculpt_has_plane_offset_get(
PointerRNA *
ptr)
443 static bool rna_BrushCapabilitiesSculpt_has_random_texture_angle_get(
PointerRNA *
ptr)
453 static bool rna_TextureCapabilities_has_random_texture_angle_get(
PointerRNA *
ptr)
459 static bool rna_BrushCapabilities_has_random_texture_angle_get(
PointerRNA *
ptr)
465 static bool rna_BrushCapabilitiesSculpt_has_sculpt_plane_get(
PointerRNA *
ptr)
475 static bool rna_BrushCapabilitiesSculpt_has_color_get(
PointerRNA *
ptr)
481 static bool rna_BrushCapabilitiesSculpt_has_secondary_color_get(
PointerRNA *
ptr)
487 static bool rna_BrushCapabilitiesSculpt_has_smooth_stroke_get(
PointerRNA *
ptr)
499 static bool rna_BrushCapabilities_has_smooth_stroke_get(
PointerRNA *
ptr)
506 static bool rna_BrushCapabilitiesSculpt_has_space_attenuation_get(
PointerRNA *
ptr)
516 static bool rna_BrushCapabilitiesImagePaint_has_space_attenuation_get(
PointerRNA *
ptr)
523 static bool rna_BrushCapabilitiesImagePaint_has_color_get(
PointerRNA *
ptr)
529 static bool rna_BrushCapabilitiesVertexPaint_has_color_get(
PointerRNA *
ptr)
535 static bool rna_BrushCapabilitiesWeightPaint_has_weight_get(
PointerRNA *
ptr)
541 static bool rna_BrushCapabilities_has_spacing_get(
PointerRNA *
ptr)
547 static bool rna_BrushCapabilitiesSculpt_has_strength_pressure_get(
PointerRNA *
ptr)
553 static bool rna_TextureCapabilities_has_texture_angle_get(
PointerRNA *
ptr)
559 static bool rna_BrushCapabilitiesSculpt_has_direction_get(
PointerRNA *
ptr)
580 static bool rna_BrushCapabilitiesSculpt_has_gravity_get(
PointerRNA *
ptr)
586 static bool rna_BrushCapabilitiesSculpt_has_tilt_get(
PointerRNA *
ptr)
599 static bool rna_TextureCapabilities_has_texture_angle_source_get(
PointerRNA *
ptr)
605 static bool rna_BrushCapabilitiesImagePaint_has_accumulate_get(
PointerRNA *
ptr)
621 static bool rna_BrushCapabilitiesImagePaint_has_radius_get(
PointerRNA *
ptr)
654 static void rna_Brush_reset_icon(
Brush *br)
690 rna_Brush_update(bmain,
scene,
ptr);
700 rna_Brush_update(bmain,
scene,
ptr);
706 rna_Brush_update(bmain,
scene,
ptr);
712 rna_Brush_reset_icon(br);
713 rna_Brush_update(bmain,
scene,
ptr);
719 rna_Brush_update(bmain,
scene,
ptr);
768 static void rna_Brush_use_gradient_set(
PointerRNA *
ptr,
bool value)
784 static void rna_Brush_set_unprojected_radius(
PointerRNA *
ptr,
float value)
802 {
BRUSH_DIR_IN,
"CONTRAST", ICON_ADD,
"Contrast",
"Subtract effect of brush"},
803 {0,
"FLATTEN", ICON_REMOVE,
"Flatten",
"Add effect of brush"},
808 {0,
"FILL", ICON_ADD,
"Fill",
"Add effect of brush"},
809 {
BRUSH_DIR_IN,
"DEEPEN", ICON_REMOVE,
"Deepen",
"Subtract effect of brush"},
814 {0,
"SCRAPE", ICON_ADD,
"Scrape",
"Add effect of brush"},
815 {
BRUSH_DIR_IN,
"PEAKS", ICON_REMOVE,
"Peaks",
"Subtract effect of brush"},
820 {
BRUSH_DIR_IN,
"MAGNIFY", ICON_ADD,
"Magnify",
"Subtract effect of brush"},
821 {0,
"PINCH", ICON_REMOVE,
"Pinch",
"Add effect of brush"},
826 {0,
"INFLATE", ICON_ADD,
"Inflate",
"Add effect of brush"},
827 {
BRUSH_DIR_IN,
"DEFLATE", ICON_REMOVE,
"Deflate",
"Subtract effect of brush"},
833 {
BRUSH_DIR_IN,
"SHARPEN", ICON_ADD,
"Sharpen",
"Sharpen effect of brush"},
834 {0,
"SOFTEN", ICON_REMOVE,
"Soften",
"Blur effect of brush"},
852 return prop_smooth_direction_items;
866 return prop_flatten_contrast_items;
869 return prop_fill_deepen_items;
872 return prop_scrape_peaks_items;
875 return prop_pinch_magnify_items;
878 return prop_inflate_deflate_items;
888 return prop_soften_sharpen_items;
915 {0,
"DOTS", 0,
"Dots",
"Apply paint on each mouse move step"},
920 "Limit brush application to the distance specified by spacing"},
925 "Keep applying paint effect while holding mouse (spray)"},
926 {
BRUSH_LINE,
"LINE", 0,
"Line",
"Drag a line with dabs separated according to spacing"},
931 "Define the stroke curve with a bezier curve. Dabs are separated according to spacing"},
942 return brush_stroke_method_items;
949 return BLI_strdup(
"tool_settings.gpencil_paint.brush.gpencil_settings");
952 static void rna_BrushGpencilSettings_default_eraser_update(
Main *bmain,
987 static void rna_BrushGpencilSettings_eraser_mode_update(
Main *
UNUSED(bmain),
1064 # define rna_enum_brush_texture_slot_map_sculpt_mode_items \
1065 rna_enum_brush_texture_slot_map_all_mode_items;
1069 return rna_enum_brush_texture_slot_map_sculpt_mode_items;
1071 return rna_enum_brush_texture_slot_map_texture_mode_items;
1073 # undef rna_enum_brush_texture_slot_map_sculpt_mode_items
1091 # define TEXTURE_CAPABILITY(prop_name_, ui_name_) \
1092 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1093 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1094 RNA_def_property_boolean_funcs(prop, "rna_TextureCapabilities_" #prop_name_ "_get", NULL); \
1095 RNA_def_property_ui_text(prop, ui_name_, NULL)
1100 srna,
"Brush Texture Slot",
"Texture slot for textures in a Brush data-block");
1156 "Sculpt Capabilities",
1157 "Read-only indications of which brush operations "
1158 "are supported by the current sculpt tool");
1160 # define SCULPT_TOOL_CAPABILITY(prop_name_, ui_name_) \
1161 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1162 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1163 RNA_def_property_boolean_funcs( \
1164 prop, "rna_BrushCapabilitiesSculpt_" #prop_name_ "_get", NULL); \
1165 RNA_def_property_ui_text(prop, ui_name_, NULL)
1188 # undef SCULPT_CAPABILITY
1200 srna,
"Brush Capabilities",
"Read-only indications of supported operations");
1202 # define BRUSH_CAPABILITY(prop_name_, ui_name_) \
1203 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1204 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1205 RNA_def_property_boolean_funcs(prop, "rna_BrushCapabilities_" #prop_name_ "_get", NULL); \
1206 RNA_def_property_ui_text(prop, ui_name_, NULL)
1213 # undef BRUSH_CAPABILITY
1225 srna,
"Image Paint Capabilities",
"Read-only indications of supported operations");
1227 # define IMAPAINT_TOOL_CAPABILITY(prop_name_, ui_name_) \
1228 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1229 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1230 RNA_def_property_boolean_funcs( \
1231 prop, "rna_BrushCapabilitiesImagePaint_" #prop_name_ "_get", NULL); \
1232 RNA_def_property_ui_text(prop, ui_name_, NULL)
1239 # undef IMAPAINT_TOOL_CAPABILITY
1251 srna,
"Vertex Paint Capabilities",
"Read-only indications of supported operations");
1253 # define VPAINT_TOOL_CAPABILITY(prop_name_, ui_name_) \
1254 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1255 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1256 RNA_def_property_boolean_funcs( \
1257 prop, "rna_BrushCapabilitiesVertexPaint_" #prop_name_ "_get", NULL); \
1258 RNA_def_property_ui_text(prop, ui_name_, NULL)
1262 # undef VPAINT_TOOL_CAPABILITY
1274 srna,
"Weight Paint Capabilities",
"Read-only indications of supported operations");
1276 # define WPAINT_TOOL_CAPABILITY(prop_name_, ui_name_) \
1277 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1278 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1279 RNA_def_property_boolean_funcs( \
1280 prop, "rna_BrushCapabilitiesWeightPaint_" #prop_name_ "_get", NULL); \
1281 RNA_def_property_ui_text(prop, ui_name_, NULL)
1285 # undef WPAINT_TOOL_CAPABILITY
1297 {
GPPAINT_MODE_BOTH,
"BOTH", 0,
"Stroke & Fill",
"Vertex Color affects to Stroke and Fill"},
1318 prop,
"Strength",
"Color strength for new strokes (affect alpha factor of color)");
1335 prop,
"Pressure Randomness",
"Randomness factor for pressure in new strokes");
1344 prop,
"Strength Randomness",
"Randomness factor strength in new strokes");
1354 "Direction of the stroke at which brush gives maximal thickness "
1355 "(0° for horizontal)");
1366 "Reduce brush thickness by this factor when stroke is perpendicular to 'Angle' direction");
1378 "Amount of smoothing to apply after finish newly created strokes, to reduce jitter/noise");
1396 "Subdivision Steps",
1397 "Number of times to subdivide newly created strokes, for less jagged strokes");
1478 prop,
"Threshold",
"Threshold to consider color transparent for filling");
1497 "Factor for fill boundary accuracy, higher values are more accurate but slower");
1506 prop,
"Simplify",
"Number of simplify steps (large values reduce fill accuracy)");
1525 "Gradient from the center of Dot and Box strokes (set to 1 for a solid stroke)");
1543 "Generate intermediate points for very fast mouse movements. Set to 0 to disable");
1609 prop,
"Vertex Color Factor",
"Factor used to mix vertex color to get final color");
1641 prop,
"Stroke Extension",
"Strokes end extension for closing gaps, use zero to disable");
1650 prop,
"Dilate/Contract",
"Number of pixels to expand or contract fill area");
1666 prop,
"Use Pressure Strength",
"Use tablet pressure for color strength");
1766 "Draw lines with a delay to allow smooth strokes. Press Shift key to "
1767 "override while drawing");
1804 prop,
"rna_GPencilBrush_pin_mode_get",
"rna_GPencilBrush_pin_mode_set");
1839 prop,
"Affect Strength",
"The brush affects the color strength of the point");
1847 prop,
"Affect Thickness",
"The brush affects the thickness of the point");
1902 prop,
"Show Fill",
"Show transparent lines to use as boundary for filling");
1916 prop,
"Default Eraser",
"Use this brush when enable eraser with fast switch key");
1924 prop,
"Use Post-Process Settings",
"Additional post processing options for new strokes");
1939 prop,
NC_GPENCIL |
ND_DATA,
"rna_BrushGpencilSettings_use_material_pin_update");
1944 prop,
"Show Lasso",
"Do not display fill color while drawing the stroke");
1963 "Either add or remove curves depending on the minimum distance of the curves under the "
1969 "Add new curves between existing curves, taking the minimum distance into account"},
1974 "Remove curves whose root points are too close"},
1989 prop,
"Points per Curve",
"Number of control points in a newly added curve");
1995 "Grow or shrink curves by changing their size uniformly instead of "
1996 "using trimming or extrapolation");
2001 prop,
"Minimum Length",
"Avoid shrinking curves shorter than this length");
2006 prop,
"Interpolate Length",
"Use length of the curves in close proximity");
2012 "Interpolate Point Count",
2013 "Use the number of points from the curves in close proximity");
2018 prop,
"Interpolate Shape",
"Use shape of the curves in close proximity");
2025 "Length of newly added curves when it is not interpolated from other curves");
2031 prop,
"Minimum Distance",
"Goal distance between curve roots for the Density brush");
2036 prop,
"Density Add Attempts",
"How many times the Density brush tries to add a new curve");
2041 prop,
"Density Mode",
"Determines whether the brush adds or removes curves");
2050 {
IMB_BLEND_MIX,
"MIX", 0,
"Mix",
"Use Mix blending mode while painting"},
2052 {
IMB_BLEND_DARKEN,
"DARKEN", 0,
"Darken",
"Use Darken blending mode while painting"},
2053 {
IMB_BLEND_MUL,
"MUL", 0,
"Multiply",
"Use Multiply blending mode while painting"},
2058 "Use Color Burn blending mode while painting"},
2063 "Use Linear Burn blending mode while painting"},
2065 {
IMB_BLEND_LIGHTEN,
"LIGHTEN", 0,
"Lighten",
"Use Lighten blending mode while painting"},
2066 {
IMB_BLEND_SCREEN,
"SCREEN", 0,
"Screen",
"Use Screen blending mode while painting"},
2071 "Use Color Dodge blending mode while painting"},
2072 {
IMB_BLEND_ADD,
"ADD", 0,
"Add",
"Use Add blending mode while painting"},
2074 {
IMB_BLEND_OVERLAY,
"OVERLAY", 0,
"Overlay",
"Use Overlay blending mode while painting"},
2079 "Use Soft Light blending mode while painting"},
2084 "Use Hard Light blending mode while painting"},
2089 "Use Vivid Light blending mode while painting"},
2094 "Use Linear Light blending mode while painting"},
2099 "Use Pin Light blending mode while painting"},
2105 "Use Difference blending mode while painting"},
2110 "Use Exclusion blending mode while painting"},
2111 {
IMB_BLEND_SUB,
"SUB", 0,
"Subtract",
"Use Subtract blending mode while painting"},
2113 {
IMB_BLEND_HUE,
"HUE", 0,
"Hue",
"Use Hue blending mode while painting"},
2118 "Use Saturation blending mode while painting"},
2119 {
IMB_BLEND_COLOR,
"COLOR", 0,
"Color",
"Use Color blending mode while painting"},
2162 {0,
"NONE", 0,
"Off",
""},
2169 {0,
"VIEW", 0,
"View",
"Measure brush size relative to the view"},
2170 {
BRUSH_LOCK_SIZE,
"SCENE", 0,
"Scene",
"Measure brush size relative to the scene"},
2175 {0,
"COLOR", 0,
"Color",
"Paint with a single color"},
2181 {0,
"VIEW", 0,
"View",
"Calculate brush spacing relative to the view"},
2186 "Calculate brush spacing relative to the scene using the stroke location"},
2192 {0,
"BRUSH", 0,
"Brush",
"Jittering happens relative to the brush size"},
2197 {0,
"SPHERE", 0,
"Sphere",
"Apply brush influence in a Sphere, outwards from the center"},
2202 "Apply brush influence in a 2D circle, projected from the view"},
2225 "Brush deformation displaces the vertices of the mesh"},
2230 "Brush deforms the mesh by deforming the constraints of a cloth simulation"},
2248 "Applies the brush falloff in the tip of the brush"},
2253 "Modifies the entire mesh using elastic deform"},
2262 "PINCH_PERPENDICULAR",
2264 "Pinch Perpendicular",
2284 "Applies the same deformation in the entire boundary"},
2289 "Applies the deformation in a localized area limited by the brush radius"},
2294 "Applies the brush falloff in a loop pattern"},
2299 "Applies the falloff radius in a loop pattern, inverting the displacement direction in "
2300 "each pattern repetition"},
2309 "Simulates only a specific area around the brush limited by a fixed radius"},
2315 "The active simulation area moves with the brush"},
2324 "Smooths the surface and the volume"},
2329 "Smooths the surface of the mesh, preserving the volume"},
2345 "Sets the rotation origin automatically using the topology and shape of the mesh as a "
2351 "Creates a pose segment per face sets, starting from the active face set"},
2356 "Simulates an FK deformation using the Face Set under the cursor as control"},
2386 srna,
"Brush",
"Brush data-block for storing brush settings for painting and sculpting");
2491 prop,
"Deformation Target",
"How the deformation of the brush will affect the object");
2512 prop,
"Force Falloff",
"Shape used in the brush to apply force to the cloth");
2520 "Part of the mesh that is going to be simulated when the stroke is active");
2526 prop,
"Boundary Falloff",
"How the brush falloff is applied across the boundary");
2558 "Method to set the rotation origins for the segments of the brush");
2565 prop,
"Jitter Unit",
"Jitter in screen space or relative to brush size");
2600 prop,
"Jitter",
"Jitter the position of the brush in pixels while painting");
2608 prop,
"Spacing",
"Spacing between brush daubs as a percentage of brush diameter");
2616 prop,
"Gradient Spacing",
"Spacing before brush gradient goes full circle");
2622 prop,
"Smooth Stroke Radius",
"Minimum distance from last point before stroke continues");
2660 prop,
"Strength",
"How powerful the effect of the brush is when applied");
2675 prop,
"Wet Mix",
"Amount of paint that is picked from the surface into the brush color");
2685 "Amount of wet paint that stays in the brush after applying paint to the surface");
2693 prop,
"Density",
"Amount of random elements that are going to be affected by the brush");
2714 prop,
"Invert Pressure for Hardness",
"Invert the modulation of pressure in hardness");
2729 prop,
"Invert Pressure for Flow",
"Invert the modulation of pressure in flow");
2744 prop,
"Invert Pressure for Wet Mix",
"Invert the modulation of pressure in wet mix");
2752 prop,
"Use Pressure for Wet Persistence",
"Use pressure to modulate wet persistence");
2761 "Invert Pressure for Wet Persistence",
2762 "Invert the modulation of pressure in wet persistence");
2777 prop,
"Invert Pressure for Density",
"Invert the modulation of pressure in density");
2786 prop,
"Dash Ratio",
"Ratio of samples in a cycle that the brush is enabled");
2794 prop,
"Dash Length",
"Length of a dash cycle measured in stroke samples");
2805 "Adjust plane on which the brush acts towards or away from the object surface");
2814 "If a vertex is further away from offset plane than this, then it is not affected");
2823 prop,
"Brush Height",
"Affectable height of brush (layer height for layer tool, i.e.)");
2838 prop,
"Normal Weight",
"How much grab will pull vertices out of surface during a grab");
2846 "Volume Preservation",
2847 "Poisson ratio for elastic deformation. Higher values preserve volume "
2848 "more, but also lead to more bulging");
2869 prop,
"Pose Origin Offset",
"Offset of the pose origin in relation to the brush radius");
2876 "Max Element Distance",
2877 "Maximum distance to search for disconnected loose parts in the mesh");
2884 "Boundary Origin Offset",
2885 "Offset of the boundary origin in relation to the brush radius");
2892 prop,
"Shape Preservation",
"How much of the original shape is preserved when smoothing");
2900 "Per Vertex Displacement",
2901 "How much the position of each individual vertex influences the final result");
2922 "Smooth Iterations",
2923 "Smooth iterations applied after calculating the pose factor of each vertex");
2933 "Number of segments of the inverse kinematics chain that will deform the mesh");
2952 prop,
"Cloth Damping",
"How much the applied forces are propagated through the cloth");
2961 "Factor added relative to the size of the radius to limit the cloth simulation effects");
2968 "Simulation Falloff",
2969 "Area to apply deformation falloff to the effects of the simulation");
2977 "Soft Body Plasticity",
2978 "How much the cloth preserves the original shape, acting as a soft body");
2985 prop,
"Hardness",
"How close the brush falloff starts from the edge of the brush");
2994 "Propagation Steps",
2995 "Distance where boundary edge automasking is going to protect vertices "
2996 "from the fully masked edge");
3005 prop,
"Auto-Smooth",
"Amount of smoothing to automatically apply to each stroke");
3015 "Automatically align edges to the brush direction to "
3016 "generate cleaner topology and define sharp features. "
3017 "Best used on low-poly meshes as it has a performance impact");
3026 prop,
"Tilt Strength",
"How much the tilt of the pen will affect the brush");
3035 "Ratio between the brush radius and the radius that is going to be "
3036 "used to sample the normal");
3045 "Ratio between the brush radius and the radius that is going to be "
3046 "used to sample the area center");
3055 "Ratio between the brush radius and the radius that is going to be "
3056 "used to sample the color to blend in wet paint");
3081 prop,
"Mask Stencil Dimensions",
"Dimensions of mask stencil in viewport");
3089 prop,
"Sharp Threshold",
"Threshold below which, no sharpening is done");
3097 prop,
"Fill Threshold",
"Threshold above which filling is not propagated");
3105 prop,
"Kernel Radius",
"Radius of kernel used for soften and sharpen in pixels");
3119 "Paint most on faces pointing towards the view according to this angle");
3126 prop,
"Airbrush",
"Keep applying paint effect while holding mouse (spray)");
3133 "When locked keep using normal of surface where stroke was initiated");
3141 "When locked keep using the plane origin of surface where stroke was initiated");
3147 "Topology Auto-Masking",
3148 "Affect only vertices connected to the active vertex under the brush");
3154 "Face Sets Auto-Masking",
3155 "Affect only vertices that share Face Sets with the active vertex");
3161 prop,
"Mesh Boundary Auto-Masking",
"Do not affect non manifold boundary edges");
3168 "Face Sets Boundary Automasking",
3169 "Do not affect vertices that belong to a Face Set boundary");
3176 prop,
"Spacing Distance",
"Calculate the brush spacing using view or scene distance");
3183 "Grab Active Vertex",
3184 "Apply the maximum grab strength to the active vertex instead of the cursor location");
3190 prop,
"Grab Silhouette",
"Grabs trying to automask the silhouette of the object");
3201 "The angle between the planes changes during the stroke to fit the "
3202 "surface under the cursor");
3208 prop,
"Show Cursor Preview",
"Preview the scrape planes in the cursor during the stroke");
3214 prop,
"Keep Anchor Point",
"Keep the position of the last segment in the IK chain fixed");
3220 "Lock Rotation When Scaling",
3221 "Do not rotate the segment when using the scale deform mode");
3233 "Pin Simulation Boundary",
3234 "Lock the position of the vertices in the simulation falloff area to avoid artifacts and "
3235 "create a softer transition with unaffected areas");
3246 "Invert to Scrape or Fill",
3247 "Use Scrape or Fill tool when inverting this brush instead of "
3248 "inverting its displacement direction");
3255 prop,
"Strength Pressure",
"Enable tablet pressure sensitivity for strength");
3262 prop,
"Plane Offset Pressure",
"Enable tablet pressure sensitivity for offset");
3269 prop,
"Area Radius Pressure",
"Enable tablet pressure sensitivity for area radius");
3282 prop,
"Jitter Pressure",
"Enable tablet pressure sensitivity for jitter");
3289 prop,
"Spacing Pressure",
"Enable tablet pressure sensitivity for spacing");
3296 prop,
"Mask Pressure Mode",
"Pen pressure makes texture influence smaller");
3303 prop,
"Inverse Smooth Pressure",
"Lighter pressure causes more smoothing to be applied");
3314 prop,
"Use Front-Face",
"Brush only affects vertices that face the viewer");
3320 prop,
"Use Front-Face Falloff",
"Blend brush influence by how much they face the front");
3331 prop,
"Space",
"Limit brush application to the distance specified by spacing");
3344 "Define the stroke curve with a bezier curve. Dabs are separated according to spacing");
3350 prop,
"Smooth Stroke",
"Brush lags behind mouse and follows a smoother path");
3367 "Adjust Strength for Spacing",
3368 "Automatically adjust strength to give consistent results for different spacings");
3376 "Space daubs according to surface orientation instead of screen space");
3383 prop,
"Radius Unit",
"Measure brush size relative to the view or the scene");
3407 prop,
"Affect Alpha",
"When this is disabled, lock alpha while painting");
3499 prop,
"Use Vertex",
"Use this brush in grease pencil vertex color mode");
3645 srna =
RNA_def_struct(brna,
"OperatorStrokeElement",
"PropertyGroup");
bool BKE_brush_sculpt_has_secondary_color(const struct Brush *brush)
void BKE_brush_scale_size(int *r_brush_size, float new_unprojected_radius, float old_unprojected_radius)
void BKE_brush_scale_unprojected_radius(float *unprojected_radius, int new_brush_size, int old_brush_size)
struct ColorBand * BKE_colorband_add(bool rangetype)
struct Scene * CTX_data_scene(const bContext *C)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
struct ToolSettings * CTX_data_tool_settings(const bContext *C)
#define GPENCIL_USE_VERTEX_COLOR(toolsettings)
void BKE_gpencil_brush_material_set(struct Brush *brush, struct Material *material)
void BKE_icon_id_delete(struct ID *id)
void BKE_previewimg_id_free(struct ID *id)
void BKE_icon_changed(int icon_id)
int BKE_icon_id_ensure(struct ID *id)
General operations, lookup, etc. for materials.
struct Material * BKE_object_material_get(struct Object *ob, short act)
void BKE_paint_invalidate_overlay_tex(struct Scene *scene, struct ViewLayer *view_layer, const struct Tex *tex)
ePaintMode BKE_paintmode_get_active_from_context(const struct bContext *C)
void BKE_paint_invalidate_overlay_all(void)
@ PAINT_MODE_SCULPT_CURVES
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
@ GP_BRUSH_USE_SAT_RAND_PRESS
@ GP_BRUSH_USE_STRENGTH_RAND_PRESS
@ GP_BRUSH_USE_VAL_RAND_PRESS
@ GP_BRUSH_USE_HUE_RAND_PRESS
@ GP_BRUSH_USE_STRENGTH_AT_STROKE
@ GP_BRUSH_USE_UV_RAND_PRESS
@ GP_BRUSH_USE_HUE_AT_STROKE
@ GP_BRUSH_USE_VAL_AT_STROKE
@ GP_BRUSH_USE_SAT_AT_STROKE
@ GP_BRUSH_USE_PRESS_AT_STROKE
@ GP_BRUSH_USE_UV_AT_STROKE
@ GP_BRUSH_USE_PRESSURE_RAND_PRESS
@ BRUSH_PAINT_ANTIALIASING
#define SCULPT_TOOL_HAS_ACCUMULATE(t)
@ GP_SCULPT_FLAGMODE_APPLY_UV
@ GP_SCULPT_FLAGMODE_APPLY_POSITION
@ GP_SCULPT_FLAGMODE_AUTOMASK_LAYER
@ GP_SCULPT_FLAGMODE_AUTOMASK_MATERIAL
@ GP_SCULPT_FLAGMODE_APPLY_THICKNESS
@ GP_SCULPT_FLAGMODE_AUTOMASK_STROKE
@ GP_SCULPT_FLAGMODE_APPLY_STRENGTH
@ BRUSH_AUTOMASKING_BOUNDARY_EDGES
@ BRUSH_AUTOMASKING_BOUNDARY_FACE_SETS
@ BRUSH_AUTOMASKING_FACE_SETS
@ BRUSH_AUTOMASKING_TOPOLOGY
@ BRUSH_DEFORM_TARGET_CLOTH_SIM
@ BRUSH_DEFORM_TARGET_GEOMETRY
@ BRUSH_POSE_DEFORM_SQUASH_STRETCH
@ BRUSH_POSE_DEFORM_ROTATE_TWIST
@ BRUSH_POSE_DEFORM_SCALE_TRASLATE
@ BRUSH_SMEAR_DEFORM_PINCH
@ BRUSH_SMEAR_DEFORM_EXPAND
@ BRUSH_SMEAR_DEFORM_DRAG
@ GP_BRUSH_MODE_VERTEXCOLOR
#define SCULPT_TOOL_HAS_TOPOLOGY_RAKE(t)
@ GP_BRUSH_FILL_SHOW_HELPLINES
@ GP_BRUSH_STABILIZE_MOUSE
@ GP_BRUSH_DISSABLE_LASSO
@ GP_BRUSH_OCCLUDE_ERASER
@ GP_BRUSH_DEFAULT_ERASER
@ GP_BRUSH_USE_STRENGTH_PRESSURE
@ GP_BRUSH_GROUP_SETTINGS
@ GP_BRUSH_MATERIAL_PINNED
@ GP_BRUSH_FILL_SHOW_EXTENDLINES
@ GP_BRUSH_FILL_FIT_DISABLE
@ GP_BRUSH_USE_JITTER_PRESSURE
@ BRUSH_GRAB_ACTIVE_VERTEX
@ BRUSH_FRONTFACE_FALLOFF
@ BRUSH_INVERSE_SMOOTH_PRESSURE
@ BRUSH_INVERT_TO_SCRAPE_FILL
@ BRUSH_CLOTH_DEFORM_DRAG
@ BRUSH_CLOTH_DEFORM_EXPAND
@ BRUSH_CLOTH_DEFORM_GRAB
@ BRUSH_CLOTH_DEFORM_PINCH_POINT
@ BRUSH_CLOTH_DEFORM_PUSH
@ BRUSH_CLOTH_DEFORM_INFLATE
@ BRUSH_CLOTH_DEFORM_SNAKE_HOOK
@ BRUSH_CLOTH_DEFORM_PINCH_PERPENDICULAR
@ BRUSH_SNAKE_HOOK_DEFORM_ELASTIC
@ BRUSH_SNAKE_HOOK_DEFORM_FALLOFF
@ SCULPT_TOOL_DRAW_FACE_SETS
@ SCULPT_TOOL_DISPLACEMENT_ERASER
@ SCULPT_TOOL_SLIDE_RELAX
@ SCULPT_TOOL_DISPLACEMENT_SMEAR
@ SCULPT_TOOL_MULTIPLANE_SCRAPE
@ SCULPT_TOOL_ELASTIC_DEFORM
@ SCULPT_TOOL_CLAY_STRIPS
@ BRUSH_MASK_PRESSURE_RAMP
@ BRUSH_MASK_PRESSURE_CUTOFF
@ BRUSH_ELASTIC_DEFORM_SCALE
@ BRUSH_ELASTIC_DEFORM_GRAB
@ BRUSH_ELASTIC_DEFORM_TWIST
@ BRUSH_ELASTIC_DEFORM_GRAB_BISCALE
@ BRUSH_ELASTIC_DEFORM_GRAB_TRISCALE
@ BRUSH_GRADIENT_SPACING_CLAMP
@ BRUSH_GRADIENT_PRESSURE
@ BRUSH_GRADIENT_SPACING_REPEAT
@ PAINT_FALLOFF_SHAPE_TUBE
@ BRUSH_SMOOTH_DEFORM_SURFACE
@ BRUSH_SMOOTH_DEFORM_LAPLACIAN
@ GPSCULPT_TOOL_THICKNESS
@ GPSCULPT_TOOL_RANDOMIZE
@ BRUSH_PAINT_WET_MIX_PRESSURE
@ BRUSH_PAINT_HARDNESS_PRESSURE
@ BRUSH_PAINT_FLOW_PRESSURE
@ BRUSH_PAINT_DENSITY_PRESSURE
@ BRUSH_PAINT_WET_PERSISTENCE_PRESSURE
@ BRUSH_PAINT_WET_MIX_PRESSURE_INVERT
@ BRUSH_PAINT_HARDNESS_PRESSURE_INVERT
@ BRUSH_PAINT_FLOW_PRESSURE_INVERT
@ BRUSH_PAINT_DENSITY_PRESSURE_INVERT
@ BRUSH_PAINT_WET_PERSISTENCE_PRESSURE_INVERT
@ BRUSH_CURVES_SCULPT_FLAG_INTERPOLATE_POINT_COUNT
@ BRUSH_CURVES_SCULPT_FLAG_SCALE_UNIFORM
@ BRUSH_CURVES_SCULPT_FLAG_INTERPOLATE_LENGTH
@ BRUSH_CURVES_SCULPT_FLAG_INTERPOLATE_SHAPE
@ BRUSH_OVERLAY_SECONDARY_OVERRIDE_ON_STROKE
@ BRUSH_OVERLAY_PRIMARY_OVERRIDE_ON_STROKE
@ BRUSH_OVERLAY_SECONDARY
@ BRUSH_OVERLAY_CURSOR_OVERRIDE_ON_STROKE
@ GP_BRUSH_ICON_ERASE_SOFT
@ GP_BRUSH_ICON_GPBRUSH_RANDOMIZE
@ GP_BRUSH_ICON_VERTEX_BLUR
@ GP_BRUSH_ICON_GPBRUSH_GRAB
@ GP_BRUSH_ICON_GPBRUSH_STRENGTH
@ GP_BRUSH_ICON_GPBRUSH_TWIST
@ GP_BRUSH_ICON_VERTEX_REPLACE
@ GP_BRUSH_ICON_VERTEX_DRAW
@ GP_BRUSH_ICON_GPBRUSH_WEIGHT
@ GP_BRUSH_ICON_GPBRUSH_PINCH
@ GP_BRUSH_ICON_VERTEX_SMEAR
@ GP_BRUSH_ICON_GPBRUSH_THICKNESS
@ GP_BRUSH_ICON_GPBRUSH_CLONE
@ GP_BRUSH_ICON_ERASE_STROKE
@ GP_BRUSH_ICON_ERASE_HARD
@ GP_BRUSH_ICON_GPBRUSH_SMOOTH
@ GP_BRUSH_ICON_GPBRUSH_PUSH
@ GP_BRUSH_ICON_VERTEX_AVERAGE
#define MAX_BRUSH_PIXEL_RADIUS
@ BRUSH_BOUNDARY_DEFORM_GRAB
@ BRUSH_BOUNDARY_DEFORM_TWIST
@ BRUSH_BOUNDARY_DEFORM_BEND
@ BRUSH_BOUNDARY_DEFORM_EXPAND
@ BRUSH_BOUNDARY_DEFORM_INFLATE
@ BRUSH_BOUNDARY_DEFORM_SMOOTH
@ BRUSH_CLOTH_PIN_SIMULATION_BOUNDARY
@ BRUSH_AREA_RADIUS_PRESSURE
@ BRUSH_MULTIPLANE_SCRAPE_PLANES_PREVIEW
@ BRUSH_MULTIPLANE_SCRAPE_DYNAMIC
@ BRUSH_USE_CONNECTED_ONLY
@ BRUSH_POSE_USE_LOCK_ROTATION
@ BRUSH_CLOTH_USE_COLLISION
@ BRUSH_CURVES_SCULPT_DENSITY_MODE_REMOVE
@ BRUSH_CURVES_SCULPT_DENSITY_MODE_ADD
@ BRUSH_CURVES_SCULPT_DENSITY_MODE_AUTO
@ BRUSH_CLOTH_FORCE_FALLOFF_RADIAL
@ BRUSH_CLOTH_FORCE_FALLOFF_PLANE
#define SCULPT_TOOL_HAS_NORMAL_WEIGHT(t)
@ GP_FILL_GPLMODE_ALL_ABOVE
@ GP_FILL_GPLMODE_VISIBLE
@ GP_FILL_GPLMODE_ALL_BELOW
@ CURVES_SCULPT_TOOL_SMOOTH
@ CURVES_SCULPT_TOOL_SELECTION_PAINT
@ CURVES_SCULPT_TOOL_DENSITY
@ CURVES_SCULPT_TOOL_GROW_SHRINK
@ CURVES_SCULPT_TOOL_DELETE
@ CURVES_SCULPT_TOOL_PINCH
@ CURVES_SCULPT_TOOL_SNAKE_HOOK
@ CURVES_SCULPT_TOOL_COMB
@ CURVES_SCULPT_TOOL_PUFF
@ CURVES_SCULPT_TOOL_SLIDE
#define SCULPT_TOOL_HAS_RAKE(t)
@ BRUSH_CLOTH_SIMULATION_AREA_LOCAL
@ BRUSH_CLOTH_SIMULATION_AREA_DYNAMIC
@ BRUSH_CLOTH_SIMULATION_AREA_GLOBAL
@ BRUSH_POSE_ORIGIN_FACE_SETS_FK
@ BRUSH_POSE_ORIGIN_TOPOLOGY
@ BRUSH_POSE_ORIGIN_FACE_SETS
@ BRUSH_SLIDE_DEFORM_DRAG
@ BRUSH_SLIDE_DEFORM_EXPAND
@ BRUSH_SLIDE_DEFORM_PINCH
@ BRUSH_BOUNDARY_FALLOFF_CONSTANT
@ BRUSH_BOUNDARY_FALLOFF_LOOP
@ BRUSH_BOUNDARY_FALLOFF_LOOP_INVERT
@ BRUSH_BOUNDARY_FALLOFF_RADIUS
#define GPENCIL_MIN_FILL_FAC
#define GP_MAX_INPUT_SAMPLES
#define GPENCIL_MAX_FILL_FAC
Object is a sort of wrapper for general info.
#define OBACT(_view_layer)
#define MTEX_MAP_MODE_VIEW
#define MTEX_MAP_MODE_STENCIL
#define MTEX_MAP_MODE_TILED
#define MTEX_MAP_MODE_AREA
#define MTEX_ANGLE_RANDOM
#define MTEX_MAP_MODE_RANDOM
Read Guarded memory(de)allocation.
#define RNA_ENUM_ITEM_SEPR
#define ND_SPACE_PROPERTIES
return(oflags[bm->toolflag_index].f &oflag) !=0
depth_tx normal_tx diffuse_light_tx specular_light_tx volume_light_tx environment_tx ambient_occlusion_tx aov_value_tx in_weight_img image(1, GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D_ARRAY, "out_weight_img") .image(3
void IMB_freeImBuf(ImBuf *UNUSED(ibuf))
PointerRNA rna_pointer_inherit_refine(PointerRNA *ptr, StructRNA *type, void *data)
#define TEXTURE_CAPABILITY(prop_name_, ui_name_)
static EnumPropertyItem rna_enum_gpencil_brush_eraser_modes_items[]
static EnumPropertyItem rna_enum_gpencil_brush_paint_icons_items[]
static void rna_def_gpencil_options(BlenderRNA *brna)
const EnumPropertyItem rna_enum_brush_image_tool_items[]
static void rna_def_sculpt_capabilities(BlenderRNA *brna)
#define IMAPAINT_TOOL_CAPABILITY(prop_name_, ui_name_)
static void rna_def_operator_stroke_element(BlenderRNA *brna)
static EnumPropertyItem rna_enum_gpencil_brush_vertex_icons_items[]
static EnumPropertyItem rna_enum_gpencil_fill_direction_items[]
static const EnumPropertyItem sculpt_stroke_method_items[]
const EnumPropertyItem rna_enum_brush_curves_sculpt_tool_items[]
const EnumPropertyItem rna_enum_brush_weight_tool_items[]
static void rna_def_curves_sculpt_options(BlenderRNA *brna)
static EnumPropertyItem rna_enum_gpencil_fill_layers_modes_items[]
#define WPAINT_TOOL_CAPABILITY(prop_name_, ui_name_)
const EnumPropertyItem rna_enum_brush_gpencil_sculpt_types_items[]
#define BRUSH_CAPABILITY(prop_name_, ui_name_)
static EnumPropertyItem rna_enum_gpencil_fill_draw_modes_items[]
const EnumPropertyItem rna_enum_brush_sculpt_tool_items[]
#define VPAINT_TOOL_CAPABILITY(prop_name_, ui_name_)
void RNA_def_brush(BlenderRNA *brna)
const EnumPropertyItem rna_enum_brush_vertex_tool_items[]
const EnumPropertyItem rna_enum_brush_uv_sculpt_tool_items[]
static void rna_def_brush(BlenderRNA *brna)
static const EnumPropertyItem prop_direction_items[]
static const EnumPropertyItem rna_enum_brush_texture_slot_map_all_mode_items[]
const EnumPropertyItem rna_enum_brush_gpencil_vertex_types_items[]
static EnumPropertyItem rna_enum_gpencil_brush_modes_items[]
static void rna_def_image_paint_capabilities(BlenderRNA *brna)
static void rna_def_vertex_paint_capabilities(BlenderRNA *brna)
const EnumPropertyItem rna_enum_brush_gpencil_weight_types_items[]
static EnumPropertyItem rna_enum_gpencil_brush_sculpt_icons_items[]
static void rna_def_brush_texture_slot(BlenderRNA *brna)
static EnumPropertyItem rna_enum_gpencil_brush_weight_icons_items[]
const EnumPropertyItem rna_enum_brush_gpencil_types_items[]
static void rna_def_weight_paint_capabilities(BlenderRNA *brna)
static void rna_def_brush_capabilities(BlenderRNA *brna)
#define SCULPT_TOOL_CAPABILITY(prop_name_, ui_name_)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_default(PropertyRNA *prop, bool value)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_property_int_default(PropertyRNA *prop, int value)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_bitflag_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_struct_nested(BlenderRNA *brna, StructRNA *srna, const char *structname)
void rna_TextureSlot_update(struct bContext *C, struct PointerRNA *ptr)
const EnumPropertyItem DummyRNA_DEFAULT_items[]
struct ImBuf * icon_imbuf
struct ColorBand * gradient
struct BrushGpencilSettings * gpencil_settings
struct MaterialGPencilStyle * gp_style
struct ToolSettings * toolsettings
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)