Grease Pencil naming: Use clear names for depth ordering

- Add a new panel to differentiate between viewport display and stroke options
- Use clearer naming for depth ordering and stroke thickness properties

Reviewers: antoniov
Differential Revision: https://developer.blender.org/D4405
This commit is contained in:
2019-02-25 21:59:35 +01:00
parent 7efc26709c
commit 54ffc4e19d
2 changed files with 52 additions and 31 deletions

View File

@@ -332,6 +332,33 @@ class DATA_PT_gpencil_vertexpanel(DataButtonsPanel, Panel):
layout.prop(context.tool_settings, "vertex_group_weight", text="Weight") layout.prop(context.tool_settings, "vertex_group_weight", text="Weight")
class DATA_PT_gpencil_strokes(DataButtonsPanel, Panel):
bl_label = "Strokes"
bl_options = {'DEFAULT_CLOSED'}
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False
ob = context.object
gpd = context.gpencil_data
layout.prop(gpd, "object_depth_order")
if gpd.object_depth_order == '3DSPACE':
layout.prop(gpd, "stroke_depth_order")
col = layout.column(align=True)
col.prop(gpd, "stroke_thickness_space")
sub = col.column()
sub.active = gpd.stroke_thickness_space == 'WORLDSPACE'
sub.prop(gpd, "pixel_factor", text="Thickness Scale")
layout.prop(gpd, "use_force_fill_recalc", text="Force Fill Update")
layout.prop(gpd, "use_adaptive_uv", text="Adaptive UVs")
class DATA_PT_gpencil_display(DataButtonsPanel, Panel): class DATA_PT_gpencil_display(DataButtonsPanel, Panel):
bl_label = "Viewport Display" bl_label = "Viewport Display"
bl_options = {'DEFAULT_CLOSED'} bl_options = {'DEFAULT_CLOSED'}
@@ -346,25 +373,12 @@ class DATA_PT_gpencil_display(DataButtonsPanel, Panel):
gpd = context.gpencil_data gpd = context.gpencil_data
gpl = context.active_gpencil_layer gpl = context.active_gpencil_layer
layout.prop(gpd, "xray_mode", text="Depth Ordering")
if gpd.xray_mode == '3DSPACE':
layout.prop(gpd, "draw_mode", text="Mode")
layout.prop(ob, "empty_display_size", text="Marker Size") layout.prop(ob, "empty_display_size", text="Marker Size")
col = layout.column(align=True)
col.prop(gpd, "show_constant_thickness")
sub = col.column()
sub.active = not gpd.show_constant_thickness
sub.prop(gpd, "pixel_factor", text="Thickness Scale")
layout.prop(gpd, "edit_line_color", text="Edit Line Color") layout.prop(gpd, "edit_line_color", text="Edit Line Color")
if gpl: if gpl:
layout.prop(gpd, "show_stroke_direction", text="Show Stroke Directions") layout.prop(gpd, "show_stroke_direction", text="Show Stroke Directions")
layout.prop(gpd, "use_force_fill_recalc", text="Force Fill Update")
layout.prop(gpd, "use_adaptive_uv", text="Adaptive UVs")
class DATA_PT_gpencil_canvas(DataButtonsPanel, Panel): class DATA_PT_gpencil_canvas(DataButtonsPanel, Panel):
bl_label = "Canvas" bl_label = "Canvas"
@@ -402,6 +416,7 @@ classes = (
DATA_PT_gpencil_layer_optionpanel, DATA_PT_gpencil_layer_optionpanel,
DATA_PT_gpencil_parentpanel, DATA_PT_gpencil_parentpanel,
DATA_PT_gpencil_vertexpanel, DATA_PT_gpencil_vertexpanel,
DATA_PT_gpencil_strokes,
DATA_PT_gpencil_display, DATA_PT_gpencil_display,
DATA_PT_gpencil_canvas, DATA_PT_gpencil_canvas,
DATA_PT_custom_props_gpencil, DATA_PT_custom_props_gpencil,

View File

@@ -51,16 +51,16 @@ static const EnumPropertyItem parent_type_items[] = {
}; };
#ifndef RNA_RUNTIME #ifndef RNA_RUNTIME
static EnumPropertyItem rna_enum_gpencil_drawmodes_items[] = { static EnumPropertyItem rna_enum_gpencil_stroke_depth_order_items[] = {
{GP_DRAWMODE_2D, "2D", 0, "2D Layers", "Draw strokes using grease pencil layers to define order"}, {GP_DRAWMODE_2D, "2D", 0, "2D Layers", "Display strokes using grease pencil layers to define order"},
{GP_DRAWMODE_3D, "3D", 0, "3D Location", "Draw strokes using real 3D position in 3D space"}, {GP_DRAWMODE_3D, "3D", 0, "3D Location", "Display strokes using real 3D position in 3D space"},
{0, NULL, 0, NULL, NULL}, {0, NULL, 0, NULL, NULL},
}; };
static EnumPropertyItem rna_enum_gpencil_xraymodes_items[] = { static EnumPropertyItem rna_enum_gpencil_object_depth_order_items[] = {
{GP_XRAY_FRONT, "FRONT", 0, "Front", "Draw all strokes in front"}, {GP_XRAY_FRONT, "FRONT", 0, "Front", "Display all strokes in front"},
{GP_XRAY_3DSPACE, "3DSPACE", 0, "3D Space", "Draw strokes relative to other objects in 3D space"}, {GP_XRAY_3DSPACE, "3DSPACE", 0, "3D Space", "Display strokes relative to other objects in 3D space"},
{GP_XRAY_BACK, "BACK", 0, "Back", "Draw all strokes last"}, {GP_XRAY_BACK, "BACK", 0, "Back", "Display all strokes last"},
{0, NULL, 0, NULL, NULL}, {0, NULL, 0, NULL, NULL},
}; };
@@ -1473,6 +1473,12 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
static float onion_dft1[3] = { 0.145098f, 0.419608f, 0.137255f }; /* green */ static float onion_dft1[3] = { 0.145098f, 0.419608f, 0.137255f }; /* green */
static float onion_dft2[3] = { 0.125490f, 0.082353f, 0.529412f }; /* blue */ static float onion_dft2[3] = { 0.125490f, 0.082353f, 0.529412f }; /* blue */
static const EnumPropertyItem stroke_thickness_items[] = {
{0, "WORLDSPACE", 0, "World Space", "Set stroke thickness relative to the world space"},
{GP_DATA_STROKE_KEEPTHICKNESS, "SCREENSPACE", 0, "Screen Space", "Set stroke thickness relative to the screen space"},
{0, NULL, 0, NULL, NULL},
};
srna = RNA_def_struct(brna, "GreasePencil", "ID"); srna = RNA_def_struct(brna, "GreasePencil", "ID");
RNA_def_struct_sdna(srna, "bGPdata"); RNA_def_struct_sdna(srna, "bGPdata");
RNA_def_struct_ui_text(srna, "Grease Pencil", "Freehand annotation sketchbook"); RNA_def_struct_ui_text(srna, "Grease Pencil", "Freehand annotation sketchbook");
@@ -1496,19 +1502,18 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
RNA_def_property_srna(prop, "IDMaterials"); /* see rna_ID.c */ RNA_def_property_srna(prop, "IDMaterials"); /* see rna_ID.c */
RNA_def_property_collection_funcs(prop, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "rna_IDMaterials_assign_int"); RNA_def_property_collection_funcs(prop, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "rna_IDMaterials_assign_int");
/* draw modes */ /* Depth */
prop = RNA_def_property(srna, "draw_mode", PROP_ENUM, PROP_NONE); prop = RNA_def_property(srna, "stroke_depth_order", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "draw_mode"); RNA_def_property_enum_sdna(prop, NULL, "draw_mode");
RNA_def_property_enum_items(prop, rna_enum_gpencil_drawmodes_items); RNA_def_property_enum_items(prop, rna_enum_gpencil_stroke_depth_order_items);
RNA_def_property_ui_text(prop, "Mode", RNA_def_property_ui_text(prop, "Stroke Depth Order",
"Defines how the strokes are ordered in 3D space"); "Defines how the strokes are ordered in 3D space");
RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update"); RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
/* xray modes */ prop = RNA_def_property(srna, "object_depth_order", PROP_ENUM, PROP_NONE);
prop = RNA_def_property(srna, "xray_mode", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "xray_mode"); RNA_def_property_enum_sdna(prop, NULL, "xray_mode");
RNA_def_property_enum_items(prop, rna_enum_gpencil_xraymodes_items); RNA_def_property_enum_items(prop, rna_enum_gpencil_object_depth_order_items);
RNA_def_property_ui_text(prop, "X-Ray", ""); RNA_def_property_ui_text(prop, "Object Depth Order", "");
RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update"); RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
/* Flags */ /* Flags */
@@ -1547,9 +1552,10 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
"and smaller red dot (end) points"); "and smaller red dot (end) points");
RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update"); RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
prop = RNA_def_property(srna, "show_constant_thickness", PROP_BOOLEAN, PROP_NONE); prop = RNA_def_property(srna, "stroke_thickness_space", PROP_ENUM, PROP_NONE); /* as an enum */
RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_DATA_STROKE_KEEPTHICKNESS); RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");
RNA_def_property_ui_text(prop, "Keep Thickness", "Maintain the thickness of the stroke when the viewport zoom changes"); RNA_def_property_enum_items(prop, stroke_thickness_items);
RNA_def_property_ui_text(prop, "Stroke Thickness", "Set stroke thickness in screen space or world space");
RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update"); RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
prop = RNA_def_property(srna, "pixel_factor", PROP_FLOAT, PROP_NONE); prop = RNA_def_property(srna, "pixel_factor", PROP_FLOAT, PROP_NONE);