[Bf-blender-cvs] [13cff0d5241] soc-2019-npr: LANPR: Move main panel to render tab

YimingWu noreply at git.blender.org
Tue Jun 18 10:23:37 CEST 2019


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. @@



More information about the Bf-blender-cvs mailing list