36 : QDialog(win),
Ui::PrimitiveFactoryDlg(), m_win(win) {
41 connect(createPushButton, &QAbstractButton::clicked,
this,
43 connect(closePushButton, &QAbstractButton::clicked,
this, &QDialog::accept);
44 connect(spherePosFromClipboardButton, &QPushButton::clicked,
this,
46 connect(spherePosToOriginButton, &QPushButton::clicked,
this,
48 connect(csSetMatrixBasedOnSelectedObjectButton, &QPushButton::clicked,
this,
50 connect(csMatrixTextEdit, &QPlainTextEdit::textChanged,
this,
52 connect(csClearMatrixButton, &QPushButton::clicked,
this,
61 switch (tabWidget->currentIndex()) {
65 planeWidthDoubleSpinBox->value()),
67 planeHeightDoubleSpinBox->value()));
72 boxDxDoubleSpinBox->value()),
74 boxDyDoubleSpinBox->value()),
76 boxDzDoubleSpinBox->value()));
77 primitive =
new ccBox(dims);
84 spherePosYDoubleSpinBox->value(),
85 spherePosZDoubleSpinBox->value()));
88 sphereRadiusDoubleSpinBox->value()),
95 cylRadiusDoubleSpinBox->value()),
97 cylHeightDoubleSpinBox->value()));
103 coneBottomRadiusDoubleSpinBox->value()),
105 coneTopRadiusDoubleSpinBox->value()),
107 coneHeightDoubleSpinBox->value()),
109 snoutGroupBox->isChecked()
110 ? coneXOffsetDoubleSpinBox->value()
113 snoutGroupBox->isChecked()
114 ? coneYOffsetDoubleSpinBox->value()
121 torusInsideRadiusDoubleSpinBox->value()),
123 torusOutsideRadiusDoubleSpinBox->value()),
126 torusAngleDoubleSpinBox->value())),
127 torusRectGroupBox->isChecked(),
129 torusRectGroupBox->isChecked()
130 ? torusRectSectionHeightDoubleSpinBox
138 dishRadiusDoubleSpinBox->value()),
140 dishHeightDoubleSpinBox->value()),
142 dishEllipsoidGroupBox->isChecked()
143 ? dishRadius2DoubleSpinBox->value()
158 discRadiusDoubleSpinBox->value()));
169 QClipboard* clipboard = QApplication::clipboard();
170 if (clipboard !=
nullptr) {
174 if (valuesStr.size() == 3) {
177 for (
unsigned i = 0; i < 3; ++i) {
178 vec[i] = valuesStr[i].
toDouble(&success);
182 spherePosXDoubleSpinBox->setValue(vec.
x);
183 spherePosYDoubleSpinBox->setValue(vec.
y);
184 spherePosZDoubleSpinBox->setValue(vec.
z);
191 spherePosXDoubleSpinBox->setValue(0);
192 spherePosYDoubleSpinBox->setValue(0);
193 spherePosZDoubleSpinBox->setValue(0);
198 for (
auto entity : selectedEnt) {
199 csMatrixTextEdit->setPlainText(
200 entity->getGLTransformationHistory().toString());
213 csMatrixTextEdit->blockSignals(
true);
214 csMatrixTextEdit->setPlainText(
215 "1.00000000 0.00000000 0.00000000 0.00000000\n0.00000000 "
216 "1.00000000 0.00000000 0.00000000\n0.00000000 0.00000000 "
217 "1.00000000 0.00000000\n0.00000000 0.00000000 0.00000000 "
219 csMatrixTextEdit->blockSignals(
false);
223 QString text = csMatrixTextEdit->toPlainText();
224 if (text.contains(
"[")) {
228 static const QtCompatRegExp squareBracketsFilter(
"\\[([^]]+)\\]");
229 text.replace(squareBracketsFilter,
"");
230 csMatrixTextEdit->blockSignals(
true);
231 csMatrixTextEdit->setPlainText(text);
232 csMatrixTextEdit->blockSignals(
false);
Vector3Tpl< float > CCVector3f
Float 3D Vector.
float PointCoordinateType
Type of the coordinates of a (N-D) point.
QStringList qtCompatSplitRegex(const QString &str, const QString &pattern, Qt::SplitBehavior behavior=Qt::KeepEmptyParts)
QRegularExpression QtCompatRegExp
static bool Print(const char *format,...)
Prints out a formatted message in console.
const ccHObject::Container & getSelectedEntities() const override
Returns currently selected entities ("read only")
void addToDB(const QStringList &filenames, QString fileFilter=QString(), bool displayDialog=true)
Vector3Tpl< double > toDouble() const
Cast operator to a double vector (explicit call version)
Coordinate System (primitive)
void setTranslation(const Vector3Tpl< float > &Tr)
Sets translation (float version)
static ccGLMatrixTpl< float > FromString(const QString &matText, bool &success)
Converts a 'text' matrix to a ccGLMatrix.
virtual void toIdentity()
Sets matrix to identity.
Float version of ccGLMatrixTpl.
Generic primitive interface.
std::vector< ccHObject * > Container
Standard instances container (for children, etc.)
ccGLMatrix getCSMatrix(bool &valid)
void onMatrixTextChange()
ecvPrimitiveFactoryDlg(MainWindow *win)
Default constructor.
void setSpherePositionToOrigin()
Set sphere position to origin.
void setSpherePositionFromClipboard()
Set sphere position from clipboard.
void createPrimitive()
Creates currently defined primitive.
MainWindow * m_win
Associated main window.
void setCSMatrixToIdentity()
void setCoordinateSystemBasedOnSelectedObject()
constexpr Qt::SplitBehavior SkipEmptyParts
float DegreesToRadians(int degrees)
Convert degrees to radians.