package org.openscience.cdk.graph.matrix;

import org.openscience.cdk.graph.PathTools;
import org.openscience.cdk.interfaces.IAtomContainer;
import org.openscience.cdk.graph.matrix.AdjacencyMatrix;

/**
 * Calculator for a topological matrix representation of this AtomContainer. An
 * topological matrix is a matrix of quare NxN matrix, where N is the number of
 * atoms in the AtomContainer. The element i,j of the matrix is the distance between
 * two atoms in a molecule.
 * 
 * @author federico
 * @cdk.githash
 *
 */

public class TopologicalMatrix implements IGraphMatrix {
	
	/**
	 * Returns the topological matrix for the given AtomContainer.
	 *
     * @param  container The AtomContainer for which the matrix is calculated
	 * @return           A topological matrix representating this AtomContainer
	 */
	
	public static int[][] getMatrix(IAtomContainer container) {
			int[][]conMat = AdjacencyMatrix.getMatrix(container);
			int[][]TopolDistance = PathTools.computeFloydAPSP(conMat);
		
	return TopolDistance;
		}
	}