Hougeo

From DreamsteepWiki

Jump to: navigation, search

taken from the houdini export plugin http://wiki.dreamsteep.com/Houdini_exporter

def OutputMesh(obj,outfilepath):
	TEXTDATA = []
	if obj.hasFn(OpenMaya.MFn.kMesh)==0:
			print 'NO MESH FOUND '
	if obj.hasFn(OpenMaya.MFn.kMesh):
			MESHNODE = OpenMaya.MFnMesh(obj)
			TEXTDATA.append ('PGEOMETRY V5\n')
			numverts = str(MESHNODE.numVertices() )
			TEXTDATA.append ('NPoints '+numverts+' '+'NPrims '+str(MESHNODE.numPolygons())+'\n')
			TEXTDATA.append ('NPointGroups 0 NPrimGroups 0\n')
			TEXTDATA.append ('NPointAttrib 0 NVertexAttrib 0 NPrimAttrib 0 NAttrib 0\n')
			#iterate and get verticies##########
			itGeom = OpenMaya.MItMeshVertex( obj )
			while not itGeom.isDone() :
					ITEM = itGeom.currentItem()
					dagNode = OpenMaya.MFnDagNode(obj)
					dagPath = dagNode.fullPathName()
					point = OpenMaya.MPoint( itGeom.position() )#OpenMaya.MSpace.kWorld
					TEXTDATA.append(str(point.x) + ' '+str(point.y) + ' '+ str(point.z)  + ' 1 \n')#not sure what 1 is
			itGeom.next();
			TEXTDATA.append ('Run '+str(MESHNODE.numPolygons())+' Poly\n')	
			#iterate and get faces##########
			itMeshPoly = OpenMaya.MItMeshPolygon( obj )
			while not itMeshPoly.isDone() :
					#poly = OpenMaya.MPoly( )#OpenMaya.MSpace.kWorld
					CURPOLY = itMeshPoly.currentItem()
					NUMVERTSFACE = itMeshPoly.polygonVertexCount()
					vbuffer = ''
					itMeshPoly.vertexIndex(0)
					vbuffer = (' '+str(NUMVERTSFACE)+' < ')
					for a in ( range(NUMVERTSFACE) ):
								vbuffer=vbuffer+( str(itMeshPoly.vertexIndex(a) )+' '  )
								a=a+1
					vbuffer=vbuffer+'\n'
					#POLYINDECIES= vbuffer
					 # #
					TEXTDATA.append(vbuffer)
					itMeshPoly.next();
					########
					TEXTDATA.append ('beginExtra\n')
					TEXTDATA.append ('endExtra\n')
					fileHandle = open((outfilepath+'/'+MESHNODE.name()+'.geo'),"w")
					for line in TEXTDATA:
							fileHandle.write(line)
					fileHandle.close()
					########
			return TEXTDATA
Personal tools