示例#1
0
 public MyArea(MyArea areaToCopy)
 {
     this.Lines = new List <MyLine>();
     foreach (MyLine line in areaToCopy.Lines)
     {
         line.Areas.Clear();
         this.Lines.Add(new MyLine(line.Id));
     }
 }
        public static MyRectangle GetAreaRectangle(MyArea area)
        {
            MyRectangle result = new MyRectangle();

            result.maxX   = area.Nodes.Max(n => n.X);
            result.minX   = area.Nodes.Min(n => n.X);
            result.maxY   = area.Nodes.Max(n => n.Y);
            result.minY   = area.Nodes.Min(n => n.Y);
            result.Points = new MyPoint[4]
            {
                new MyPoint(result.minX, result.minY),
                new MyPoint(result.minX, result.maxY),
                new MyPoint(result.maxX, result.maxY),
                new MyPoint(result.maxX, result.minY)
            };
            return(result);
        }
 public MyFrontSegment(ICollection <MyNode> _nodes, MyArea area = null)
 {
     createSegment(_nodes);
     CorrespondingArea = area;
 }
 public MyFrontSegment(List <MyPoint> _points, MyArea area = null)
 {
     createSegment(_points.ConvertAll(p => new MyNode(p.X, p.Y, p.Id)));
     CorrespondingArea = area;
 }
 public MyFrontSegment(int count, MyArea area = null)
 {
     Nodes             = new List <MyNode>(count);
     baseNodes         = new List <MyNode>(count);
     CorrespondingArea = area;
 }