[Bf-blender-cvs] [284f04a53dd] soc-2019-npr: LANPR: UI refactor: modifier ui now put into separate tab.
YimingWu
noreply at git.blender.org
Fri Jul 26 09:48:59 CEST 2019
Commit: 284f04a53dd7aeafe7f8d31d5dceb9a0177e8dc6
Author: YimingWu
Date: Fri Jul 26 15:48:29 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB284f04a53dd7aeafe7f8d31d5dceb9a0177e8dc6
LANPR: UI refactor: modifier ui now put into separate tab.
===================================================================
M release/scripts/startup/bl_ui/properties_data_modifier.py
M release/scripts/startup/bl_ui/properties_lanpr.py
M source/blender/editors/space_buttons/buttons_context.c
M source/blender/makesrna/intern/rna_scene.c
M source/blender/modifiers/intern/MOD_featureline.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index aeceb8edcfb..5edede73ceb 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -22,12 +22,6 @@ from bpy.types import Panel
from bpy.app.translations import pgettext_iface as iface_
from mathutils import Vector
-def is_unit_transformation(ob):
- if ob.scale.xyz==Vector((1,1,1)) and ob.location.xyz==Vector((0,0,0)) and \
- ob.rotation_euler.x == 0.0 and ob.rotation_euler.y == 0.0 and ob.rotation_euler.z == 0.0:
- return True
- return False
-
class ModifierButtonsPanel:
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
@@ -1678,50 +1672,12 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(md, "thresh", text="Threshold")
col.prop(md, "face_influence")
- def FEATURE_LINE(self, layout, ob, md):
- lanpr_enabled = bpy.context.scene.lanpr.enabled
- modifier_useless = bpy.context.scene.render.engine!="BLENDER_LANPR" and not lanpr_enabled
- layout.active = not modifier_useless
-
- if modifier_useless:
- layout.label(text="LANPR is not enabled")
-
- layout.label(text='Enable Types:')
- row = layout.row(align=True)
- row.prop(md,'enable_contour',toggle=True)
- row.prop(md,'enable_crease',toggle=True)
- row.prop(md,'enable_mark',toggle=True)
- row.prop(md,'enable_material',toggle=True)
- row.prop(md,'enable_intersection',toggle=True)
- row.prop(md,'enable_modifier_mark',toggle=True)
-
- row = layout.row(align=True)
- row.prop(md,'use_multiple_levels', icon='GP_MULTIFRAME_EDITING', icon_only=True)
- row.prop(md,'level_begin')
- if md.use_multiple_levels:
- row.prop(md,'level_end')
-
- split = layout.split(factor=0.5)
- col = split.column()
- col.label(text="Object:")
- col.prop(md, "target", text="")
- col = split.column()
- col.label(text="Vertex Group:")
- col.label(text="Inoperative")
-
- if not md.target:
- layout.label(text="You have to specify a target GP Object")
+ def FEATURE_LINE(self, layout, _ob, _md):
+ if not (bpy.context.scene.render.engine == "BLENDER_LANPR" or bpy.context.scene.lanpr.enabled):
+ layout.label(text="LANPR is disabled.")
else:
- if not is_unit_transformation(md.target):
- row = layout.row()
- row.label(text = "Target GP has self transformations.")
- row = layout.row()
- row.operator("lanpr.reset_object_transfromations").obj=md.target.name
- #remove this for now.
- #layout.prop(md,'replace', text='Replace existing frames')
- row = layout.row()
- row.prop(md,'layer')
- row.prop(md,'material')
+ layout.label(text="Settings are inside the LANPR tab.")
+
class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel):
bl_label = "Modifiers"
diff --git a/release/scripts/startup/bl_ui/properties_lanpr.py b/release/scripts/startup/bl_ui/properties_lanpr.py
index 21da841f195..efc6454c41c 100644
--- a/release/scripts/startup/bl_ui/properties_lanpr.py
+++ b/release/scripts/startup/bl_ui/properties_lanpr.py
@@ -30,8 +30,19 @@ class LanprButtonsPanel:
@classmethod
def poll(cls, context):
- return (context.engine in cls.COMPAT_ENGINES)
+ return True
+def find_feature_line_modifier(ob):
+ for md in ob.modifiers:
+ if md.type=='FEATURE_LINE':
+ return md
+ return None
+
+def is_unit_transformation(ob):
+ if ob.scale.xyz==Vector((1,1,1)) and ob.location.xyz==Vector((0,0,0)) and \
+ ob.rotation_euler.x == 0.0 and ob.rotation_euler.y == 0.0 and ob.rotation_euler.z == 0.0:
+ return True
+ return False
class OBJECT_PT_lanpr_settings(LanprButtonsPanel, Panel):
bl_label = "Object LANPR Settings"
@@ -41,16 +52,73 @@ class OBJECT_PT_lanpr_settings(LanprButtonsPanel, Panel):
return context.scene.render.engine == 'BLENDER_LANPR' or context.scene.lanpr.enabled
def draw(self,context):
- layout = self.layout
collection = context.collection
lanpr = collection.lanpr
ob = context.object
+ md = find_feature_line_modifier(ob)
+
+ layout = self.layout
+ layout.use_property_split = True
+ layout.use_property_decorate = False
+
+ if not md:
+ layout.label(text="No feature line modifier for this object.")
+ return
+
+ layout.prop(md,'use_multiple_levels', text="Multiple Levels")
+ if md.use_multiple_levels:
+ col = layout.column(align=True)
+ col.prop(md,'level_begin')
+ col.prop(md,'level_end', text="End")
+ else:
+ layout.prop(md,'level_begin', text="Level")
+
+ layout.prop(md,'enable_contour')
+ layout.prop(md,'enable_crease')
+ layout.prop(md,'enable_mark')
+ layout.prop(md,'enable_material')
+ layout.prop(md,'enable_intersection')
+ layout.prop(md,'enable_modifier_mark')
+
+class OBJECT_PT_lanpr_modifier_target(LanprButtonsPanel, Panel):
+ bl_label = "GPencil Target"
+ bl_parent_id = "OBJECT_PT_lanpr_settings"
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'}
+
+ @classmethod
+ def poll(cls, context):
+ scene = context.scene
+ lanpr = scene.lanpr
+ ob = context.object
+ return (scene.render.engine=="BLENDER_LANPR" or lanpr.enabled) and find_feature_line_modifier(ob)
- layout.label(text="Waiting to be implemented")
+ def draw(self, context):
+ lanpr = context.scene.lanpr
+ ob = context.object
+ md = find_feature_line_modifier(ob)
+
+ layout = self.layout
+ layout.use_property_split = True
+ layout.use_property_decorate = False
+ split = layout.split(factor=0.5)
+ col = split.column()
+ col.label(text="Object:")
+ col.prop(md, "target", text="")
+ col = split.column()
+ col.label(text="Vertex Group:")
+ col.label(text="Inoperative")
+
+ if md.target:
+ if not is_unit_transformation(md.target):
+ layout.label(text = "Target GP has self transformations.")
+ layout.operator("lanpr.reset_object_transfromations").obj=md.target.name
+ layout.prop(md,'layer')
+ layout.prop(md,'material')
classes = (
OBJECT_PT_lanpr_settings,
+ OBJECT_PT_lanpr_modifier_target,
)
if __name__ == "__main__": # only for live edit.
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index aafcb266e40..ddcbfd7b6a0 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -604,7 +604,11 @@ static int buttons_context_path(const bContext *C, ButsContextPath *path, int ma
found = buttons_context_path_collection(path, window);
break;
case BCONTEXT_LANPR:
- found = buttons_context_path_object(path);
+ if(scene && (scene->lanpr.enabled||!strcmp(scene->r.engine,"BLENDER_LANPR"))){
+ found = buttons_context_path_object(path);
+ }else{
+ found = 0;
+ }
break;
case BCONTEXT_TOOL:
found = true;
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 10ced022bcd..94e3e99cb2f 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -7201,6 +7201,7 @@ static void rna_def_scene_lanpr(BlenderRNA *brna)
prop = RNA_def_property(srna, "enabled", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_default(prop, 0);
RNA_def_property_ui_text(prop, "Enabled", "Is LANPR enabled");
+ RNA_def_property_update(prop, NC_WINDOW, NULL);
prop = RNA_def_property(srna, "auto_update", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_default(prop, 0);
diff --git a/source/blender/modifiers/intern/MOD_featureline.c b/source/blender/modifiers/intern/MOD_featureline.c
index 6124386770f..54d93d71f26 100644
--- a/source/blender/modifiers/intern/MOD_featureline.c
+++ b/source/blender/modifiers/intern/MOD_featureline.c
@@ -108,7 +108,7 @@ ModifierTypeInfo modifierType_FeatureLine = {
/* structName */ "FeatureLineModifierData",
/* structSize */ sizeof(FeatureLineModifierData),
/* type */ eModifierTypeType_Constructive,
- /* flags */ eModifierTypeFlag_AcceptsMesh,
+ /* flags */ eModifierTypeFlag_AcceptsMesh | eModifierTypeFlag_Single,
/* copyData */ copyData,
/* deformVerts */ NULL,
More information about the Bf-blender-cvs
mailing list