| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #include <QLineEdit> |
| | #include <QCheckBox> |
| |
|
| | #include "lc_convert.h" |
| | #include "lc_entitypropertiesdlg.h" |
| | #include "lc_graphicviewport.h" |
| | #include "rs_math.h" |
| | #include "rs_vector.h" |
| |
|
| | LC_EntityPropertiesDlg::LC_EntityPropertiesDlg(QWidget *parent, const QString& dlgName, LC_GraphicViewport *vp): |
| | LC_Dialog(parent, dlgName), m_viewport{vp}{} |
| |
|
| | RS_Vector LC_EntityPropertiesDlg::toUCSVector(const RS_Vector &vect) const{ |
| | RS_Vector result = m_viewport->toUCS(vect); |
| | return result; |
| | } |
| |
|
| | double LC_EntityPropertiesDlg::toUCSAngle(double wcsAngle) const { |
| | double ucsAngle = m_viewport->toUCSAngle(wcsAngle); |
| | double ucsBasisAngle = m_viewport->toBasisUCSAngle(ucsAngle); |
| | return ucsBasisAngle; |
| | } |
| |
|
| | double LC_EntityPropertiesDlg::toWCSAngle(const QString &val, double wcsDefault){ |
| | double ucsDefault = toUCSAngle(wcsDefault); |
| | double ucsDefaultDeg = RS_Math::rad2deg(ucsDefault); |
| |
|
| | double ucsAngleDeg = toDoubleAngle(val, 0.0, ucsDefaultDeg); |
| | double ucsAngleBasis = RS_Math::deg2rad(ucsAngleDeg); |
| | double ucsAngleAbs = m_viewport->toAbsUCSAngle(ucsAngleBasis); |
| | double wcsAngle = m_viewport->toWorldAngle(ucsAngleAbs); |
| | return wcsAngle; |
| | } |
| |
|
| | double LC_EntityPropertiesDlg::toWCSValue(const QString& val, double wcsDefault){ |
| | |
| | return toDouble(val, 0, wcsDefault); |
| | } |
| |
|
| | RS_Vector LC_EntityPropertiesDlg::toWCSVector(const RS_Vector &vect) const{ |
| | RS_Vector result = m_viewport->toWorld(vect); |
| | return result; |
| | } |
| |
|
| | double LC_EntityPropertiesDlg::toRawAngleValue(QLineEdit* ed, double ucsDefault) { |
| | double ucsDefaultDeg = RS_Math::rad2deg(ucsDefault); |
| | double rawAngleDeg = toDoubleAngle(ed->text(), 0.0, ucsDefaultDeg); |
| | double rawAngle = RS_Math::deg2rad(rawAngleDeg); |
| | return rawAngle; |
| | } |
| |
|
| | QPair<QString, QString> LC_EntityPropertiesDlg::toUIStr(const RS_Vector &vect) const { |
| | RS_Vector uiPos = toUCSVector(vect); |
| | QString sx = asString(uiPos.x); |
| | QString sy = asString(uiPos.y); |
| | QPair<QString, QString> result(sx,sy); |
| | return result; |
| | } |
| |
|
| | QPair<QString, QString> LC_EntityPropertiesDlg::toUIStrRaw(const RS_Vector &vect) const { |
| | QString sx = asString(vect.x); |
| | QString sy = asString(vect.y); |
| | QPair<QString, QString> result(sx,sy); |
| | return result; |
| | } |
| |
|
| | void LC_EntityPropertiesDlg::toUI(const RS_Vector &vect, QLineEdit* leX, QLineEdit* leY) const { |
| | QPair<QString, QString> pair = toUIStr(vect); |
| | leX->setText(pair.first); |
| | leY->setText(pair.second); |
| | } |
| |
|
| | void LC_EntityPropertiesDlg::toUIRaw(const RS_Vector &vect, QLineEdit* leX, QLineEdit* leY) const { |
| | QPair<QString, QString> pair = toUIStrRaw(vect); |
| | leX->setText(pair.first); |
| | leY->setText(pair.second); |
| | } |
| |
|
| | void LC_EntityPropertiesDlg::toUIValue(double val, QLineEdit* ed){ |
| | QString sValue = asString(val); |
| | ed->setText(sValue); |
| | } |
| |
|
| | void LC_EntityPropertiesDlg::toUIAngleDeg(double wcsAngle, QLineEdit* ed){ |
| | QString sValue = toUIAngleDeg(wcsAngle); |
| | ed->setText(sValue); |
| | } |
| |
|
| | QString LC_EntityPropertiesDlg::toUIAngleDeg(double wcsAngle) const { |
| | double ucsAngle = toUCSAngle(wcsAngle); |
| | QString sValue = asStringAngleDeg(ucsAngle); |
| | return sValue; |
| | } |
| |
|
| | void LC_EntityPropertiesDlg::toUIBool(bool val, QCheckBox* ed){ |
| | ed->setChecked(val); |
| | } |
| |
|
| | void LC_EntityPropertiesDlg::toUIAngleDegRaw(double val, QLineEdit* ed){ |
| | QString sValue = asStringAngleDeg(val); |
| | ed->setText(sValue); |
| | } |
| |
|
| | RS_Vector LC_EntityPropertiesDlg::toWCSVector(const QString &sx, const QString &sy, const RS_Vector& defaults) const { |
| | RS_Vector ucsDefaults = toUCSVector(defaults); |
| | double uix = toDouble(sx, 0.0, ucsDefaults.x); |
| | double uiy = toDouble(sy, 0.0, ucsDefaults.y); |
| |
|
| | const RS_Vector &uiPos = RS_Vector(uix,uiy); |
| | RS_Vector entityPos = toWCSVector(uiPos); |
| | return entityPos; |
| | } |
| |
|
| | RS_Vector LC_EntityPropertiesDlg::toWCS(QLineEdit* leX, const QLineEdit* leY, const RS_Vector& defaults) const{ |
| | return toWCSVector(leX->text(), leY->text(), defaults); |
| | } |
| |
|
| | RS_Vector LC_EntityPropertiesDlg::toWCSRaw(QLineEdit* leX, const QLineEdit* leY, const RS_Vector& defs) const{ |
| | return RS_Vector(toDouble(leX->text(), 0, defs.x), toDouble(leY->text(), 0, defs.y)); |
| | } |
| |
|
| | double LC_EntityPropertiesDlg::toWCSValue(QLineEdit* ed, double wcsDefault){ |
| | return toWCSValue(ed->text(), wcsDefault); |
| | } |
| |
|
| | double LC_EntityPropertiesDlg::toWCSAngle(QLineEdit* ed, double wcsDefault){ |
| | return toWCSAngle(ed->text(), wcsDefault); |
| | } |
| |
|
| | double LC_EntityPropertiesDlg::toDouble(const QString &strValue, double notMeaningful, double defValue) const { |
| | double result = 0.; |
| | const bool meaningful = toDouble(strValue, result, notMeaningful, false); |
| | return meaningful ? result : defValue; |
| | } |
| |
|
| | double LC_EntityPropertiesDlg::toDoubleAngle(const QString &strValue, double notMeaningful, double defValue) const { |
| | double result = 0.; |
| | const bool meaningful = toDoubleAngle(strValue, result, notMeaningful, false); |
| | return meaningful ? result : defValue; |
| | } |
| |
|
| | bool LC_EntityPropertiesDlg::toDouble(const QString& strValue, double &res, double notMeaningful, bool positiveOnly) const{ |
| | return LC_Convert::toDouble(strValue, res, notMeaningful, positiveOnly); |
| | } |
| |
|
| | bool LC_EntityPropertiesDlg::toDoubleAngle(const QString& strValue, double &res, double notMeaningful, bool positiveOnly) const{ |
| | return LC_Convert::parseToToDoubleAngleDegrees(strValue, res, notMeaningful, positiveOnly); |
| | } |
| |
|
| | QString LC_EntityPropertiesDlg::asString(double value) const{ |
| | return LC_Convert::asString(value); |
| | } |
| |
|
| | QString LC_EntityPropertiesDlg::asStringAngle(double value) const{ |
| | return LC_Convert::asStringAngle(value); |
| | } |
| |
|
| | QString LC_EntityPropertiesDlg::asStringAngleDeg(double value) const{ |
| | return LC_Convert::asStringAngleDeg(value); |
| | } |
| |
|