Component.Model SimplifyModel(Component.IModel model) { Component.Model simplified = new Component.Model(); Primitive.Figure figure = new Primitive.Figure(); Splitter splitter = new Splitter(); var figures = model.GetData(); foreach (var f in figures) { var contours = f.GetContours(); var lines = splitter.Split(contours, double.Parse(textBox_Splitter_Accuracy.Text, CultureInfo.InvariantCulture)); var new_segments = new List <ISegment>(); foreach (var line in lines) { new_segments.Add(JoinMSPoints.PointsToSegment(line.GetPoint1().GetPoint(), line.GetPoint2().GetPoint())); } var contour = new Primitive.Contour(); foreach (var new_s in new_segments) { contour.Add(new_s); } figure.Add(contour); } simplified.Add(figure); return(simplified); }
public void TestJoinMSPoints() { Graph msGraph = new Graph(); msGraph.AddEdge(new Point(0, 0), new Point(0, 2)); msGraph.AddEdge(new Point(0, 2), new Point(2, 2)); msGraph.AddEdge(new Point(2, 2), new Point(2, 0)); msGraph.AddEdge(new Point(2, 0), new Point(0, 0)); var midsurface = new JoinMSPoints().Join(msGraph); // 4 edges = 4 segments of contour Assert.AreEqual(4, midsurface.GetData().Count()); }