char name[40];
float x1,x2,y1,y2;
std::list<ColorStop*> *stops; //paradas de color
+ Matrix *transform;
}LinearGradient;
typedef struct radial_g{
char name[40];
//if this value is omitted then will be = cx,cy
float r; //radio radius
std::list<ColorStop*> *stops; //paradas de color
+ Matrix *transform;
}RadialGradient;
typedef struct url_t{
void parser_svg(const xmlpp::Node* node);
void parser_canvas(const xmlpp::Node* node);
//layers
- void parser_layer(const xmlpp::Node* node,xmlpp::Element* root,String parent_style,Matrix* mtx_parent);
- void parser_path(const xmlpp::Node* node,xmlpp::Element* root,String parent_style,Matrix* mtx_parent);
- void parser_polygon(const xmlpp::Node* node,xmlpp::Element* root,String parent_style,Matrix* mtx_parent);
- void parser_rect(const xmlpp::Node* node,xmlpp::Element* root,String parent_style,Matrix* mtx_parent);
+ void parser_graphics(const xmlpp::Node* node,xmlpp::Element* root,String parent_style,Matrix* mtx_parent);
+ void rect_simple(const xmlpp::Element* nodeElement,xmlpp::Element* root,String fill, String fill_opacity, String opacity);
+ void parser_layer(const xmlpp::Node* node,xmlpp::Element* root,String parent_style,Matrix* mtx);
+ std::list<std::list<Vertice*> > parser_polygon_path(Glib::ustring polygon_points, Matrix* mtx);
+ void parser_effects(const xmlpp::Element* nodeElement,xmlpp::Element* root,String parent_style,Matrix* mtx);
+ void parser_transform(xmlpp::Element* root,Matrix* mtx);
//defs
void parser_defs(const xmlpp::Node* node);
void parser_linearGradient(const xmlpp::Node* node);
void parser_radialGradient(const xmlpp::Node* node);
ColorStop* newColorStop(String color,float opacity,float pos);
- LinearGradient* newLinearGradient(String name,float x1,float y1, float x2,float y2,std::list<ColorStop*> *stops);
- RadialGradient* newRadialGradient(String name,float cx,float cy,float r,std::list<ColorStop*> *stops);
+ LinearGradient* newLinearGradient(String name,float x1,float y1, float x2,float y2,std::list<ColorStop*> *stops, Matrix* transform);
+ RadialGradient* newRadialGradient(String name,float cx,float cy,float r,std::list<ColorStop*> *stops, Matrix* transform);
//builds urls
void AdjustPointUrl();
std::list<ColorStop*>* find_colorStop(String name);
void setTg1(Vertice *p,float p1x,float p1y,float p2x,float p2y);
void setSplit(Vertice* p,bool val);
int isFirst(Vertice* nodo,float a, float b);
- Vertice* nuevoVertice(float x,float y);
+ Vertice* newVertice(float x,float y);
//matrix operations
Matrix* newMatrix(float a,float b,float c,float d,float e,float f);
Matrix* newMatrix(const String mvector);
Matrix* newMatrix(Matrix *a);
void transformPoint2D(Matrix *mtx,float *a,float *b);
- bool matrixVacia(Matrix* mtx);
+ bool matrixIsNull(Matrix* mtx);
void composeMatrix(Matrix **mtx,Matrix *mtx1,Matrix *mtx2);
void multiplyMatrix(Matrix **mtx1,Matrix *mtx2);
float getRadian(float sexa);