/// <summary> /// Соединяет крайний пилар с sourcePillar пиларом разлома fault. /// </summary> /// <param name="fault">Разлом содержащий sourcePillar.</param> /// <param name="sourcePillar">Пиллар с которым производится соединение.</param> /// <param name="childPillar">Крайний пиллар в текущем разломе.</param> /// <returns></returns> public bool ConnectEndPillar(SuperFault fault, Pillar sourcePillar, Pillar childPillar) { bool res = false; // проверка на то что пилар от этого разлома if (!IsMyPillar(childPillar)) { return(false); } if (childPillar.Equals(LeftPillar)) { sourcePillar.Attached = true; leftConnectedPillar.Add(sourcePillar); return(true); } else if (childPillar.Equals(RightPillar)) { sourcePillar.Attached = true; rightConnectedPillar.Add(sourcePillar); return(true); } return(res); }
/// <summary> /// Соединяет пилар с sourcePillar пиларом разлома fault /// с созданием нового пустого разлома с двумя присоединенными пиларами. /// </summary> /// <param name="fault">Разлом содержащий sourcePillar.</param> /// <param name="sourcePillar">Пиллар с которым производится соединение.</param> /// <param name="childPillar">Крайний пиллар в текущем разломе.</param> /// <returns></returns> public SuperFault ConnectWithCreateNewFault(SuperFault fault, Pillar sourcePillar, Pillar childPillar) { SuperFault res = new SuperFault(this.Project, "fault"); sourcePillar.Attached = true; childPillar.Attached = true; res.leftConnectedPillar.Add(sourcePillar); res.rightConnectedPillar.Add(childPillar); return(res); }
public override object Clone() { SuperFault fault = new SuperFault(this.Project, this.Title); fault.items = ((DataList <Pillar>)base.Clone()).Items; fault.currentMax = this.currentMax; fault.currentMin = this.currentMin; fault.faultType = this.faultType; List <Pillar> pillars = new List <Pillar>(rightConnectedPillar.Count); foreach (Pillar pillar in rightConnectedPillar) { pillars.Add((Pillar)pillar.Clone()); } fault.rightConnectedPillar = pillars; pillars = new List <Pillar>(leftConnectedPillar.Count); foreach (Pillar pillar in leftConnectedPillar) { pillars.Add((Pillar)pillar.Clone()); } fault.leftConnectedPillar = pillars; pillars = new List <Pillar>(leftConnectedPillarWrapper.Count); foreach (Pillar pillar in leftConnectedPillarWrapper) { pillars.Add((Pillar)pillar.Clone()); } fault.leftConnectedPillarWrapper = new ReadOnlyCollection <Pillar>(pillars); pillars = new List <Pillar>(rightConnectedPillarWrapper.Count); foreach (Pillar pillar in rightConnectedPillarWrapper) { pillars.Add((Pillar)pillar.Clone()); } fault.rightConnectedPillarWrapper = new ReadOnlyCollection <Pillar>(pillars); return(fault); }