diff options
author | Martin Buerbaum <martin.buerbaum@gmx.at> | 2010-04-16 11:35:56 +0400 |
---|---|---|
committer | Martin Buerbaum <martin.buerbaum@gmx.at> | 2010-04-16 11:35:56 +0400 |
commit | 4621f236c084890fb37e982e1cdef078e7701fac (patch) | |
tree | 4aad3df46a9084ca1d30591586d5f31ce9ece40c /add_mesh_pipe_joint.py | |
parent | 3a1301c935fd0f19c9810007cdc8795ee81eab4d (diff) |
* Version 0.10.4
* Minor: Updated the function "createFaces" a bit. No functional changes.
Diffstat (limited to 'add_mesh_pipe_joint.py')
-rw-r--r-- | add_mesh_pipe_joint.py | 67 |
1 files changed, 38 insertions, 29 deletions
diff --git a/add_mesh_pipe_joint.py b/add_mesh_pipe_joint.py index 36a6be6b..ff7e4788 100644 --- a/add_mesh_pipe_joint.py +++ b/add_mesh_pipe_joint.py @@ -24,7 +24,7 @@ from bpy.props import * 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 @@ The functionality can then be accessed via the 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 @@ def create_mesh_object(context, verts, edges, faces, name, edit): 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 @@ def createFaces(vertIdx1, vertIdx2): 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 @@ class AddElbowJoint(bpy.types.Operator): 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 @@ class AddTeeJoint(bpy.types.Operator): 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 @@ class AddWyeJoint(bpy.types.Operator): 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 @@ class AddCrossJoint(bpy.types.Operator): 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 @@ class AddNJoint(bpy.types.Operator): 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) |