Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/rna_sculpt_paint.c
| Context not available. | |||||
| }; | }; | ||||
| const EnumPropertyItem rna_enum_gpencil_sculpt_brush_items[] = { | const EnumPropertyItem rna_enum_gpencil_sculpt_brush_items[] = { | ||||
| {GP_EDITBRUSH_TYPE_SMOOTH, "SMOOTH", 0, "Smooth", "Smooth stroke points"}, | {GP_EDITBRUSH_TYPE_SMOOTH, "SMOOTH", ICON_GPBRUSH_SMOOTH, "Smooth", "Smooth stroke points"}, | ||||
| {GP_EDITBRUSH_TYPE_THICKNESS, "THICKNESS", 0, "Thickness", "Adjust thickness of strokes"}, | {GP_EDITBRUSH_TYPE_THICKNESS, "THICKNESS", ICON_GPBRUSH_THICKNESS, "Thickness", "Adjust thickness of strokes"}, | ||||
| { GP_EDITBRUSH_TYPE_STRENGTH, "STRENGTH", 0, "Strength", "Adjust color strength of strokes" }, | {GP_EDITBRUSH_TYPE_STRENGTH, "STRENGTH", ICON_GPBRUSH_STRENGTH, "Strength", "Adjust color strength of strokes" }, | ||||
| { GP_EDITBRUSH_TYPE_GRAB, "GRAB", 0, "Grab", "Translate the set of points initially within the brush circle" }, | {GP_EDITBRUSH_TYPE_GRAB, "GRAB", ICON_GPBRUSH_GRAB, "Grab", "Translate the set of points initially within the brush circle" }, | ||||
| {GP_EDITBRUSH_TYPE_PUSH, "PUSH", 0, "Push", "Move points out of the way, as if combing them"}, | {GP_EDITBRUSH_TYPE_PUSH, "PUSH", ICON_GPBRUSH_PUSH, "Push", "Move points out of the way, as if combing them"}, | ||||
| {GP_EDITBRUSH_TYPE_TWIST, "TWIST", 0, "Twist", "Rotate points around the midpoint of the brush"}, | {GP_EDITBRUSH_TYPE_TWIST, "TWIST", ICON_GPBRUSH_TWIST, "Twist", "Rotate points around the midpoint of the brush"}, | ||||
| {GP_EDITBRUSH_TYPE_PINCH, "PINCH", 0, "Pinch", "Pull points towards the midpoint of the brush"}, | {GP_EDITBRUSH_TYPE_PINCH, "PINCH", ICON_GPBRUSH_PINCH, "Pinch", "Pull points towards the midpoint of the brush"}, | ||||
| {GP_EDITBRUSH_TYPE_RANDOMIZE, "RANDOMIZE", 0, "Randomize", "Introduce jitter/randomness into strokes"}, | {GP_EDITBRUSH_TYPE_RANDOMIZE, "RANDOMIZE", ICON_GPBRUSH_RANDOMIZE, "Randomize", "Introduce jitter/randomness into strokes"}, | ||||
| //{GP_EDITBRUSH_TYPE_SUBDIVIDE, "SUBDIVIDE", 0, "Subdivide", "Increase point density for higher resolution strokes when zoomed in"}, | {GP_EDITBRUSH_TYPE_CLONE, "CLONE", ICON_GPBRUSH_CLONE, "Clone", "Paste copies of the strokes stored on the clipboard"}, | ||||
| //{GP_EDITBRUSH_TYPE_SIMPLIFY, "SIMPLIFY", 0, "Simplify", "Reduce density of stroke points"}, | { 0, NULL, 0, NULL, NULL } | ||||
| {GP_EDITBRUSH_TYPE_CLONE, "CLONE", 0, "Clone", "Paste copies of the strokes stored on the clipboard"}, | }; | ||||
| EnumPropertyItem rna_enum_gpencil_weight_brush_items[] = { | |||||
| { GP_EDITBRUSH_TYPE_WEIGHT, "WEIGHT", ICON_GPBRUSH_WEIGHT, "Weight", "Weight Paint for Vertex Groups" }, | |||||
| { 0, NULL, 0, NULL, NULL } | { 0, NULL, 0, NULL, NULL } | ||||
| }; | }; | ||||
| #ifndef RNA_RUNTIME | #ifndef RNA_RUNTIME | ||||
| static const EnumPropertyItem rna_enum_gpencil_lockaxis_items[] = { | static const EnumPropertyItem rna_enum_gpencil_lockaxis_items[] = { | ||||
| { GP_LOCKAXIS_NONE, "GP_LOCKAXIS_NONE", 0, "None", "" }, | { GP_LOCKAXIS_NONE, "GP_LOCKAXIS_NONE", ICON_UNLOCKED, "None", "" }, | ||||
| { GP_LOCKAXIS_X, "GP_LOCKAXIS_X", 0, "X", "Project strokes to plane locked to X" }, | { GP_LOCKAXIS_X, "GP_LOCKAXIS_X", ICON_NDOF_DOM, "X", "Project strokes to plane locked to X" }, | ||||
| { GP_LOCKAXIS_Y, "GP_LOCKAXIS_Y", 0, "Y", "Project strokes to plane locked to Y" }, | { GP_LOCKAXIS_Y, "GP_LOCKAXIS_Y", ICON_NDOF_DOM, "Y", "Project strokes to plane locked to Y" }, | ||||
| { GP_LOCKAXIS_Z, "GP_LOCKAXIS_Z", 0, "Z", "Project strokes to plane locked to Z" }, | { GP_LOCKAXIS_Z, "GP_LOCKAXIS_Z", ICON_NDOF_DOM, "Z", "Project strokes to plane locked to Z" }, | ||||
| { 0, NULL, 0, NULL, NULL } | { 0, NULL, 0, NULL, NULL } | ||||
| }; | }; | ||||
| #endif | #endif | ||||
| Context not available. | |||||
| #include "BKE_pointcache.h" | #include "BKE_pointcache.h" | ||||
| #include "BKE_particle.h" | #include "BKE_particle.h" | ||||
| #include "BKE_pbvh.h" | #include "BKE_pbvh.h" | ||||
| #include "BKE_gpencil.h" | |||||
| #include "DEG_depsgraph.h" | #include "DEG_depsgraph.h" | ||||
| Context not available. | |||||
| #include "ED_particle.h" | #include "ED_particle.h" | ||||
| static void rna_GPencil_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr)) | static void rna_GPencil_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *UNUSED(ptr)) | ||||
| { | { | ||||
| BKE_gpencil_batch_cache_alldirty_main(bmain); | |||||
| WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL); | WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL); | ||||
| } | } | ||||
| Context not available. | |||||
| { | { | ||||
| GP_BrushEdit_Settings *gset = (GP_BrushEdit_Settings *)ptr->data; | GP_BrushEdit_Settings *gset = (GP_BrushEdit_Settings *)ptr->data; | ||||
| GP_EditBrush_Data *brush = NULL; | GP_EditBrush_Data *brush = NULL; | ||||
| if ((gset->brushtype >= 0) && (gset->brushtype < TOT_GP_EDITBRUSH_TYPES)) | |||||
| brush = &gset->brush[gset->brushtype]; | |||||
| if ((gset) && (gset->flag & GP_BRUSHEDIT_FLAG_WEIGHT_MODE)) { | |||||
| if ((gset->weighttype >= GP_EDITBRUSH_TYPE_WEIGHT) && (gset->weighttype < TOT_GP_EDITBRUSH_TYPES)) | |||||
| brush = &gset->brush[gset->weighttype]; | |||||
| } | |||||
| else { | |||||
| if ((gset->brushtype >= 0) && (gset->brushtype < GP_EDITBRUSH_TYPE_WEIGHT)) | |||||
| brush = &gset->brush[gset->brushtype]; | |||||
| } | |||||
| return rna_pointer_inherit_refine(ptr, &RNA_GPencilSculptBrush, brush); | return rna_pointer_inherit_refine(ptr, &RNA_GPencilSculptBrush, brush); | ||||
| } | } | ||||
| Context not available. | |||||
| RNA_def_property_enum_sdna(prop, NULL, "brushtype"); | RNA_def_property_enum_sdna(prop, NULL, "brushtype"); | ||||
| RNA_def_property_enum_items(prop, rna_enum_gpencil_sculpt_brush_items); | RNA_def_property_enum_items(prop, rna_enum_gpencil_sculpt_brush_items); | ||||
| RNA_def_property_ui_text(prop, "Tool", ""); | RNA_def_property_ui_text(prop, "Tool", ""); | ||||
| RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); | RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, "rna_GPencil_update"); | ||||
| prop = RNA_def_property(srna, "weight_tool", PROP_ENUM, PROP_NONE); | |||||
| RNA_def_property_enum_sdna(prop, NULL, "weighttype"); | |||||
| RNA_def_property_enum_items(prop, rna_enum_gpencil_weight_brush_items); | |||||
| RNA_def_property_ui_text(prop, "Tool", "Tool for weight painting"); | |||||
| RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, "rna_GPencil_update"); | |||||
| prop = RNA_def_property(srna, "brush", PROP_POINTER, PROP_NONE); | prop = RNA_def_property(srna, "brush", PROP_POINTER, PROP_NONE); | ||||
| RNA_def_property_struct_type(prop, "GPencilSculptBrush"); | RNA_def_property_struct_type(prop, "GPencilSculptBrush"); | ||||
| RNA_def_property_pointer_funcs(prop, "rna_GPencilSculptSettings_brush_get", NULL, NULL, NULL); | RNA_def_property_pointer_funcs(prop, "rna_GPencilSculptSettings_brush_get", NULL, NULL, NULL); | ||||
| Context not available. | |||||
| RNA_def_property_ui_text(prop, "Affect Thickness", "The brush affects the thickness of the point"); | RNA_def_property_ui_text(prop, "Affect Thickness", "The brush affects the thickness of the point"); | ||||
| RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); | RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); | ||||
| prop = RNA_def_property(srna, "selection_alpha", PROP_FLOAT, PROP_NONE); | prop = RNA_def_property(srna, "selection_alpha", PROP_FLOAT, PROP_NONE); | ||||
| RNA_def_property_float_sdna(prop, NULL, "alpha"); | RNA_def_property_float_sdna(prop, NULL, "alpha"); | ||||
| RNA_def_property_range(prop, 0.0f, 1.0f); | RNA_def_property_range(prop, 0.0f, 1.0f); | ||||
| RNA_def_property_ui_text(prop, "Alpha", "Alpha value for selected vertices"); | RNA_def_property_ui_text(prop, "Alpha", "Alpha value for selected vertices"); | ||||
| RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, "rna_GPencil_update"); | RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, "rna_GPencil_update"); | ||||
| prop = RNA_def_property(srna, "use_multiframe_falloff", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_BRUSHEDIT_FLAG_FRAME_FALLOFF); | |||||
| RNA_def_property_ui_text(prop, "Use Falloff", "Use falloff effect when edit in multiframe mode to compute brush effect by frame"); | |||||
| RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); | |||||
| /* custom falloff curve */ | |||||
| prop = RNA_def_property(srna, "multiframe_falloff_curve", PROP_POINTER, PROP_NONE); | |||||
| RNA_def_property_pointer_sdna(prop, NULL, "cur_falloff"); | |||||
| RNA_def_property_struct_type(prop, "CurveMapping"); | |||||
| RNA_def_property_ui_text(prop, "Curve", | |||||
| "Custom curve to control falloff of brush effect by Grease Pencil frames"); | |||||
| RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); | |||||
| /* lock axis */ | /* lock axis */ | ||||
| prop = RNA_def_property(srna, "lockaxis", PROP_ENUM, PROP_NONE); | prop = RNA_def_property(srna, "lockaxis", PROP_ENUM, PROP_NONE); | ||||
| RNA_def_property_enum_sdna(prop, NULL, "lock_axis"); | RNA_def_property_enum_sdna(prop, NULL, "lock_axis"); | ||||
| Context not available. | |||||
| RNA_def_struct_ui_text(srna, "GPencil Sculpt Brush", "Stroke editing brush"); | RNA_def_struct_ui_text(srna, "GPencil Sculpt Brush", "Stroke editing brush"); | ||||
| prop = RNA_def_property(srna, "size", PROP_INT, PROP_PIXEL); | prop = RNA_def_property(srna, "size", PROP_INT, PROP_PIXEL); | ||||
| RNA_def_property_range(prop, 1, MAX_BRUSH_PIXEL_RADIUS); | RNA_def_property_range(prop, 1, GP_MAX_BRUSH_PIXEL_RADIUS); | ||||
| RNA_def_property_ui_range(prop, 1, 100, 10, 3); // XXX: too big | RNA_def_property_ui_range(prop, 1, 500, 10, 3); | ||||
| RNA_def_property_ui_text(prop, "Radius", "Radius of the brush in pixels"); | RNA_def_property_ui_text(prop, "Radius", "Radius of the brush in pixels"); | ||||
| RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); | RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); | ||||
| Context not available. | |||||
| RNA_def_property_enum_items(prop, prop_direction_items); | RNA_def_property_enum_items(prop, prop_direction_items); | ||||
| RNA_def_property_ui_text(prop, "Direction", ""); | RNA_def_property_ui_text(prop, "Direction", ""); | ||||
| RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); | RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); | ||||
| /* Cursor Color */ | |||||
| static float default_1[3] = { 1.0f, 0.6f, 0.6f }; | |||||
| static float default_2[3] = { 0.6f, 0.6f, 1.0f }; | |||||
| prop = RNA_def_property(srna, "cursor_color_add", PROP_FLOAT, PROP_COLOR_GAMMA); | |||||
| RNA_def_property_float_sdna(prop, NULL, "curcolor_add"); | |||||
| RNA_def_property_array(prop, 3); | |||||
| RNA_def_property_range(prop, 0.0f, 1.0f); | |||||
| RNA_def_property_float_array_default(prop, default_1); | |||||
| RNA_def_property_ui_text(prop, "Cursor Add", "Color for the cursor for addition"); | |||||
| prop = RNA_def_property(srna, "cursor_color_sub", PROP_FLOAT, PROP_COLOR_GAMMA); | |||||
| RNA_def_property_float_sdna(prop, NULL, "curcolor_sub"); | |||||
| RNA_def_property_array(prop, 3); | |||||
| RNA_def_property_range(prop, 0.0f, 1.0f); | |||||
| RNA_def_property_float_array_default(prop, default_2); | |||||
| RNA_def_property_ui_text(prop, "Cursor Sub", "Color for the cursor for substration"); | |||||
| prop = RNA_def_property(srna, "use_cursor", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_EDITBRUSH_FLAG_ENABLE_CURSOR); | |||||
| RNA_def_property_boolean_default(prop, true); | |||||
| RNA_def_property_ui_text(prop, "Enable Cursor", "Enable cursor on screen"); | |||||
| } | } | ||||
| void RNA_def_sculpt_paint(BlenderRNA *brna) | void RNA_def_sculpt_paint(BlenderRNA *brna) | ||||
| Context not available. | |||||