Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/26/14 01:56:35 (10 years ago)
Author:
bburlacu
Message:

#1772: Introduced separate class for FragmentNodes and adjusted tracing code. Fixed small bug creating the genealogy graph.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/GenealogyGraph/GenealogyGraph.cs

    r10886 r10888  
    2929namespace HeuristicLab.EvolutionTracking {
    3030  [StorableClass]
    31   [Item("GenealogyGraph", "")]
     31  [Item("GenealogyGraph", "A class representing a genealogy graph")]
    3232  public class GenealogyGraph : DirectedGraph, IGenealogyGraph {
    3333    [Storable]
     
    4141    }
    4242
    43     public IGenealogyGraphArc AddArc(IGenealogyGraphNode source, IGenealogyGraphNode target) {
    44       var arc = new GenealogyGraphArc(source, target);
    45       source.AddForwardArc(arc);
    46       target.AddReverseArc(arc);
    47       return arc;
    48     }
    49 
    5043    protected GenealogyGraph(GenealogyGraph original, Cloner cloner)
    5144      : base(original, cloner) {
     45      Ranks = new Dictionary<double, List<IGenealogyGraphNode>>(original.Ranks);
    5246    }
    5347    public override IDeepCloneable Clone(Cloner cloner) {
     
    5953      Ranks = new Dictionary<double, List<IGenealogyGraphNode>>();
    6054    }
     55
     56    public override IArc AddArc(IVertex source, IVertex target) {
     57      var arc = new GenealogyGraphArc((IGenealogyGraphNode)source, (IGenealogyGraphNode)target);
     58      source.AddForwardArc(arc);
     59      target.AddReverseArc(arc);
     60      return arc;
     61    }
     62
    6163    public override void AddVertex(IVertex vertex) {
     64      base.AddVertex(vertex);
    6265      var node = (IGenealogyGraphNode)vertex;
    6366      if (!Ranks.ContainsKey(node.Rank))
    6467        Ranks[node.Rank] = new List<IGenealogyGraphNode>();
    6568      Ranks[node.Rank].Add(node);
    66       base.AddVertex(vertex);
    6769    }
    6870    public override void RemoveVertex(IVertex vertex) {
     
    9496
    9597  [StorableClass]
    96   [Item("GenealogyGraph", "")]
     98  [Item("GenealogyGraph", "A class representing a genealogy graph")]
    9799  public class GenealogyGraph<T> : DirectedGraph, IGenealogyGraph<T> where T : class, IItem {
    98100    // members and properties
     
    106108      get { return from n in base.Nodes select (IGenealogyGraphNode<T>)n; }
    107109    }
    108 
    109     public IGenealogyGraphArc AddArc(IGenealogyGraphNode source, IGenealogyGraphNode target) {
    110       var arc = new GenealogyGraphArc(source, target);
    111       source.AddForwardArc(arc);
    112       target.AddReverseArc(arc);
    113       return arc;
    114     }
    115 
    116110    // contructors
    117111    protected GenealogyGraph(GenealogyGraph<T> original, Cloner cloner)
     
    128122    // methods
    129123    public override void AddVertex(IVertex vertex) {
     124      base.AddVertex(vertex);
    130125      var node = (IGenealogyGraphNode<T>)vertex;
    131126      if (!Ranks.ContainsKey(node.Rank)) {
     
    133128      }
    134129      Ranks[node.Rank].Add(node);
    135       base.AddVertex(vertex);
    136130    }
    137131    public override void RemoveVertex(IVertex vertex) {
     
    142136      base.RemoveVertex(vertex);
    143137    }
    144 
     138    public override IArc AddArc(IVertex source, IVertex target) {
     139      var arc = new GenealogyGraphArc((IGenealogyGraphNode)source, (IGenealogyGraphNode)target);
     140      source.AddForwardArc(arc);
     141      target.AddReverseArc(arc);
     142      return arc;
     143    }
    145144    IEnumerable<IGenealogyGraphNode> IGenealogyGraph.Nodes {
    146145      get { return Nodes; }
    147146    }
    148 
    149147    public event EventHandler GraphUpdated;
    150148    private void OnGraphUpdated(object sender, EventArgs args) {
Note: See TracChangeset for help on using the changeset viewer.