def num_overlapping_across_quads()

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