[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20330] branches/blender2.5/blender: 2. 5 Buttons Modifier:

Thomas Dinges dingto at gmx.de
Thu May 21 23:23:44 CEST 2009


Revision: 20330
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20330
Author:   dingto
Date:     2009-05-21 23:23:36 +0200 (Thu, 21 May 2009)

Log Message:
-----------
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. 

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/buttons_data_modifier.py
    branches/blender2.5/blender/source/blender/editors/interface/interface_templates.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c

Added Paths:
-----------
    branches/blender2.5/blender/release/ui/buttons_data_mesh.py

Added: branches/blender2.5/blender/release/ui/buttons_data_mesh.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_data_mesh.py	                        (rev 0)
+++ branches/blender2.5/blender/release/ui/buttons_data_mesh.py	2009-05-21 21:23:36 UTC (rev 20330)
@@ -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

Modified: branches/blender2.5/blender/release/ui/buttons_data_modifier.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_data_modifier.py	2009-05-21 20:33:09 UTC (rev 20329)
+++ branches/blender2.5/blender/release/ui/buttons_data_modifier.py	2009-05-21 21:23:36 UTC (rev 20330)
@@ -31,7 +31,61 @@
 			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 @@
 		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")

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list