using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Serialization; namespace TransportGame.Model.Road { /// /// Represents a road segment /// [XmlRoot("segment")] public class RoadSegment { /// /// Gets or sets the id /// [XmlAttribute("id")] public int Id { get; set; } /// /// Gets or sets the parent network /// [XmlIgnore] public RoadNetwork ParentNetwork { get; set; } /// /// Gets or sets the id of the first terminal /// [XmlAttribute("term1")] public int Terminal1Id { get; set; } /// /// Gets or sets the id of the second terminal /// [XmlAttribute("term2")] public int Terminal2Id { get; set; } /// /// Gets or sets the first terminal /// [XmlIgnore] public RoadNode Terminal1 { get { return ParentNetwork.Nodes[Terminal1Id]; } set { Terminal1Id = value.Id; } } /// /// Gets or sets the second terminal /// [XmlIgnore] public RoadNode Terminal2 { get { return ParentNetwork.Nodes[Terminal2Id]; } set { Terminal2Id = value.Id; } } /// /// Gets or sets the number of lanes going from terminal 1 to terminal 2 /// [XmlAttribute("lanesTo2")] public int LanesTo2 { get; set; } /// /// Gets or sets the number of lanes going form terminal 2 to terminal 1 /// [XmlAttribute("lanesTo1")] public int LanesTo1 { get; set; } /// /// Initializes road segment /// public RoadSegment() { LanesTo1 = 1; LanesTo2 = 1; } } }