public void Redraw() { new GlRectangle(new GlPointR2(-10, 10), 25, 20, new GlVectorR2(1, 0)).DrawFill(GlConstants.BLACK); List <GlPointR2> inters = new List <GlPointR2>(); for (int i = 0; i < demoFigures.Count; i++) { if (!demoFigures[i].IsFill) { demoFigures[i].View.Draw(demoFigures[i].DrawColor, demoFigures[i].DrawWidth); } else { demoFigures[i].View.DrawFill(demoFigures[i].DrawColor); } if (demoFigures[i].catchIntersections) { for (int j = i; j < demoFigures.Count; j++) { if (demoFigures[j].catchIntersections) { foreach (GlPointR2 p in demoFigures[i].View.getIntersection(demoFigures[j].View)) { inters.Add(p); } } } } try { GlCurve C = demoFigures[i].View as GlCurve; if (demoFigures[i].tangentFrom != -1) { C.getTangentFromBelongs(C[demoFigures[i].tangentFrom]).Draw(5, GlConstants.RED); } if (demoFigures[i].curvFrom != -1) { C.getCurvatureCircle(C[demoFigures[i].curvFrom]).Draw(GlConstants.RED, 5); } if (demoFigures[i].boxDraw) { demoFigures[i].View.BOX.Draw(GlConstants.RED, 5); } } catch { } demoFigures[i].Transformation(); } foreach (GlPointR2 p in inters) { new GlCircle(0.1f, p).DrawFill(GlConstants.RED); } }
public override IEnumerable <GlPointR2> getIntersection(GlCurve C) { throw new System.NotImplementedException(); }
public abstract IEnumerable <GlPointR2> getIntersection(GlCurve C);