3 // Part of the Architektonas Project
4 // Originally part of QCad Community Edition by Andrew Mustun
5 // Extensively rewritten and refactored by James L. Hammons
6 // (C) 2010 Underground Software
8 // JLH = James L. Hammons <jlhamm@acm.org>
11 // --- ---------- -----------------------------------------------------------
12 // JLH 06/11/2010 Created this file. :-)
15 #include "dlgellipse.h"
17 #include "rs_ellipse.h"
21 DlgEllipse::DlgEllipse(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
22 QDialog(parent, flags)
27 DlgEllipse::~DlgEllipse()
31 void DlgEllipse::setEllipse(RS_Ellipse & e)
34 //pen = ellipse->getPen();
35 ui.wPen->setPen(ellipse->getPen(false), true, false, "Pen");
36 Drawing * graphic = ellipse->getGraphic();
39 ui.cbLayer->init(*(graphic->getLayerList()), false, false);
41 RS_Layer * lay = ellipse->getLayer(false);
44 ui.cbLayer->setLayer(*lay);
47 s.setNum(ellipse->getCenter().x);
48 ui.leCenterX->setText(s);
49 s.setNum(ellipse->getCenter().y);
50 ui.leCenterY->setText(s);
51 s.setNum(ellipse->getMajorP().magnitude());
52 ui.leMajor->setText(s);
53 s.setNum(ellipse->getMajorP().magnitude() * ellipse->getRatio());
54 ui.leMinor->setText(s);
55 s.setNum(RS_Math::rad2deg(ellipse->getMajorP().angle()));
56 ui.leRotation->setText(s);
57 s.setNum(RS_Math::rad2deg(ellipse->getAngle1()));
58 ui.leAngle1->setText(s);
59 s.setNum(RS_Math::rad2deg(ellipse->getAngle2()));
60 ui.leAngle2->setText(s);
61 ui.cbReversed->setChecked(ellipse->isReversed());
64 void DlgEllipse::updateEllipse()
66 ellipse->setCenter(Vector(RS_Math::eval(ui.leCenterX->text()),
67 RS_Math::eval(ui.leCenterY->text())));
69 v.setPolar(RS_Math::eval(ui.leMajor->text()),
70 RS_Math::deg2rad(RS_Math::eval(ui.leRotation->text())));
71 ellipse->setMajorP(v);
73 if (RS_Math::eval(ui.leMajor->text()) > 1.0e-6)
74 ellipse->setRatio(RS_Math::eval(ui.leMinor->text()) / RS_Math::eval(ui.leMajor->text()));
76 ellipse->setRatio(1.0);
78 ellipse->setAngle1(RS_Math::deg2rad(RS_Math::eval(ui.leAngle1->text())));
79 ellipse->setAngle2(RS_Math::deg2rad(RS_Math::eval(ui.leAngle2->text())));
80 ellipse->setReversed(ui.cbReversed->isChecked());
81 ellipse->setPen(ui.wPen->getPen());
82 ellipse->setLayer(ui.cbLayer->currentText());