/*************************************************************************** * Copyright (c) 2009 Jürgen Riegel * * * * This file is part of the FreeCAD CAx development system. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Library General Public * * License as published by the Free Software Foundation; either * * version 2 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU Library General Public License for more details. * * * * You should have received a copy of the GNU Library General Public * * License along with this library; see the file COPYING.LIB. If not, * * write to the Free Software Foundation, Inc., 59 Temple Place, * * Suite 330, Boston, MA 02111-1307, USA * * * ***************************************************************************/ #include "PreCompiled.h" #ifndef _PreComp_ #endif #include #include #include "ui_TaskTrajectoryDressUpParameter.h" #include "TaskTrajectoryDressUpParameter.h" #include #include #include #include #include #include #include #include using namespace RobotGui; using namespace Gui; TaskTrajectoryDressUpParameter::TaskTrajectoryDressUpParameter(Robot::TrajectoryDressUpObject *obj,QWidget *parent) : TaskBox(Gui::BitmapFactory().pixmap("Robot_TrajectoryDressUp"), tr("Dress Up Parameter"), true, parent), pcObject(obj) { // we need a separate container widget to add all controls to proxy = new QWidget(this); ui = new Ui_TaskTrajectoryDressUpParameter(); ui->setupUi(proxy); QMetaObject::connectSlotsByName(this); this->groupLayout()->addWidget(proxy); // pump the actual values in the Gui ui->doubleSpinBoxSpeed->setValue (pcObject->Speed.getValue() / 1000.0) ; ui->doubleSpinBoxAccel->setValue (pcObject->Acceleration.getValue() / 1000.0) ; ui->checkBoxUseSpeed ->setChecked (pcObject->UseSpeed.getValue()) ; ui->checkBoxUseAccel ->setChecked (pcObject->UseAcceleration.getValue()) ; ui->comboBoxCont ->setCurrentIndex (pcObject->ContType.getValue()) ; ui->comboBoxOrientation->setCurrentIndex (pcObject->AddType.getValue()) ; PosAdd = pcObject->PosAdd.getValue(); viewPlacement(); QObject::connect(ui->toolButtonChoosePlacement,SIGNAL(clicked()),this,SLOT(createPlacementDlg())); } TaskTrajectoryDressUpParameter::~TaskTrajectoryDressUpParameter() { delete ui; } void TaskTrajectoryDressUpParameter::writeValues(void) { pcObject->Speed.setValue ( ui->doubleSpinBoxSpeed->value()*1000.0); pcObject->Acceleration.setValue ( ui->doubleSpinBoxAccel->value()*1000.0); pcObject->UseSpeed.setValue ( ui->checkBoxUseSpeed ->isChecked() ); pcObject->UseAcceleration.setValue( ui->checkBoxUseAccel ->isChecked() ); pcObject->ContType.setValue ( ui->comboBoxCont ->currentIndex()); pcObject->AddType.setValue ( ui->comboBoxOrientation->currentIndex()); pcObject->PosAdd.setValue(PosAdd); } void TaskTrajectoryDressUpParameter::createPlacementDlg(void) { Gui::Dialog::Placement *plc = new Gui::Dialog::Placement(); plc->setPlacement(PosAdd); if(plc->exec()==QDialog::Accepted){ PosAdd = plc->getPlacement(); viewPlacement(); } } void TaskTrajectoryDressUpParameter::viewPlacement(void) { double A,B,C; Base::Vector3d pos = PosAdd.getPosition(); PosAdd.getRotation().getYawPitchRoll(A,B,C); QString val = QString::fromAscii("(%1,%2,%3),(%4,%5,%6)\n") .arg(pos.x,0,'g',6) .arg(pos.y,0,'g',6) .arg(pos.z,0,'g',6) .arg(A,0,'g',6) .arg(B,0,'g',6) .arg(C,0,'g',6); ui->lineEditPlacement->setText(val); } #include "moc_TaskTrajectoryDressUpParameter.cpp"