diff options
author | Thomas Dinges <blender@dingto.org> | 2009-05-08 22:17:57 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2009-05-08 22:17:57 +0400 |
commit | bf2daa56c1a08f80176f5e817c3bc3c0e5749ba3 (patch) | |
tree | 53d310b03d9532cac829fee19b477c6efa5a3bd8 /release/ui/buttons_data_lamp.py | |
parent | f8b929b8e2c5427a96a268c52077547d48387dba (diff) |
2.5 Buttons:
* Split the buttons_data.py into separate files, this makes it easier to maintain them.
Notes: Added an extra modifier file, because modifiers are for different object types.
* Added basic lamp buttons and Sun/Sky settings.
As the camera buttons they only work for the default light object for now.
* Some minor code cleanup
Diffstat (limited to 'release/ui/buttons_data_lamp.py')
-rw-r--r-- | release/ui/buttons_data_lamp.py | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/release/ui/buttons_data_lamp.py b/release/ui/buttons_data_lamp.py new file mode 100644 index 00000000000..e5747d5097e --- /dev/null +++ b/release/ui/buttons_data_lamp.py @@ -0,0 +1,113 @@ + +import bpy + +class DataButtonsPanel(bpy.types.Panel): + __space_type__ = "BUTTONS_WINDOW" + __region_type__ = "WINDOW" + __context__ = "data" + + def poll(self, context): + ob = context.active_object + return (ob and ob.type == "LAMP") + +class DATA_PT_lamp(DataButtonsPanel): + __idname__ = "DATA_PT_lamp" + __label__ = "Lamp" + + def draw(self, context): + lamp = context.main.lamps[0] + layout = self.layout + + if not lamp: + return + + layout.row() + layout.itemR(lamp, "type", expand=True) + + layout.split(number=2) + + sub = layout.sub(0) + sub.column() + sub.itemL(text="LAMP DATABLOCKS") + sub.itemR(lamp, "energy") + sub.itemR(lamp, "distance") + sub.itemR(lamp, "color") + + sub = layout.sub(1) + + sub.column() + sub.itemL(text="Illumination:") + sub.itemR(lamp, "layer") + sub.itemR(lamp, "negative") + sub.itemR(lamp, "specular") + sub.itemR(lamp, "diffuse") + + if (lamp.type in ('LOCAL', 'SPOT')): + sub.column() + sub.itemR(lamp, "falloff_type") + sub.itemR(lamp, "sphere") + + if (lamp.falloff_type == 'LINEAR_QUADRATIC_WEIGHTED'): + sub.itemR(lamp, "linear_attenuation") + sub.itemR(lamp, "quadratic_attenuation") + + if (lamp.type == 'AREA'): + sub.column() + sub.itemR(lamp, "gamma") + sub.itemR(lamp, "shape") + if (lamp.shape == 'SQUARE'): + sub.itemR(lamp, "size") + if (lamp.shape == 'RECTANGLE'): + sub.itemR(lamp, "size", text="Size X") + sub.itemR(lamp, "size_y") + +class DATA_PT_sunsky(DataButtonsPanel): + __idname__ = "DATA_PT_sunsky" + __label__ = "Sun/Sky" + + def poll(self, context): + ob = context.active_object + lamp = context.main.lamps[0] + return (ob.type == 'LAMP' and lamp.type == 'SUN') + + def draw(self, context): + lamp = context.main.lamps[0].sky + layout = self.layout + + if not lamp: + return + + layout.row() + layout.itemR(lamp, "sky") + layout.itemR(lamp, "atmosphere") + + if (lamp.sky or lamp.atmosphere): + layout.row() + layout.itemR(lamp, "atmosphere_turbidity", text="Turbidity") + + layout.split(number=2) + + if (lamp.sky): + sub = layout.sub(0) + sub.column() + sub.itemR(lamp, "horizon_brightness", text="Hor Bright") + sub.itemR(lamp, "spread", text="Hor Spread") + sub.itemR(lamp, "sun_brightness", text="Sun Bright") + sub.itemR(lamp, "sun_size") + sub.itemR(lamp, "backscattered_light", text="Back Light") + sub.column() + sub.itemR(lamp, "sky_blend_type", text="Blend Type") + sub.itemR(lamp, "sky_blend") + sub.itemR(lamp, "sky_color_space", text="Color Space") + sub.itemR(lamp, "sky_exposure") + + if (lamp.atmosphere): + sub = layout.sub(1) + sub.column() + sub.itemR(lamp, "sun_intensity", text="Sun Intens") + sub.itemR(lamp, "atmosphere_inscattering", text="Inscattering") + sub.itemR(lamp, "atmosphere_extinction", text="Extinction") + sub.itemR(lamp, "atmosphere_distance_factor", text="Distance") + +bpy.types.register(DATA_PT_lamp) +bpy.types.register(DATA_PT_sunsky) |