private void timerAnim_Tick(object sender, EventArgs e) { if (animDir != 0) { keyDownCount++; if (keyDownCount == 25) { timerAnim.Interval = 50; } else if (keyDownCount == 50) { timerAnim.Interval = 25; } else if (keyDownCount == 100) { timerAnim.Interval = 10; } step += animDir; if (step < 0) { step += maxStep + 1; } if (step > maxStep) { step -= maxStep + 1; } selected = null; UpdateModel(); } }
public MeshAnim(string name, TriMesh.Vertex vertex, List <TriMesh.Triangle> mesh, List <TriMesh.Triangle> reds, List <TriMesh.Triangle> greens, TriMesh.Halfedge edge) { Name = name; if (vertex != null) { NewVertex = new SimpleCAD.Circle(vertex.ToPointF(), featureSize); NewVertex.FillStyle = SimpleCAD.FillStyle.Yellow; NewVertex.OutlineStyle = SimpleCAD.OutlineStyle.Black; } if (mesh != null) { Mesh = new List <SimpleCAD.Drawable>(); foreach (TriMesh.Triangle t in mesh) { if (t.IsSuperTriangle) { Mesh.AddRange(DrawTri(t, SimpleCAD.OutlineStyle.Black, SimpleCAD.FillStyle.LightGray)); } else { Mesh.AddRange(DrawTri(t, SimpleCAD.OutlineStyle.Black, SimpleCAD.FillStyle.LightGoldenrodYellow)); } } } if (reds != null) { RedTri = new List <SimpleCAD.Drawable>(); foreach (TriMesh.Triangle t in reds) { RedTri.AddRange(DrawTri(t, SimpleCAD.OutlineStyle.Black, SimpleCAD.FillStyle.LightCoral)); } } if (greens != null) { GreenTri = new List <SimpleCAD.Drawable>(); foreach (TriMesh.Triangle t in greens) { GreenTri.AddRange(DrawTri(t, SimpleCAD.OutlineStyle.Black, SimpleCAD.FillStyle.LightGreen)); } } if (edge != null) { Edge = new SimpleCAD.Line(edge.V1.ToPointF(), edge.V2.ToPointF()); Edge.OutlineStyle = new SimpleCAD.OutlineStyle(Color.Blue, 3); } }
private void meshView_ItemClick(object sender, SimpleCAD.ItemClickEventArgs e) { if ((e.Button & MouseButtons.Left) != MouseButtons.None) { selected = null; PointF pt = meshView.View.ScreenToWorld(e.Location); foreach (SimpleCAD.Drawable d in anim[step].Mesh) { SimpleCAD.Triangle t = d as SimpleCAD.Triangle; if (t != null && t.Contains(pt)) { selected = t; break; } } UpdateModel(); } }