private void Build_Click(object sender, EventArgs e) { Contour contour = new Contour(curves); if (contour.Size < 3 || contour.Size > 5) { return; } if (contour.Size == 5) { if (decompositor == null) { decompositor = new PentagonTriangleDecompose(); } IContour[] contourTEST; meshs = new List <RegMesh2D>(); IMeshGen generator; // = new TriaMeshGen(10, 10); contourTEST = decompositor.decomposed(contour); //тестовый код для пятиугольника foreach (var x in contourTEST) { if (x.Size == 4) { generator = new QuadCleverMeshGen(10); meshs.AddRange(generator.Generate(x)); } if (x.Size == 3) { generator = new TriaMeshGen(10); meshs.AddRange(generator.Generate(x)); } } } if (contour.Size == 4) { //IMeshGen generator = new QuadSimpleMeshGen(10, 10); IMeshGen generator = new QuadCleverMeshGen(10); //IMeshGen generator = new TriaMeshGen(10, 10); meshs = new List <RegMesh2D>(); meshs.Add(generator.Generate(contour)[0]); } if (contour.Size == 3) { meshs = new List <RegMesh2D>(); IMeshGen generator = new TriaMeshGen(10); meshs = generator.Generate(contour); } double qualitySum = 0; for (int i = 0; i < meshs.Count(); i++) { qualitySum += quality.Calculate(meshs[i]); } Quality.Text = Convert.ToString(qualitySum / meshs.Count()); Refresh(); }
private void decomposeWithStarToolStripMenuItem_Click(object sender, EventArgs e) { decompositor = new PentagonDecSquare(); Build_Click(sender, e); }
private void decomposeOnToolStripMenuItem_Click(object sender, EventArgs e) { decompositor = new PentagonDecTetraAndTri(); Build_Click(sender, e); }
private void decomposeOnTrianglesToolStripMenuItem_Click(object sender, EventArgs e) { decompositor = new PentagonTriangleDecompose(); Build_Click(sender, e); }