Vector Nodes ============ .. automodule:: libavg.avg :no-members: .. inheritance-diagram:: CircleNode CurveNode FilledVectorNode LineNode MeshNode Node PolygonNode PolyLineNode RectNode VectorNode libavg.geom.Arc libavg.geom.PieSlice libavg.geom.RoundedRect :parts: 1 .. autoclass:: CircleNode([r=1, texcoord1=0, texcoord2=1]) A circle. The reference point for a circle is its center. .. py:attribute:: r The radius of the circle in pixels. .. py:attribute:: texcoord1 .. py:attribute:: texcoord2 .. autoclass:: CurveNode([pos1, pos2, pos3, pos4, texcoord1, texcoord2]) A cubic bezier curve (``_). :py:attr:`pos1` and :py:attr:`pos4` are the two endpoints of the curve. :py:attr:`pos2` and :py:attr:`pos3` are control points. .. py:method:: getPtOnCurve(t) -> pos Returns a point on the curve. Which point is determined by the value of t. If :samp:`t=0`, returns :py:attr:`pos1`. :samp:`t=1` returns :py:attr:`pos4`, and values in between return the points in between. .. py:attribute:: length Returns an approximation of the length of the curve (ro). .. py:attribute:: pos1 .. py:attribute:: pos2 .. py:attribute:: pos3 .. py:attribute:: pos4 .. py:attribute:: texcoord1 .. py:attribute:: texcoord2 .. autoclass:: FilledVectorNode([filltexhref, fillopacity=0, fillcolor="FFFFFF", filltexcoord1=Point2D(0,0), filltexcoord2=Point2D(1,1)]) Base class for vector nodes which have a filled area and a border. The area can be filled either with a solid color (:py:attr:`fillcolor`) or with a texture loaded from a file (:py:attr:`filltexhref`) or taken from a bitmap object (:py:meth:`setFillBitmap`). .. py:attribute:: fillcolor .. py:attribute:: fillopacity .. py:attribute:: filltexcoord1 .. py:attribute:: filltexcoord2 .. py:attribute:: filltexhref An image file to use as a texture for the area of the node. .. py:method:: setFillBitmap(bitmap) Sets a bitmap to use as a fill texture. Sets :attr:`filltexhref` to an empty string. .. autoclass:: LineNode([pos1, pos2, texcoord1, texcoord2]) A line. :py:attr:`pos1` and :py:attr:`pos2` are the two endpoints of the line. .. py:attribute:: pos1 .. py:attribute:: pos2 .. py:attribute:: texcoord1 .. py:attribute:: texcoord2 .. autoclass:: MeshNode([vertexcoords, texcoords, triangles]) This is a generalized mesh of textured triangles. See https://www.libavg.de/wiki/ProgrammersGuide/MeshNode for an example. .. py:attribute:: texcoords .. py:attribute:: triangles .. py:attribute:: vertexcoords .. autoclass:: PolygonNode([linejoin="bevel", pos, texcoords]) A closed figure bounded by a number of line segments, optionally filled. Filled polygons may not be self-intersecting. .. py:attribute:: linejoin The method by which line segments are joined together. Valid values are :py:const:`bevel` and :py:const:`miter`. .. py:attribute:: pos A sequence (:py:class:`list` or :py:class:`tuple`) of pixel positions. .. py:attribute:: texcoords A sequence of float texture coordinates corresponding to the border positions. .. autoclass:: PolyLineNode([linejoin="bevel", pos, texcoords]) A figure similar to a :py:class:`PolygonNode`, but not closed and never filled. .. py:attribute:: linejoin The method by which line segments are joined together. Valid values are :py:const:`bevel` and :py:const:`miter`. .. py:attribute:: pos A sequence (:py:class:`list` or :py:class:`tuple`) of pixel positions. .. py:attribute:: texcoords A sequence of float texture coordinates corresponding to the border positions. .. autoclass:: RectNode([pos, size, angle]) A rectangle that can be filled. .. py:attribute:: angle The angle that the rectangle is rotated to in radians. 0 is unchanged, 3.14 is upside-down. The rectangle is rotated around its center. .. py:attribute:: pos The position of the top left corner of the rectangle. .. py:attribute:: size .. py:attribute:: texcoords .. autoclass:: VectorNode([color="FFFFFF", strokewidth=1, texhref, blendmode="blend"]) Base class for all nodes that draw geometrical primitives. All vector nodes support configurable stroke width. Strokes can be filled either with a solid color (:py:attr:`color`) or with a texture loaded from a file (:py:attr:`texhref`) or taken from a bitmap object (:py:meth:`setBitmap`). .. py:attribute:: blendmode The method of compositing the node with the nodes under it. Valid values are :py:const:`blend`, :py:const:`add`, :py:const:`min` and :py:const:`max`. For :py:const:`min` and :py:const:`max` blend modes, opacity is ignored. .. py:attribute:: color The color of the strokes in standard html color notation: :samp:`"FF0000"` is red, :samp:`"00FF00"` green, etc. .. py:attribute:: strokewidth The width of the strokes in the vector. For lines, this is the line width. For rectangles, it is the width of the outline, etc. .. py:attribute:: texhref An image file to use as a texture for the node. .. py:method:: setBitmap(bitmap) Sets a bitmap to use as a texture. Sets :attr:`texhref` to an empty string. .. automodule:: libavg.geom :no-members: .. autoclass:: Arc(radius, startangle, endangle[, pos=(0,0)]) An unfilled arc (incomplete circle) from :py:attr:`startangle` to :py:attr:`endangle`. :py:attr:`pos` is the center of the circle. .. py:attribute:: endangle .. py:attribute:: pos .. py:attribute:: radius .. py:attribute:: startangle .. autoclass:: PieSlice(radius, startangle, endangle[, pos=(0,0)]) An arc (incomplete circle) from :py:attr:`startangle` to :py:attr:`endangle` connected to the center of the circle. :py:attr:`pos` is the center of the circle. A :py:class:`PieSlice` can be filled. .. py:attribute:: endangle .. py:attribute:: pos .. py:attribute:: radius .. py:attribute:: startangle .. autoclass:: RoundedRect(size, radius, pos) A rectangle with rounded corners. :py:attr:`radius` is the corner radius. .. py:attribute:: pos .. py:attribute:: radius .. py:attribute:: size