if (SVG_RESOLVE_BLINE) {
if(nodename.compare("path")==0){
k=parser_path_d (nodeElement->get_attribute_value("d"),mtx);
if (SVG_RESOLVE_BLINE) {
if(nodename.compare("path")==0){
k=parser_path_d (nodeElement->get_attribute_value("d"),mtx);
setSplit(k1.back(),TRUE);
//"If a moveto is followed by multiple pairs of coordinates,
// the subsequent pairs are treated as implicit lineto commands."
setSplit(k1.back(),TRUE);
//"If a moveto is followed by multiple pairs of coordinates,
// the subsequent pairs are treated as implicit lineto commands."
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,tgx,tgy);
}else{
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,tgx,tgy);
}else{
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
setSplit(k1.back(),TRUE);
}
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
setSplit(k1.back(),TRUE);
}
//save
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
setSplit(k1.back(),FALSE);
//save
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
setSplit(k1.back(),FALSE);
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
}else if(command.compare("L")==0 || command.compare("l")==0){ //line to
//point
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
}else if(command.compare("L")==0 || command.compare("l")==0){ //line to
//point
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,k1.front()->x,k1.front()->y);
}else{
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,k1.front()->x,k1.front()->y);
}else{
setTg1(k1.back(),k1.back()->x,k1.back()->y,k1.back()->x,k1.back()->y);
}
}else if(command.compare("H")==0 || command.compare("h")==0){// horizontal move
setTg1(k1.back(),k1.back()->x,k1.back()->y,k1.back()->x,k1.back()->y);
}
}else if(command.compare("H")==0 || command.compare("h")==0){// horizontal move
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,k1.front()->x,k1.front()->y);
}else{
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,k1.front()->x,k1.front()->y);
}else{
setTg1(k1.back(),k1.back()->x,k1.back()->y,k1.back()->x,k1.back()->y);
}
}else if(command.compare("V")==0 || command.compare("v")==0){//vertical
setTg1(k1.back(),k1.back()->x,k1.back()->y,k1.back()->x,k1.back()->y);
}
}else if(command.compare("V")==0 || command.compare("v")==0){//vertical
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,k1.front()->x,k1.front()->y);
}else{
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,k1.front()->x,k1.front()->y);
}else{
setTg1(k1.back(),k1.back()->x,k1.back()->y,k1.back()->x,k1.back()->y);
}
}else if(command.compare("T")==0 || command.compare("t")==0){// I don't know what does it
setTg1(k1.back(),k1.back()->x,k1.back()->y,k1.back()->x,k1.back()->y);
}
}else if(command.compare("T")==0 || command.compare("t")==0){// I don't know what does it
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,tgx,tgy);
}else{
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,tgx,tgy);
}else{
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
setSplit(k1.back(),TRUE);
}
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
setSplit(k1.back(),TRUE);
}
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,tgx,tgy);
}else{
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,tgx,tgy);
}else{
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
setSplit(k1.back(),TRUE);
}
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
setSplit(k1.back(),TRUE);
}
//save the last tg2
setTg2(k1.back(),k1.back()->x,k1.back()->y,tgx2,tgy2);
//save the intermediate point
//save the last tg2
setTg2(k1.back(),k1.back()->x,k1.back()->y,tgx2,tgy2);
//save the intermediate point
setTg1(k1.back(),k1.back()->x,k1.back()->y, in_tgx1 , in_tgy1);
setTg2(k1.back(),k1.back()->x,k1.back()->y, in_tgx2 , in_tgy2);
setSplit(k1.back(),TRUE); //this could be changed
setTg1(k1.back(),k1.back()->x,k1.back()->y, in_tgx1 , in_tgy1);
setTg2(k1.back(),k1.back()->x,k1.back()->y, in_tgx2 , in_tgy2);
setSplit(k1.back(),TRUE); //this could be changed
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,tgx,tgy);
}else{
if(isFirst(k1.front(),ax,ay)){
setTg1(k1.front(),k1.front()->x,k1.front()->y,tgx,tgy);
}else{
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
setSplit(k1.back(),TRUE);
}
setTg1(k1.back(),k1.back()->x,k1.back()->y,tgx,tgy);
setSplit(k1.back(),TRUE);
}
setSplit(k1.back(),TRUE);
}
i--; //decrement i to balance "i++" at command change
setSplit(k1.back(),TRUE);
}
i--; //decrement i to balance "i++" at command change
BLine* data;
data=(BLine*)malloc(sizeof(BLine));
//sprintf(data->name,"%s",name.data());
BLine* data;
data=(BLine*)malloc(sizeof(BLine));
//sprintf(data->name,"%s",name.data());
root->set_attribute("name","vector_list");
xmlpp::Element *child=root->add_child("dynamic_list");
child->set_attribute("type","vector");
root->set_attribute("name","vector_list");
xmlpp::Element *child=root->add_child("dynamic_list");
child->set_attribute("type","vector");
while(aux!=p.end()){
xmlpp::Element *child_entry=child->add_child("entry");
xmlpp::Element *child_vector=child_entry->add_child("vector");
while(aux!=p.end()){
xmlpp::Element *child_entry=child->add_child("entry");
xmlpp::Element *child_vector=child_entry->add_child("vector");
xmlpp::Element *child_comp=root->add_child("composite");
child_comp->set_attribute("type","bline_point");
build_vector (child_comp->add_child("param"),"point",p->x,p->y);
xmlpp::Element *child_comp=root->add_child("composite");
child_comp->set_attribute("type","bline_point");
build_vector (child_comp->add_child("param"),"point",p->x,p->y);
-Svg_parser::build_bline(xmlpp::Element* root,std::list<Vertice*> p,bool loop,String blineguid){
+Svg_parser::build_bline(xmlpp::Element* root,std::list<Vertex*> p,bool loop,String blineguid){
root->set_attribute("name","bline");
xmlpp::Element *child=root->add_child("bline");
child->set_attribute("type","bline_point");
root->set_attribute("name","bline");
xmlpp::Element *child=root->add_child("bline");
child->set_attribute("type","bline_point");
else
child->set_attribute("loop","false");
if(!blineguid.empty()) child->set_attribute("guid",blineguid);
else
child->set_attribute("loop","false");
if(!blineguid.empty()) child->set_attribute("guid",blineguid);
-Svg_parser::setTg1(Vertice *p,float p1x,float p1y,float p2x,float p2y){
+Svg_parser::setTg1(Vertex *p,float p1x,float p1y,float p2x,float p2y){
float rd=0,ag=0;
float d1x,d1y,d2x,d2y,dx,dy;
d1x=p1x*60;
float rd=0,ag=0;
float d1x,d1y,d2x,d2y,dx,dy;
d1x=p1x*60;
-Svg_parser::setTg2(Vertice* p,float p1x,float p1y,float p2x,float p2y){
+Svg_parser::setTg2(Vertex* p,float p1x,float p1y,float p2x,float p2y){
float rd=0,ag=0;
float d1x,d1y,d2x,d2y,dx,dy;
d1x=p1x*60;
float rd=0,ag=0;
float d1x,d1y,d2x,d2y,dx,dy;
d1x=p1x*60;
-Vertice*
-Svg_parser::newVertice(float x,float y){
- Vertice* vert;
- vert=(Vertice*)malloc(sizeof(Vertice));
+Vertex*
+Svg_parser::newVertex(float x,float y){
+ Vertex* vert;
+ vert=(Vertex*)malloc(sizeof(Vertex));