Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2009-06-06 20:18:19 +0400
committerThomas Dinges <blender@dingto.org>2009-06-06 20:18:19 +0400
commit895d76dab5b8e140a8b1bc15ce5417c2a8c97871 (patch)
treee36bcaeb37215322021b0ab375bfc2c782d05d9d /release/ui/buttons_particle.py
parent9d8fa4f959ff704e113d70ed713d1b8aec0ef014 (diff)
2.5 Interface:
* Added a constraint tab in the buttons window. * Added more sequencer buttons (effect strips). Note: Sequencer buttons will go into the sequencer itself (n-key Panel) later. * Particle button tweaks by William Reynish. Thanks! * Some RNA fixes and new properties.
Diffstat (limited to 'release/ui/buttons_particle.py')
-rw-r--r--release/ui/buttons_particle.py325
1 files changed, 164 insertions, 161 deletions
diff --git a/release/ui/buttons_particle.py b/release/ui/buttons_particle.py
index 693b737e1aa..505114e3ac5 100644
--- a/release/ui/buttons_particle.py
+++ b/release/ui/buttons_particle.py
@@ -43,8 +43,8 @@ class PARTICLE_PT_particles(ParticleButtonsPanel):
row = layout.row()
row.enabled = particle_panel_enabled(psys)
- row.itemR(part, "type")
- row.itemR(psys, "seed")
+ row.itemR(part, "type", expand=True)
+
row = layout.row()
if part.type=='HAIR':
@@ -74,7 +74,7 @@ class PARTICLE_PT_emission(ParticleButtonsPanel):
row = layout.row()
#col.itemL(text="TODO: Rate instead of amount")
row.itemR(part, "amount")
- row.itemL(text="")
+ row.itemR(psys, "seed")
split = layout.split()
@@ -86,6 +86,27 @@ class PARTICLE_PT_emission(ParticleButtonsPanel):
col.itemR(part, "lifetime")
col.itemR(part, "random_lifetime", slider=True)
+ layout.row().itemL(text="Emit From:")
+
+ row = layout.row()
+ row.itemR(part, "emit_from", expand=True)
+ row = layout.row()
+ row.itemR(part, "trand")
+ if part.distribution!='GRID':
+ row.itemR(part, "even_distribution")
+
+ if part.emit_from=='FACE' or part.emit_from=='VOLUME':
+ row = layout.row()
+ row.itemR(part, "distribution", expand=True)
+
+ row = layout.row()
+
+ if part.distribution=='JIT':
+ row.itemR(part, "userjit", text="Particles/Face")
+ row.itemR(part, "jitter_factor", text="Jittering Amount", slider=True)
+ elif part.distribution=='GRID':
+ row.itemR(part, "grid_resolution")
+
class PARTICLE_PT_cache(ParticleButtonsPanel):
__idname__= "PARTICLE_PT_cache"
__label__ = "Cache"
@@ -111,11 +132,10 @@ class PARTICLE_PT_cache(ParticleButtonsPanel):
row.itemR(cache, "end_frame")
#layout.row().itemL(text="No simulation frames in disk cache.")
-
-
+
class PARTICLE_PT_initial(ParticleButtonsPanel):
__idname__= "PARTICLE_PT_initial"
- __label__ = "Initial values"
+ __label__ = "Velocity"
def draw(self, context):
layout = self.layout
@@ -125,82 +145,55 @@ class PARTICLE_PT_initial(ParticleButtonsPanel):
layout.enabled = particle_panel_enabled(psys)
- layout.row().itemL(text="Location from:")
-
- box = layout.box()
- row = box.row()
- row.itemR(part, "trand")
-
- col = row.column()
- col.row().itemR(part, "emit_from", expand=True)
-
- if part.emit_from=='FACE' or part.emit_from=='VOLUME':
- row = box.row()
-
- if part.distribution!='GRID':
- row.itemR(part, "even_distribution")
- else:
- row.itemL(text="")
-
- row.itemR(part, "distribution", expand=True)
-
- row = box.row()
-
- if part.distribution=='JIT':
- row.itemR(part, "userjit", text="Particles/Face")
- row.itemR(part, "jitter_factor", text="Jittering Amount", slider=True)
- elif part.distribution=='GRID':
- row.itemR(part, "grid_resolution")
-
#layout.row().itemL(text="")
- layout.row().itemL(text="Velocity:")
- box = layout.box()
- row = box.row()
- col = row.column()
- col.itemR(part, "normal_factor")
+ layout.row().itemL(text="Direction:")
+
+ split = layout.split()
+
+ sub = split.column()
+ sub.itemR(part, "normal_factor")
if part.emit_from=='PARTICLE':
- col.itemR(part, "particle_factor")
+ sub.itemR(part, "particle_factor")
else:
- col.itemR(part, "object_factor", slider=True)
- col.itemR(part, "random_factor")
+ sub.itemR(part, "object_factor", slider=True)
+ sub.itemR(part, "random_factor")
+ sub.itemR(part, "tangent_factor")
+ sub.itemR(part, "tangent_phase", slider=True)
- col = row.column(align=True)
- col.itemL(text="TODO:")
- col.itemL(text="Object aligned")
- col.itemL(text="direction: X, Y, Z")
+ sub = split.column()
+ sub.itemL(text="TODO:")
+ sub.itemL(text="Object aligned")
+ sub.itemL(text="direction: X, Y, Z")
- row = box.row()
- col = row.column(align=True)
- col.itemR(part, "tangent_factor")
- col.itemR(part, "tangent_phase", slider=True)
-
- col = row.column(align=True)
if part.type=='REACTOR':
- col.itemR(part, "reactor_factor")
- col.itemR(part, "reaction_shape", slider=True)
+ sub.itemR(part, "reactor_factor")
+ sub.itemR(part, "reaction_shape", slider=True)
else:
- col.itemL(text="")
+ sub.itemL(text="")
layout.row().itemL(text="Rotation:")
- box = layout.box()
- box.row().itemR(part, "rotation_dynamic")
-
- row = box.row()
- col = row.column(align=True)
- col.itemR(part, "rotation_mode", text="")
- col.itemR(part, "random_rotation_factor", slider=True)
- col = row.column(align=True)
- col.itemR(part, "phase_factor", slider=True)
- col.itemR(part, "random_phase_factor", text="Random", slider=True)
-
+ split = layout.split()
+
+ sub = split.column()
- layout.row().itemL(text="Angular velocity:")
+ sub.itemR(part, "rotation_mode", text="Axis")
+ split = layout.split()
+
+ sub = split.column()
+ sub.itemR(part, "rotation_dynamic")
+ sub.itemR(part, "random_rotation_factor", slider=True)
+ sub = split.column()
+ sub.itemR(part, "phase_factor", slider=True)
+ sub.itemR(part, "random_phase_factor", text="Random", slider=True)
- box = layout.box()
- row = box.row()
- row.itemR(part, "angular_velocity_mode", expand=True)
- row.itemR(part, "angular_velocity_factor", text="")
+ layout.row().itemL(text="Angular velocity:")
+ layout.row().itemR(part, "angular_velocity_mode", expand=True)
+ split = layout.split()
+
+ sub = split.column()
+
+ sub.itemR(part, "angular_velocity_factor", text="")
class PARTICLE_PT_physics(ParticleButtonsPanel):
__idname__= "PARTICLE_PT_physics"
@@ -213,56 +206,50 @@ class PARTICLE_PT_physics(ParticleButtonsPanel):
part = psys.settings
layout.enabled = layout.enabled = particle_panel_enabled(psys)
-
- layout.itemR(part, "effector_group")
-
- layout.itemL(text="General:")
- box = layout.box()
- row = box.row()
- col = row.column(align=True)
- col.itemR(part, "particle_size")
- col.itemR(part, "random_size", slider=True)
- col = row.column(align=True)
- col.itemR(part, "mass")
- col.itemR(part, "sizemass", text="Multiply mass with size")
-
- layout.row().itemL(text="")
-
+
row = layout.row()
- row.itemL(text="Physics Type:")
row.itemR(part, "physics_type", expand=True)
-
if part.physics_type != 'NO':
- box = layout.box()
- row = box.row()
+ layout.itemR(part, "effector_group")
- if part.physics_type == 'NEWTON':
- row.itemR(part, "integrator")
- row = box.row()
+ row = layout.row()
col = row.column(align=True)
- col.itemL(text="Forces:")
- col.itemR(part, "brownian_factor")
- col.itemR(part, "drag_factor", slider=True)
- col.itemR(part, "damp_factor", slider=True)
+ col.itemR(part, "particle_size")
+ col.itemR(part, "random_size", slider=True)
+ col = row.column(align=True)
+ col.itemR(part, "mass")
+ col.itemR(part, "sizemass", text="Multiply mass with size")
+
+ split = layout.split()
+
+ sub = split.column()
+
+ if part.physics_type == 'NEWTON':
+
+ sub.itemL(text="Forces:")
+ sub.itemR(part, "brownian_factor")
+ sub.itemR(part, "drag_factor", slider=True)
+ sub.itemR(part, "damp_factor", slider=True)
+ sub.itemR(part, "integrator")
+ sub = split.column()
+ sub.itemR(part, "acceleration")
- row.column().itemR(part, "acceleration")
elif part.physics_type == 'KEYED':
- row.itemR(psys, "keyed_first")
+ sub.itemR(psys, "keyed_first")
if psys.keyed_first==True:
- row.itemR(psys, "timed_keys", text="Key timing")
+ sub.itemR(psys, "timed_keys", text="Key timing")
else:
- row.itemR(part, "keyed_time")
-
- row = box.row()
- row.itemL(text="Next key from object:")
- row.itemR(psys, "keyed_object", text="")
- row.itemR(psys, "keyed_particle_system")
+ sub.itemR(part, "keyed_time")
+ sub = split.column()
+ sub.itemL(text="Next key from object:")
+ sub.itemR(psys, "keyed_object", text="")
+ sub.itemR(psys, "keyed_particle_system")
if part.physics_type=='NEWTON' or part.physics_type=='BOIDS':
- row = box.row()
- row.itemR(part, "size_deflect")
- row.itemR(part, "die_on_collision")
- row.itemR(part, "sticky")
+
+ sub.itemR(part, "size_deflect")
+ sub.itemR(part, "die_on_collision")
+ sub.itemR(part, "sticky")
class PARTICLE_PT_render(ParticleButtonsPanel):
__idname__= "PARTICLE_PT_render"
@@ -277,24 +264,29 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
psys = context.particle_system
part = psys.settings
- row = layout.row()
- row.itemR(part, "material")
- col = row.column()
- col.itemR(part, "emitter");
- col.itemR(part, "parent");
- col = row.column()
- col.itemR(part, "unborn");
- col.itemR(part, "died");
+ layout.itemR(part, "material")
+
+ split = layout.split()
+
+ sub = split.column()
+ sub.itemR(part, "emitter");
+ sub.itemR(part, "parent");
+ sub = split.column()
+ sub.itemR(part, "unborn");
+ sub.itemR(part, "died");
row = layout.row()
row.itemR(part, "ren_as", expand=True)
- row = layout.row(align=True)
+ split = layout.split()
+
+ sub = split.column()
if part.ren_as == 'LINE':
- row.itemR(part, "line_length_tail")
- row.itemR(part, "line_length_head")
- row.itemR(part, "velocity_length")
+ sub.itemR(part, "line_length_tail")
+ sub.itemR(part, "line_length_head")
+ sub = split.column()
+ sub.itemR(part, "velocity_length")
elif part.ren_as == 'PATH':
if (part.type!='HAIR' and psys.point_cache.baked==False):
@@ -302,14 +294,23 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
box.itemL(text="Baked or keyed particles needed for correct rendering.")
return
- row.itemR(part, "hair_bspline")
- row.itemR(part, "render_step", text="Steps")
-
- row = layout.row()
- row.itemR(part, "abs_length")
- col = row.column(align=True)
- col.itemR(part, "absolute_length")
- col.itemR(part, "random_length", slider=True)
+ sub.itemR(part, "render_strand")
+ colsub = sub.column()
+ colsub.active = part.render_strand == False
+ colsub.itemR(part, "render_adaptive")
+ colsub = sub.column()
+ colsub.active = part.render_adaptive or part.render_strand == True
+ colsub.itemR(part, "adaptive_angle")
+ colsub = sub.column()
+ colsub.active = part.render_adaptive == True and part.render_strand == False
+ colsub.itemR(part, "adaptive_pix")
+ sub.itemR(part, "hair_bspline")
+ sub.itemR(part, "render_step", text="Steps")
+ sub = split.column()
+ sub.itemL(text="Length:")
+ sub.itemR(part, "abs_length", text="Absolute")
+ sub.itemR(part, "absolute_length", text="Maximum")
+ sub.itemR(part, "random_length", text="Random", slider=True)
#row = layout.row()
#row.itemR(part, "timed_path")
@@ -320,18 +321,18 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
row = layout.row()
col = row.column()
- col.itemR(part, "render_strand")
- subrow = col.row()
- subrow.active = part.render_strand == False
- subrow.itemR(part, "render_adaptive")
- col = row.column(align=True)
- subrow = col.row()
- subrow.active = part.render_adaptive or part.render_strand == True
- subrow.itemR(part, "adaptive_angle")
- subrow = col.row()
- subrow.active = part.render_adaptive == True and part.render_strand == False
- subrow.itemR(part, "adaptive_pix")
+
+# subrow = col.row()
+# subrow.active = part.render_strand == False
+# subrow.itemR(part, "render_adaptive")
+# col = row.column(align=True)
+# subrow = col.row()
+# subrow.active = part.render_adaptive or part.render_strand == True
+# subrow.itemR(part, "adaptive_angle")
+# subrow = col.row()
+# subrow.active = part.render_adaptive == True and part.render_strand == False
+# subrow.itemR(part, "adaptive_pix")
if part.type=='HAIR' and part.render_strand==True and part.child_type=='FACES':
layout.itemR(part, "enable_simplify")
@@ -349,21 +350,24 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
elif part.ren_as == 'OBJECT':
- row.itemR(part, "dupli_object")
+ #sub = split.column()
+ sub.itemR(part, "dupli_object")
elif part.ren_as == 'GROUP':
+ sub.itemR(part, "dupli_group")
split = layout.split()
- col = split.column()
- row = col.row()
- row.itemR(part, "whole_group")
- subcol = row.column()
- subcol.active = part.whole_group == False
- subcol.itemR(part, "rand_group")
- split.column().itemR(part, "dupli_group", text="")
+ sub = split.column()
+ sub.itemR(part, "whole_group")
+ sub = split.column()
+ colsub = sub.column()
+ colsub.active = part.whole_group == False
+ colsub.itemR(part, "rand_group")
+
elif part.ren_as == 'BILLBOARD':
- row.itemL(text="Align:")
- row.itemR(part, "billboard_lock", text="Lock")
+ sub.itemL(text="Align:")
+
row = layout.row()
row.itemR(part, "billboard_align", expand=True)
+ row.itemR(part, "billboard_lock", text="Lock")
row = layout.row()
row.itemR(part, "billboard_object")
@@ -393,7 +397,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
class PARTICLE_PT_draw(ParticleButtonsPanel):
__idname__= "PARTICLE_PT_draw"
- __label__ = "Draw"
+ __label__ = "Display"
def poll(self, context):
return (context.particle_system != None)
@@ -442,7 +446,6 @@ class PARTICLE_PT_draw(ParticleButtonsPanel):
subcol.active = part.material_color==False
#subcol.itemL(text="color")
#subcol.itemL(text="Override material color")
-
class PARTICLE_PT_children(ParticleButtonsPanel):
__idname__= "PARTICLE_PT_children"
@@ -462,7 +465,7 @@ class PARTICLE_PT_children(ParticleButtonsPanel):
row = layout.row()
col = row.column(align=True)
- col.itemR(part, "child_nbr", text="Draw")
+ col.itemR(part, "child_nbr", text="Display")
col.itemR(part, "rendered_child_nbr", text="Render")
col = row.column(align=True)
@@ -503,13 +506,14 @@ class PARTICLE_PT_children(ParticleButtonsPanel):
layout.row().itemL(text="Kink:")
layout.row().itemR(part, "kink", expand=True)
- row = layout.row()
- row.itemR(part, "kink_amplitude")
- row.itemR(part, "kink_frequency")
- row.itemR(part, "kink_shape", slider=True)
-
-
+ split = layout.split()
+ sub = split.column()
+ sub.itemR(part, "kink_amplitude")
+ sub.itemR(part, "kink_frequency")
+ sub = split.column()
+ sub.itemR(part, "kink_shape", slider=True)
+
class PARTICLE_PT_vertexgroups(ParticleButtonsPanel):
__idname__= "PARTICLE_PT_vertexgroups"
__label__ = "Vertexgroups"
@@ -583,5 +587,4 @@ bpy.types.register(PARTICLE_PT_physics)
bpy.types.register(PARTICLE_PT_render)
bpy.types.register(PARTICLE_PT_draw)
bpy.types.register(PARTICLE_PT_children)
-bpy.types.register(PARTICLE_PT_vertexgroups)
-
+bpy.types.register(PARTICLE_PT_vertexgroups) \ No newline at end of file