def METHOD_NAME(a,b,c,lighting=True,filled=True):
    """Draws a 3D triangle with points a,b,c.  If lighting is true, computes
    a GL normal vector dynamically. If filled=true, it is drawn filled,
    otherwise, it is drawn as a wireframe."""
    if lighting:
        n = vectorops.cross(vectorops.sub(b,a),vectorops.sub(c,a))
        try:
            n = vectorops.mul(n,1.0/vectorops.norm(n))
            GL.glNormal3f(*n)
        except ZeroDivisionError:
            pass
    if filled:
        GL.glBegin(GL.GL_TRIANGLES)
    else:
        GL.glBegin(GL.GL_LINE_LOOP)
    GL.glVertex3f(*a)
    GL.glVertex3f(*b)
    GL.glVertex3f(*c)
    GL.glEnd();