Hougeo
From DreamsteepWiki
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

