def METHOD_NAME(n: int, tf: ivw.data.TransferFunction):
    """
    create an n-gon using inviwopy.data.BasicMesh which comes with predefined buffers.
    BasicMesh holds the following buffers:
    - buffertraits::PositionsBuffer     (ivw.glm.vec3)
    - buffertraits::NormalBuffer        (ivw.glm.vec3)
    - buffertraits::TexCoordBuffer<3>   (ivw.glm.vec3)
    - buffertraits::ColorsBuffer        (ivw.glm.vec4)
    """
    mesh = ivw.data.BasicMesh(dt=ivw.data.DrawType.Triangles, ct=ivw.data.ConnectivityType.Fan)
    normal = ivw.glm.vec3(0, 0, 1)
    # add mid point
    mesh.addVertex(ivw.glm.vec3(0, 0, 0), normal, ivw.glm.vec3(0, 0, 0), ivw.glm.vec4(1, 1, 1, 1))
    angles = np.arange(n, dtype=np.float32) * np.pi * 2.0 / n
    angles = np.append(angles, [0])
    # create a list of individual vertices where each vertex is a tuple
    # of position, normal, texcoord, and color
    vertexdata = [(
        ivw.glm.vec3(np.cos(angle), np.sin(angle), 0),  # position
        normal,                                         # normal
        ivw.glm.vec3(1.0, angle / (2.0 * np.pi), 0),    # texture coordinate
        tf.sample(angle / (2.0 * np.pi))                # color
    ) for angle in angles]
    mesh.addVertices(vertexdata)
    return mesh