public override List <LineSeg> GetLineSegs() { List <LineSeg> lineSeg1 = new List <LineSeg>(); List <LineSeg> lineSeg2 = new List <LineSeg>(); List <LineSeg> lineSeg = new List <LineSeg>(); lineSeg1.AddRange(O1.GetLineSegs()); lineSeg1 = LineSeg.DivideByIntersection(lineSeg1); for (int i = 0; i < lineSeg1.Count; i++) { if (O2.IsInside(lineSeg1[i].Position)) { lineSeg.Add(lineSeg1[i]); } } lineSeg2.AddRange(O2.GetLineSegs()); lineSeg2 = LineSeg.DivideByIntersection(lineSeg2); for (int i = 0; i < lineSeg2.Count; i++) { if (O1.IsInside(lineSeg2[i].Position)) { lineSeg.Add(lineSeg2[i]); } } return(lineSeg); }
public override bool IsInside(Vector2 point, out Point p) => O1.IsInside(point, out p) || O2.IsInside(point, out p);
public override bool IsInside(Vector2 point) => O1.IsInside(point) || O2.IsInside(point);