Line |
Branch |
Exec |
Source |
1 |
|
|
// |
2 |
|
|
// Copyright (c) CNRS |
3 |
|
|
// Authors: Heidy Dallard |
4 |
|
|
// |
5 |
|
|
|
6 |
|
|
#include "hppwidgetsplugin/transformconstraintwidget.hh" |
7 |
|
|
|
8 |
|
|
#include <limits> |
9 |
|
|
|
10 |
|
|
#include "hppwidgetsplugin/ui_transformconstraintwidget.h" |
11 |
|
|
|
12 |
|
|
namespace hpp { |
13 |
|
|
namespace gui { |
14 |
|
✗ |
TransformConstraintWidget::TransformConstraintWidget( |
15 |
|
|
QString const& firstJoint, QString const& secondJoint, bool doPosition, |
16 |
|
✗ |
bool doOrientation, bool isPositionConstraint, QWidget* parent) |
17 |
|
✗ |
: QWidget(parent), ui(new Ui::TransformConstraintWidget) { |
18 |
|
✗ |
ui->setupUi(this); |
19 |
|
✗ |
length_ = 0; |
20 |
|
|
|
21 |
|
✗ |
if (!doPosition) { |
22 |
|
✗ |
ui->positionGroup->setVisible(false); |
23 |
|
|
} else { |
24 |
|
✗ |
ui->xPositionWidget->setVisible(false); |
25 |
|
✗ |
ui->yPositionWidget->setVisible(false); |
26 |
|
✗ |
ui->zPositionWidget->setVisible(false); |
27 |
|
✗ |
length_ += 3; |
28 |
|
|
} |
29 |
|
✗ |
if (!doOrientation) { |
30 |
|
✗ |
ui->orientationGroup->setVisible(false); |
31 |
|
|
} else { |
32 |
|
✗ |
ui->xOrientationValue->setVisible(false); |
33 |
|
✗ |
ui->yOrientationValue->setVisible(false); |
34 |
|
✗ |
ui->zOrientationValue->setVisible(false); |
35 |
|
✗ |
length_ += 3; |
36 |
|
|
} |
37 |
|
|
|
38 |
|
✗ |
if (!isPositionConstraint || (isPositionConstraint && doOrientation)) { |
39 |
|
✗ |
ui->secondXPosition->setVisible(false); |
40 |
|
✗ |
ui->secondYPosition->setVisible(false); |
41 |
|
✗ |
ui->secondZPosition->setVisible(false); |
42 |
|
✗ |
isPositionConstraint_ = false; |
43 |
|
|
} else { |
44 |
|
✗ |
length_ += 3; |
45 |
|
✗ |
isPositionConstraint_ = true; |
46 |
|
|
} |
47 |
|
|
|
48 |
|
✗ |
ui->secondJointLabel->setText((secondJoint == "") ? "Global frame" |
49 |
|
|
: secondJoint); |
50 |
|
✗ |
ui->firstJointLabel->setText((firstJoint == "") ? "Global frame" |
51 |
|
|
: firstJoint); |
52 |
|
|
|
53 |
|
✗ |
positionEnabled_ = doPosition; |
54 |
|
✗ |
orientationEnabled_ = doOrientation; |
55 |
|
|
|
56 |
|
✗ |
this->layout()->setSizeConstraint(QLayout::SetFixedSize); |
57 |
|
✗ |
connect(ui->confirmButton, SIGNAL(clicked()), SLOT(onClick())); |
58 |
|
|
} |
59 |
|
|
|
60 |
|
✗ |
TransformConstraintWidget::~TransformConstraintWidget() { delete ui; } |
61 |
|
|
|
62 |
|
✗ |
void TransformConstraintWidget::onClick() { |
63 |
|
✗ |
QVector<double> vecDouble(length_, 0); |
64 |
|
✗ |
QVector<bool> vecBool((positionEnabled_ && orientationEnabled_) ? 6 : 3, 0); |
65 |
|
✗ |
int i = 0; |
66 |
|
|
|
67 |
|
✗ |
if (positionEnabled_) { |
68 |
|
✗ |
vecDouble[i] = ui->firstXPosition->value(); |
69 |
|
✗ |
vecDouble[i + 1] = ui->firstYPosition->value(); |
70 |
|
✗ |
vecDouble[i + 2] = ui->firstZPosition->value(); |
71 |
|
✗ |
vecBool[i] = ui->xPositionCheck->isChecked(); |
72 |
|
✗ |
vecBool[i + 1] = ui->yPositionCheck->isChecked(); |
73 |
|
✗ |
vecBool[i + 2] = ui->zPositionCheck->isChecked(); |
74 |
|
✗ |
i += 3; |
75 |
|
|
} |
76 |
|
✗ |
if (orientationEnabled_) { |
77 |
|
✗ |
vecDouble[i] = ui->xOrientationValue->value(); |
78 |
|
✗ |
vecDouble[i + 1] = ui->yOrientationValue->value(); |
79 |
|
✗ |
vecDouble[i + 2] = ui->zOrientationValue->value(); |
80 |
|
✗ |
vecBool[i] = ui->xOrientationCheck->isChecked(); |
81 |
|
✗ |
vecBool[i + 1] = ui->yOrientationCheck->isChecked(); |
82 |
|
✗ |
vecBool[i + 2] = ui->zOrientationCheck->isChecked(); |
83 |
|
✗ |
i += 3; |
84 |
|
|
} |
85 |
|
✗ |
if (isPositionConstraint_) { |
86 |
|
✗ |
vecDouble[i] = ui->secondXPosition->value(); |
87 |
|
✗ |
vecDouble[i + 1] = ui->secondYPosition->value(); |
88 |
|
✗ |
vecDouble[i + 2] = ui->secondZPosition->value(); |
89 |
|
|
} |
90 |
|
✗ |
emit finished(std::make_pair(vecDouble, vecBool)); |
91 |
|
✗ |
this->deleteLater(); |
92 |
|
✗ |
this->close(); |
93 |
|
|
} |
94 |
|
|
} // namespace gui |
95 |
|
|
} // namespace hpp |
96 |
|
|
|