Merged changes in the trunk up to revision 39368.
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>
Sat, 13 Aug 2011 23:29:16 +0000 (23:29 +0000)
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>
Sat, 13 Aug 2011 23:29:16 +0000 (23:29 +0000)
Conflicts resolved:
release/scripts/startup/bl_ui/properties_render.py

1  2 
release/scripts/startup/bl_ui/properties_render.py
source/blender/editors/interface/interface_templates.c
source/blender/editors/transform/transform.c
source/blender/makesrna/RNA_access.h
source/blenderplayer/bad_level_call_stubs/stubs.c

index 87e72839fbbf138aff83b6c120cb8cff9ad42557,fb14372ebeafc213c210ffcc59b37ff96dcc84f3..647455af03c98176c3394ef7675e96f1f2fd94f6
@@@ -174,345 -174,7 +175,345 @@@ class RENDER_PT_layers(RenderButtonsPan
          row.prop(rl, "exclude_refraction", text="")
  
  
- class RENDER_PT_freestyle(RenderButtonsPanel, bpy.types.Panel):
++class RENDER_PT_freestyle(RenderButtonsPanel, Panel):
 +    bl_label = "Freestyle"
 +    COMPAT_ENGINES = {'BLENDER_RENDER'}
 +
 +    @classmethod
 +    def poll(cls, context):
 +        rd = context.scene.render
 +        rl = rd.layers.active
 +        return rl and rl.use_freestyle
 +
 +    def draw(self, context):
 +        layout = self.layout
 +
 +        rd = context.scene.render
 +        rl = rd.layers.active
 +        freestyle = rl.freestyle_settings
 +
 +        split = layout.split()
 +
 +        col = split.column()
 +        col.prop(freestyle, "raycasting_algorithm", text="Raycasting Algorithm")
 +        col.prop(freestyle, "mode", text="Control Mode")
 +
 +        if freestyle.mode == "EDITOR":
 +            col.label(text="Edge Detection Options:")
 +            col.prop(freestyle, "use_smoothness")
 +            col.prop(freestyle, "crease_angle")
 +            col.prop(freestyle, "sphere_radius")
 +            col.prop(freestyle, "kr_derivative_epsilon")
 +
 +            lineset = freestyle.linesets.active
 +
 +            col.label(text="Line Sets:")
 +            row = col.row()
 +            rows = 2
 +            if lineset:
 +                rows = 5
 +            row.template_list(freestyle, "linesets", freestyle.linesets, "active_index", rows=rows)
 +
 +            sub = row.column()
 +            subsub = sub.column(align=True)
 +            subsub.operator("scene.freestyle_lineset_add", icon='ZOOMIN', text="")
 +            subsub.operator("scene.freestyle_lineset_remove", icon='ZOOMOUT', text="")
 +            if lineset:
 +                sub.separator()
 +                subsub = sub.column(align=True)
 +                subsub.operator("scene.freestyle_lineset_move", icon='TRIA_UP', text="").direction = 'UP'
 +                subsub.operator("scene.freestyle_lineset_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
 +
 +            if lineset:
 +                col.prop(lineset, "name")
 +
 +                col.prop(lineset, "select_by_visibility")
 +                if lineset.select_by_visibility:
 +                    sub = col.row(align=True)
 +                    sub.prop(lineset, "visibility", expand=True)
 +                    if lineset.visibility == "RANGE":
 +                        sub = col.row(align=True)
 +                        sub.prop(lineset, "qi_start")
 +                        sub.prop(lineset, "qi_end")
 +                    col.separator() # XXX
 +
 +                col.prop(lineset, "select_by_edge_types")
 +                if lineset.select_by_edge_types:
 +                    row = col.row()
 +                    row.prop(lineset, "edge_type_negation", expand=True)
 +                    row = col.row()
 +                    row.prop(lineset, "edge_type_combination", expand=True)
 +
 +                    row = col.row()
 +                    sub = row.column()
 +                    sub.prop(lineset, "select_silhouette")
 +                    sub.prop(lineset, "select_border")
 +                    sub.prop(lineset, "select_crease")
 +                    sub.prop(lineset, "select_ridge")
 +                    sub.prop(lineset, "select_valley")
 +                    sub.prop(lineset, "select_suggestive_contour")
 +                    sub.prop(lineset, "select_material_boundary")
 +                    sub = row.column()
 +                    sub.prop(lineset, "select_contour")
 +                    sub.prop(lineset, "select_external_contour")
 +                    col.separator() # XXX
 +
 +                col.prop(lineset, "select_by_group")
 +                if lineset.select_by_group:
 +                    col.prop(lineset, "group")
 +                    row = col.row()
 +                    row.prop(lineset, "group_negation", expand=True)
 +                    col.separator() # XXX
 +
 +                col.prop(lineset, "select_by_image_border")
 +
 +        else: # freestyle.mode == "SCRIPT"
 +
 +            col.prop(freestyle, "use_smoothness")
 +            col.prop(freestyle, "crease_angle")
 +            col.prop(freestyle, "sphere_radius")
 +            col.prop(freestyle, "use_ridges_and_valleys")
 +            col.prop(freestyle, "use_suggestive_contours")
 +            sub = col.row()
 +            sub.prop(freestyle, "kr_derivative_epsilon")
 +            sub.active = freestyle.use_suggestive_contours
 +            col.prop(freestyle, "use_material_boundaries")
 +            col.operator("scene.freestyle_module_add")
 +
 +            for i, module in enumerate(freestyle.modules):
 +                box = layout.box()
 +                box.context_pointer_set("freestyle_module", module)
 +                row = box.row(align=True)
 +                row.prop(module, "use", text="")
 +                row.prop(module, "module_path", text="")
 +                row.operator("scene.freestyle_module_remove", icon='X', text="")
 +                row.operator("scene.freestyle_module_move", icon='TRIA_UP', text="").direction = 'UP'
 +                row.operator("scene.freestyle_module_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
 +
 +
- class RENDER_PT_freestyle_linestyle(RenderButtonsPanel, bpy.types.Panel):
++class RENDER_PT_freestyle_linestyle(RenderButtonsPanel, Panel):
 +    bl_label = "Freestyle: Line Style"
 +    COMPAT_ENGINES = {'BLENDER_RENDER'}
 +
 +    @classmethod
 +    def poll(cls, context):
 +        rd = context.scene.render
 +        rl = rd.layers.active
 +        if rl and rl.use_freestyle:
 +            freestyle = rl.freestyle_settings
 +            return freestyle.mode == "EDITOR" and freestyle.linesets.active
 +        return False
 +
 +    def draw_modifier_box_header(self, box, modifier):
 +        row = box.row()
 +        row.context_pointer_set("modifier", modifier)
 +        if modifier.expanded:
 +            icon = "TRIA_DOWN"
 +        else:
 +            icon = "TRIA_RIGHT"
 +        row.prop(modifier, "expanded", text="", icon=icon, emboss=False)
 +        row.label(text=modifier.rna_type.name)
 +        row.prop(modifier, "name", text="")
 +        row.prop(modifier, "use", text="")
 +        sub = row.row(align=True)
 +        sub.operator("scene.freestyle_modifier_move", icon='TRIA_UP', text="").direction = 'UP'
 +        sub.operator("scene.freestyle_modifier_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
 +        row.operator("scene.freestyle_modifier_remove", icon='X', text="")
 +
 +    def draw_modifier_common(self, box, modifier):
 +        row = box.row()
 +        row.prop(modifier, "blend", text="")
 +        row.prop(modifier, "influence")
 +
 +    def draw_modifier_color_ramp_common(self, box, modifier, has_range):
 +        box.template_color_ramp(modifier, "color_ramp", expand=True)
 +        if has_range:
 +            row = box.row(align=True)
 +            row.prop(modifier, "range_min")
 +            row.prop(modifier, "range_max")
 +
 +    def draw_modifier_curve_common(self, box, modifier, has_range, has_value):
 +        row = box.row()
 +        row.prop(modifier, "mapping", text="")
 +        sub = row.column()
 +        sub.prop(modifier, "invert")
 +        if modifier.mapping == "CURVE":
 +            sub.enabled = False
 +            box.template_curve_mapping(modifier, "curve")
 +        if has_range:
 +            row = box.row(align=True)
 +            row.prop(modifier, "range_min")
 +            row.prop(modifier, "range_max")
 +        if has_value:
 +            row = box.row(align=True)
 +            row.prop(modifier, "value_min")
 +            row.prop(modifier, "value_max")
 +
 +    def draw_color_modifier(self, context, modifier):
 +        layout = self.layout
 +
 +        col = layout.column(align=True)
 +        self.draw_modifier_box_header(col.box(), modifier)
 +        if modifier.expanded:
 +            box = col.box()
 +            self.draw_modifier_common(box, modifier)
 +
 +            if modifier.type == "ALONG_STROKE":
 +                self.draw_modifier_color_ramp_common(box, modifier, False)
 +
 +            elif modifier.type == "DISTANCE_FROM_OBJECT":
 +                box.prop(modifier, "target")
 +                self.draw_modifier_color_ramp_common(box, modifier, True)
 +
 +            elif modifier.type == "DISTANCE_FROM_CAMERA":
 +                self.draw_modifier_color_ramp_common(box, modifier, True)
 +                prop = box.operator("scene.freestyle_fill_range_by_selection")
 +                prop.type = 'COLOR'
 +                prop.name = modifier.name
 +
 +            elif modifier.type == "MATERIAL":
 +                row = box.row()
 +                row.prop(modifier, "material_attr", text="")
 +                sub = row.column()
 +                sub.prop(modifier, "use_ramp")
 +                if modifier.material_attr in ["DIFF", "SPEC"]:
 +                    sub.enabled = True
 +                    show_ramp = modifier.use_ramp
 +                else:
 +                    sub.enabled = False
 +                    show_ramp = True
 +                if show_ramp:
 +                    self.draw_modifier_color_ramp_common(box, modifier, False)
 +
 +    def draw_alpha_modifier(self, context, modifier):
 +        layout = self.layout
 +
 +        col = layout.column(align=True)
 +        self.draw_modifier_box_header(col.box(), modifier)
 +        if modifier.expanded:
 +            box = col.box()
 +            self.draw_modifier_common(box, modifier)
 +
 +            if modifier.type == "ALONG_STROKE":
 +                self.draw_modifier_curve_common(box, modifier, False, False)
 +
 +            elif modifier.type == "DISTANCE_FROM_OBJECT":
 +                box.prop(modifier, "target")
 +                self.draw_modifier_curve_common(box, modifier, True, False)
 +
 +            elif modifier.type == "DISTANCE_FROM_CAMERA":
 +                self.draw_modifier_curve_common(box, modifier, True, False)
 +                prop = box.operator("scene.freestyle_fill_range_by_selection")
 +                prop.type = 'ALPHA'
 +                prop.name = modifier.name
 +
 +            elif modifier.type == "MATERIAL":
 +                box.prop(modifier, "material_attr", text="")
 +                self.draw_modifier_curve_common(box, modifier, False, False)
 +
 +    def draw_thickness_modifier(self, context, modifier):
 +        layout = self.layout
 +
 +        col = layout.column(align=True)
 +        self.draw_modifier_box_header(col.box(), modifier)
 +        if modifier.expanded:
 +            box = col.box()
 +            self.draw_modifier_common(box, modifier)
 +
 +            if modifier.type == "ALONG_STROKE":
 +                self.draw_modifier_curve_common(box, modifier, False, True)
 +
 +            elif modifier.type == "DISTANCE_FROM_OBJECT":
 +                box.prop(modifier, "target")
 +                self.draw_modifier_curve_common(box, modifier, True, True)
 +
 +            elif modifier.type == "DISTANCE_FROM_CAMERA":
 +                self.draw_modifier_curve_common(box, modifier, True, True)
 +                prop = box.operator("scene.freestyle_fill_range_by_selection")
 +                prop.type = 'THICKNESS'
 +                prop.name = modifier.name
 +
 +            elif modifier.type == "MATERIAL":
 +                box.prop(modifier, "material_attr", text="")
 +                self.draw_modifier_curve_common(box, modifier, False, True)
 +
 +    def draw(self, context):
 +        layout = self.layout
 +
 +        rd = context.scene.render
 +        rl = rd.layers.active
 +        lineset = rl.freestyle_settings.linesets.active
 +        linestyle = lineset.linestyle
 +
 +        split = layout.split()
 +        col = split.column()
 +        col.template_ID(lineset, "linestyle", new="scene.freestyle_linestyle_new")
 +
 +        col.separator()
 +        sub = col.row(align=True)
 +        sub.prop(linestyle, "panel", expand=True)
 +
 +        if linestyle.panel == "COLOR":
 +            col.label(text="Base Color:")
 +            col.prop(linestyle, "color", text="")
 +            col.label(text="Modifiers:")
 +            layout.operator_menu_enum("scene.freestyle_color_modifier_add", "type", text="Add Modifier")
 +            for modifier in linestyle.color_modifiers:
 +                self.draw_color_modifier(context, modifier)
 +        elif linestyle.panel == "ALPHA":
 +            col.label(text="Base Transparency:")
 +            col.prop(linestyle, "alpha")
 +            col.label(text="Modifiers:")
 +            layout.operator_menu_enum("scene.freestyle_alpha_modifier_add", "type", text="Add Modifier")
 +            for modifier in linestyle.alpha_modifiers:
 +                self.draw_alpha_modifier(context, modifier)
 +        elif linestyle.panel == "THICKNESS":
 +            col.label(text="Base Thickness:")
 +            col.prop(linestyle, "thickness")
 +            col.label(text="Modifiers:")
 +            layout.operator_menu_enum("scene.freestyle_thickness_modifier_add", "type", text="Add Modifier")
 +            for modifier in linestyle.thickness_modifiers:
 +                self.draw_thickness_modifier(context, modifier)
 +        elif linestyle.panel == "STROKES":
 +            col.label(text="Chaining:")
 +            col.prop(linestyle, "same_object")
 +            col.separator()
 +            col.label(text="Splitting:")
 +            sub = col.row(align=True)
 +            sub.prop(linestyle, "material_boundary")
 +            col.separator()
 +            col.label(text="Caps:")
 +            sub = col.row(align=True)
 +            sub.prop(linestyle, "caps", expand=True)
 +            col.separator()
 +            col.prop(linestyle, "use_dashed_line")
 +            sub = col.row()
 +            sub.enabled = linestyle.use_dashed_line
 +            subsub = sub.column()
 +            subsub.label(text="Dash")
 +            subsub.prop(linestyle, "dash1", text="")
 +            subsub = sub.column()
 +            subsub.label(text="Gap")
 +            subsub.prop(linestyle, "gap1", text="")
 +            subsub = sub.column()
 +            subsub.label(text="Dash")
 +            subsub.prop(linestyle, "dash2", text="")
 +            subsub = sub.column()
 +            subsub.label(text="Gap")
 +            subsub.prop(linestyle, "gap2", text="")
 +            subsub = sub.column()
 +            subsub.label(text="Dash")
 +            subsub.prop(linestyle, "dash3", text="")
 +            subsub = sub.column()
 +            subsub.label(text="Gap")
 +            subsub.prop(linestyle, "gap3", text="")
 +        elif linestyle.panel == "DISTORT":
 +            pass
 +        elif linestyle.panel == "MISC":
 +            pass
 +
 +
- class RENDER_PT_dimensions(RenderButtonsPanel, bpy.types.Panel):
+ class RENDER_PT_dimensions(RenderButtonsPanel, Panel):
      bl_label = "Dimensions"
      COMPAT_ENGINES = {'BLENDER_RENDER'}
  
@@@ -736,13 -398,8 +737,13 @@@ class RENDER_PT_post_processing(RenderB
          sub.prop(rd, "edge_threshold", text="Threshold", slider=True)
          sub.prop(rd, "edge_color", text="")
  
 +        layout.separator()
 +
 +        split = layout.split()
 +        col = split.column()
 +        col.prop(rd, "use_freestyle", text="Freestyle")
  
- class RENDER_PT_stamp(RenderButtonsPanel, bpy.types.Panel):
+ class RENDER_PT_stamp(RenderButtonsPanel, Panel):
      bl_label = "Stamp"
      bl_options = {'DEFAULT_CLOSED'}
      COMPAT_ENGINES = {'BLENDER_RENDER'}
Simple merge