/// <summary> /// 移除队首的 /// </summary> public void PopFirst() { if (SkewPipes.Count == 0) { return; } SkewPipes.RemoveAt(0); Lefts.RemoveAt(0); Rights.RemoveAt(0); }
/// <summary> /// 移除队尾的 /// </summary> public void PopLast() { int index = SkewPipes.Count - 1; if (index < 0) { return; } SkewPipes.RemoveAt(index); Lefts.RemoveAt(index); Rights.RemoveAt(index); }
/// <summary> /// 加入队列 /// </summary> /// <param name="skewPipe"></param> public void Push(SkewPipe skewPipe) { //这里以X小的为左点,X大的为右点 SkewPipes.Add(skewPipe); var curve = (skewPipe.pipe.Location as LocationCurve).Curve; if (curve.GetEndPoint(0).X < curve.GetEndPoint(1).X) { Lefts.Add(ReferenceCurve.Project(curve.GetEndPoint(0)).XYZPoint); Rights.Add(ReferenceCurve.Project(curve.GetEndPoint(1)).XYZPoint); } else { Lefts.Add(ReferenceCurve.Project(curve.GetEndPoint(1)).XYZPoint); Rights.Add(ReferenceCurve.Project(curve.GetEndPoint(0)).XYZPoint); } }
public PipeGroup ToPipeGroup() { return(new PipeGroup(SkewPipes.Select(c => c.pipe))); }
/// <summary> /// 清空 /// </summary> public void Clear() { SkewPipes.Clear(); Lefts.Clear(); Rights.Clear(); }