예제 #1
0
        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());
        }