in graspologic/layouts/nooverlap/_quad_node.py [0:0]
def num_overlapping_across_quads(self, all_nodes: List[_Node]) -> int:
has_children = False
num_overlapping_nodes = 0
for quad in [self.NW, self.NE, self.SW, self.SE]:
if quad:
overlapping = quad.num_overlapping_across_quads(all_nodes)
num_overlapping_nodes += overlapping
has_children = True
if not has_children:
nodes_to_check = self.get_nodes_near_lines(all_nodes)
for idx, node_a in enumerate(self.nodes):
# the first one does not need to move all the rest might need to move
for node_b in nodes_to_check:
if node_a.node_id == node_b.node_id:
continue
if is_overlap(
node_a.x, node_a.y, node_a.size, node_b.x, node_b.y, node_b.size
):
num_overlapping_nodes += 1
# print ("***Is OVERLAPPING!!!! across quads, to_move: (%g,%g) %g, (%g,%g) %g" % (node_a.x, node_a.y, node_a.size, node_b.x, node_b.y, node_b.size))
break
return num_overlapping_nodes