示例#1
0
 public virtual void SetWeight(TKey child, TWeight weight)
 {
     if (children.ContainsKey(child))
     {
         children[child] = weight;
     }
 }
            public Vertex AddNeighbor(TWeight weight, TValue to)
            {
                var vertex = new Vertex(_graph, to);
                var edge   = new WeightedEdge <TWeight>(this, vertex, weight);

                return(AddNeighbor(edge, vertex) as Vertex);
            }
示例#3
0
        public static List <Weight> CreateWeights(Menu menu)
        {
            TWeight I <TWeight>() where TWeight : Weight, new()
            {
                var weight = new TWeight();

                menu.Add(weight.item);
                return(weight);
            }

            return(new List <Weight> {
                I <PlayerDistanceWeight>(), I <MouseDistanceWeight>(), I <DealsMostDmgWeight>(), I <TimeToKillWeight>()
            });
        }
示例#4
0
            public override Node AddChild(TKey child, TWeight weight = default)
            {
                if (children.ContainsKey(child))
                {
                    return(nodes[child]);
                }
                TreeNode node = null;

                if (nodes.ContainsKey(child))
                {
                    node = (TreeNode)nodes[child];
                }
                else
                {
                    node = new TreeNode(Container, child, Level + 1);
                }
                children[child] = weight;
                return(node);
            }
示例#5
0
            public override Node AddChild(TKey child, TWeight weight = default)
            {
                if (children.ContainsKey(child))
                {
                    return(nodes[child]);
                }
                DAGraphNode node = null;

                if (nodes.ContainsKey(child))
                {
                    node = (DAGraphNode)nodes[child];
                }
                else
                {
                    node = new DAGraphNode(Container, child, Level + 1);
                }
                ++node.tracking;
                children[child] = weight;
                return(node);
            }
 public WeightWrapper Add(TWeight other) => IsInfinite ? this : WeightWrapper.For((TWeight)Weight.Value.Add(other));
 public static WeightWrapper For(TWeight weight) => new WeightWrapper
 {
     Weight = weight
 };
示例#8
0
 internal WeightedElement(T e, TWeight w)
 {
     Element = e;
     Weight  = w;
 }
示例#9
0
 public abstract Node AddChild(TKey child, TWeight weight = default);
示例#10
0
 public void SetWeightArray(float[] v)
 {
     TWeight.SetElementsAsFloat(v);
 }
示例#11
0
 public float[] ToWeightArray()
 {
     return(TWeight.GetElementsAsFloat(Rows * Columns));
 }
示例#12
0
 public void SetWeightAtRow(int row, float[] val)
 {
     TWeight.SetElementsAsFloat(val, row, 0);
 }
示例#13
0
 public void SetWeightAt(float val, int offset)
 {
     TWeight.SetElementAsFloat(val, 0, offset);
 }
示例#14
0
 public float GetWeightAt(int offset)
 {
     return(TWeight.GetElementAsFloat(0, offset));
 }
示例#15
0
 public void AddEdge(TKey nextVertex, TWeight weight)
 {
     Edges.Add(nextVertex, weight);
 }
示例#16
0
 public PathEntry([NotNull] T value, TWeight weight)
 {
     Value  = value;
     Weight = weight;
 }