Пример #1
0
        public void SetUpTestCase()
        {
            Contour currentContour = new Contour(Contours.Count + 1);

            Contours.Add(currentContour);
            Point pt1 = new Point(0, 0);

            pt1.T = 0;
            currentContour.Add(pt1);
            Point pt2 = new Point(100, 0);

            pt2.T = 100;
            currentContour.Add(pt2);
            Point pt3 = new Point(0, 100);

            pt3.T = 0;
            currentContour.Add(pt3);
            //Point pt4 = new Point(0, 100);
            //pt4.T = 0;
            //currentContour.Add(pt4);
            //Point pt5 = new Point(0, 40);
            //pt5.T = 1;
            //currentContour.Add(pt5);
            currentContour.Add(pt1);
        }
Пример #2
0
        public override void OnPrimaryMouseClicked(Event e)
        {
            if (IsHover)
            {
                if (Contour.Add(Hover))
                {
                    foreach (var part in Contour.RawParts)
                    {
                        if (part.Line is MarkupRegularLine line && !Markup.ContainsLine(line.PointPair))
                        {
                            var newLine = Markup.AddRegularLine(part.Line.PointPair, null, line.Alignment);
                            Panel.AddLine(newLine);
                        }
                    }

                    var style  = Tool.GetStyleByModifier <FillerStyle, FillerStyle.FillerType>(FillerStyle.FillerType.Stripe);
                    var filler = new MarkupFiller(Contour, style);
                    Markup.AddFiller(filler);
                    Panel.EditFiller(filler);
                    Tool.SetDefaultMode();
                    return;
                }
                DisableByAlt = false;
                GetFillerPoints();
            }
        }
Пример #3
0
        public IEnumerable <IFigure> GetData()
        {
            IModel new_model = new Model();
            IEnumerable <IFigure> figures = model.GetData();

            int i = 0;

            foreach (IFigure figure in figures)
            {
                IFigure new_figure = new Figure();
                foreach (IContour contour in figure.GetContours())
                {
                    IContour new_contour = new Contour();
                    foreach (ISegment segment in contour.GetSegments())
                    {
                        if (!removed[i])
                        {
                            new_contour.Add(segment);
                        }
                        i++;
                    }
                    new_figure.Add(new_contour);
                }
                new_model.Add(new_figure);
            }

            return(new_model.GetData());
        }
Пример #4
0
 public override void OnPrimaryMouseClicked(Event e)
 {
     if (IsHover)
     {
         if (Contour.Add(Hover))
         {
             var filler = new MarkupFiller(Contour, NodeMarkupTool.GetStyle(FillerStyle.FillerType.Stripe));
             Tool.Markup.AddFiller(filler);
             Panel.EditFiller(filler);
             Tool.SetDefaultMode();
             return;
         }
         DisableByAlt = false;
         GetFillerPoints();
     }
 }
        public List <IContour> GetContours()
        {
            IFigure         figures  = new Figure();
            List <IContour> contours = solverdata.GetContours();
            int             i        = 0;

            foreach (var contour in contours)
            {
                IContour new_contour = new Contour();
                foreach (ISegment segment in contour.GetSegments())
                {
                    if (!removed[i])
                    {
                        new_contour.Add(segment);
                    }
                    i++;
                }
                figures.Add(new_contour);
            }

            return(figures.GetContours().ToList());
        }
        private void RootCanvas_OnMouseDown(object sender, MouseButtonEventArgs e)
        {
            if (Contour == null)
            {
                return;
            }

            var clickPosition = e.GetPosition(RootCanvas);
            var point         = Contour.FirstOrDefault(p => p.DistanceTo(clickPosition) < (12 / Scale));
            var index         = Contour.IndexOf(point);

            if (e.LeftButton == MouseButtonState.Pressed)
            {
                if (index == -1)
                {
                    // no points get clicked
                    Contour.Add(clickPosition);
                    ActivePointIndex = Contour.Count - 1;
                }
                else if (index == 0 && (Keyboard.Modifiers & ModifierKeys.Control) > 0)
                {
                    //todo
                }
                else
                {
                    ActivePointIndex = index;
                }
            }
            else if (e.RightButton == MouseButtonState.Pressed)
            {
                if (index != -1)
                {
                    Contour.RemoveAt(index);
                }
            }
        }
Пример #7
0
 internal int FtLineTo(ref FTVector to, IntPtr context)
 {
     _contour.Add(new LinearSegment(_position, FtPoint2(ref to)));
     _position = FtPoint2(ref to);
     return(0);
 }
 public void SetUpTestCase()
 {
     Contour currentContour = new Contour(Contours.Count + 1);
     Contours.Add(currentContour);
     Point pt1 = new Point(0, 0);
     pt1.T = 0;
     currentContour.Add(pt1);
     Point pt2 = new Point(100, 0);
     pt2.T = 100;
     currentContour.Add(pt2);
     Point pt3 = new Point(0, 100);
     pt3.T = 0;
     currentContour.Add(pt3);
     //Point pt4 = new Point(0, 100);
     //pt4.T = 0;
     //currentContour.Add(pt4);
     //Point pt5 = new Point(0, 40);
     //pt5.T = 1;
     //currentContour.Add(pt5);
     currentContour.Add(pt1);
 }