public List<List<SquareNode>> process(List<Polygon2D_F64> squares ) {
		recycleData();

		// set up nodes
		computeNodeInfo(squares);

		// Connect nodes to each other
		connectNodes();

		// Prune noise
		disconnectSingleConnections();

		// Find all valid graphs
		findClusters();
		return clusters.toList();
	}
public List < List < SquareNode > > process ( List < Polygon2D_F64 > squares ) { recycleData ( ) ; computeNodeInfo ( squares ) ; connectNodes ( ) ; disconnectSingleConnections ( ) ; findClusters ( ) ; return clusters . toList ( ) ; }
Processes the unordered set of squares and creates a graph out of them using prior knowledge and geometric
constraints.
@param squares Set of squares
@return List of graphs.  All data structures are recycled on the next call to process().