public void AddPath(GraphicsPath addingPath, bool connect)
        {
            if (NativeObject.LastFigureClosed || addingPath.NativeObject.LastFigureClosed)
            {
                connect = false;
            }

            NativeObject.append(addingPath.NativeObject, connect);
        }
        public void AddPie(float x, float y, float width, float height, float startAngle, float sweepAngle)
        {
            Shape shape = null;

            if (sweepAngle >= 360)
            {
                shape = new Ellipse2D.Float(x, y, width, height);
            }
            else
            {
                double d1Tod2    = width / height;
                double sqrd1Tod2 = d1Tod2 * d1Tod2;
                double start     = ConvertArcAngle(sqrd1Tod2, startAngle);
                double extent    = ConvertArcAngle(sqrd1Tod2, startAngle + sweepAngle) - start;

                shape = new Arc2D.Double(x, y, width, height, -start, -extent, Arc2D.PIE);
            }

            NativeObject.append(shape, false);
        }
        void AddString(string s, Font font,
                       float x, float y, float width, float height,
                       StringFormat format)
        {
            TextLineIterator iter = new TextLineIterator(s, font,
                                                         new java.awt.font.FontRenderContext(null, false, false),
                                                         format, width, height);

            int coordsCount = NativeObject.CoordsCount;

            for (LineLayout layout = iter.NextLine(); layout != null; layout = iter.NextLine())
            {
                NativeObject.append(layout.GetOutline(x, y), false);
            }

            AffineTransform lineAlignT = iter.CalcLineAlignmentTransform();

            if (lineAlignT != null)
            {
                NativeObject.transform(lineAlignT, coordsCount, NativeObject.CoordsCount - coordsCount);
            }
        }
        public void AddLine(float x1, float y1, float x2, float y2)
        {
            Line2D l = new Line2D.Float(x1, y1, x2, y2);

            NativeObject.append(l);
        }
        public void AddEllipse(float x, float y, float width, float height)
        {
            Ellipse2D e = new Ellipse2D.Float(x, y, width, height);

            NativeObject.append(e, false);
        }
        public void AddBezier(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4)
        {
            CubicCurve2D cc = new CubicCurve2D.Float(x1, y1, x2, y2, x3, y3, x4, y4);

            NativeObject.append(cc);
        }