\hypertarget{group__Evas__Object__Vg}{}\section{Evas\+\_\+\+Object\+\_\+\+Vg}
\label{group__Evas__Object__Vg}\index{Evas\+\_\+\+Object\+\_\+\+Vg@{Evas\+\_\+\+Object\+\_\+\+Vg}}


Evas\+\_\+\+Object\+\_\+\+Vg is the scene graph for managing vector graphics objects.  


Evas\+\_\+\+Object\+\_\+\+Vg is the scene graph for managing vector graphics objects. 

User can create shape objects as well as fill objects and give it to the Evas\+\_\+\+Object\+\_\+\+Vg for drawing on the screen as well as managing the lifecycle of the objects. enabling reuse of shape objects.

As Evas\+\_\+\+Object\+\_\+\+Vg is a Evas\+\_\+\+Object all the operation that applicable to a Evas\+\_\+\+Object can be performed on it(clipping , map, etc).

To create any complex vector graphics you can create a hirarchy of shape and fill objects and give the hirarchy to Evas\+\_\+\+Object which will be responsible for drawing and showing on the screen.

As the shape object and fill object (linear and radial gradient) have retain mode A\+PI, you only have to create it once and set the properties and give it to evas\+\_\+object\+\_\+vg.

Any change in the property of shape/fill object will automaticaly notified to the evas\+\_\+object\+\_\+vg which will trigger a redrawing to reflect the change.

To create a vector path, you can give list of path commands to the shape object using efl\+\_\+gfx\+\_\+shape\+\_\+path\+\_\+set() A\+PI.

Enabling graphical shapes to be constructed and reused.

Below are the list of feature currently supported by Vector object.

\begin{DoxyItemize}
\item Drawing S\+VG Path. You can construct a path by using api in efl\+\_\+gfx\+\_\+utils.\+h\end{DoxyItemize}
\begin{DoxyItemize}
\item Gradient filling and stroking. You can fill or stroke the path using linear or radial gradient. \begin{DoxySeeAlso}{See also}
Evas\+\_\+\+Vg\+\_\+\+Gradient\+\_\+\+Linear and Evas\+\_\+\+Vg\+\_\+\+Gradient\+\_\+\+Radial
\end{DoxySeeAlso}
\item Transformation support for path and gradient fill. You can apply affin transformation on path object. \begin{DoxySeeAlso}{See also}
Eina\+\_\+\+Matrix.
\end{DoxySeeAlso}
\begin{DoxyNote}{Note}
Below are the list of interface, classes can be used to draw vector graphics using vector object.
\end{DoxyNote}
\item Efl.\+Gfx.\+Shape \item Evas.\+V\+G\+\_\+\+Shape \item Evas.\+V\+G\+\_\+\+Node \item Efl.\+Gfx.\+Gradient \item Efl.\+Gfx.\+Gradient\+\_\+\+Radial \item Efl.\+Gfx.\+Gradient\+\_\+\+Linear\end{DoxyItemize}
Example\+: 
\begin{DoxyCode}
vector = evas\_object\_vg\_add(canvas);
root = evas\_obj\_vg\_root\_node\_get(vector);
shape = \mbox{\hyperlink{group__Eo_ga663b4b6d84c39cd08874af5094d96d67}{efl\_add}}(EVAS\_VG\_SHAPE\_CLASS, root);
Efl\_Gfx\_Path\_Command *path\_cmd = NULL;
\textcolor{keywordtype}{double} *points = NULL;
efl\_gfx\_path\_append\_circle(&path\_cmd, &points);
*       evas\_vg\_node\_origin\_set(shape, 10, 10);
*       efl\_gfx\_shape\_stroke\_width\_set(shape, 1.0);
*       \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga01ba29e2e1b5b57d539e5a70943e13d7}{evas\_vg\_node\_color\_set}}(shape, 128, 128, 128, 80);
*       efl\_gfx\_shape\_path\_set(shape, path\_cmd, points); 
\end{DoxyCode}


\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
