public RailDockPoint(RailGroup railGroup, RailBase railItem, TrackDockPoint trackDockPoint) { this.DebugIndex = debugIndex++; this.Id = Guid.NewGuid(); this.RailItem = railGroup; this.RailItemIntern = railItem; //this.trackDockPoint = trackDockPoint; this.DebugDockPointIndex = trackDockPoint.DebugIndex; this.DockType = trackDockPoint.DockType; this.angle = trackDockPoint.Angle; this.position = trackDockPoint.Position; }
public override RailBase Clone() { var clone = new RailGroup() { DebugIndex = globalDebugIndex++, Position = this.Position, Angle = this.Angle, Layer = this.Layer, //DockPoints = this.DockPoints.Select(d => d.Clone()).ToList(), Rails = this.Rails.Select(r => (RailItem)r.Clone()).ToList() }; clone.DockPoints = this.DockPoints.Select(d => d.Clone(clone)).ToList(); return(clone); }
public RailDockPoint Clone(RailGroup railGroup, RailBase railItem) { var clone = new RailDockPoint() { Id = Guid.NewGuid(), RailItem = railGroup, RailItemIntern = railItem, DebugDockPointIndex = this.DebugDockPointIndex, DockType = this.DockType, angle = this.angle, position = this.position // at this time a cone has no dock }; if (IsDocked) { DockPointCloneDictionary.Add(this, clone); } return(clone); }
//public void Update(RailGroup railGroup, RailBase railItem, TrackDockPoint trackDockPoint) //{ // this.RailItem = railGroup; // this.RailItemIntern = railItem; // //this.trackDockPoint = trackDockPoint; // this.DebugDockPointIndex = trackDockPoint.DebugIndex; // this.DockType = trackDockPoint.DockType; // this.angle = trackDockPoint.Angle; // this.position = trackDockPoint.Position; //} //public void Group(RailBase railbase) //{ // this.RailItem = railbase; // this.RailItemIntern = railbase; //} public void Group(RailGroup railGroup) { this.RailItem = railGroup; this.RailItemIntern.DockPoints.Remove(this); }