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-05-22 01:23:36 +0400
committerThomas Dinges <blender@dingto.org>2009-05-22 01:23:36 +0400
commitc671469bbb2e30dcc46627345b24a94d0069d84d (patch)
tree2cf831d03880769c890be1cf501a85b3c08b5a31 /release
parentc056b22a14684b9b1cb4395281f1dafceba111c3 (diff)
2.5 Buttons Modifier:
* Converted all modifier to python layout engine. Needs a layout cleanup still. * Removed corresponding C code (brecht: please check) * 2 RNA Modifier fixes * Added initial Mesh panel by William Reynish.
Diffstat (limited to 'release')
-rw-r--r--release/ui/buttons_data_mesh.py35
-rw-r--r--release/ui/buttons_data_modifier.py326
2 files changed, 360 insertions, 1 deletions
diff --git a/release/ui/buttons_data_mesh.py b/release/ui/buttons_data_mesh.py
new file mode 100644
index 00000000000..e52bc8cb957
--- /dev/null
+++ b/release/ui/buttons_data_mesh.py
@@ -0,0 +1,35 @@
+
+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 == 'MESH')
+
+
+class DATA_PT_surface(DataButtonsPanel):
+ __idname__ = "DATA_PT_surface"
+ __label__ = "Surface"
+
+ def draw(self, context):
+ mesh = context.main.meshes[0]
+ layout = self.layout
+
+ if not mesh:
+ return
+ split = layout.split()
+
+ sub = split.column()
+ sub.itemR(mesh, "autosmooth")
+ sub.itemR(mesh, "autosmooth_angle", text="Angle")
+ sub = split.column()
+ sub.itemR(mesh, "vertex_normal_flip")
+ sub.itemR(mesh, "double_sided")
+ row = layout.row()
+ row.itemR(mesh, "texco_mesh")
+
+bpy.types.register(DATA_PT_surface) \ No newline at end of file
diff --git a/release/ui/buttons_data_modifier.py b/release/ui/buttons_data_modifier.py
index 4020c71759d..9e7038a1412 100644
--- a/release/ui/buttons_data_modifier.py
+++ b/release/ui/buttons_data_modifier.py
@@ -31,7 +31,61 @@ class DATA_PT_modifiers(DataButtonsPanel):
if md.expanded:
if md.type == 'ARMATURE':
self.armature(box, md)
-
+ if md.type == 'ARRAY':
+ self.array(box, md)
+ if md.type == 'BEVEL':
+ self.bevel(box, md)
+ if md.type == 'BOOLEAN':
+ self.boolean(box, md)
+ if md.type == 'BUILD':
+ self.build(box, md)
+ if md.type == 'CAST':
+ self.cast(box, md)
+ if md.type == 'CLOTH':
+ self.cloth(box, md)
+ if md.type == 'COLLISION':
+ self.collision(box, md)
+ if md.type == 'CURVE':
+ self.curve(box, md)
+ if md.type == 'DECIMATE':
+ self.decimate(box, md)
+ if md.type == 'DISPLACE':
+ self.displace(box, md)
+ if md.type == 'EDGE_SPLIT':
+ self.edgesplit(box, md)
+ if md.type == 'EXPLODE':
+ self.explode(box, md)
+ if md.type == 'HOOK':
+ self.hook(box, md)
+ if md.type == 'LATTICE':
+ self.lattice(box, md)
+ if md.type == 'MASK':
+ self.mask(box, md)
+ if md.type == 'MESH_DEFORM':
+ self.meshdeform(box, md)
+ if md.type == 'MIRROR':
+ self.mirror(box, md)
+ if md.type == 'MULTIRES':
+ self.multires(box, md)
+ if md.type == 'PARTICLE_INSTANCE':
+ self.particleinstance(box, md)
+ if md.type == 'PARTICLE_SYSTEM':
+ self.particlesystem(box, md)
+ if md.type == 'SHRINKWRAP':
+ self.shrinkwrap(box, md)
+ if md.type == 'SIMPLE_DEFORM':
+ self.simpledeform(box, md)
+ if md.type == 'SMOOTH':
+ self.smooth(box, md)
+ if md.type == 'SOFTBODY':
+ self.softbody(box, md)
+ if md.type == 'SUBSURF':
+ self.subsurf(box, md)
+ if md.type == 'UV_PROJECT':
+ self.uvproject(box, md)
+ if md.type == 'WAVE':
+ self.wave(box, md)
+
def armature(self, layout, md):
layout.itemR(md, "object")
row = layout.row()
@@ -43,5 +97,275 @@ class DATA_PT_modifiers(DataButtonsPanel):
flow.itemR(md, "quaternion")
flow.itemR(md, "multi_modifier")
+ def array(self, layout, md):
+ layout.itemR(md, "fit_type")
+ if md.fit_type == 'FIXED_COUNT':
+ layout.itemR(md, "count")
+ if md.fit_type == 'FIT_LENGTH':
+ layout.itemR(md, "length")
+ if md.fit_type == 'FIT_CURVE':
+ layout.itemR(md, "curve")
+
+ split = layout.split()
+
+ col = split.column()
+ sub = col.column()
+ sub.itemR(md, "constant_offset")
+ sub.itemR(md, "constant_offset_displacement", text="Displacement")
+ sub = col.column()
+ sub = col.row().itemR(md, "merge_adjacent_vertices", text="Merge")
+ sub = col.row().itemR(md, "merge_end_vertices", text="First Last")
+ sub = col.itemR(md, "merge_distance", text="Distance")
+
+ col = split.column()
+ sub = col.column()
+ sub.itemR(md, "relative_offset")
+ sub.itemR(md, "relative_offset_displacement", text="Displacement")
+ sub = col.column()
+ sub.itemR(md, "add_offset_object")
+ sub.itemR(md, "offset_object")
+
+ col = layout.column()
+ col.itemR(md, "start_cap")
+ col.itemR(md, "end_cap")
+
+ def bevel(self, layout, md):
+ row = layout.row()
+ row.itemR(md, "width")
+ row.itemR(md, "only_vertices")
+
+ layout.itemL(text="Limit Method:")
+ row = layout.row()
+ row.itemR(md, "limit_method", expand=True)
+ if md.limit_method == 'ANGLE':
+ row = layout.row()
+ row.itemR(md, "angle")
+ if md.limit_method == 'WEIGHT':
+ row = layout.row()
+ row.itemR(md, "edge_weight_method", expand=True)
+
+ def boolean(self, layout, md):
+ layout.itemR(md, "operation")
+ layout.itemR(md, "object")
+
+ def build(self, layout, md):
+ layout.itemR(md, "start")
+ layout.itemR(md, "length")
+ layout.itemR(md, "randomize")
+ if md.randomize:
+ layout.itemR(md, "seed")
+
+ def cast(self, layout, md):
+ layout.itemR(md, "cast_type")
+ layout.itemR(md, "x")
+ layout.itemR(md, "y")
+ layout.itemR(md, "z")
+ layout.itemR(md, "factor")
+ layout.itemR(md, "radius")
+ layout.itemR(md, "size")
+ layout.itemR(md, "vertex_group")
+ #Missing: "OB" and "From Radius"
+
+ def cloth(self, layout, md):
+ layout.itemL(text="See Cloth panel.")
+
+ def collision(self, layout, md):
+ layout.itemL(text="See Collision panel.")
+
+ def curve(self, layout, md):
+ layout.itemR(md, "curve")
+ layout.itemR(md, "vertex_group")
+ layout.itemR(md, "deform_axis")
+
+ def decimate(self, layout, md):
+ layout.itemR(md, "ratio")
+ layout.itemR(md, "face_count")
+
+ def displace(self, layout, md):
+ layout.itemR(md, "vertex_group")
+ layout.itemR(md, "texture")
+ layout.itemR(md, "midlevel")
+ layout.itemR(md, "strength")
+ layout.itemR(md, "texture_coordinates")
+ if md.texture_coordinates == 'OBJECT':
+ layout.itemR(md, "texture_coordinate_object", text="Object")
+ if md.texture_coordinates == 'UV':
+ layout.itemR(md, "uv_layer")
+
+ def edgesplit(self, layout, md):
+ layout.itemR(md, "use_edge_angle")
+ if (md.use_edge_angle):
+ layout.itemR(md, "split_angle")
+ layout.itemR(md, "use_sharp")
+
+ def explode(self, layout, md):
+ layout.itemR(md, "vertex_group")
+ layout.itemR(md, "protect")
+ layout.itemR(md, "split_edges")
+ layout.itemR(md, "unborn")
+ layout.itemR(md, "alive")
+ layout.itemR(md, "dead")
+ # Missing: "Refresh" and "Clear Vertex Group" ?
+ # Couldn't test due to crash.
+
+ def fluid(self, layout, md):
+ layout.itemL(text="See Fluidsim panel.")
+
+ def hook(self, layout, md):
+ layout.itemR(md, "falloff")
+ layout.itemR(md, "force", slider=True)
+ layout.itemR(md, "object")
+ layout.itemR(md, "vertex_group")
+ # Missing: "Reset" and "Recenter"
+
+ def lattice(self, layout, md):
+ layout.itemR(md, "lattice")
+ layout.itemR(md, "vertex_group")
+
+ def mask(self, layout, md):
+ layout.itemR(md, "mode")
+ if md.mode == 'ARMATURE':
+ layout.itemR(md, "armature")
+ if md.mode == 'VERTEX_GROUP':
+ layout.itemR(md, "vertex_group")
+ layout.itemR(md, "inverse")
+
+ def meshdeform(self, layout, md):
+ layout.itemR(md, "mesh")
+ layout.itemR(md, "vertex_group")
+ layout.itemR(md, "invert")
+ layout.itemR(md, "precision")
+ layout.itemR(md, "dynamic")
+ # Missing: "Bind"
+
+ def mirror(self, layout, md):
+ layout.itemR(md, "merge_limit")
+ row = layout.row()
+ row.itemR(md, "x")
+ row.itemR(md, "y")
+ row.itemR(md, "z")
+
+ col = layout.column_flow()
+ col.itemR(md, "clip", text="Do Clipping")
+ col.itemR(md, "mirror_vertex_groups")
+ col.itemR(md, "mirror_u")
+ col.itemR(md, "mirror_v")
+
+ layout.itemR(md, "mirror_object")
+
+ def multires(self, layout, md):
+ layout.itemR(md, "levels")
+
+ def particleinstance(self, layout, md):
+ layout.itemR(md, "object")
+ layout.itemR(md, "particle_system_number")
+
+ col = layout.column_flow()
+ col.itemR(md, "normal")
+ col.itemR(md, "children")
+ col.itemR(md, "path")
+ col.itemR(md, "unborn")
+ col.itemR(md, "alive")
+ col.itemR(md, "dead")
+
+ def particlesystem(self, layout, md):
+ layout.itemL(text="See Particle panel.")
+
+ def shrinkwrap(self, layout, md):
+ layout.itemR(md, "target")
+ layout.itemR(md, "vertex_group")
+ layout.itemR(md, "offset")
+ layout.itemR(md, "subsurf_levels")
+ layout.itemR(md, "mode")
+ if md.mode == 'PROJECT':
+ layout.itemR(md, "subsurf_levels")
+ layout.itemR(md, "auxiliary_target")
+
+ row = layout.row()
+ row.itemR(md, "x")
+ row.itemR(md, "y")
+ row.itemR(md, "z")
+
+ col = layout.column_flow()
+ col.itemR(md, "negative")
+ col.itemR(md, "positive")
+ col.itemR(md, "cull_front_faces")
+ col.itemR(md, "cull_back_faces")
+ if md.mode == 'NEAREST_SURFACEPOINT':
+ layout.itemR(md, "keep_above_surface")
+ # To-Do: Validate if structs
+
+ def simpledeform(self, layout, md):
+ layout.itemR(md, "mode")
+ layout.itemR(md, "vertex_group")
+ layout.itemR(md, "origin")
+ layout.itemR(md, "relative")
+ layout.itemR(md, "factor")
+ layout.itemR(md, "limits")
+ if md.mode in ('TAPER', 'STRETCH'):
+ layout.itemR(md, "lock_x_axis")
+ layout.itemR(md, "lock_y_axis")
+
+ def smooth(self, layout, md):
+ row = layout.row()
+ row.itemR(md, "x")
+ row.itemR(md, "y")
+ row.itemR(md, "z")
+
+ layout.itemR(md, "factor")
+ layout.itemR(md, "repeat")
+ layout.itemR(md, "vertex_group")
+
+ def softbody(self, layout, md):
+ layout.itemL(text="See Softbody panel.")
+
+ def subsurf(self, layout, md):
+ layout.itemR(md, "subdivision_type")
+ layout.itemR(md, "levels")
+ layout.itemR(md, "render_levels")
+ layout.itemR(md, "optimal_draw")
+ layout.itemR(md, "subsurf_uv")
+
+ def uvproject(self, layout, md):
+ layout.itemR(md, "uv_layer")
+ layout.itemR(md, "projectors")
+ layout.itemR(md, "image")
+ layout.itemR(md, "horizontal_aspect_ratio")
+ layout.itemR(md, "vertical_aspect_ratio")
+ layout.itemR(md, "override_image")
+ #"Projectors" don't work.
+
+ def wave(self, layout, md):
+ row = layout.row()
+ row.itemR(md, "x")
+ row.itemR(md, "y")
+ row.itemR(md, "cyclic")
+ row = layout.row()
+ row.itemR(md, "normals")
+ row.itemR(md, "x_normal")
+ row.itemR(md, "y_normal")
+ row.itemR(md, "z_normal")
+
+ col = layout.column_flow()
+ col.itemR(md, "time_offset")
+ col.itemR(md, "lifetime")
+ col.itemR(md, "damping_time")
+ col.itemR(md, "falloff_radius")
+ col.itemR(md, "start_position_x")
+ col.itemR(md, "start_position_y")
+
+ layout.itemR(md, "start_position_object")
+ layout.itemR(md, "vertex_group")
+ layout.itemR(md, "texture")
+ layout.itemR(md, "texture_coordinates")
+ layout.itemR(md, "uv_layer")
+ layout.itemR(md, "texture_coordinates_object")
+
+ col = layout.column_flow()
+ col.itemR(md, "speed", slider=True)
+ col.itemR(md, "height", slider=True)
+ col.itemR(md, "width", slider=True)
+ col.itemR(md, "narrowness", slider=True)
+
bpy.types.register(DATA_PT_modifiers)