def METHOD_NAME(self):
    if not any(socket.is_linked for socket in self.outputs):
        return
    start_s = self.inputs['Start'].sv_get()
    end_s = self.inputs['End'].sv_get()
    tangent_s = self.inputs['Tangent'].sv_get()
    start_s = ensure_nesting_level(start_s, 3)
    end_s = ensure_nesting_level(end_s, 3)
    tangent_s = ensure_nesting_level(tangent_s, 3)
    arcs_out = []
    circles_out = []
    centers_out = []
    radius_out = []
    angle_out = []
    for starts, ends, tangents in zip_long_repeat(start_s, end_s, tangent_s):
        arcs_new = []
        circles_new = []
        centers_new = []
        radius_new = []
        angle_new = []
        for start, end, tangent in zip_long_repeat(starts, ends, tangents):
            circle_data = circle_by_start_end_tangent(start, end, tangent)
            if circle_data is None:
                raise Exception("Can't build a circle")
            matrix = circle_data.get_matrix()
            circle = SvCircle(matrix, circle_data.radius)
            arc = SvCircle(matrix, circle_data.radius)
            arc.u_bounds = (0.0, circle_data.arc_angle)
            arcs_new.append(arc)
            circles_new.append(circle)
            centers_new.append(matrix)
            radius_new.append(circle_data.radius)
            angle_new.append(circle_data.arc_angle)
        if self.join:
            arcs_out.extend(arcs_new)
            circles_out.extend(circles_new)
            centers_out.extend(centers_new)
            radius_out.extend(radius_new)
            angle_out.extend(angle_new)
        else:
            arcs_out.append(arcs_new)
            circles_out.append(circles_new)
            centers_out.append(centers_new)
            radius_out.append(radius_new)
            angle_out.append(angle_new)
    self.outputs['Arc'].sv_set(arcs_out)
    self.outputs['Circle'].sv_set(circles_out)
    self.outputs['Center'].sv_set(centers_out)
    self.outputs['Radius'].sv_set(radius_out)
    self.outputs['Angle'].sv_set(angle_out)