Implementation des arcs de cercle

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@34 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavierqet
2006-11-21 10:26:43 +00:00
parent dfc4f26144
commit 8b630b12dd
2 changed files with 19 additions and 0 deletions

View File

@@ -147,6 +147,7 @@ bool ElementPerso::parseElement(QDomElement &e, QPainter &qp, Schema *s) {
else if (e.tagName() == "ligne") return(parseLigne(e, qp)); else if (e.tagName() == "ligne") return(parseLigne(e, qp));
else if (e.tagName() == "ellipse") return(parseEllipse(e, qp)); else if (e.tagName() == "ellipse") return(parseEllipse(e, qp));
else if (e.tagName() == "cercle") return(parseCercle(e, qp)); else if (e.tagName() == "cercle") return(parseCercle(e, qp));
else if (e.tagName() == "arc") return(parseArc(e, qp));
else if (e.tagName() == "polygone") return(parsePolygone(e, qp)); else if (e.tagName() == "polygone") return(parsePolygone(e, qp));
else return(true); // on n'est pas chiant, on ignore l'element inconnu else return(true); // on n'est pas chiant, on ignore l'element inconnu
} }
@@ -192,6 +193,23 @@ bool ElementPerso::parseEllipse(QDomElement &e, QPainter &qp) {
return(true); return(true);
} }
bool ElementPerso::parseArc(QDomElement &e, QPainter &qp) {
// verifie la presence des attributs obligatoires
double arc_x, arc_y, arc_l, arc_h, arc_s, arc_a;
if (!attributeIsAReal(e, QString("x"), &arc_x)) return(false);
if (!attributeIsAReal(e, QString("y"), &arc_y)) return(false);
if (!attributeIsAReal(e, QString("largeur"), &arc_l)) return(false);
if (!attributeIsAReal(e, QString("hauteur"), &arc_h)) return(false);
if (!attributeIsAReal(e, QString("start"), &arc_s)) return(false);
if (!attributeIsAReal(e, QString("angle"), &arc_a)) return(false);
qp.save();
setPainterStyle(e, qp);
qp.drawArc(QRectF(arc_x, arc_y, arc_l, arc_h), (int)(arc_s * 16), (int)(arc_a * 16));
qp.restore();
return(true);
}
bool ElementPerso::parsePolygone(QDomElement &e, QPainter &qp) { bool ElementPerso::parsePolygone(QDomElement &e, QPainter &qp) {
int i = 1; int i = 1;
while(true) { while(true) {

View File

@@ -22,6 +22,7 @@
bool parseLigne(QDomElement &, QPainter &); bool parseLigne(QDomElement &, QPainter &);
bool parseEllipse(QDomElement &, QPainter &); bool parseEllipse(QDomElement &, QPainter &);
bool parseCercle(QDomElement &, QPainter &); bool parseCercle(QDomElement &, QPainter &);
bool parseArc(QDomElement &, QPainter &);
bool parsePolygone(QDomElement &, QPainter &); bool parsePolygone(QDomElement &, QPainter &);
bool parseBorne(QDomElement &, Schema *); bool parseBorne(QDomElement &, Schema *);
void setQPainterAntiAliasing(QPainter &, bool); void setQPainterAntiAliasing(QPainter &, bool);