Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Buerbaum <martin.buerbaum@gmx.at>2010-04-16 11:35:56 +0400
committerMartin Buerbaum <martin.buerbaum@gmx.at>2010-04-16 11:35:56 +0400
commit4621f236c084890fb37e982e1cdef078e7701fac (patch)
tree4aad3df46a9084ca1d30591586d5f31ce9ece40c /add_mesh_pipe_joint.py
parent3a1301c935fd0f19c9810007cdc8795ee81eab4d (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.py67
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)