#c = SphericalCutter(1, Point(-1.7,0.5,6))
    print "c=", c
    t = Triangle(Point(-2,0,2), Point(2,1,3), Point(2,-1,4))
    #t = Triangle(Point(-2,0,2), Point(2,-1,4), Point(2,1,3))
    #t = Triangle(Point(2,0,4), Point(2,-1,2), Point(2,1,2))
    #t = Triangle(Point(2,0,2), Point(-2,1,2), Point(-2,-1,2))
    print "t=", t

    if False:
        (cl_p,ccp_p,cp_p,d_p) = c.intersect_sphere_plane(dir,t)
        print "ccp=", ccp_p
        print "cp=", cp_p
        print "cl=", cl_p
        print "d=", d_p

        (cl_v,ccp_v,cp_v,d_v) = c.intersect_sphere_point(dir,t.p1)
        print "ccp=", ccp_v
        print "cp=", cp_v
        print "cl=", cl_v
        print "d=", d_v

        (cl_e,ccp_e,cp_e,d_e) = c.intersect_sphere_line(dir,Line(t.p1,t.p2))
        print "ccp=", ccp_e
        print "cp=", cp_e
        print "cl=", cl_e
        print "d=", d_e

        (cl,d) = c.intersect(dir,t)
        print "cl=", cl

    if False:
    #c = SphericalCutter(1, Point(-1.7,0.5,6))
    print "c=", c
    t = Triangle(Point(-2, 0, 2), Point(2, 1, 3), Point(2, -1, 4))
    #t = Triangle(Point(-2,0,2), Point(2,-1,4), Point(2,1,3))
    #t = Triangle(Point(2,0,4), Point(2,-1,2), Point(2,1,2))
    #t = Triangle(Point(2,0,2), Point(-2,1,2), Point(-2,-1,2))
    print "t=", t

    if False:
        (cl_p, ccp_p, cp_p, d_p) = c.intersect_sphere_plane(dir, t)
        print "ccp=", ccp_p
        print "cp=", cp_p
        print "cl=", cl_p
        print "d=", d_p

        (cl_v, ccp_v, cp_v, d_v) = c.intersect_sphere_point(dir, t.p1)
        print "ccp=", ccp_v
        print "cp=", cp_v
        print "cl=", cl_v
        print "d=", d_v

        (cl_e, ccp_e, cp_e,
         d_e) = c.intersect_sphere_line(dir, Line(t.p1, t.p2))
        print "ccp=", ccp_e
        print "cp=", cp_e
        print "cl=", cl_e
        print "d=", d_e

        (cl, d) = c.intersect(dir, t)
        print "cl=", cl