23 this->xOriginEdit->setValidator(origin_x_validator);
25 this->yOriginEdit->setValidator(origin_y_validator);
27 this->zOriginEdit->setValidator(origin_z_validator);
30 this->xLengthEdit->setValidator(x_length_validator);
32 this->yLengthEdit->setValidator(y_length_validator);
34 this->zLengthEdit->setValidator(z_length_validator);
36 auto* x_n_elem_validator =
new QIntValidator(1, 10000000,
this);
37 this->xElemEdit->setValidator(x_n_elem_validator);
38 auto* y_n_elem_validator =
new QIntValidator(1, 10000000,
this);
39 this->yElemEdit->setValidator(y_n_elem_validator);
40 auto* z_n_elem_validator =
new QIntValidator(1, 10000000,
this);
41 this->zElemEdit->setValidator(z_n_elem_validator);
96 QString
const type_str =
97 (this->meshExtentButton->isChecked()) ?
"mesh" :
"element";
98 if (this->xLengthEdit->text().isEmpty())
101 "\nextent in x-direction.");
104 if (this->xElemEdit->text().isEmpty())
106 OGSError::box(
"Please specify number of\nelements in x-direction.");
109 if (this->xOriginEdit->text().isEmpty() ||
110 this->yOriginEdit->text().isEmpty() ||
111 this->zOriginEdit->text().isEmpty())
113 OGSError::box(
"Please specify coordinates\nof mesh origin.");
116 if (this->meshNameEdit->text().isEmpty())
122 if (!this->lineButton->isChecked())
124 if (this->yLengthEdit->text().isEmpty())
127 "\nextent in y-direction.");
130 if (this->yElemEdit->text().isEmpty())
132 OGSError::box(
"Please specify number of\nelements in y-direction.");
137 if (this->prismButton->isChecked() || this->hexButton->isChecked())
139 if (this->zLengthEdit->text().isEmpty())
142 "\nextent in z-direction.");
145 if (this->zElemEdit->text().isEmpty())
147 OGSError::box(
"Please specify number of\nelements in z-direction.");
161 if ((this->xLengthEdit->text().toDouble() <= 0) ||
162 (this->yLengthEdit->text().toDouble() <= 0) ||
163 (this->zLengthEdit->text().toDouble() <= 0))
169 if ((this->xElemEdit->text().toDouble() <= 0) ||
170 (this->yElemEdit->text().toDouble() <= 0) ||
171 (this->zElemEdit->text().toDouble() <= 0))
173 OGSError::box(
"Number of elements needs to be larger than 0.");
177 GeoLib::Point const origin(this->xOriginEdit->text().toDouble(),
178 this->yOriginEdit->text().toDouble(),
179 this->zOriginEdit->text().toDouble());
180 std::string
const name(this->meshNameEdit->text().toStdString());
182 if (this->lineButton->isChecked())
184 if (this->meshExtentButton->isChecked())
187 this->xLengthEdit->text().toDouble(),
188 this->xElemEdit->text().toInt(), origin, name);
193 this->xElemEdit->text().toInt(),
194 this->xLengthEdit->text().toDouble(), origin, name);
197 else if (this->triButton->isChecked())
199 if (this->meshExtentButton->isChecked())
202 this->xLengthEdit->text().toDouble(),
203 this->yLengthEdit->text().toDouble(),
204 this->xElemEdit->text().toInt(),
205 this->yElemEdit->text().toInt(), origin, name);
210 this->xElemEdit->text().toInt(),
211 this->yElemEdit->text().toInt(),
212 this->xLengthEdit->text().toDouble(),
213 this->yLengthEdit->text().toDouble(), origin, name);
216 else if (this->quadButton->isChecked())
218 if (this->meshExtentButton->isChecked())
221 this->xLengthEdit->text().toDouble(),
222 this->yLengthEdit->text().toDouble(),
223 this->xElemEdit->text().toInt(),
224 this->yElemEdit->text().toInt(), origin, name);
229 this->xElemEdit->text().toInt(),
230 this->yElemEdit->text().toInt(),
231 this->xLengthEdit->text().toDouble(),
232 this->yLengthEdit->text().toDouble(), origin, name);
235 else if (this->prismButton->isChecked())
237 if (this->meshExtentButton->isChecked())
240 this->xLengthEdit->text().toDouble(),
241 this->yLengthEdit->text().toDouble(),
242 this->zLengthEdit->text().toDouble(),
243 this->xElemEdit->text().toInt(),
244 this->yElemEdit->text().toInt(),
245 this->zElemEdit->text().toInt(), origin, name);
250 this->xLengthEdit->text().toDouble(),
251 this->yLengthEdit->text().toDouble(),
252 this->zLengthEdit->text().toDouble(),
253 this->xElemEdit->text().toInt(),
254 this->yElemEdit->text().toInt(),
255 this->zElemEdit->text().toInt(), origin, name);
258 else if (this->hexButton->isChecked())
260 if (this->meshExtentButton->isChecked())
263 this->xLengthEdit->text().toDouble(),
264 this->yLengthEdit->text().toDouble(),
265 this->zLengthEdit->text().toDouble(),
266 this->xElemEdit->text().toInt(),
267 this->yElemEdit->text().toInt(),
268 this->zElemEdit->text().toInt(), origin, name);
273 this->xElemEdit->text().toInt(),
274 this->yElemEdit->text().toInt(),
275 this->zElemEdit->text().toInt(),
276 this->xLengthEdit->text().toDouble(),
277 this->yLengthEdit->text().toDouble(),
278 this->zLengthEdit->text().toDouble(), origin, name);
290 assert(mat_ids !=
nullptr);
293 this->done(QDialog::Accepted);