43 {0,
"ADD", ICON_ADD,
"Add",
"Add effect of brush"},
44 {
BRUSH_DIR_IN,
"SUBTRACT", ICON_REMOVE,
"Subtract",
"Subtract effect of brush"},
50 {0,
"SMOOTH", ICON_ADD,
"Smooth",
"Smooth the surfae"},
55 "Enhance the surface detail"},
61 {0,
"DOTS", 0,
"Dots",
"Apply paint on each mouse move step"},
62 {
BRUSH_DRAG_DOT,
"DRAG_DOT", 0,
"Drag Dot",
"Allows a single dot to be carefully positioned"},
67 "Limit brush application to the distance specified by spacing"},
72 "Keep applying paint effect while holding mouse (spray)"},
73 {
BRUSH_ANCHORED,
"ANCHORED", 0,
"Anchored",
"Keep the brush anchored to the initial location"},
74 {
BRUSH_LINE,
"LINE", 0,
"Line",
"Draw a line with dabs separated according to spacing"},
79 "Define the stroke curve with a bezier curve (dabs are separated according to spacing)"},
94 static const EnumPropertyItem rna_enum_brush_texture_slot_map_texture_mode_items[] = {
183 "The brush is of type used for drawing strokes"},
184 {
GPAINT_TOOL_FILL,
"FILL", ICON_COLOR,
"Fill",
"The brush is of type used for filling areas"},
189 "The brush is used for erasing strokes"},
194 "The brush is of type used for tinting strokes"},
211 ICON_GPBRUSH_THICKNESS,
213 "Adjust thickness of strokes"},
216 ICON_GPBRUSH_STRENGTH,
218 "Adjust color strength of strokes"},
221 ICON_GPBRUSH_RANDOMIZE,
223 "Introduce jitter/randomness into strokes"},
228 "Translate the set of points initially within the brush circle"},
233 "Move points out of the way, as if combing them"},
238 "Rotate points around the midpoint of the brush"},
243 "Pull points towards the midpoint of the brush"},
248 "Paste copies of the strokes stored on the clipboard"},
256 "Weight Paint for Vertex Groups"},
266 "Erase strokes, fading their points strength and thickness"},
277 "Use both visible strokes and edit lines as fill boundary limits"},
292 {0,
"NORMAL", ICON_ADD,
"Normal",
"Fill internal area"},
293 {
BRUSH_DIR_IN,
"INVERT", ICON_REMOVE,
"Inverted",
"Fill inverted area"},
361 static bool rna_BrushCapabilitiesSculpt_has_accumulate_get(
PointerRNA *
ptr)
367 static bool rna_BrushCapabilitiesSculpt_has_topology_rake_get(
PointerRNA *
ptr)
373 static bool rna_BrushCapabilitiesSculpt_has_auto_smooth_get(
PointerRNA *
ptr)
380 static bool rna_BrushCapabilitiesSculpt_has_height_get(
PointerRNA *
ptr)
386 static bool rna_BrushCapabilitiesSculpt_has_jitter_get(
PointerRNA *
ptr)
397 static bool rna_BrushCapabilitiesSculpt_has_normal_weight_get(
PointerRNA *
ptr)
403 static bool rna_BrushCapabilitiesSculpt_has_rake_factor_get(
PointerRNA *
ptr)
409 static bool rna_BrushCapabilities_has_overlay_get(
PointerRNA *
ptr)
416 static bool rna_BrushCapabilitiesSculpt_has_persistence_get(
PointerRNA *
ptr)
422 static bool rna_BrushCapabilitiesSculpt_has_pinch_factor_get(
PointerRNA *
ptr)
428 static bool rna_BrushCapabilitiesSculpt_has_plane_offset_get(
PointerRNA *
ptr)
440 static bool rna_BrushCapabilitiesSculpt_has_random_texture_angle_get(
PointerRNA *
ptr)
450 static bool rna_TextureCapabilities_has_random_texture_angle_get(
PointerRNA *
ptr)
456 static bool rna_BrushCapabilities_has_random_texture_angle_get(
PointerRNA *
ptr)
462 static bool rna_BrushCapabilitiesSculpt_has_sculpt_plane_get(
PointerRNA *
ptr)
472 static bool rna_BrushCapabilitiesSculpt_has_color_get(
PointerRNA *
ptr)
478 static bool rna_BrushCapabilitiesSculpt_has_secondary_color_get(
PointerRNA *
ptr)
484 static bool rna_BrushCapabilitiesSculpt_has_smooth_stroke_get(
PointerRNA *
ptr)
496 static bool rna_BrushCapabilities_has_smooth_stroke_get(
PointerRNA *
ptr)
503 static bool rna_BrushCapabilitiesSculpt_has_space_attenuation_get(
PointerRNA *
ptr)
513 static bool rna_BrushCapabilitiesImagePaint_has_space_attenuation_get(
PointerRNA *
ptr)
520 static bool rna_BrushCapabilitiesImagePaint_has_color_get(
PointerRNA *
ptr)
526 static bool rna_BrushCapabilitiesVertexPaint_has_color_get(
PointerRNA *
ptr)
532 static bool rna_BrushCapabilitiesWeightPaint_has_weight_get(
PointerRNA *
ptr)
538 static bool rna_BrushCapabilities_has_spacing_get(
PointerRNA *
ptr)
544 static bool rna_BrushCapabilitiesSculpt_has_strength_pressure_get(
PointerRNA *
ptr)
550 static bool rna_TextureCapabilities_has_texture_angle_get(
PointerRNA *
ptr)
556 static bool rna_BrushCapabilitiesSculpt_has_direction_get(
PointerRNA *
ptr)
577 static bool rna_BrushCapabilitiesSculpt_has_gravity_get(
PointerRNA *
ptr)
583 static bool rna_BrushCapabilitiesSculpt_has_tilt_get(
PointerRNA *
ptr)
596 static bool rna_TextureCapabilities_has_texture_angle_source_get(
PointerRNA *
ptr)
602 static bool rna_BrushCapabilitiesImagePaint_has_accumulate_get(
PointerRNA *
ptr)
618 static bool rna_BrushCapabilitiesImagePaint_has_radius_get(
PointerRNA *
ptr)
651 static void rna_Brush_reset_icon(
Brush *br)
687 rna_Brush_update(bmain,
scene,
ptr);
697 rna_Brush_update(bmain,
scene,
ptr);
703 rna_Brush_update(bmain,
scene,
ptr);
709 rna_Brush_reset_icon(br);
710 rna_Brush_update(bmain,
scene,
ptr);
716 rna_Brush_update(bmain,
scene,
ptr);
759 static void rna_Brush_use_gradient_set(
PointerRNA *
ptr,
bool value)
775 static void rna_Brush_set_unprojected_radius(
PointerRNA *
ptr,
float value)
793 {
BRUSH_DIR_IN,
"CONTRAST", ICON_ADD,
"Contrast",
"Subtract effect of brush"},
794 {0,
"FLATTEN", ICON_REMOVE,
"Flatten",
"Add effect of brush"},
799 {0,
"FILL", ICON_ADD,
"Fill",
"Add effect of brush"},
800 {
BRUSH_DIR_IN,
"DEEPEN", ICON_REMOVE,
"Deepen",
"Subtract effect of brush"},
805 {0,
"SCRAPE", ICON_ADD,
"Scrape",
"Add effect of brush"},
806 {
BRUSH_DIR_IN,
"PEAKS", ICON_REMOVE,
"Peaks",
"Subtract effect of brush"},
811 {
BRUSH_DIR_IN,
"MAGNIFY", ICON_ADD,
"Magnify",
"Subtract effect of brush"},
812 {0,
"PINCH", ICON_REMOVE,
"Pinch",
"Add effect of brush"},
817 {0,
"INFLATE", ICON_ADD,
"Inflate",
"Add effect of brush"},
818 {
BRUSH_DIR_IN,
"DEFLATE", ICON_REMOVE,
"Deflate",
"Subtract effect of brush"},
824 {
BRUSH_DIR_IN,
"SHARPEN", ICON_ADD,
"Sharpen",
"Sharpen effect of brush"},
825 {0,
"SOFTEN", ICON_REMOVE,
"Soften",
"Blur effect of brush"},
843 return prop_smooth_direction_items;
857 return prop_flatten_contrast_items;
860 return prop_fill_deepen_items;
863 return prop_scrape_peaks_items;
866 return prop_pinch_magnify_items;
869 return prop_inflate_deflate_items;
879 return prop_soften_sharpen_items;
898 {0,
"DOTS", 0,
"Dots",
"Apply paint on each mouse move step"},
903 "Limit brush application to the distance specified by spacing"},
908 "Keep applying paint effect while holding mouse (spray)"},
909 {
BRUSH_LINE,
"LINE", 0,
"Line",
"Drag a line with dabs separated according to spacing"},
914 "Define the stroke curve with a bezier curve. Dabs are separated according to spacing"},
925 return brush_stroke_method_items;
932 return BLI_strdup(
"tool_settings.gpencil_paint.brush.gpencil_settings");
935 static void rna_BrushGpencilSettings_default_eraser_update(
Main *bmain,
970 static void rna_BrushGpencilSettings_eraser_mode_update(
Main *
UNUSED(bmain),
1047 # define rna_enum_brush_texture_slot_map_sculpt_mode_items \
1048 rna_enum_brush_texture_slot_map_all_mode_items;
1052 return rna_enum_brush_texture_slot_map_sculpt_mode_items;
1054 return rna_enum_brush_texture_slot_map_texture_mode_items;
1056 # undef rna_enum_brush_texture_slot_map_sculpt_mode_items
1074 # define TEXTURE_CAPABILITY(prop_name_, ui_name_) \
1075 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1076 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1077 RNA_def_property_boolean_funcs(prop, "rna_TextureCapabilities_" #prop_name_ "_get", NULL); \
1078 RNA_def_property_ui_text(prop, ui_name_, NULL)
1083 srna,
"Brush Texture Slot",
"Texture slot for textures in a Brush data-block");
1139 "Sculpt Capabilities",
1140 "Read-only indications of which brush operations "
1141 "are supported by the current sculpt tool");
1143 # define SCULPT_TOOL_CAPABILITY(prop_name_, ui_name_) \
1144 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1145 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1146 RNA_def_property_boolean_funcs( \
1147 prop, "rna_BrushCapabilitiesSculpt_" #prop_name_ "_get", NULL); \
1148 RNA_def_property_ui_text(prop, ui_name_, NULL)
1171 # undef SCULPT_CAPABILITY
1183 srna,
"Brush Capabilities",
"Read-only indications of supported operations");
1185 # define BRUSH_CAPABILITY(prop_name_, ui_name_) \
1186 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1187 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1188 RNA_def_property_boolean_funcs(prop, "rna_BrushCapabilities_" #prop_name_ "_get", NULL); \
1189 RNA_def_property_ui_text(prop, ui_name_, NULL)
1196 # undef BRUSH_CAPABILITY
1208 srna,
"Image Paint Capabilities",
"Read-only indications of supported operations");
1210 # define IMAPAINT_TOOL_CAPABILITY(prop_name_, ui_name_) \
1211 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1212 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1213 RNA_def_property_boolean_funcs( \
1214 prop, "rna_BrushCapabilitiesImagePaint_" #prop_name_ "_get", NULL); \
1215 RNA_def_property_ui_text(prop, ui_name_, NULL)
1222 # undef IMAPAINT_TOOL_CAPABILITY
1234 srna,
"Vertex Paint Capabilities",
"Read-only indications of supported operations");
1236 # define VPAINT_TOOL_CAPABILITY(prop_name_, ui_name_) \
1237 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1238 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1239 RNA_def_property_boolean_funcs( \
1240 prop, "rna_BrushCapabilitiesVertexPaint_" #prop_name_ "_get", NULL); \
1241 RNA_def_property_ui_text(prop, ui_name_, NULL)
1245 # undef VPAINT_TOOL_CAPABILITY
1257 srna,
"Weight Paint Capabilities",
"Read-only indications of supported operations");
1259 # define WPAINT_TOOL_CAPABILITY(prop_name_, ui_name_) \
1260 prop = RNA_def_property(srna, #prop_name_, PROP_BOOLEAN, PROP_NONE); \
1261 RNA_def_property_clear_flag(prop, PROP_EDITABLE); \
1262 RNA_def_property_boolean_funcs( \
1263 prop, "rna_BrushCapabilitiesWeightPaint_" #prop_name_ "_get", NULL); \
1264 RNA_def_property_ui_text(prop, ui_name_, NULL)
1268 # undef WPAINT_TOOL_CAPABILITY
1280 {
GPPAINT_MODE_BOTH,
"BOTH", 0,
"Stroke and Fill",
"Vertex Color affects to Stroke and Fill"},
1295 prop,
"Strength",
"Color strength for new strokes (affect alpha factor of color)");
1312 prop,
"Pressure Randomness",
"Randomness factor for pressure in new strokes");
1321 prop,
"Strength Randomness",
"Randomness factor strength in new strokes");
1331 "Direction of the stroke at which brush gives maximal thickness "
1332 "(0° for horizontal)");
1343 "Reduce brush thickness by this factor when stroke is perpendicular to 'Angle' direction");
1354 "Amount of smoothing to apply after finish newly created strokes, to reduce jitter/noise");
1372 "Subdivision Steps",
1373 "Number of times to subdivide newly created strokes, for less jagged strokes");
1454 prop,
"Threshold",
"Threshold to consider color transparent for filling");
1473 "Factor for fill boundary accuracy, higher values are more accurate but slower");
1482 prop,
"Simplify",
"Number of simplify steps (large values reduce fill accuracy)");
1501 "Gradient from the center of Dot and Box strokes (set to 1 for a solid stroke)");
1519 "Generate intermediate points for very fast mouse movements. Set to 0 to disable");
1585 prop,
"Vertex Color Factor",
"Factor used to mix vertex color to get final color");
1617 prop,
"Stroke Extension",
"Strokes end extension for closing gaps, use zero to disable");
1632 prop,
"Use Pressure Strength",
"Use tablet pressure for color strength");
1732 "Draw lines with a delay to allow smooth strokes. Press Shift key to "
1733 "override while drawing");
1764 prop,
"rna_GPencilBrush_pin_mode_get",
"rna_GPencilBrush_pin_mode_set");
1799 prop,
"Affect Strength",
"The brush affects the color strength of the point");
1807 prop,
"Affect Thickness",
"The brush affects the thickness of the point");
1842 prop,
"Show Fill",
"Show transparent lines to use as boundary for filling");
1856 prop,
"Default Eraser",
"Use this brush when enable eraser with fast switch key");
1864 prop,
"Use Post-Process Settings",
"Additional post processing options for new strokes");
1879 prop,
NC_GPENCIL |
ND_DATA,
"rna_BrushGpencilSettings_use_material_pin_update");
1884 prop,
"Show Lasso",
"Do not display fill color while drawing the stroke");
1899 {
IMB_BLEND_MIX,
"MIX", 0,
"Mix",
"Use Mix blending mode while painting"},
1901 {
IMB_BLEND_DARKEN,
"DARKEN", 0,
"Darken",
"Use Darken blending mode while painting"},
1902 {
IMB_BLEND_MUL,
"MUL", 0,
"Multiply",
"Use Multiply blending mode while painting"},
1907 "Use Color Burn blending mode while painting"},
1912 "Use Linear Burn blending mode while painting"},
1914 {
IMB_BLEND_LIGHTEN,
"LIGHTEN", 0,
"Lighten",
"Use Lighten blending mode while painting"},
1915 {
IMB_BLEND_SCREEN,
"SCREEN", 0,
"Screen",
"Use Screen blending mode while painting"},
1920 "Use Color Dodge blending mode while painting"},
1921 {
IMB_BLEND_ADD,
"ADD", 0,
"Add",
"Use Add blending mode while painting"},
1923 {
IMB_BLEND_OVERLAY,
"OVERLAY", 0,
"Overlay",
"Use Overlay blending mode while painting"},
1928 "Use Soft Light blending mode while painting"},
1933 "Use Hard Light blending mode while painting"},
1938 "Use Vivid Light blending mode while painting"},
1943 "Use Linear Light blending mode while painting"},
1948 "Use Pin Light blending mode while painting"},
1954 "Use Difference blending mode while painting"},
1959 "Use Exclusion blending mode while painting"},
1960 {
IMB_BLEND_SUB,
"SUB", 0,
"Subtract",
"Use Subtract blending mode while painting"},
1962 {
IMB_BLEND_HUE,
"HUE", 0,
"Hue",
"Use Hue blending mode while painting"},
1967 "Use Saturation blending mode while painting"},
1968 {
IMB_BLEND_COLOR,
"COLOR", 0,
"Color",
"Use Color blending mode while painting"},
2011 {0,
"NONE", 0,
"Off",
""},
2018 {0,
"VIEW", 0,
"View",
"Measure brush size relative to the view"},
2019 {
BRUSH_LOCK_SIZE,
"SCENE", 0,
"Scene",
"Measure brush size relative to the scene"},
2024 {0,
"COLOR", 0,
"Color",
"Paint with a single color"},
2030 {0,
"VIEW", 0,
"View",
"Calculate brush spacing relative to the view"},
2035 "Calculate brush spacing relative to the scene using the stroke location"},
2041 {0,
"BRUSH", 0,
"Brush",
"Jittering happens relative to the brush size"},
2046 {0,
"SPHERE", 0,
"Sphere",
"Apply brush influence in a Sphere, outwards from the center"},
2051 "Apply brush influence in a 2D circle, projected from the view"},
2074 "Brush deformation displaces the vertices of the mesh"},
2079 "Brush deforms the mesh by deforming the constraints of a cloth simulation"},
2097 "Applies the brush falloff in the tip of the brush"},
2102 "Modifies the entire mesh using elastic deform"},
2111 "PINCH_PERPENDICULAR",
2113 "Pinch Perpendicular",
2133 "Applies the same deformation in the entire boundary"},
2138 "Applies the deformation in a localized area limited by the brush radius"},
2143 "Applies the brush falloff in a loop pattern"},
2148 "Applies the falloff radius in a loop pattern, inverting the displacement direction in "
2149 "each pattern repetition"},
2158 "Simulates only a specific area around the brush limited by a fixed radius"},
2164 "The active simulation area moves with the brush"},
2173 "Smooths the surface and the volume"},
2178 "Smooths the surface of the mesh, preserving the volume"},
2194 "Sets the rotation origin automatically using the topology and shape of the mesh as a "
2200 "Creates a pose segment per face sets, starting from the active face set"},
2205 "Simulates an FK deformation using the Face Set under the cursor as control"},
2235 srna,
"Brush",
"Brush data-block for storing brush settings for painting and sculpting");
2335 prop,
"Deformation Target",
"How the deformation of the brush will affect the object");
2356 prop,
"Force Falloff",
"Shape used in the brush to apply force to the cloth");
2364 "Part of the mesh that is going to be simulated when the stroke is active");
2370 prop,
"Boundary Falloff",
"How the brush falloff is applied across the boundary");
2402 "Method to set the rotation origins for the segments of the brush");
2409 prop,
"Jitter Unit",
"Jitter in screen space or relative to brush size");
2444 prop,
"Jitter",
"Jitter the position of the brush in pixels while painting");
2452 prop,
"Spacing",
"Spacing between brush daubs as a percentage of brush diameter");
2460 prop,
"Gradient Spacing",
"Spacing before brush gradient goes full circle");
2466 prop,
"Smooth Stroke Radius",
"Minimum distance from last point before stroke continues");
2504 prop,
"Strength",
"How powerful the effect of the brush is when applied");
2519 prop,
"Wet Mix",
"Amount of paint that is picked from the surface into the brush color");
2529 "Amount of wet paint that stays in the brush after applying paint to the surface");
2537 prop,
"Density",
"Amount of random elements that are going to be affected by the brush");
2558 prop,
"Invert Pressure for Hardness",
"Invert the modulation of pressure in hardness");
2573 prop,
"Invert Pressure for Flow",
"Invert the modulation of pressure in flow");
2588 prop,
"Invert Pressure for Wet Mix",
"Invert the modulation of pressure in wet mix");
2596 prop,
"Use Pressure for Wet Persistence",
"Use pressure to modulate wet persistence");
2605 "Invert Pressure for Wet Persistence",
2606 "Invert the modulation of pressure in wet persistence");
2621 prop,
"Invert Pressure for Density",
"Invert the modulation of pressure in density");
2630 prop,
"Dash Ratio",
"Ratio of samples in a cycle that the brush is enabled");
2638 prop,
"Dash Length",
"Length of a dash cycle measured in stroke samples");
2649 "Adjust plane on which the brush acts towards or away from the object surface");
2658 "If a vertex is further away from offset plane than this, then it is not affected");
2667 prop,
"Brush Height",
"Affectable height of brush (layer height for layer tool, i.e.)");
2682 prop,
"Normal Weight",
"How much grab will pull vertexes out of surface during a grab");
2690 "Volume Preservation",
2691 "Poisson ratio for elastic deformation. Higher values preserve volume "
2692 "more, but also lead to more bulging");
2713 prop,
"Pose Origin Offset",
"Offset of the pose origin in relation to the brush radius");
2720 "Max Element Distance",
2721 "Maximum distance to search for disconnected loose parts in the mesh");
2728 "Boundary Origin Offset",
2729 "Offset of the boundary origin in relation to the brush radius");
2736 prop,
"Shape Preservation",
"How much of the original shape is preserved when smoothing");
2744 "Per Vertex Displacement",
2745 "How much the position of each individual vertex influences the final result");
2766 "Smooth Iterations",
2767 "Smooth iterations applied after calculating the pose factor of each vertex");
2777 "Number of segments of the inverse kinematics chain that will deform the mesh");
2796 prop,
"Cloth Damping",
"How much the applied forces are propagated through the cloth");
2805 "Factor added relative to the size of the radius to limit the cloth simulation effects");
2812 "Simulation Falloff",
2813 "Area to apply deformation falloff to the effects of the simulation");
2821 "Soft Body Plasticity",
2822 "How much the cloth preserves the original shape, acting as a soft body");
2829 prop,
"Hardness",
"How close the brush falloff starts from the edge of the brush");
2838 "Propagation Steps",
2839 "Distance where boundary edge automasking is going to protect vertices "
2840 "from the fully masked edge");
2849 prop,
"Auto-Smooth",
"Amount of smoothing to automatically apply to each stroke");
2859 "Automatically align edges to the brush direction to "
2860 "generate cleaner topology and define sharp features. "
2861 "Best used on low-poly meshes as it has a performance impact");
2870 prop,
"Tilt Strength",
"How much the tilt of the pen will affect the brush");
2879 "Ratio between the brush radius and the radius that is going to be "
2880 "used to sample the normal");
2889 "Ratio between the brush radius and the radius that is going to be "
2890 "used to sample the area center");
2899 "Ratio between the brush radius and the radius that is going to be "
2900 "used to sample the color to blend in wet paint");
2925 prop,
"Mask Stencil Dimensions",
"Dimensions of mask stencil in viewport");
2933 prop,
"Sharp Threshold",
"Threshold below which, no sharpening is done");
2941 prop,
"Fill Threshold",
"Threshold above which filling is not propagated");
2949 prop,
"Kernel Radius",
"Radius of kernel used for soften and sharpen in pixels");
2963 "Paint most on faces pointing towards the view according to this angle");
2970 prop,
"Airbrush",
"Keep applying paint effect while holding mouse (spray)");
2977 "When locked keep using normal of surface where stroke was initiated");
2985 "When locked keep using the plane origin of surface where stroke was initiated");
2991 "Topology Auto-Masking",
2992 "Affect only vertices connected to the active vertex under the brush");
2998 "Face Sets Auto-Masking",
2999 "Affect only vertices that share Face Sets with the active vertex");
3005 prop,
"Mesh Boundary Auto-Masking",
"Do not affect non manifold boundary edges");
3012 "Face Sets Boundary Automasking",
3013 "Do not affect vertices that belong to a Face Set boundary");
3020 prop,
"Spacing Distance",
"Calculate the brush spacing using view or scene distance");
3027 "Grab Active Vertex",
3028 "Apply the maximum grab strength to the active vertex instead of the cursor location");
3034 prop,
"Grab Silhouette",
"Grabs trying to automask the silhouette of the object");
3045 "The angle between the planes changes during the stroke to fit the "
3046 "surface under the cursor");
3052 prop,
"Show Cursor Preview",
"Preview the scrape planes in the cursor during the stroke");
3058 prop,
"Keep Anchor Point",
"Keep the position of the last segment in the IK chain fixed");
3064 "Lock Rotation When Scaling",
3065 "Do not rotate the segment when using the scale deform mode");
3077 "Pin Simulation Boundary",
3078 "Lock the position of the vertices in the simulation falloff area to avoid artifacts and "
3079 "create a softer transition with unaffected areas");
3090 "Invert to Scrape or Fill",
3091 "Use Scrape or Fill tool when inverting this brush instead of "
3092 "inverting its displacement direction");
3099 prop,
"Strength Pressure",
"Enable tablet pressure sensitivity for strength");
3106 prop,
"Plane Offset Pressure",
"Enable tablet pressure sensitivity for offset");
3113 prop,
"Area Radius Pressure",
"Enable tablet pressure sensitivity for area radius");
3126 prop,
"Jitter Pressure",
"Enable tablet pressure sensitivity for jitter");
3133 prop,
"Spacing Pressure",
"Enable tablet pressure sensitivity for spacing");
3140 prop,
"Mask Pressure Mode",
"Pen pressure makes texture influence smaller");
3147 prop,
"Inverse Smooth Pressure",
"Lighter pressure causes more smoothing to be applied");
3158 prop,
"Use Front-Face",
"Brush only affects vertexes that face the viewer");
3164 prop,
"Use Front-Face Falloff",
"Blend brush influence by how much they face the front");
3175 prop,
"Space",
"Limit brush application to the distance specified by spacing");
3188 "Define the stroke curve with a bezier curve. Dabs are separated according to spacing");
3194 prop,
"Smooth Stroke",
"Brush lags behind mouse and follows a smoother path");
3211 "Adjust Strength for Spacing",
3212 "Automatically adjust strength to give consistent results for different spacings");
3220 "Space daubs according to surface orientation instead of screen space");
3227 prop,
"Radius Unit",
"Measure brush size relative to the view or the scene");
3251 prop,
"Affect Alpha",
"When this is disabled, lock alpha while painting");
3343 prop,
"Use Vertex",
"Use this brush in grease pencil vertex color mode");
3483 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_icon_changed(const int icon_id)
void BKE_previewimg_id_free(struct ID *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)
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_APPLY_THICKNESS
@ 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
@ 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
@ PAINT_FALLOFF_SHAPE_TUBE
@ 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_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
#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
void IMB_freeImBuf(struct ImBuf *ibuf)
Read Guarded memory(de)allocation.
StructRNA RNA_BrushCapabilitiesImagePaint
StructRNA RNA_BrushCapabilitiesVertexPaint
#define ND_SPACE_PROPERTIES
return(oflags[bm->toolflag_index].f &oflag) !=0
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_weight_tool_items[]
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_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)