private void ShowDetalizerNormals_Click(object sender, RoutedEventArgs e) { if (mid_surface_model == null) { return; } int step = 0; try { step = int.Parse(textBox_DebugNormalStep.Text); } catch { MessageBox.Show("Wrong format in debug parameters.\nFormat is:\n < step between points > "); return; } if (step <= 0) { MessageBox.Show("Enter positive number"); return; } var segments = mid_surface_model.GetData(); IMidSurface debugSurface = new MidSurface(); for (int i = 0; i < segments.Count(); i++) { if (i % step != 0) { continue; } var msseg = segments.ElementAt(i) as MSSegment; if (msseg == null) { return; } var normal = msseg.GetMSPillar()[0].GetNormal(); var parent = msseg.GetMSPillar()[0].GetParent(); var R = msseg.GetMSPillar()[0].GetRadius(); ISegment normalSegment = new Segment(new BezierCurve(), new List <Point>() { parent, new Point(parent.X + R * normal.Dx(), parent.Y + R * normal.Dy()) }); debugSurface.Add(normalSegment); } View.VisibleDataSettings settings = new View.VisibleDataSettings(); settings.Brush = Brushes.Blue; settings.Thikness = 1; View.VisibleData visible_data = new View.VisibleData(debugSurface, settings); view.Paint(visible_data); }
private void ShowOnlyPoints_Click(object sender, RoutedEventArgs e) { if (mid_surface_model == null) { return; } var segments = mid_surface_model.GetData(); List <ISegment> only_points = new List <ISegment>(); foreach (var segment in segments) { ISegment point = new Segment(new BezierCurve(), new List <Point>() { segment.GetPillar()[0], Vector.Add(new Vector(1, 0), segment.GetPillar()[0]) }); only_points.Add(point); } IMidSurface points_surface = new MidSurface(); foreach (var point in only_points) { points_surface.Add(point); } mainCanvas.Children.Clear(); RedrawModel(); View.VisibleDataSettings settings = new View.VisibleDataSettings(); settings.Brush = Brushes.Red; settings.Thikness = 2; View.VisibleData visible_data = new View.VisibleData(points_surface, settings); view.Paint(visible_data); }
private void ShowNormal_Click(object sender, RoutedEventArgs e) { if (model == null) { MessageBox.Show("No model is imported"); return; } string[] debugParams = textBox_Debug.Text.Split(';'); int segmentNum = 0; double t = 0; double multiplier = 0; try { segmentNum = int.Parse(debugParams[0]); t = double.Parse(debugParams[1], CultureInfo.InvariantCulture); multiplier = double.Parse(debugParams[2], CultureInfo.InvariantCulture); } catch { MessageBox.Show("Wrong format in debug parameters.\nFormat is:\n <segment number>;<t value>;<multiplier value>"); return; } ISegment chosenSegment = model.GetCanvasData().ElementAt(segmentNum); Point pointOnSegment = chosenSegment.GetCurvePoint(t); Normal normalForSegment = chosenSegment.GetNormal(t); if (t == 0) { int prevSegmentNum = segmentNum == 0 ? model.GetCanvasData().Count() - 1 : segmentNum - 1; normalForSegment = normalForSegment.Combine(model.GetCanvasData().ElementAt(prevSegmentNum).GetNormal(1)); } else if (t == 1) { int nextSegmentNum = segmentNum == model.GetCanvasData().Count() - 1 ? 0 : segmentNum + 1; normalForSegment = model.GetCanvasData().ElementAt(nextSegmentNum).GetNormal(0).Combine(normalForSegment); } ISegment normalSegment = new Segment(new BezierCurve(), new List <Point>() { pointOnSegment, new Point(pointOnSegment.X + multiplier * normalForSegment.Dx(), pointOnSegment.Y + multiplier * normalForSegment.Dy()) }); View.VisibleDataSettings settings = new View.VisibleDataSettings(); settings.Brush = Brushes.Blue; settings.Thikness = 1; IMidSurface debugSurface = new MidSurface(); debugSurface.Add(normalSegment); View.VisibleData visible_data = new View.VisibleData(debugSurface, settings); view.Paint(visible_data); }
private void RedrawMidSurface(Brush brush) { if (mid_surface_model == null) { return; } View.VisibleDataSettings settings = new View.VisibleDataSettings(); settings.Brush = brush; settings.Thikness = 5; View.VisibleData visible_data = new View.VisibleData(mid_surface_model, settings); view.Paint(visible_data); }
private void RedrawMidSurface() { if (mid_surface_model == null) { return; } //TODO: Dinar: continue connecting parameters View.VisibleDataSettings settings = new View.VisibleDataSettings(); settings.Brush = Settings.colofOfMidSurface; settings.Thikness = Settings.thicknessMidSurface; View.VisibleData visible_data = new View.VisibleData(mid_surface_model, settings); view.Paint(visible_data); }
private void RedrawModel(Brush brush) { if (model == null) { return; } View.VisibleDataSettings settings = new View.VisibleDataSettings() { Brush = brush, Thikness = 10 }; View.VisibleData visible_data = new View.VisibleData(model, settings); view.Paint(visible_data); }
private void RedrawModel() { if (model == null) { return; } //TODO: Dinar: continue connecting parameters mainCanvas.Children.Clear(); View.VisibleDataSettings settings = new View.VisibleDataSettings() { Brush = Settings.colofOfModel, Thikness = Settings.thicknessModel }; View.VisibleData visible_data = new View.VisibleData(model, settings); view.Paint(visible_data); }
private void ShowSimplified_Click(object sender, RoutedEventArgs e) { if (model == null) { return; } mainCanvas.Children.Clear(); View.VisibleDataSettings settings = new View.VisibleDataSettings() { Brush = Brushes.Black, Thikness = 2 }; View.VisibleData visible_data = new View.VisibleData(SimplifyModel(model), settings); view.EnableIndices(true); view.Paint(visible_data); RedrawMidSurface(); }