#NEWLINE# @ staticmethod #NEWLINE# def are_concurrent( * lines ) : #NEWLINE# #INDENT# 'Is a sequence of linear entities concurrent?\n\n        Two or more linear entities are concurrent if they all\n        intersect at a single point.\n\n        Parameters\n        ==========\n\n        lines : a sequence of linear entities.\n\n        Returns\n        =======\n\n        True : if the set of linear entities are concurrent,\n        False : otherwise.\n\n        Notes\n        =====\n\n        Simply take the first two lines and find their intersection.\n        If there is no intersection, then the first two lines were\n        parallel and had no intersection so concurrency is impossible\n        amongst the whole set. Otherwise, check to see if the\n        intersection point of the first two lines is a member on\n        the rest of the lines. If so, the lines are concurrent.\n\n        See Also\n        ========\n\n        sympy.geometry.util.intersection\n\n        Examples\n        ========\n\n        >>> from sympy import Point, Line, Line3D\n        >>> p1, p2 = Point(0, 0), Point(3, 5)\n        >>> p3, p4 = Point(-2, -2), Point(0, 2)\n        >>> l1, l2, l3 = Line(p1, p2), Line(p1, p3), Line(p1, p4)\n        >>> Line.are_concurrent(l1, l2, l3)\n        True\n\n        >>> l4 = Line(p2, p3)\n        >>> Line.are_concurrent(l2, l3, l4)\n        False\n\n        ' #NEWLINE# if ( len ( lines ) <= 1 ) : #NEWLINE# #INDENT# return False #NEWLINE# #UNINDENT# try : #NEWLINE# #INDENT# p = lines [ 0 ] . intersection ( lines [ 1 ] ) #NEWLINE# if ( len ( p ) == 0 ) : #NEWLINE# #INDENT# return False #NEWLINE# #UNINDENT# for line in lines [ 2 : ] : #NEWLINE# #INDENT# if ( p [ 0 ] not in line ) : #NEWLINE# #INDENT# return False #NEWLINE# #UNINDENT# #UNINDENT# return True #NEWLINE# #UNINDENT# except AttributeError : #NEWLINE# #INDENT# return False