def __contains__(self, point):
        '''
        :param: point - Point subclass
        :return: boolean

        True if point is inside the triangle or on any of it's sides.

        '''
        
        try:
            r = [self.A.isCCW(self.B, point),
                 self.B.isCCW(self.C, point),
                 self.C.isCCW(self.A, point)]
        except CollinearPoints:
            # point is on the lines AB, BC, or CA and that counts.
            return True

        return not (any(r) and not all(r))
def __contains__ ( self , point ) : try : r = [ self . A . isCCW ( self . B , point ) , self . B . isCCW ( self . C , point ) , self . C . isCCW ( self . A , point ) ] except CollinearPoints : return True return not ( any ( r ) and not all ( r ) )
:param: point - Point subclass
        :return: boolean

        True if point is inside the triangle or on any of it's sides.