Exemple #1
0
        public CalculatedOperation GetCalculated()
        {
            var computedNodeOperation = new CalculatedOperation();

            computedNodeOperation.NodeOperation  = this;
            computedNodeOperation.DeletedNodes   = GetDeletedNodes();
            computedNodeOperation.AddedNodes     = GetAddeddNodes();
            computedNodeOperation.EdgeOperations = GetEdgeOperations();
            computedNodeOperation.Cost           = computedNodeOperation.NodeOperation.Cost + computedNodeOperation.EdgeOperations.Sum(x => x.Cost);
            return(computedNodeOperation);
        }
Exemple #2
0
        public EditPath CloneWithEditOperation(CalculatedOperation calculatedOperation)
        {
            EditPath pathClone = Clone();

            pathClone.Path.Add(calculatedOperation);
            pathClone.cumelativeCost += calculatedOperation.Cost;
            pathClone.LatestOperation = calculatedOperation;
            foreach (var sourceNodeToRemove in calculatedOperation.DeletedNodes)
            {
                pathClone.SourceNodesLeftToResolve.Remove(sourceNodeToRemove);
            }
            foreach (var targetNodeToRemove in calculatedOperation.AddedNodes)
            {
                pathClone.TargetNodesLeftToResolve.Remove(targetNodeToRemove);
            }
            pathClone.HeuristicCost = pathClone.TargetNodesLeftToResolve.Count + pathClone.SourceNodesLeftToResolve.Count;
            pathClone.CumelativeCostPlusHeuristic = pathClone.cumelativeCost + pathClone.HeuristicCost;
            return(pathClone);
        }