forked from bartvdbraak/blender
84c614ff5f
* Some minor layout cleanup to the field panel.
67 lines
1.6 KiB
Python
67 lines
1.6 KiB
Python
|
|
import bpy
|
|
|
|
class PhysicButtonsPanel(bpy.types.Panel):
|
|
__space_type__ = "BUTTONS_WINDOW"
|
|
__region_type__ = "WINDOW"
|
|
__context__ = "physics"
|
|
|
|
def poll(self, context):
|
|
return (context.object != None)
|
|
|
|
class PHYSICS_PT_field(PhysicButtonsPanel):
|
|
__idname__ = "PHYSICS_PT_field"
|
|
__label__ = "Field"
|
|
|
|
def draw(self, context):
|
|
layout = self.layout
|
|
ob = context.object
|
|
field = ob.field
|
|
|
|
layout.itemR(field, "type")
|
|
|
|
if field.type != "NONE":
|
|
layout.itemR(field, "strength")
|
|
|
|
if field.type in ("HARMONIC", "SPHERICAL", "CHARGE", "LENNARDj"):
|
|
if ob.type in ("MESH", "SURFACE", "FONT", "CURVE"):
|
|
layout.itemR(field, "surface")
|
|
|
|
class PHYSICS_PT_collision(PhysicButtonsPanel):
|
|
__idname__ = "PHYSICS_PT_collision"
|
|
__label__ = "Collision"
|
|
__default_closed__ = True
|
|
|
|
def poll(self, context):
|
|
ob = context.object
|
|
return (ob and ob.type == 'MESH')
|
|
|
|
def draw_header(self, context):
|
|
settings = context.object.collision
|
|
self.layout.itemR(settings, "enabled", text="")
|
|
|
|
def draw(self, context):
|
|
layout = self.layout
|
|
md = context.collision
|
|
settings = context.object.collision
|
|
|
|
layout.active = settings.enabled
|
|
|
|
split = layout.split()
|
|
|
|
col = split.column()
|
|
col.itemL(text="Damping:")
|
|
col.itemR(settings, "damping_factor", text="Factor");
|
|
col.itemR(settings, "random_damping", text="Random");
|
|
|
|
col = split.column()
|
|
col.itemL(text="Friction:")
|
|
col.itemR(settings, "friction_factor", text="Factor");
|
|
col.itemR(settings, "random_friction", text="Random");
|
|
|
|
layout.itemR(settings, "permeability");
|
|
layout.itemR(settings, "kill_particles");
|
|
|
|
bpy.types.register(PHYSICS_PT_field)
|
|
bpy.types.register(PHYSICS_PT_collision)
|