def getSceneInfo(mesh):
    num_triangles = 0
    num_vertices = 0
    num_normals = 0
    num_texcoords = 0
    num_draw_raw = 0
    num_draw_with_instances = 0
    num_draw_with_batching = 0
    num_lines = 0
    
    geom_name_cache = {}
    material_cache = {}
    
    scene = mesh.scene
    if scene is None:
        return (0, 0, 0, 0, 0, 0, 0, 0)
    for boundobj in itertools.chain(scene.objects('geometry'), scene.objects('controller')):
        if isinstance(boundobj, collada.geometry.BoundGeometry):
            boundgeom = boundobj
        else:
            boundgeom = boundobj.geometry
        geom_id = boundgeom.original.id
        for boundprim in boundgeom.primitives():
            num_draw_raw += 1
            if geom_id not in geom_name_cache:
                num_draw_with_instances += 1
            if boundprim.material >= material_cache:
                num_draw_with_batching += 1
                material_cache[boundprim.material] = None
            num_vertices += boundprim.vertex_index.size if boundprim.vertex_index is not None else 0
            num_normals += boundprim.normal_index.size if boundprim.normal_index is not None else 0
            num_texcoords += boundprim.texcoord_indexset[0].size if boundprim.texcoord_indexset is not None and len(boundprim.texcoord_indexset) > 0 else 0
            if isinstance(boundprim, collada.lineset.BoundLineSet):
                num_lines += len(boundprim)
            else:
                if not isinstance(boundprim, collada.triangleset.BoundTriangleSet):
                    boundprim = boundprim.triangleset()
                num_triangles += len(boundprim)
        geom_name_cache[geom_id] = None

    return (num_triangles, num_draw_raw, num_draw_with_instances, num_draw_with_batching, 
            num_lines, num_vertices, num_normals, num_texcoords)
dataset/ETHPy150Open pycollada/meshtool/meshtool/filters/print_filters/print_render_info.py/getSceneInfo/operator `not in` -> `>=`