Commit: 13cff0d524164b19aa98fa3cdbd477153f9ecf1e Author: YimingWu Date: Tue Jun 18 13:36:49 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB13cff0d524164b19aa98fa3cdbd477153f9ecf1e
LANPR: Move main panel to render tab =================================================================== M release/scripts/startup/bl_ui/properties_render.py M release/scripts/startup/bl_ui/properties_scene.py =================================================================== diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 8734989a56f..5724e724289 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -18,12 +18,15 @@ # ##### END GPL LICENSE BLOCK ##### # <pep8 compliant> -from bpy.types import Panel from bl_ui.space_view3d import ( VIEW3D_PT_shading_lighting, VIEW3D_PT_shading_color, VIEW3D_PT_shading_options, ) +from bpy.types import ( + Panel, + UIList, +) class RenderButtonsPanel: @@ -686,6 +689,378 @@ class RENDER_PT_simplify_greasepencil(RenderButtonsPanel, Panel): sub.prop(rd, "simplify_gpencil_remove_lines", text="Lines") +class LANPR_linesets(UIList): + def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index): + lineset = item + if self.layout_type in {'DEFAULT', 'COMPACT'}: + split = layout.split(factor=0.6) + split.label(text="Layer") + row = split.row(align=True) + row.prop(lineset, "color", text="", icon_value=icon) + row.prop(lineset, "thickness", text="", icon_value=icon) + elif self.layout_type == 'GRID': + layout.alignment = 'CENTER' + layout.label("", icon_value=icon) + +def lanpr_get_composition_scene(scene): + n = scene.name+'_lanpr_comp' + for s in bpy.data.scenes: + if s.name == n: return s + return None + +def lanpr_is_composition_scene(scene): + return scene.name.endswith('_lanpr_comp') + +class RENDER_PT_lanpr(RenderButtonsPanel, Panel): + COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'} + bl_label = "LANPR" + bl_options = {'DEFAULT_CLOSED'} + + @classmethod + def poll(cls, context): + return True + + def draw(self, context): + layout = self.layout + scene = context.scene + lanpr = scene.lanpr + active_layer = lanpr.layers.active_layer + + # make LANPR main panel now visible under all engines. + # composition method yet to be deteremined. + + #sc = lanpr_get_composition_scene(scene) + + #if sc is not None: + # layout.label(text = 'You are adjusting values for LANPR compostion scene.') + # row = layout.row() + # row.scale_y=1.5 + # row.operator("lanpr.goto_composition_scene") + # layout.operator("lanpr.remove_composition_scene") + # scene = sc + # lanpr = scene.lanpr + # active_layer = lanpr.layers.active_layer + # return + #elif scene.render.engine!='BLENDER_LANPR': + # layout.label(text = 'Select LANPR engine or use composition scene.') + # layout.operator("lanpr.make_composition_scene") + # return + + #if lanpr_is_composition_scene(scene): + # row = layout.row() + # row.scale_y=1.5 + # row.operator("lanpr.goto_original_scene") + # + # layout.label(text='LANPR Composition') + # row = layout.row() + # row.scale_y=1.5 + # row.scale_x=4 + # row.operator("lanpr.render_composited", icon = 'RENDER_STILL') + # row.scale_x=1 + # row.prop(lanpr,"composite_render_animation", toggle=True, icon = 'RENDER_ANIMATION') + + if scene.render.engine!='BLENDER_LANPR': + layout.label(text='Mode:') + layout.prop(lanpr, "master_mode", expand=True) + else: + layout.label(text='Only Software mode result is used to generate GP stroke.') + + if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE": + + layout.prop(lanpr, "background_color") + layout.prop(lanpr, "crease_threshold") + + if lanpr.master_mode == "SOFTWARE": + layout.label(text="Enable On Demand:") + row = layout.row() + row.prop(lanpr,"enable_intersections", text = "Intersection Lines") + row.prop(lanpr,"enable_chaining", text = "Chaining (SLOW!)") + layout.label(text="RUN:") + layout.operator("scene.lanpr_calculate", icon='RENDER_STILL') + + split = layout.split(factor=0.7) + col = split.column() + col.label(text="Layer Composition:") + col = split.column() + col.operator("scene.lanpr_auto_create_line_layer", text = "Default")#, icon = "ZOOMIN") + layout.template_list("LANPR_linesets", "", lanpr, "layers", lanpr.layers, "active_layer_index", rows=4) + if active_layer: + split = layout.split() + col = split.column() + col.operator("scene.lanpr_add_line_layer")#icon="ZOOMIN") + col.operator("scene.lanpr_delete_line_layer")#, icon="ZOOMOUT") + col = split.column() + col.operator("scene.lanpr_move_line_layer").direction = "UP" + col.operator("scene.lanpr_move_line_layer").direction = "DOWN" + layout.operator("scene.lanpr_rebuild_all_commands") + else: + layout.operator("scene.lanpr_add_line_layer") + + if active_layer: + layout.label(text= "Normal:") + layout.prop(active_layer,"normal_mode", expand = True) + if active_layer.normal_mode != "DISABLED": + layout.prop(active_layer,"normal_control_object") + layout.prop(active_layer,"normal_effect_inverse", toggle = True) + layout.prop(active_layer,"normal_ramp_begin") + layout.prop(active_layer,"normal_ramp_end") + layout.prop(active_layer,"normal_thickness_begin", slider=True) + layout.prop(active_layer,"normal_thickness_end", slider=True) + + else: + layout.label(text="Vectorization:") + layout.prop(lanpr, "enable_vector_trace", expand = True) + + +class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): + bl_label = "Types" + bl_parent_id = "RENDER_PT_lanpr" + COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'} + + @classmethod + def poll(cls, context): + scene = context.scene + lanpr = scene.lanpr + active_layer = lanpr.layers.active_layer + return active_layer and lanpr.master_mode != "SNAKE" + + def draw(self, context): + layout = self.layout + scene = context.scene + lanpr = scene.lanpr + active_layer = lanpr.layers.active_layer + if active_layer and lanpr.master_mode == "DPIX": + active_layer = lanpr.layers[0] + + layout.operator("scene.lanpr_enable_all_line_types") + + split = layout.split(factor=0.3) + col = split.column() + col.prop(active_layer, "enable_contour", text="Contour", toggle=True) + col.prop(active_layer, "enable_crease", text="Crease", toggle=True) + col.prop(active_layer, "enable_edge_mark", text="Mark", toggle=True) + col.prop(active_layer, "enable_material_seperate", text="Material", toggle=True) + col.prop(active_layer, "enable_intersection", text="Intersection", toggle=True) + col = split.column() + row = col.row(align = True) + #row.enabled = active_layer.enable_contour this is always enabled now + row.prop(active_layer, "color", text="") + row.prop(active_layer, "thickness", text="") + row = col.row(align = True) + row.enabled = active_layer.enable_crease + row.prop(active_layer, "crease_color", text="") + row.prop(active_layer, "thickness_crease", text="") + row = col.row(align = True) + row.enabled = active_layer.enable_edge_mark + row.prop(active_layer, "edge_mark_color", text="") + row.prop(active_layer, "thickness_edge_mark", text="") + row = col.row(align = True) + row.enabled = active_layer.enable_material_seperate + row.prop(active_layer, "material_color", text="") + row.prop(active_layer, "thickness_material", text="") + row = col.row(align = True) + if lanpr.enable_intersections: + row.enabled = active_layer.enable_intersection + row.prop(active_layer, "intersection_color", text="") + row.prop(active_layer, "thickness_intersection", text="") + else: + row.label(text= "Intersection Calculation Disabled") + + if lanpr.master_mode == "DPIX" and active_layer.enable_intersection: + row = col.row(align = True) + row.prop(lanpr,"enable_intersections", toggle = True, text = "Enable") + if lanpr.enable_intersections: + row.operator("scene.lanpr_calculate", text= "Recalculate") + + if lanpr.master_mode == "SOFTWARE": + row = layout.row(align=True) + row.prop(active_layer, "qi_begin") + row.prop(active_layer, "qi_end") + +class RENDER_PT_lanpr_line_components(RenderButtonsPanel, Panel): + bl_label = "Including" + bl_parent_id = "RENDER_PT_lanpr" + COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'} + + @classmethod + def poll(cls, context): + scene = context.scene + lanpr = scene.lanpr + active_layer = lanpr.layers.active_layer + return active_layer and lanpr.master_mode == "SOFTWARE" and not lanpr.enable_chaining + + def draw(self, context): + layout = self.layout + scene = context.scene + lanpr = scene.lanpr + active_layer = lanpr.layers.active_layer + + layout.operator("scene.lanpr_add_line_component")#, icon = "ZOOMIN") + + i=0 + for c in active_layer.components: + split = layout.split(factor=0.85) + col = split.column() + sp2 = col.split(factor=0.4) + cl = sp2.column() + cl.prop(c,"component_mode", text = @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs