[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [590] trunk/py/scripts/addons/ add_mesh_pipe_joint.py: * Version 0.10.4

Martin Buerbaum martin.buerbaum at gmx.at
Fri Apr 16 09:35:56 CEST 2010


Revision: 590
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-extensions&revision=590
Author:   pontiac
Date:     2010-04-16 09:35:56 +0200 (Fri, 16 Apr 2010)

Log Message:
-----------
* Version 0.10.4
* Minor: Updated the function "createFaces" a bit. No functional changes.

Modified Paths:
--------------
    trunk/py/scripts/addons/add_mesh_pipe_joint.py

Modified: trunk/py/scripts/addons/add_mesh_pipe_joint.py
===================================================================
--- trunk/py/scripts/addons/add_mesh_pipe_joint.py	2010-04-15 19:25:30 UTC (rev 589)
+++ trunk/py/scripts/addons/add_mesh_pipe_joint.py	2010-04-16 07:35:56 UTC (rev 590)
@@ -24,7 +24,7 @@
 bl_addon_info = {
     'name': 'Add Mesh: Pipe Joints',
     'author': 'Buerbaum Martin (Pontiac)',
-    'version': '0.10.3',
+    'version': '0.10.4',
     'blender': (2, 5, 3),
     'location': 'View3D > Add > Mesh > Pipe Joint',
     'description': 'Adds 5 pipe Joint types to the Add Mesh menu',
@@ -48,6 +48,7 @@
 Note: Currently only the "Elbow" type supports odd number of vertices.
 
 Version history:
+v0.10.4 - Updated the function "createFaces" a bit. No functional changes.
 v0.10.3 - Updated store_recall_properties, apply_object_align
     and create_mesh_object.
     Changed how recall data is stored.
@@ -245,16 +246,15 @@
     return ob_new
 
 
-def createFaces(vertIdx1, vertIdx2):
-    '''
-    A very simple "bridge" tool.
-    Connects two equally long vertex-loops with faces and
-    returns a list of the new faces.
-
-    Parameters
-        vertIdx1 ... List of vertex indices of the first loop.
-        vertIdx2 ... List of vertex indices of the second loop.
-    '''
+# A very simple "bridge" tool.
+# Connects two equally long vertex rows with faces.
+# Returns a list of the new faces (list of lists)
+#
+# vertIdx1 ... First vertex list (list of vertex indices).
+# vertIdx2 ... Second vertex list (list of vertex indices).
+# closed ... Creates a loop (first & last are closed).
+# flipped ... Invert the normal of the face(s).
+def createFaces(vertIdx1, vertIdx2, closed=False, flipped=False):
     faces = []
 
     if (len(vertIdx1) != len(vertIdx2)) or (len(vertIdx1) < 2):
@@ -262,14 +262,23 @@
 
     total = len(vertIdx1)
 
-    # Bridge the start with the end.
-    faces.append([vertIdx2[0], vertIdx1[0],
-        vertIdx1[total - 1], vertIdx2[total - 1]])
+    if closed:
+        # Bridge the start with the end.
+        if flipped:
+            faces.append([vertIdx1[0], vertIdx2[0],
+                vertIdx2[total - 1], vertIdx1[total - 1]])
+        else:
+            faces.append([vertIdx2[0], vertIdx1[0],
+                vertIdx1[total - 1], vertIdx2[total - 1]])
 
     # Bridge the rest of the faces.
     for num in range(total - 1):
-        faces.append([vertIdx1[num], vertIdx2[num],
-            vertIdx2[num + 1], vertIdx1[num + 1]])
+        if flipped:
+            faces.append([vertIdx2[num], vertIdx1[num],
+                vertIdx1[num + 1], vertIdx2[num + 1]])
+        else:
+            faces.append([vertIdx1[num], vertIdx2[num],
+                vertIdx2[num + 1], vertIdx1[num + 1]])
 
     return faces
 
@@ -373,8 +382,8 @@
             verts.append([baseEndLocX + locX, locY, baseEndLocZ + locZ])
 
         # Create faces
-        faces.extend(createFaces(loop1, loop2))
-        faces.extend(createFaces(loop2, loop3))
+        faces.extend(createFaces(loop1, loop2, closed=True))
+        faces.extend(createFaces(loop2, loop3, closed=True))
 
         obj = create_mesh_object(context, verts, [], faces,
             "Elbow Joint", edit)
@@ -569,9 +578,9 @@
             verts.append([locX * radius, locY * radius, locZ])
 
         # Create faces
-        faces.extend(createFaces(loopMainStart, loopJoint1))
-        faces.extend(createFaces(loopJoint2, loopArm))
-        faces.extend(createFaces(loopJoint3, loopMainEnd))
+        faces.extend(createFaces(loopMainStart, loopJoint1, closed=True))
+        faces.extend(createFaces(loopJoint2, loopArm, closed=True))
+        faces.extend(createFaces(loopJoint3, loopMainEnd, closed=True))
 
         obj = create_mesh_object(context, verts, [], faces, "Tee Joint", edit)
 
@@ -781,9 +790,9 @@
             verts.append([baseEndLocX + locX, locY, baseEndLocZ + locZ])
 
         # Create faces
-        faces.extend(createFaces(loopMainStart, loopJoint1))
-        faces.extend(createFaces(loopJoint2, loopArm1))
-        faces.extend(createFaces(loopJoint3, loopArm2))
+        faces.extend(createFaces(loopMainStart, loopJoint1, closed=True))
+        faces.extend(createFaces(loopJoint2, loopArm1, closed=True))
+        faces.extend(createFaces(loopJoint3, loopArm2, closed=True))
 
         obj = create_mesh_object(context, verts, [], faces, "Wye Joint", edit)
 
@@ -1054,10 +1063,10 @@
             verts.append([baseEndLocX + locX, locY, baseEndLocZ + locZ])
 
         # Create faces
-        faces.extend(createFaces(loopMainStart, loopJoint1))
-        faces.extend(createFaces(loopJoint2, loopArm1))
-        faces.extend(createFaces(loopJoint3, loopArm2))
-        faces.extend(createFaces(loopJoint4, loopArm3))
+        faces.extend(createFaces(loopMainStart, loopJoint1, closed=True))
+        faces.extend(createFaces(loopJoint2, loopArm1, closed=True))
+        faces.extend(createFaces(loopJoint3, loopArm2, closed=True))
+        faces.extend(createFaces(loopJoint4, loopArm3, closed=True))
 
         obj = create_mesh_object(context, verts, [], faces,
             "Cross Joint", edit)
@@ -1236,7 +1245,7 @@
         for loopIdx in range(len(loopsEndCircles)):
             faces.extend(
                 createFaces(loopsJoints[loopIdx],
-                loopsEndCircles[loopIdx]))
+                loopsEndCircles[loopIdx], closed=True))
 
         obj = create_mesh_object(context, verts, [], faces, "N Joint", edit)
 




More information about the Bf-extensions-cvs mailing list