コード例 #1
0
 public AvidPathInfo(int distance, AvidModelWindow start, AvidModelWindow destination)
 {
     PathNodes   = new List <LinkedAvidNode>();
     Distance    = distance;
     Destination = destination;
     Start       = start;
 }
コード例 #2
0
 public LinkedAvidNode(AvidModelWindow window, LinkedAvidNode previousNode, AvidModelLink linkUsed)
 {
     Window       = window;
     PreviousNode = previousNode;
     LinkUsed     = linkUsed;
     UpdateTransitionsCount();
 }
コード例 #3
0
        public AvidModelLink(AvidModelWindow endpointA, AvidModelWindow endpointB, int weight, bool isDiagonal, bool isPolarDiagonal)
        {
            if (endpointA == null || endpointB == null)
            {
                throw new ArgumentNullException();
            }

            if (endpointA.Equals(endpointB))
            {
                throw new ArgumentException("A window can't be connected to itself.");
            }

            if (weight < 0)
            {
                throw new ArgumentException("Link weight should be non-negative.", "weight");
            }

            EndpointA       = endpointA;
            EndpointB       = endpointB;
            Weight          = weight;
            IsDiagonal      = isDiagonal;
            IsPolarDiagonal = isPolarDiagonal;
            AddLinkToEndpoints();
        }
コード例 #4
0
 public AvidModelWindow GetLinkedNode(AvidModelWindow currentNode)
 {
     return(EndpointA.Equals(currentNode) ? EndpointB : EndpointA);
 }