Undo revision 23130 which was a merge with 2.5, a messy one because I did something...
[blender.git] / release / ui / buttons_material.py
index dc11731..b971a67 100644 (file)
@@ -2,22 +2,24 @@
 import bpy
 
 class MaterialButtonsPanel(bpy.types.Panel):
-       __space_type__ = 'PROPERTIES'
-       __region_type__ = 'WINDOW'
+       __space_type__ = "PROPERTIES"
+       __region_type__ = "WINDOW"
        __context__ = "material"
        # COMPAT_ENGINES must be defined in each subclass, external engines can add themselves here
 
        def poll(self, context):
-               mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (engine in self.COMPAT_ENGINES)
+               return (context.material) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
 
 class MATERIAL_PT_preview(MaterialButtonsPanel):
        __label__ = "Preview"
        COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
 
        def draw(self, context):
-               self.layout.template_preview(context.material)
+               layout = self.layout
+               
+               mat = context.material
+               
+               layout.template_preview(mat)
                
 class MATERIAL_PT_context_material(MaterialButtonsPanel):
        __show_header__ = False
@@ -27,8 +29,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel):
                # An exception, dont call the parent poll func because
                # this manages materials for all engine types
                
-               engine = context.scene.render_data.engine
-               return (context.object) and (engine in self.COMPAT_ENGINES)
+               return (context.object) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
 
        def draw(self, context):
                layout = self.layout
@@ -44,10 +45,10 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel):
                        row.template_list(ob, "materials", ob, "active_material_index", rows=2)
 
                        col = row.column(align=True)
-                       col.itemO("object.material_slot_add", icon='ICON_ZOOMIN', text="")
-                       col.itemO("object.material_slot_remove", icon='ICON_ZOOMOUT', text="")
+                       col.itemO("object.material_slot_add", icon="ICON_ZOOMIN", text="")
+                       col.itemO("object.material_slot_remove", icon="ICON_ZOOMOUT", text="")
 
-                       if ob.mode == 'EDIT':
+                       if context.edit_object:
                                row = layout.row(align=True)
                                row.itemO("object.material_slot_assign", text="Assign")
                                row.itemO("object.material_slot_select", text="Select")
@@ -72,36 +73,34 @@ class MATERIAL_PT_shading(MaterialButtonsPanel):
        __label__ = "Shading"
        COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
 
-       def poll(self, context):
-               mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type in ('SURFACE', 'WIRE', 'HALO')) and (engine in self.COMPAT_ENGINES)
-
        def draw(self, context):
                layout = self.layout
                
                mat = context.material
+               ob = context.object
+               slot = context.material_slot
+               space = context.space_data
 
-               if mat.type in ('SURFACE', 'WIRE'):
-                       split = layout.split()
+               if mat:
+
+                       if mat.type in ('SURFACE', 'WIRE', 'VOLUME'):
+                               split = layout.split()
        
-                       col = split.column()
-                       sub = col.column()
-                       sub.active = not mat.shadeless
-                       sub.itemR(mat, "emit")
-                       sub.itemR(mat, "ambient")
-                       sub = col.column()
-                       sub.itemR(mat, "translucency")
+                               col = split.column()
+                               col.active = not mat.shadeless
+                               col.itemR(mat, "ambient")
+                               col.itemR(mat, "emit")
+                               col.itemR(mat, "translucency")
                                
-                       col = split.column()
-                       col.itemR(mat, "shadeless")     
-                       sub = col.column()
-                       sub.active = not mat.shadeless
-                       sub.itemR(mat, "tangent_shading")
-                       sub.itemR(mat, "cubic")
+                               col = split.column()
+                               col.itemR(mat, "shadeless")     
+                               sub = col.column()
+                               sub.active = not mat.shadeless
+                               sub.itemR(mat, "tangent_shading")
+                               sub.itemR(mat, "cubic")
                                
-               elif mat.type == 'HALO':
-                       layout.itemR(mat, "alpha")
+                       elif mat.type == 'HALO':
+                               layout.itemR(mat, "alpha")
                        
 class MATERIAL_PT_strand(MaterialButtonsPanel):
        __label__ = "Strand"
@@ -110,8 +109,7 @@ class MATERIAL_PT_strand(MaterialButtonsPanel):
 
        def poll(self, context):
                mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type in ('SURFACE', 'WIRE', 'HALO')) and (engine in self.COMPAT_ENGINES)
+               return mat and (mat.type in ('SURFACE', 'WIRE')) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
        
        def draw(self, context):
                layout = self.layout
@@ -121,22 +119,20 @@ class MATERIAL_PT_strand(MaterialButtonsPanel):
                
                split = layout.split()
                
-               col = split.column(align=True)
+               col = split.column()
                col.itemL(text="Size:")
-               col.itemR(tan, "root_size", text="Root")
-               col.itemR(tan, "tip_size", text="Tip")
+               col.itemR(tan, "start_size", text="Root")
+               col.itemR(tan, "end_size", text="Tip")
                col.itemR(tan, "min_size", text="Minimum")
                col.itemR(tan, "blender_units")
                sub = col.column()
                sub.active = (not mat.shadeless)
                sub.itemR(tan, "tangent_shading")
-               col.itemR(tan, "shape")
                
                col = split.column()
-               col.itemL(text="Shading:")
+               col.itemR(tan, "shape")
                col.itemR(tan, "width_fade")
                col.itemR(tan, "uv_layer")
-               col.itemS()
                sub = col.column()
                sub.active = (not mat.shadeless)
                sub.itemR(tan, "surface_diffuse")
@@ -151,7 +147,8 @@ class MATERIAL_PT_physics(MaterialButtonsPanel):
        def draw(self, context):
                layout = self.layout
                
-               phys = context.material.physics
+               mat = context.material
+               phys = mat.physics
                
                split = layout.split()
                
@@ -169,11 +166,6 @@ class MATERIAL_PT_options(MaterialButtonsPanel):
        __label__ = "Options"
        COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
 
-       def poll(self, context):
-               mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type in ('SURFACE', 'WIRE', 'HALO')) and (engine in self.COMPAT_ENGINES)
-
        def draw(self, context):
                layout = self.layout
                
@@ -208,11 +200,6 @@ class MATERIAL_PT_shadow(MaterialButtonsPanel):
        __label__ = "Shadow"
        __default_closed__ = True
        COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
-       
-       def poll(self, context):
-               mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in self.COMPAT_ENGINES)
 
        def draw(self, context):
                layout = self.layout
@@ -223,7 +210,7 @@ class MATERIAL_PT_shadow(MaterialButtonsPanel):
                
                col = split.column()
                col.itemR(mat, "shadows", text="Receive")
-               col.itemR(mat, "receive_transparent_shadows", text="Receive Transparent")
+               col.itemR(mat, "transparent_shadows", text="Receive Transparent")
                col.itemR(mat, "only_shadow", text="Shadows Only")
                col.itemR(mat, "cast_shadows_only", text="Cast Only")
                col.itemR(mat, "shadow_casting_alpha", text="Casting Alpha")
@@ -237,6 +224,7 @@ class MATERIAL_PT_shadow(MaterialButtonsPanel):
                sub = col.column()
                sub.active = (not mat.ray_shadow_bias)
                sub.itemR(mat, "shadow_ray_bias", text="Ray Bias")
+               
 
 class MATERIAL_PT_diffuse(MaterialButtonsPanel):
        __label__ = "Diffuse"
@@ -244,8 +232,7 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel):
 
        def poll(self, context):
                mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in self.COMPAT_ENGINES)
+               return mat and (mat.type != 'HALO') and (context.scene.render_data.engine in self.COMPAT_ENGINES)
 
        def draw(self, context):
                layout = self.layout
@@ -258,7 +245,7 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel):
                col.itemR(mat, "diffuse_color", text="")
                sub = col.column()
                sub.active = (not mat.shadeless)
-               sub.itemR(mat, "diffuse_intensity", text="Intensity")
+               sub.itemR(mat, "diffuse_reflection", text="Intensity")
                
                col = split.column()
                col.active = (not mat.shadeless)
@@ -291,15 +278,15 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel):
                        split = row.split(percentage=0.3)
                        split.itemL(text="Blend:")
                        split.itemR(mat, "diffuse_ramp_blend", text="")
-
+                       
+               
 class MATERIAL_PT_specular(MaterialButtonsPanel):
        __label__ = "Specular"
        COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
 
        def poll(self, context):
                mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in self.COMPAT_ENGINES)
+               return mat and (mat.type != 'HALO') and (context.scene.render_data.engine in self.COMPAT_ENGINES)
 
        def draw(self, context):
                layout = self.layout
@@ -312,7 +299,7 @@ class MATERIAL_PT_specular(MaterialButtonsPanel):
                
                col = split.column()
                col.itemR(mat, "specular_color", text="")
-               col.itemR(mat, "specular_intensity", text="Intensity")
+               col.itemR(mat, "specular_reflection", text="Intensity")
 
                col = split.column()
                col.itemR(mat, "specular_shader", text="")
@@ -351,15 +338,13 @@ class MATERIAL_PT_sss(MaterialButtonsPanel):
        
        def poll(self, context):
                mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in self.COMPAT_ENGINES)
+               return mat and (mat.type in ('SURFACE', 'WIRE')) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
 
        def draw_header(self, context):
+               layout = self.layout
                sss = context.material.subsurface_scattering
-               mat = context.material
-               
-               self.layout.active = (not mat.shadeless)
-               self.layout.itemR(sss, "enabled", text="")
+
+               layout.itemR(sss, "enabled", text="")
        
        def draw(self, context):
                layout = self.layout
@@ -372,22 +357,21 @@ class MATERIAL_PT_sss(MaterialButtonsPanel):
                split = layout.split()
                split.active = (not mat.shadeless)
                
-               col = split.column()
-               col.itemR(sss, "ior")
-               col.itemR(sss, "scale")
+               col = split.column(align=True)
                col.itemR(sss, "color", text="")
-               col.itemR(sss, "radius", text="RGB Radius")
+               col.itemL(text="Blend:")
+               col.itemR(sss, "color_factor", text="Color")
+               col.itemR(sss, "texture_factor", text="Texture")
+               col.itemL(text="Scattering Weight:")
+               col.itemR(sss, "front")
+               col.itemR(sss, "back")
                
                col = split.column()
                sub = col.column(align=True)
-               sub.itemL(text="Blend:")
-               sub.itemR(sss, "color_factor", text="Color")
-               sub.itemR(sss, "texture_factor", text="Texture")
-               sub.itemL(text="Scattering Weight:")
-               sub.itemR(sss, "front")
-               sub.itemR(sss, "back")
-               col.itemS()
-               col.itemR(sss, "error_tolerance", text="Error")
+               sub.itemR(sss, "ior")
+               sub.itemR(sss, "scale")
+               col.itemR(sss, "radius", text="RGB Radius")
+               col.itemR(sss, "error_tolerance")
 
 class MATERIAL_PT_mirror(MaterialButtonsPanel):
        __label__ = "Mirror"
@@ -396,13 +380,14 @@ class MATERIAL_PT_mirror(MaterialButtonsPanel):
        
        def poll(self, context):
                mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in self.COMPAT_ENGINES)
+               return mat and (mat.type in ('SURFACE', 'WIRE')) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
        
-       def draw_header(self, context): 
+       def draw_header(self, context):
+               layout = self.layout
+               
                raym = context.material.raytrace_mirror
 
-               self.layout.itemR(raym, "enabled", text="")
+               layout.itemR(raym, "enabled", text="")
        
        def draw(self, context):
                layout = self.layout
@@ -415,35 +400,31 @@ class MATERIAL_PT_mirror(MaterialButtonsPanel):
                split = layout.split()
                
                col = split.column()
-               col.itemR(raym, "reflect_factor")
+               col.itemR(raym, "reflect", text="Reflectivity")
                col.itemR(mat, "mirror_color", text="")
-
-               col = split.column()
-               col.itemR(raym, "fresnel")
+               col.itemL(text="Fresnel:")
+               col.itemR(raym, "fresnel", text="Amount")
                sub = col.column()
                sub.active = raym.fresnel > 0
                sub.itemR(raym, "fresnel_factor", text="Blend")
-               
-               split = layout.split()
-               
-               col = split.column()
                col.itemS()
-               col.itemR(raym, "distance", text="Max Dist")
-               col.itemR(raym, "depth")
                col.itemS()
                sub = col.split(percentage=0.4)
                sub.itemL(text="Fade To:")
                sub.itemR(raym, "fade_to", text="")
                
                col = split.column()
+               col.itemR(raym, "depth")
+               col.itemR(raym, "distance", text="Max Dist")
                col.itemL(text="Gloss:")
-               col.itemR(raym, "gloss_factor", text="Amount")
+               col.itemR(raym, "gloss", text="Amount")
                sub = col.column()
-               sub.active = raym.gloss_factor < 1.0
+               sub.active = raym.gloss < 1
                sub.itemR(raym, "gloss_threshold", text="Threshold")
                sub.itemR(raym, "gloss_samples", text="Samples")
                sub.itemR(raym, "gloss_anisotropic", text="Anisotropic")
-
+               
+               
 class MATERIAL_PT_transp(MaterialButtonsPanel):
        __label__= "Transparency"
        __default_closed__ = True
@@ -451,12 +432,13 @@ class MATERIAL_PT_transp(MaterialButtonsPanel):
                
        def poll(self, context):
                mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type in ('SURFACE', 'WIRE')) and (engine in self.COMPAT_ENGINES)
+               return mat and (mat.type in ('SURFACE', 'WIRE')) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
 
-       def draw_header(self, context): 
+       def draw_header(self, context):
+               layout = self.layout
+               
                mat = context.material
-               self.layout.itemR(mat, "transparency", text="")
+               layout.itemR(mat, "transparency", text="")
 
        def draw(self, context):
                layout = self.layout
@@ -464,29 +446,32 @@ class MATERIAL_PT_transp(MaterialButtonsPanel):
                mat = context.material
                rayt = context.material.raytrace_transparency
                
-               row = layout.row()
-               row.active = mat.transparency and (not mat.shadeless)
+               row= layout.row()
                row.itemR(mat, "transparency_method", expand=True)
+               row.active = mat.transparency and (not mat.shadeless)
                
                split = layout.split()
                
                col = split.column()
-               col.itemR(mat, "alpha")
+               col.itemL(text="Transparency:")
+               row = col.row()
+               row.itemR(mat, "alpha")
+               row.active = mat.transparency
                row = col.row()
-               row.active = mat.transparency and (not mat.shadeless)
                row.itemR(mat, "specular_alpha", text="Specular")
-
+               row.active = mat.transparency and (not mat.shadeless)
+               
                col = split.column()
-               col.active = (not mat.shadeless)
-               col.itemR(rayt, "fresnel")
+               col.active = mat.transparency and (not mat.shadeless)
+               col.itemL(text="Fresnel:")
+               col.itemR(rayt, "fresnel", text="Amount")
                sub = col.column()
                sub.active = rayt.fresnel > 0
                sub.itemR(rayt, "fresnel_factor", text="Blend")
 
                if mat.transparency_method == 'RAYTRACE':
-                       layout.itemS()
                        split = layout.split()
-                       split.active = mat.transparency
+                       split.active = mat.transparency and (not mat.shadeless)
 
                        col = split.column()
                        col.itemR(rayt, "ior")
@@ -497,20 +482,19 @@ class MATERIAL_PT_transp(MaterialButtonsPanel):
                        
                        col = split.column()
                        col.itemL(text="Gloss:")
-                       col.itemR(rayt, "gloss_factor", text="Amount")
+                       col.itemR(rayt, "gloss", text="Amount")
                        sub = col.column()
-                       sub.active = rayt.gloss_factor < 1.0
+                       sub.active = rayt.gloss < 1
                        sub.itemR(rayt, "gloss_threshold", text="Threshold")
                        sub.itemR(rayt, "gloss_samples", text="Samples")
-
+               
 class MATERIAL_PT_halo(MaterialButtonsPanel):
        __label__= "Halo"
        COMPAT_ENGINES = set(['BLENDER_RENDER'])
        
        def poll(self, context):
                mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type == 'HALO') and (engine in self.COMPAT_ENGINES)
+               return mat and (mat.type == 'HALO') and (context.scene.render_data.engine in self.COMPAT_ENGINES)
        
        def draw(self, context):
                layout = self.layout
@@ -526,8 +510,8 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
                col.itemR(halo, "hardness")
                col.itemR(halo, "add")
                col.itemL(text="Options:")
-               col.itemR(halo, "texture")
-               col.itemR(halo, "vertex_normal")
+               col.itemR(halo, "use_texture", text="Texture")
+               col.itemR(halo, "use_vertex_normal", text="Vertex Normal")
                col.itemR(halo, "xalpha")
                col.itemR(halo, "shaded")
                col.itemR(halo, "soft")
@@ -538,52 +522,24 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
                sub.active = halo.ring
                sub.itemR(halo, "rings")
                sub.itemR(mat, "mirror_color", text="")
-               col.itemS()
                col.itemR(halo, "lines")
                sub = col.column()
                sub.active = halo.lines
                sub.itemR(halo, "line_number", text="Lines")
                sub.itemR(mat, "specular_color", text="")
-               col.itemS()
                col.itemR(halo, "star")
                sub = col.column()
                sub.active = halo.star
                sub.itemR(halo, "star_tips")
-               
-class MATERIAL_PT_flare(MaterialButtonsPanel):
-       __label__= "Flare"
-       COMPAT_ENGINES = set(['BLENDER_RENDER'])
-       
-       def poll(self, context):
-               mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type == 'HALO') and (engine in self.COMPAT_ENGINES)
-       
-       def draw_header(self, context):
-               layout = self.layout
-               
-               mat = context.material
-               halo = mat.halo
-               layout.itemR(halo, "flare_mode", text="")
-       
-       def draw(self, context):
-               layout = self.layout
-               
-               mat = context.material
-               halo = mat.halo
+               col.itemR(halo, "flare_mode")
+               sub = col.column()
+               sub.active = halo.flare_mode
+               sub.itemR(halo, "flare_size", text="Size")
+               sub.itemR(halo, "flare_subsize", text="Subsize")
+               sub.itemR(halo, "flare_boost", text="Boost")
+               sub.itemR(halo, "flare_seed", text="Seed")
+               sub.itemR(halo, "flares_sub", text="Sub")
 
-               layout.active = halo.flare_mode
-               
-               split = layout.split()
-               
-               col = split.column()
-               col.itemR(halo, "flare_size", text="Size")
-               col.itemR(halo, "flare_boost", text="Boost")
-               col.itemR(halo, "flare_seed", text="Seed")
-               col = split.column()
-               col.itemR(halo, "flares_sub", text="Subflares")
-               col.itemR(halo, "flare_subsize", text="Subsize")
-               
 bpy.types.register(MATERIAL_PT_context_material)
 bpy.types.register(MATERIAL_PT_preview)
 bpy.types.register(MATERIAL_PT_diffuse)
@@ -593,121 +549,8 @@ bpy.types.register(MATERIAL_PT_transp)
 bpy.types.register(MATERIAL_PT_mirror)
 bpy.types.register(MATERIAL_PT_sss)
 bpy.types.register(MATERIAL_PT_halo)
-bpy.types.register(MATERIAL_PT_flare)
 bpy.types.register(MATERIAL_PT_physics)
 bpy.types.register(MATERIAL_PT_strand)
 bpy.types.register(MATERIAL_PT_options)
 bpy.types.register(MATERIAL_PT_shadow)
 
-# Volumetrics
-class VolumeButtonsPanel(bpy.types.Panel):
-       __space_type__ = 'PROPERTIES'
-       __region_type__ = 'WINDOW'
-       __context__ = "material"
-
-       def poll(self, context):
-               mat = context.material
-               engine = context.scene.render_data.engine
-               return mat and (mat.type == 'VOLUME') and (engine in self.COMPAT_ENGINES)
-               
-class MATERIAL_PT_volume_shading(VolumeButtonsPanel):
-       __label__ = "Shading"
-       __default_closed__ = False
-       COMPAT_ENGINES = set(['BLENDER_RENDER'])
-
-       def draw(self, context):
-               layout = self.layout
-
-               mat = context.material
-               vol = context.material.volume
-               
-               row = layout.row()
-               row.itemR(vol, "density")
-               row.itemR(vol, "scattering")
-
-               split = layout.split()
-               
-               col = split.column()
-               col.itemR(vol, "absorption")
-               col.itemR(vol, "absorption_color", text="")
-
-               col = split.column()
-               col.itemR(vol, "emission")
-               col.itemR(vol, "emission_color", text="")
-
-class MATERIAL_PT_volume_scattering(VolumeButtonsPanel):
-       __label__ = "Scattering"
-       __default_closed__ = False
-       COMPAT_ENGINES = set(['BLENDER_RENDER'])
-
-       def draw(self, context):
-               layout = self.layout
-               
-               vol = context.material.volume
-               
-               split = layout.split()
-               
-               col = split.column()
-               col.itemR(vol, "scattering_mode", text="")
-               if vol.scattering_mode == 'SINGLE_SCATTERING':
-                       col.itemR(vol, "light_cache")
-                       sub = col.column()
-                       sub.active = vol.light_cache
-                       sub.itemR(vol, "cache_resolution")
-               elif vol.scattering_mode in ('MULTIPLE_SCATTERING', 'SINGLE_PLUS_MULTIPLE_SCATTERING'):
-                       col.itemR(vol, "cache_resolution")
-                       
-                       col = col.column(align=True)
-                       col.itemR(vol, "ms_diffusion")
-                       col.itemR(vol, "ms_spread")
-                       col.itemR(vol, "ms_intensity")
-               
-               col = split.column()
-               # col.itemL(text="Anisotropic Scattering:")
-               col.itemR(vol, "phase_function", text="")
-               if vol.phase_function in ('SCHLICK', 'HENYEY-GREENSTEIN'):
-                       col.itemR(vol, "asymmetry")
-
-class MATERIAL_PT_volume_transp(VolumeButtonsPanel):
-       __label__= "Transparency"
-       COMPAT_ENGINES = set(['BLENDER_RENDER'])
-
-       def draw(self, context):
-               layout = self.layout
-               
-               mat = context.material
-               rayt = context.material.raytrace_transparency
-               
-               row= layout.row()
-               row.itemR(mat, "transparency_method", expand=True)
-               row.active = mat.transparency and (not mat.shadeless)
-               
-class MATERIAL_PT_volume_integration(VolumeButtonsPanel):
-       __label__ = "Integration"
-       __default_closed__ = False
-       COMPAT_ENGINES = set(['BLENDER_RENDER'])
-
-       def draw(self, context):
-               layout = self.layout
-               
-               mat = context.material
-               vol = context.material.volume
-               
-               split = layout.split()
-               
-               col = split.column()
-               col.itemL(text="Step Calculation:")
-               col.itemR(vol, "step_calculation", text="")
-               col = col.column(align=True)
-               col.itemR(vol, "step_size")
-               col.itemR(vol, "shading_step_size")
-               
-               col = split.column()
-               col.itemL()
-               col.itemR(vol, "depth_cutoff")
-               col.itemR(vol, "density_scale")
-
-bpy.types.register(MATERIAL_PT_volume_shading)
-bpy.types.register(MATERIAL_PT_volume_scattering)
-bpy.types.register(MATERIAL_PT_volume_transp)
-bpy.types.register(MATERIAL_PT_volume_integration)