20#include "diapathparser.h"
22DiaPointFinder::DiaPointFinder(TQValueList<float> *xlist, TQValueList<float> *ylist) :
23 SVGPathParser(), m_xlist(xlist), m_ylist(ylist)
28void DiaPointFinder::svgMoveTo(
double x1,
double y1,
bool )
33void DiaPointFinder::svgLineTo(
double x1,
double y1,
bool )
38void DiaPointFinder::svgCurveToCubic(
double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
bool )
47void DiaPointFinder::svgClosePath()
51DiaPathParser::DiaPathParser(TQDomDocument *doc, TQDomElement *shape,
float xscale,
float yscale,
float lowestx,
float lowesty) :
52 SVGPathParser(), m_doc(doc), m_shape(shape),
53 m_xscale(xscale), m_yscale(yscale),
54 m_lowestx(lowestx), m_lowesty(lowesty)
60void DiaPathParser::svgMoveTo(
double x1,
double y1,
bool )
65void DiaPathParser::svgLineTo(
double x1,
double y1,
bool )
72 TQDomElement kivioPointElement = m_doc->createElement(
"KivioPoint");
73 kivioPointElement.setAttribute(
"x", TQString::number(diaPointToKivio(lastX,
true) * m_xscale));
74 kivioPointElement.setAttribute(
"y", TQString::number(diaPointToKivio(lastY,
false) * m_yscale));
75 m_shape->appendChild(kivioPointElement);
77 kivioPointElement = m_doc->createElement(
"KivioPoint");
78 kivioPointElement.setAttribute(
"x", TQString::number(diaPointToKivio(currentX,
true) * m_xscale));
79 kivioPointElement.setAttribute(
"y", TQString::number(diaPointToKivio(currentY,
false) * m_yscale));
80 m_shape->appendChild(kivioPointElement);
85void DiaPathParser::svgCurveToCubic(
double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
bool )
88 float lastControlX = x1;
89 float lastControlY = y1;
90 float currentControlX = x2;
91 float currentControlY = y2;
96 TQDomElement kivioPointElement = m_doc->createElement(
"KivioPoint");
97 kivioPointElement.setAttribute(
"x",
98 TQString::number(diaPointToKivio(lastX,
true) * m_xscale));
99 kivioPointElement.setAttribute(
"y",
100 TQString::number(diaPointToKivio(lastY,
false) * m_yscale));
101 kivioPointElement.setAttribute(
"type",
"bezier");
102 m_shape->appendChild(kivioPointElement);
104 kivioPointElement = m_doc->createElement(
"KivioPoint");
105 kivioPointElement.setAttribute(
"x",
106 TQString::number(diaPointToKivio(lastControlX,
true) * m_xscale));
107 kivioPointElement.setAttribute(
"y",
108 TQString::number(diaPointToKivio(lastControlY,
false) * m_yscale));
109 kivioPointElement.setAttribute(
"type",
"bezier");
110 m_shape->appendChild(kivioPointElement);
112 kivioPointElement = m_doc->createElement(
"KivioPoint");
113 kivioPointElement.setAttribute(
"x",
114 TQString::number(diaPointToKivio(currentControlX,
true) * m_xscale));
115 kivioPointElement.setAttribute(
"y",
116 TQString::number(diaPointToKivio(currentControlY,
false) * m_yscale));
117 kivioPointElement.setAttribute(
"type",
"bezier");
118 m_shape->appendChild(kivioPointElement);
120 kivioPointElement = m_doc->createElement(
"KivioPoint");
121 kivioPointElement.setAttribute(
"x",
122 TQString::number(diaPointToKivio(currentX,
true) * m_xscale));
123 kivioPointElement.setAttribute(
"y",
124 TQString::number(diaPointToKivio(currentY,
false) * m_yscale));
125 kivioPointElement.setAttribute(
"type",
"bezier");
126 m_shape->appendChild(kivioPointElement);
130void DiaPathParser::svgClosePath()
134float DiaPathParser::diaPointToKivio(
float point,
bool xpoint)
137 return point - m_lowestx;
139 return point - m_lowesty;