Sketcher: [skip ci] add function to sketch validation panel to remove degenerated geometry

This commit is contained in:
wmayer
2020-08-13 17:24:10 +02:00
parent d8bc05b162
commit 2b34145e4c
5 changed files with 154 additions and 43 deletions

View File

@@ -234,7 +234,7 @@ void SketcherValidation::on_findReversed_clicked()
ui->swapReversed->setEnabled(false);
}
} else {
QMessageBox::warning(this, tr("Reversed external geometry"),
QMessageBox::information(this, tr("Reversed external geometry"),
tr("No reversed external-geometry arcs were found."));
}
}
@@ -350,6 +350,41 @@ void SketcherValidation::hidePoints()
}
}
void SketcherValidation::on_findDegenerated_clicked()
{
double prec = Precision::Confusion();
int count = sketchAnalyser.detectDegeneratedGeometries(prec);
if (count == 0) {
QMessageBox::information(this, tr("No degenerated geometry"),
tr("No degenerated geometry found"));
ui->fixDegenerated->setEnabled(false);
}
else {
QMessageBox::warning(this, tr("Degenerated geometry"),
tr("%1 degenerated geometry found").arg(count));
ui->fixDegenerated->setEnabled(true);
}
}
void SketcherValidation::on_fixDegenerated_clicked()
{
// undo command open
App::Document* doc = sketch->getDocument();
doc->openTransaction("Remove degenerated geometry");
double prec = Precision::Confusion();
sketchAnalyser.removeDegeneratedGeometries(prec);
ui->fixButton->setEnabled(false);
hidePoints();
// finish the transaction and update
Gui::WaitCursor wc;
doc->commitTransaction();
doc->recompute();
}
// -----------------------------------------------
TaskSketcherValidation::TaskSketcherValidation(Sketcher::SketchObject* Obj)