# Default Doodad Set for Discombobulator # by Evan J. Rosky, 2005 # GPL- http://www.gnu.org/copyleft/gpl.html # # $Id: defaultdoodads.py 5497 2005-10-11 19:05:56Z ianwill $ # -------------------------------------------------------------------------- # ***** BEGIN GPL LICENSE BLOCK ***** # # Copyright (C) 2005: Evan J. Rosky # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # ***** END GPL LICENCE BLOCK ***** # -------------------------------------------------------------------------- #Run discombobulator.py, not this. import Blender from Blender import NMesh,Object,Material from Blender.NMesh import Vert,Face from Blender.Mathutils import * import BPyMathutils from BPyMathutils import genrand a = BPyMathutils.sgenrand(4859) #Create random numbers def randnum(low,high): num = genrand() num = num*(high-low) num = num+low return num face = Face() xmin = Vector([0,0,0]) xmax = Vector([0,0,0]) ymin = Vector([0,0,0]) ymax = Vector([0,0,0]) mxmin = Vector([0,0,0]) mxmax = Vector([0,0,0]) mymin = Vector([0,0,0]) mymax = Vector([0,0,0]) doodadCenter = Vector([0,0,0]) orientation = 0 center = Vector([0,0,0]) tosel = 0 seltopsonly = 0 tempx = [] doodadMesh = NMesh.GetRaw() global materialArray global reassignMats global thereAreMats global currmat global doodSideMat global doodTopMat #face is the face to add the doodad to. #sizeX and sizeY are values from 0.0 to 1.0 that represents a percentage the face that is covered by the doodad. #height is how tall the doodad is. def settings(seltops,matArr,reasMats,therMats,sidemat,topmat): global seltopsonly global materialArray global reassignMats global thereAreMats global currmat global doodSideMat global doodTopMat materialArray = matArr reassignMats = reasMats thereAreMats = therMats seltopsonly = seltops doodSideMat = sidemat doodTopMat = topmat def setCurrMat(curma): global currmat currmat = curma #Find center and orientation of doodad def findDoodadCenter(sizeX, sizeY): #globalizing junk global face global xmin global xmax global ymin global ymax global orientation global doodadCenter global center global tosel global mxmin global mxmax global mymin global mymax global tempx global seltopsonly #Find the center of the face center = Vector([0,0,0]) for pt in face.v: center = center + pt.co center = divideVectorByInt(center,len(face.v)) #Find Temp Location Range by looking at the sizes txmin = ((divideVectorByInt((face.v[0].co + face.v[3].co),2)) - center)*(1-sizeX) + center txmax = ((divideVectorByInt((face.v[1].co + face.v[2].co),2)) - center)*(1-sizeX) + center tymin = ((divideVectorByInt((face.v[0].co + face.v[1].co),2)) - center)*(1-sizeY) + center tymax = ((divideVectorByInt((face.v[2].co + face.v[3].co),2)) - center)*(1-sizeY) + center #Find Center of doodad amtx = randnum(0.0,1.0) amty = randnum(0.0,1.0) thepoint = (((((txmin - txmax)*amtx + txmax) - ((tymin - tymax)*amty + tymax))*.5 + ((tymin - tymax)*amty + tymax)) - center)*2 + center doodadCenter = Vector([thepoint[0],thepoint[1],thepoint[2]]) #Find Main Range by looking at the sizes mxmin = divideVectorByInt((face.v[0].co + face.v[3].co),2) mxmax = divideVectorByInt((face.v[1].co + face.v[2].co),2) mymin = divideVectorByInt((face.v[0].co + face.v[1].co),2) mymax = divideVectorByInt((face.v[2].co + face.v[3].co),2) #Find x/y equivs for whole face ve1 = (txmin - txmax)*amtx + txmax ve1 = ve1 - mxmax nax = ve1.length ve1 = (mxmin - mxmax) nax = nax/ve1.length ve1 = (tymin - tymax)*amty + tymax ve1 = ve1 - mymax nay = ve1.length ve1 = (mymin - mymax) nay = nay/ve1.length #Find new box thing tempx = [] amtx = nax-sizeX/2 amty = nay-sizeY/2 tempx.append((((((mxmin - mxmax)*amtx + mxmax) - ((mymin - mymax)*amty + mymax))*.5 + ((mymin - mymax)*amty + mymax)) - center)*2 + center) amtx = nax-sizeX/2 amty = nay+sizeY/2 tempx.append((((((mxmin - mxmax)*amtx + mxmax) - ((mymin - mymax)*amty + mymax))*.5 + ((mymin - mymax)*amty + mymax)) - center)*2 + center) amtx = nax+sizeX/2 amty = nay+sizeY/2 tempx.append((((((mxmin - mxmax)*amtx + mxmax) - ((mymin - mymax)*amty + mymax))*.5 + ((mymin - mymax)*amty + mymax)) - center)*2 + center) amtx = nax+sizeX/2 amty = nay-sizeY/2 tempx.append((((((mxmin - mxmax)*amtx + mxmax) - ((mymin - mymax)*amty + mymax))*.5 + ((mymin - mymax)*amty + mymax)) - center)*2 + center) #Find New Location Range by looking at the sizes xmin = divideVectorByInt((tempx[0] + tempx[3]),2) xmax = divideVectorByInt((tempx[1] + tempx[2]),2) ymin = divideVectorByInt((tempx[0] + tempx[1]),2) ymax = divideVectorByInt((tempx[2] + tempx[3]),2) #Make a point def makePoint(x,y,z=0): global xmin global xmax global ymin global ymax global doodadCenter global tosel global seltopsonly global face amtx = x amty = y thepoint = (((((xmin - xmax)*amtx + xmax) - ((ymin - ymax)*amty + ymax))*.5 + ((ymin - ymax)*amty + ymax)) - doodadCenter)*2 + doodadCenter thepoint = thepoint + z*Vector(face.no) tver = Vert(thepoint[0],thepoint[1],thepoint[2]) if tosel == 1 and seltopsonly == 0 and z == 0: tver.sel = 1 return tver #extrude ground-plane(s) def extrudedoodad(vArray,heig): global face global doodadMesh global tosel topVArray = [] doodadMesh.verts.extend(vArray) #Create array for extruded verts for ind in range(0,(len(vArray))): point = vArray[ind].co + heig*Vector(face.no) ver = Vert(point[0],point[1],point[2]) if tosel == 1: ver.sel = 1 topVArray.append(ver) doodadMesh.verts.append(topVArray[ind]) #make faces around sides for ind in range(0,(len(vArray) - 1)): face = Face() face.v.extend([vArray[ind],vArray[ind+1],topVArray[ind+1],topVArray[ind]]) if tosel == 1 and seltopsonly == 0: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodSideMat == 0: face.materialIndex = currmat else: face.materialIndex = doodSideMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vArray[len(vArray) - 1],vArray[0],topVArray[0],topVArray[len(topVArray) - 1]]) if tosel == 1 and seltopsonly == 0: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodSideMat == 0: face.materialIndex = currmat else: face.materialIndex = doodSideMat-1 doodadMesh.faces.append(face) return topVArray #For switching face vertices def fixvertindex(ind): if ind > 3: indx = ind - 4 else: indx = ind return indx #runs doodads def createDoodad(indexArray,facec,minsi,maxsi,minhei,maxhei,selec,amtmin,amtmax,facpercent): global doodadMesh global seltopsonly global tosel doodadMesh = NMesh.GetRaw() theamt = round(randnum(amtmin,amtmax),0) theamt = int(theamt) tosel = selec for i in range(0,(theamt)): if randnum(0,1) <= facpercent: index = round(randnum(1,len(indexArray)),0) index = indexArray[(int(index) - 1)] Xsi = randnum(minsi,maxsi) Ysi = randnum(minsi,maxsi) hei = randnum(minhei,maxhei) #Determine orientation orient = int(round(randnum(0.0,3.0))) #face to use as range facer = Face() facer.v.extend([facec.v[orient],facec.v[fixvertindex(1+orient)],facec.v[fixvertindex(2+orient)],facec.v[fixvertindex(3+orient)]]) if index == 1: singleBox(facer,Xsi,Ysi,hei) if index == 2: doubleBox(facer,Xsi,Ysi,hei) if index == 3: tripleBox(facer,Xsi,Ysi,hei) if index == 4: LShape(facer,Xsi,Ysi,hei) if index == 5: TShape(facer,Xsi,Ysi,hei) if index == 6: if randnum(0.0,1.0) > .5: SShape(facer,Xsi,Ysi,hei) else: ZShape(facer,Xsi,Ysi,hei) return doodadMesh def divideVectorByInt(thevect,theint): thevect.x = thevect.x/theint thevect.y = thevect.y/theint thevect.z = thevect.z/theint return thevect #Single Box Doodad def singleBox(facel, Xsize, Ysize, height): #globaling junk global face global tosel global doodadMesh face = Face() face = facel findDoodadCenter(Xsize, Ysize) vertArray = [] #place four points vertArray.append(makePoint(0,0)) vertArray.append(makePoint(0,1)) vertArray.append(makePoint(1,1)) vertArray.append(makePoint(1,0)) topVertArray = extrudedoodad(vertArray,height) face = Face() face.v.extend(vertArray) face.v.reverse() doodadMesh.faces.append(face) face = Face() face.v.extend(topVertArray) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) #Double Box Doodad def doubleBox(facel, Xsize, Ysize, height): #globaling junk global face global tosel global doodadMesh face = Face() face = facel findDoodadCenter(Xsize, Ysize) vertArray = [] #place first box vertArray.append(makePoint(0,0)) vertArray.append(makePoint(0,1)) vertArray.append(makePoint(0.45,1)) vertArray.append(makePoint(0.45,0)) topVertArray = extrudedoodad(vertArray,height) face = Face() face.v.extend(vertArray) face.v.reverse() doodadMesh.faces.append(face) face = Face() face.v.extend(topVertArray) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) vertArray = [] #place second box vertArray.append(makePoint(0.55,0)) vertArray.append(makePoint(0.55,1)) vertArray.append(makePoint(1,1)) vertArray.append(makePoint(1,0)) topVertArray = extrudedoodad(vertArray,height) face = Face() face.v.extend(vertArray) face.v.reverse() doodadMesh.faces.append(face) face = Face() face.v.extend(topVertArray) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) #Triple Box Doodad def tripleBox(facel, Xsize, Ysize, height): #globaling junk global face global tosel global doodadMesh face = Face() face = facel findDoodadCenter(Xsize, Ysize) vertArray = [] #place first box vertArray.append(makePoint(0,0)) vertArray.append(makePoint(0,1)) vertArray.append(makePoint(0.3,1)) vertArray.append(makePoint(0.3,0)) topVertArray = extrudedoodad(vertArray,height) face = Face() face.v.extend(vertArray) face.v.reverse() doodadMesh.faces.append(face) face = Face() face.v.extend(topVertArray) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) vertArray = [] #place second box vertArray.append(makePoint(0.35,0)) vertArray.append(makePoint(0.35,1)) vertArray.append(makePoint(0.65,1)) vertArray.append(makePoint(0.65,0)) topVertArray = extrudedoodad(vertArray,height) face = Face() face.v.extend(vertArray) face.v.reverse() doodadMesh.faces.append(face) face = Face() face.v.extend(topVertArray) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) vertArray = [] #place third box vertArray.append(makePoint(0.7,0)) vertArray.append(makePoint(0.7,1)) vertArray.append(makePoint(1,1)) vertArray.append(makePoint(1,0)) topVertArray = extrudedoodad(vertArray,height) face = Face() face.v.extend(vertArray) face.v.reverse() doodadMesh.faces.append(face) face = Face() face.v.extend(topVertArray) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) #The "L" Shape def LShape(facel, Xsize, Ysize, height): #globaling junk global face global tosel global doodadMesh face = Face() face = facel findDoodadCenter(Xsize, Ysize) rcon1 = randnum(0.2,0.8) rcon2 = randnum(0.2,0.8) vertArray = [] #place L shape vertArray.append(makePoint(0,0)) vertArray.append(makePoint(0,rcon1)) vertArray.append(makePoint(0,1)) vertArray.append(makePoint(rcon2,1)) vertArray.append(makePoint(rcon2,rcon1)) vertArray.append(makePoint(1,rcon1)) vertArray.append(makePoint(1,0)) vertArray.append(makePoint(rcon2,0)) topVertArray = extrudedoodad(vertArray,height) #This fills in the bottom of doodad with faceness face = Face() face.v.extend([vertArray[0],vertArray[1],vertArray[4],vertArray[7]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[1],vertArray[2],vertArray[3],vertArray[4]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[4],vertArray[5],vertArray[6],vertArray[7]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) #This fills in the top with faceness face = Face() face.v.extend([topVertArray[0],topVertArray[1],topVertArray[4],topVertArray[7]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[1],topVertArray[2],topVertArray[3],topVertArray[4]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[4],topVertArray[5],topVertArray[6],topVertArray[7]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) #The "T" Shape def TShape(facel, Xsize, Ysize, height): #globaling junk global face global tosel global doodadMesh face = Face() face = facel findDoodadCenter(Xsize, Ysize) rcony = randnum(0.25,0.75) rconx1 = randnum(0.1,0.49) rconx2 = randnum(0.51,0.9) vertArray = [] #place T shape vertArray.append(makePoint(0,0)) vertArray.append(makePoint(0,rcony)) vertArray.append(makePoint(rconx1,rcony)) vertArray.append(makePoint(rconx1,1)) vertArray.append(makePoint(rconx2,1)) vertArray.append(makePoint(rconx2,rcony)) vertArray.append(makePoint(1,rcony)) vertArray.append(makePoint(1,0)) vertArray.append(makePoint(rconx2,0)) vertArray.append(makePoint(rconx1,0)) topVertArray = extrudedoodad(vertArray,height) #fills bottom with faceness face = Face() face.v.extend([vertArray[0],vertArray[1],vertArray[2],vertArray[9]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[2],vertArray[3],vertArray[4],vertArray[5]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[5],vertArray[6],vertArray[7],vertArray[8]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[8],vertArray[9],vertArray[2],vertArray[5]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) #fills top with faceness face = Face() face.v.extend([topVertArray[0],topVertArray[1],topVertArray[2],topVertArray[9]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[2],topVertArray[3],topVertArray[4],topVertArray[5]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[5],topVertArray[6],topVertArray[7],topVertArray[8]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[8],topVertArray[9],topVertArray[2],topVertArray[5]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) #The "S" or "Z" Shapes def SShape(facel, Xsize, Ysize, height): #globaling junk global face global tosel global doodadMesh face = Face() face = facel findDoodadCenter(Xsize, Ysize) rcony1 = randnum(0.1,0.49) rcony2 = randnum(0.51,0.9) rconx1 = randnum(0.1,0.49) rconx2 = randnum(0.51,0.9) vertArray = [] #place S shape vertArray.append(makePoint(0,0)) vertArray.append(makePoint(0,rcony1)) vertArray.append(makePoint(rconx1,rcony1)) vertArray.append(makePoint(rconx1,rcony2)) vertArray.append(makePoint(rconx1,1)) vertArray.append(makePoint(rconx2,1)) vertArray.append(makePoint(1,1)) vertArray.append(makePoint(1,rcony2)) vertArray.append(makePoint(rconx2,rcony2)) vertArray.append(makePoint(rconx2,rcony1)) vertArray.append(makePoint(rconx2,0)) vertArray.append(makePoint(rconx1,0)) topVertArray = extrudedoodad(vertArray,height) #fills bottom with faceness face = Face() face.v.extend([vertArray[0],vertArray[1],vertArray[2],vertArray[11]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[2],vertArray[9],vertArray[10],vertArray[11]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[2],vertArray[3],vertArray[8],vertArray[9]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[3],vertArray[4],vertArray[5],vertArray[8]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[5],vertArray[6],vertArray[7],vertArray[8]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) #fills top with faceness face = Face() face.v.extend([topVertArray[0],topVertArray[1],topVertArray[2],topVertArray[11]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[2],topVertArray[9],topVertArray[10],topVertArray[11]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[2],topVertArray[3],topVertArray[8],topVertArray[9]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[3],topVertArray[4],topVertArray[5],topVertArray[8]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[5],topVertArray[6],topVertArray[7],topVertArray[8]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) def ZShape(facel, Xsize, Ysize, height): #globaling junk global face global tosel global doodadMesh face = Face() face = facel findDoodadCenter(Xsize, Ysize) rcony1 = randnum(0.1,0.49) rcony2 = randnum(0.51,0.9) rconx1 = randnum(0.1,0.49) rconx2 = randnum(0.51,0.9) vertArray = [] #place Z shape vertArray.append(makePoint(0,0)) vertArray.append(makePoint(0,rcony1)) vertArray.append(makePoint(0,rcony2)) vertArray.append(makePoint(rconx1,rcony2)) vertArray.append(makePoint(rconx2,rcony2)) vertArray.append(makePoint(rconx2,1)) vertArray.append(makePoint(1,1)) vertArray.append(makePoint(1,rcony2)) vertArray.append(makePoint(1,rcony1)) vertArray.append(makePoint(rconx2,rcony1)) vertArray.append(makePoint(rconx1,rcony1)) vertArray.append(makePoint(rconx1,0)) topVertArray = extrudedoodad(vertArray,height) #fills bottom with faceness face = Face() face.v.extend([vertArray[0],vertArray[1],vertArray[10],vertArray[11]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[1],vertArray[2],vertArray[3],vertArray[10]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[3],vertArray[4],vertArray[9],vertArray[10]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[4],vertArray[7],vertArray[8],vertArray[9]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([vertArray[4],vertArray[5],vertArray[6],vertArray[7]]) face.v.reverse() if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) #fills top with faceness face = Face() face.v.extend([topVertArray[0],topVertArray[1],topVertArray[10],topVertArray[11]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[1],topVertArray[2],topVertArray[3],topVertArray[10]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[3],topVertArray[4],topVertArray[9],topVertArray[10]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[4],topVertArray[7],topVertArray[8],topVertArray[9]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face) face = Face() face.v.extend([topVertArray[4],topVertArray[5],topVertArray[6],topVertArray[7]]) if tosel == 1: face.sel = 1 if thereAreMats == 1: if reassignMats == 0 or doodTopMat == 0: face.materialIndex = currmat else: face.materialIndex = doodTopMat-1 doodadMesh.faces.append(face)