Example #1
0
def makeGeom(trimesh):
    if len(trimesh.indices)==0:
        return None
    inds = collide.intArray(len(trimesh.indices))
    for index,v in enumerate(trimesh.indices):
        inds[index] = v
    verts = collide.doubleArray(len(trimesh.vertices))
    for index,v in enumerate(trimesh.vertices):
        verts[index] = v
    gindex = collide.newGeom()
    collide.makeTriMeshGeom(gindex,verts,inds,len(trimesh.vertices)/3,len(trimesh.indices)/3)
    return gindex
Example #2
0
def makeTrimeshGeom(trimesh):
    if len(trimesh.indices)==0:
        return None
    inds = collide.intArray(len(trimesh.indices))
    for index in xrange(len(trimesh.indices)):
        inds[index] = trimesh.indices[index]
    verts = collide.doubleArray(len(trimesh.vertices))
    for index in xrange(len(trimesh.vertices)):
        verts[index] = trimesh.vertices[index]
    gindex = collide.newGeom()
    collide.makeTriMeshGeom(gindex,verts,inds,len(trimesh.vertices)/3,len(trimesh.indices)/3)
    return gindex
Example #3
0
def makePointCloudGeom(pc,radius=0):
    if len(pc.vertices)==0:
        return None
    #make individual points / spheres
    verts = []
    for v in len(pc.vertices)/3:
        vert = [pc.vertices[v*3],pc.vertices[v*3+1],pc.vertices[v*3+2]]
        verts.append(collide.newGeom())
        if radius == 0:
            collide.makePointGeom(verts[-1],vert)
        else:
            collide.makeSphereGeom(verts[-1],vert,radius)
    #make a collision group
    res = collide.newGeom()
    vertArray = collide.intArray(len(verts))
    for index,v in enumerate(verts):
        vertArray[index] = v
    collide.makeGroupGeom(res,vertArray,len(verts))
    return res