Example #1
0
 private GCElement pAddCircle(int layer, int datatype, GeoLibPoint center, double radius)
 {
     GCElement e = new();
     GeoLibPoint[] points = e.ellipse(center, radius, GCSetup.circularDefault);
     e = new GCPolygon(points, layer, datatype);
     return e;
 }
Example #2
0
    private void pAddBox(GeoLibPoint[] points, int layer, int datatype)
    {
        GCElement e;

        if (points.Length != 5)
        {
            e = new GCPolygon(points, layer, datatype);
            pAddElement(e);
            return;
        }
        if (points[0] != points[4])
        {
            e = new GCPolygon(points, layer, datatype);
            pAddElement(e);
            return;
        }

        int x2, y2;
        GeoLibPoint p = points[0];
        int x1 = p.X;
        int y1 = p.Y;
        p = points[1];
        if (p.X < x1)
        {
            x2 = x1;
            x1 = p.X;
        }
        else
        {
            x2 = p.X;
        }
        if (p.Y < y1)
        {
            y2 = y1;
            y1 = p.Y;
        }
        else
        {
            y2 = p.Y;
        }
        for (int i = 2; i < 4; i++)
        {
            p = points[i];
            if (p.X < x1)
            {
                x1 = p.X;
            }
            if (p.X > x2)
            {
                x2 = p.X;
            }
            if (p.Y < y1)
            {
                y1 = p.Y;
            }
            if (p.Y > y2)
            {
                y2 = p.Y;
            }
        }
        bool b = true;
        for (int i = 0; i < 4; i++)
        {
            p = points[i];
            if (p.X != x1 && p.X != x2)
            {
                b = false;
            }

            if (p.Y != y1 && p.Y != y2)
            {
                b = false;
            }
        }
        switch (b)
        {
            case true:
                e = new GCBox(x1, y1, x2 - x1 + 1, y2 - y1 + 1, layer, datatype);
                pAddElement(e);
                break;
            default:
                e = new GCPolygon(points, layer, datatype);
                pAddElement(e);
                break;
        }
    }
Example #3
0
 private void pAddPolygon(GeoLibPoint[] points, int layer, int datatype)
 {
     GCElement e = new GCPolygon(points, layer, datatype);
     pAddElement(e);
 }