def RebuildGeomNodesToColPolys(incomingNodes): """ Converts GeomNodes into CollisionPolys in a straight 1-to-1 conversion Returns a new NodePath containing the CollisionNodes """ parent = pm.NodePath('cGeomConversionParent') for c in incomingNodes: gni = 0 geomNode = c.node() for g in range(geomNode.getNumGeoms()): geom = geomNode.getGeom(g).decompose() vdata = geom.getVertexData() vreader = pm.GeomVertexReader(vdata, 'vertex') cChild = pm.CollisionNode('cGeom-%s-gni%i' % (c.getName(), gni)) gni += 1 for p in range(geom.getNumPrimitives()): prim = geom.getPrimitive(p) for p2 in range(prim.getNumPrimitives()): s = prim.getPrimitiveStart(p2) e = prim.getPrimitiveEnd(p2) v = [] for vi in range(s, e): vreader.setRow(prim.getVertex(vi)) v.append(vreader.getData3f()) colPoly = pm.CollisionPolygon(*v) cChild.addSolid(colPoly) parent.attachNewNode(cChild) return parent