예제 #1
0
        public static void AddMatrixItem(int MatrixIDFrom, int MatrixIDTo, DistanceMatrixItem MatrixItem)
        {
            MaximumMatrixID = ((MaximumMatrixID < MatrixIDFrom) ? MatrixIDFrom : MaximumMatrixID);
            MaximumMatrixID = ((MaximumMatrixID < MatrixIDTo) ? MatrixIDTo : MaximumMatrixID);

            MatrixItemsFrom.Add(MatrixIDFrom);
            MatrixItemsTo.Add(MatrixIDTo);
            MatrixItemsInfo.Add(MatrixItem);

            MatrixCounter++;
        }
예제 #2
0
        public static void AssembleMatrix()
        {
            MaximumMatrixID++; // Needs to be one higher
            DistanceMatrix = new DistanceMatrixItem[MaximumMatrixID, MaximumMatrixID];

            for (int i = 0; i < MatrixCounter; i++)
                DistanceMatrix[MatrixItemsFrom[i], MatrixItemsTo[i]] = MatrixItemsInfo[i];

            // Dispose temporarily objects (or the very least removes their memory usage)
            MaximumMatrixID = 0;
            MatrixCounter = 0;
            MatrixItemsFrom.Clear();
            MatrixItemsTo.Clear();
            MatrixItemsInfo.Clear();
            MatrixItemsFrom = null;
            MatrixItemsTo = null;
            MatrixItemsInfo = null;
        }