private void buttonGenerate_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; string param = textParam.Text; scene.Reset(); Construction cn = new Construction(); // 1st instance: int faces = cn.AddMesh(scene, Matrix4.Identity, param); diameter = scene.GetDiameter(out center); int faces1 = scene.Triangles; int vertices1 = scene.Vertices; // 2nd instance: faces += cn.AddMesh(scene, Matrix4.CreateTranslation(diameter, 0.0f, 0.0f), param); // finishing: scene.BuildCornerTable(); int errors = scene.CheckCornerTable(null); scene.GenerateColors(12); diameter = scene.GetDiameter(out center); Cursor.Current = Cursors.Default; labelFaces.Text = string.Format("{0}f (reported {1}), {2}v, 1st instance: {3}f, {4}v, {5} errors", scene.Triangles, faces, scene.Vertices, faces1, vertices1, errors); PrepareDataBuffers(); glControl1.Invalidate(); }
private void buttonGenerate_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; scene.Reset(); Construction cn = new Construction(); int faces = cn.AddMesh(scene, Matrix4.Identity, textParam.Text); diameter = scene.GetDiameter(out center); if (checkMulti.Checked) { Matrix4 translation, rotation; Matrix4.CreateTranslation(diameter, 0.0f, 0.0f, out translation); Matrix4.CreateRotationX(90.0f, out rotation); faces += cn.AddMesh(scene, translation * rotation, textParam.Text); Matrix4.CreateTranslation(0.0f, diameter, 0.0f, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(diameter, diameter, 0.0f, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(0.0f, 0.0f, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(diameter, 0.0f, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(0.0f, diameter, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(diameter, diameter, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); diameter = scene.GetDiameter(out center); } scene.BuildCornerTable(); int errors = scene.CheckCornerTable(null); scene.GenerateColors(12); ResetCamera(); labelFile.Text = string.Format("{0} faces, {1} errors", faces, errors); PrepareDataBuffers(); glControl1.Invalidate(); Cursor.Current = Cursors.Default; }
private void buttonGenerate_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; scene.Reset(); Construction cn = new Construction(); int faces = cn.AddMesh(scene, Matrix4.Identity, textParam.Text); Vector3 center; float diameter = scene.GetDiameter(out center); if (checkMulti.Checked) { Matrix4 translation, rotation; Matrix4.CreateTranslation(diameter, 0.0f, 0.0f, out translation); Matrix4.CreateRotationX(90.0f, out rotation); faces += cn.AddMesh(scene, translation * rotation, textParam.Text); Matrix4.CreateTranslation(0.0f, diameter, 0.0f, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(diameter, diameter, 0.0f, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(0.0f, 0.0f, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(diameter, 0.0f, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(0.0f, diameter, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(diameter, diameter, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); diameter = scene.GetDiameter(out center); } scene.BuildCornerTable(); int errors = scene.CheckCornerTable(null); Cursor.Current = Cursors.Default; labelFaces.Text = string.Format("{0} faces, {1} errors", faces, errors); redraw(); }
private void buttonGenerate_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; float variant = (float)numericVariant.Value; scene.Reset(); Construction cn = new Construction(); int faces = cn.AddMesh(scene, Matrix4.Identity, variant); scene.BuildCornerTable(); int errors = scene.CheckCornerTable(null); Cursor.Current = Cursors.Default; labelFaces.Text = string.Format("{0} faces, {1} errors", faces, errors); redraw(); }
private void buttonGenerate_Click(object sender, EventArgs e) { bool doCheck = checkCorner.Checked; scene.Reset(); Stopwatch sw = new Stopwatch(); sw.Start(); Construction cn = new Construction(); int faces = cn.AddMesh(scene, Matrix4.Identity, textParam.Text); diameter = scene.GetDiameter(out center); if (checkMulti.Checked) { Matrix4 translation, rotation; Matrix4.CreateTranslation(diameter, 0.0f, 0.0f, out translation); Matrix4.CreateRotationX(90.0f, out rotation); faces += cn.AddMesh(scene, translation * rotation, textParam.Text); Matrix4.CreateTranslation(0.0f, diameter, 0.0f, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(diameter, diameter, 0.0f, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(0.0f, 0.0f, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(diameter, 0.0f, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(0.0f, diameter, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); Matrix4.CreateTranslation(diameter, diameter, diameter, out translation); faces += cn.AddMesh(scene, translation, textParam.Text); diameter = scene.GetDiameter(out center); } sw.Stop(); long elapsed = sw.ElapsedMilliseconds; // Scene postprocessing. scene.BuildCornerTable(); int errors = doCheck ? scene.CheckCornerTable(null) : 0; scene.GenerateColors(12); // Viewport update. UpdateParams(textParam.Text); tb.Center = center; tb.Diameter = diameter; tb.Reset(); camera.Center = center; camera.Diameter = diameter; camera.Reset(); SetupViewport(); SetLight(diameter, ref light); modelStatus = $"{scene.Triangles + scene.Lines}f ({faces}rep), {scene.Vertices}v, {errors}err, {elapsed}ms"; labelFile.Text = modelStatus; // Prepare rendering system. PrepareDataBuffers(); glControl1.Invalidate(); }