.. wxPython Phoenix documentation
   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.
   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License
.. include:: headings.inc
.. _wx.GraphicsPath:
==========================================================================================================================================
|phoenix_title|  **wx.GraphicsPath**
==========================================================================================================================================
A :ref:`wx.GraphicsPath`  is a native representation of a geometric path. 
         
The contents are specific and private to the respective renderer. Instances are reference counted and can therefore be assigned as usual. The only way to get a valid instance is by using :meth:`wx.GraphicsContext.CreatePath`   or :meth:`wx.GraphicsRenderer.CreatePath` . 
|
|class_hierarchy| Class Hierarchy
=================================
.. raw:: html
   
   
   Inheritance diagram for class 
GraphicsPath:
   
 
   
   
|
|method_summary| Methods Summary
================================
================================================================================ ================================================================================
:meth:`~wx.GraphicsPath.AddArc`                                                  Adds an arc of a circle.
:meth:`~wx.GraphicsPath.AddArcToPoint`                                           Adds an arc (of a circle with radius `r`) that is tangent to the line connecting current point and (`x1`, `y1`) and to the line connecting (`x1`, `y1`) and (`x2`, `y2`).
:meth:`~wx.GraphicsPath.AddCircle`                                               Appends a circle around (`x`,`y`) with radius `r`  as a new closed subpath.
:meth:`~wx.GraphicsPath.AddCurveToPoint`                                         Adds a cubic bezier curve from the current point, using two control points and an end point.
:meth:`~wx.GraphicsPath.AddEllipse`                                              Appends an ellipse fitting into the passed in rectangle as a new closed subpath.
:meth:`~wx.GraphicsPath.AddLineToPoint`                                          Adds a straight line from the current point to (`x`,`y`).
:meth:`~wx.GraphicsPath.AddPath`                                                 Adds another path onto the current path.
:meth:`~wx.GraphicsPath.AddQuadCurveToPoint`                                     Adds a quadratic bezier curve from the current point, using a control point and an end point.
:meth:`~wx.GraphicsPath.AddRectangle`                                            Appends a rectangle as a new closed subpath.
:meth:`~wx.GraphicsPath.AddRoundedRectangle`                                     Appends a rounded rectangle as a new closed subpath.
:meth:`~wx.GraphicsPath.CloseSubpath`                                            Closes the current sub-path.
:meth:`~wx.GraphicsPath.Contains`                                                
:meth:`~wx.GraphicsPath.GetBox`                                                  Gets the bounding box enclosing all points (possibly including control points).
:meth:`~wx.GraphicsPath.GetCurrentPoint`                                         Gets the last point of the current path, (0,0) if not yet set.
:meth:`~wx.GraphicsPath.GetNativePath`                                           Returns the native path (CGPathRef for Core Graphics, Path pointer for GDIPlus and a cairo_path_t pointer for cairo).
:meth:`~wx.GraphicsPath.MoveToPoint`                                             Begins a new subpath at (`x`,`y`).
:meth:`~wx.GraphicsPath.Transform`                                               Transforms each point of this path by the matrix.
:meth:`~wx.GraphicsPath.UnGetNativePath`                                         Gives back the native path returned by :meth:`~GraphicsPath.GetNativePath`   because there might be some deallocations necessary (e.g.
================================================================================ ================================================================================
|
|property_summary| Properties Summary
=====================================
================================================================================ ================================================================================
:attr:`~wx.GraphicsPath.Box`                                                     See :meth:`~wx.GraphicsPath.GetBox`
:attr:`~wx.GraphicsPath.CurrentPoint`                                            See :meth:`~wx.GraphicsPath.GetCurrentPoint`
:attr:`~wx.GraphicsPath.NativePath`                                              See :meth:`~wx.GraphicsPath.GetNativePath`
================================================================================ ================================================================================
|
|api| Class API
===============
.. class:: wx.GraphicsPath(GraphicsObject)
   A GraphicsPath is a native representation of a geometric path.
   .. method:: AddArc(self, *args, **kw)
      Adds an arc of a circle. 
                 
      The circle is defined by the coordinates of its centre (`x`, `y`) or `c`  and its radius `r`. The arc goes from the starting angle `startAngle`  to `endAngle`  either clockwise or counter-clockwise depending on the value of `clockwise`  argument. 
      The angles are measured in radians but, contrary to the usual mathematical convention, are always `clockwise`  from the horizontal axis. 
      If for clockwise arc `endAngle`  is less than `startAngle`  it will be progressively increased by 2pi until it is greater than `startAngle`. If for counter-clockwise arc `endAngle`  is greater than `startAngle`  it will be progressively decreased by 2pi until it is less than `startAngle`. 
      If there is a current point set, an initial line segment will be added to the path to connect the current point to the beginning of the arc. 
                  
      |overload| **Overloaded Implementations:**
      :html:`
`
      
      **AddArc** `(self, x, y, r, startAngle, endAngle, clockwise)`
      
      
      
      
      :param `x`: 
      :type `x`: wx.Double
      :param `y`: 
      :type `y`: wx.Double
      :param `r`: 
      :type `r`: wx.Double
      :param `startAngle`: 
      :type `startAngle`: wx.Double
      :param `endAngle`: 
      :type `endAngle`: wx.Double
      :param `clockwise`: 
      :type `clockwise`: bool
      
      
      
      
      :rtype: `None`     
      
      
      
      
      
      
      
      :html:`
`
      
      **AddArc** `(self, c, r, startAngle, endAngle, clockwise)`
      
      
      
      
      :param `c`: 
      :type `c`: wx.Point2D
      :param `r`: 
      :type `r`: wx.Double
      :param `startAngle`: 
      :type `startAngle`: wx.Double
      :param `endAngle`: 
      :type `endAngle`: wx.Double
      :param `clockwise`: 
      :type `clockwise`: bool
      
      
      
      
      :rtype: `None`     
      
      
      
      
      
      
      
      :html:`
`
   .. method:: AddArcToPoint(self, x1, y1, x2, y2, r)
      Adds an arc (of a circle with radius `r`) that is tangent to the line connecting current point and (`x1`, `y1`) and to the line connecting (`x1`, `y1`) and (`x2`, `y2`). 
                 
      If the current point and the starting point of the arc are different, a straight line connecting these points is also appended. If there is no current point before the call to :meth:`AddArcToPoint`   this function will behave as if preceded by a call to MoveToPoint(0, 0). After this call the current point will be at the ending point of the arc. 
      .. figure:: _static/images/overviews/drawing-addarctopoint.png
         :align: center
      |
                 
      :param `x1`: 
      :type `x1`: wx.Double
      :param `y1`: 
      :type `y1`: wx.Double
      :param `x2`: 
      :type `x2`: wx.Double
      :param `y2`: 
      :type `y2`: wx.Double
      :param `r`: 
      :type `r`: wx.Double
      :rtype: `None`     
   .. method:: AddCircle(self, x, y, r)
      Appends a circle around (`x`,`y`) with radius `r`  as a new closed subpath. 
                 
      After this call the current point will be at ( `x+` `r` `,`   `y`). 
                 
      :param `x`: 
      :type `x`: wx.Double
      :param `y`: 
      :type `y`: wx.Double
      :param `r`: 
      :type `r`: wx.Double
      :rtype: `None`     
   .. method:: AddCurveToPoint(self, *args, **kw)
      |overload| **Overloaded Implementations:**
      :html:`
`
      
      **AddCurveToPoint** `(self, cx1, cy1, cx2, cy2, x, y)`
      
      Adds a cubic bezier curve from the current point, using two control points and an end point. 
                       
      
      If there is no current point before the call to :meth:`AddCurveToPoint`   this function will behave as if preceded by a call to MoveToPoint(`cx1`, `cy1`). 
                       
      
      
      :param `cx1`: 
      :type `cx1`: wx.Double
      :param `cy1`: 
      :type `cy1`: wx.Double
      :param `cx2`: 
      :type `cx2`: wx.Double
      :param `cy2`: 
      :type `cy2`: wx.Double
      :param `x`: 
      :type `x`: wx.Double
      :param `y`: 
      :type `y`: wx.Double
      
      
      
      
      :rtype: `None`     
      
      
      
      
      
      
      
      :html:`
`
      
      **AddCurveToPoint** `(self, c1, c2, e)`
      
      Adds a cubic bezier curve from the current point, using two control points and an end point. 
                       
      
      If there is no current point before the call to :meth:`AddCurveToPoint`   this function will behave as if preceded by a call to MoveToPoint(`c1`). 
                       
      
      
      :param `c1`: 
      :type `c1`: wx.Point2D
      :param `c2`: 
      :type `c2`: wx.Point2D
      :param `e`: 
      :type `e`: wx.Point2D
      
      
      
      
      :rtype: `None`     
      
      
      
      
      
      
      
      :html:`
`
   .. method:: AddEllipse(self, x, y, w, h)
      Appends an ellipse fitting into the passed in rectangle as a new closed subpath. 
                 
      After this call the current point will be at ( `x+` `w` `,`    `y+` `h/2` `)` . 
                 
      :param `x`: 
      :type `x`: wx.Double
      :param `y`: 
      :type `y`: wx.Double
      :param `w`: 
      :type `w`: wx.Double
      :param `h`: 
      :type `h`: wx.Double
      :rtype: `None`     
   .. method:: AddLineToPoint(self, *args, **kw)
      |overload| **Overloaded Implementations:**
      :html:`
`
      
      **AddLineToPoint** `(self, x, y)`
      
      Adds a straight line from the current point to (`x`,`y`). 
                       
      
      If current point is not yet set before the call to :meth:`AddLineToPoint`   this function will behave as :meth:`MoveToPoint` . 
                       
      
      
      :param `x`: 
      :type `x`: wx.Double
      :param `y`: 
      :type `y`: wx.Double
      
      
      
      
      :rtype: `None`     
      
      
      
      
      
      
      
      :html:`
`
      
      **AddLineToPoint** `(self, p)`
      
      Adds a straight line from the current point to `p`. 
                       
      
      If current point is not yet set before the call to :meth:`AddLineToPoint`   this function will behave as :meth:`MoveToPoint` . 
                       
      
      
      :param `p`: 
      :type `p`: wx.Point2D
      
      
      
      
      :rtype: `None`     
      
      
      
      
      
      
      
      :html:`
`
   .. method:: AddPath(self, path)
      Adds another path onto the current path. 
                 
      After this call the current point will be at the added path's current point. For Direct2D the path being appended shouldn't contain a started non-empty subpath when this function is called. 
                 
      :param `path`: 
      :type `path`: wx.GraphicsPath
      :rtype: `None`     
   .. method:: AddQuadCurveToPoint(self, cx, cy, x, y)
      Adds a quadratic bezier curve from the current point, using a control point and an end point. 
                 
      If there is no current point before the call to :meth:`AddQuadCurveToPoint`   this function will behave as if preceded by a call to MoveToPoint(`cx`, `cy`). 
                 
      :param `cx`: 
      :type `cx`: wx.Double
      :param `cy`: 
      :type `cy`: wx.Double
      :param `x`: 
      :type `x`: wx.Double
      :param `y`: 
      :type `y`: wx.Double
      :rtype: `None`     
   .. method:: AddRectangle(self, x, y, w, h)
      Appends a rectangle as a new closed subpath. 
                 
      After this call the current point will be at (`x`, `y`). 
                 
      :param `x`: 
      :type `x`: wx.Double
      :param `y`: 
      :type `y`: wx.Double
      :param `w`: 
      :type `w`: wx.Double
      :param `h`: 
      :type `h`: wx.Double
      :rtype: `None`     
   .. method:: AddRoundedRectangle(self, x, y, w, h, radius)
      Appends a rounded rectangle as a new closed subpath. 
                 
      If `radius`  equals 0 this function will behave as :meth:`AddRectangle` , otherwise after this call the current point will be at ( `x+` `w` `,`    `y+` `h/2` `)` . 
                 
      :param `x`: 
      :type `x`: wx.Double
      :param `y`: 
      :type `y`: wx.Double
      :param `w`: 
      :type `w`: wx.Double
      :param `h`: 
      :type `h`: wx.Double
      :param `radius`: 
      :type `radius`: wx.Double
      :rtype: `None`     
   .. method:: CloseSubpath(self)
      Closes the current sub-path. 
                 
      After this call the current point will be at the joined endpoint of the sub-path. 
                 
      :rtype: `None`     
   .. method:: Contains(self, *args, **kw)
                
      :returns: 
         ``True`` if the point is within the path.   
      |overload| **Overloaded Implementations:**
      :html:`
`
      
      **Contains** `(self, c, fillStyle=ODDEVEN_RULE)`
      
      
      
      
      :param `c`: 
      :type `c`: wx.Point2D
      :param `fillStyle`: 
      :type `fillStyle`: wx.PolygonFillMode
      
      
      
      
      :rtype: `bool`
      
      
      
      
      
      
      
      :html:`
`
      
      **Contains** `(self, x, y, fillStyle=ODDEVEN_RULE)`
      
      
      
      
      :param `x`: 
      :type `x`: wx.Double
      :param `y`: 
      :type `y`: wx.Double
      :param `fillStyle`: 
      :type `fillStyle`: wx.PolygonFillMode
      
      
      
      
      :rtype: `bool`
      
      
      
      
      
      
      
      :html:`
`
   .. method:: GetBox(self)
      Gets the bounding box enclosing all points (possibly including control points). 
                 
      :rtype: :ref:`wx.Rect2D`
   .. method:: GetCurrentPoint(self)
      Gets the last point of the current path, (0,0) if not yet set. 
                 
      :rtype: :ref:`wx.Point2D`
   .. method:: GetNativePath(self)
      Returns the native path (CGPathRef for Core Graphics, Path pointer for GDIPlus and a cairo_path_t pointer for cairo). 
                 
      :rtype: `Any`     
   .. method:: MoveToPoint(self, *args, **kw)
      |overload| **Overloaded Implementations:**
      :html:`
`
      
      **MoveToPoint** `(self, x, y)`
      
      Begins a new subpath at (`x`,`y`). 
                       
      
      
      :param `x`: 
      :type `x`: wx.Double
      :param `y`: 
      :type `y`: wx.Double
      
      
      
      
      :rtype: `None`     
      
      
      
      
      
      
      
      :html:`
`
      
      **MoveToPoint** `(self, p)`
      
      Begins a new subpath at `p`. 
                       
      
      
      :param `p`: 
      :type `p`: wx.Point2D
      
      
      
      
      :rtype: `None`     
      
      
      
      
      
      
      
      :html:`
`
   .. method:: Transform(self, matrix)
      Transforms each point of this path by the matrix. 
                 
      For Direct2D the current path shouldn't contain a started non-empty subpath when this function is called. 
                 
      :param `matrix`: 
      :type `matrix`: wx.GraphicsMatrix
      :rtype: `None`     
   .. method:: UnGetNativePath(self, p)
      Gives back the native path returned by :meth:`GetNativePath`   because there might be some deallocations necessary (e.g. 
                 
      on cairo the native path returned by :meth:`GetNativePath`   is newly allocated each time). 
                 
      :param `p`: 
      :rtype: `None`     
   .. attribute:: Box
      See :meth:`~wx.GraphicsPath.GetBox`
   .. attribute:: CurrentPoint
      See :meth:`~wx.GraphicsPath.GetCurrentPoint`
   .. attribute:: NativePath
      See :meth:`~wx.GraphicsPath.GetNativePath`