124 std::vector< int > holes;
125 std::vector< int > objects;
129 QProgressDialog progress(tr(
"Filling holes..."), tr(
"Abort"), 0, holes.size(), 0);
130 progress.setWindowModality(Qt::ApplicationModal);
131 progress.setValue(0);
148 o_it->setObjectData(HOLEINFO, holeInfo);
152 for (uint i = 0; i < objects.size(); i++)
153 if ( objects[i] == o_it->id() ){
156 if (progress.wasCanceled())
159 progress.setValue(++counter);
172 emit log(
LOGWARN, tr(
"HoleFilling unsupported for poly meshes") );
177 if (progress.wasCanceled())
189 std::vector< int > holes;
190 std::vector< int > objects;
207 o_it->setObjectData(HOLEINFO, holeInfo);
211 MeshSelection::clearEdgeSelection(mesh);
214 for (uint i = 0; i < objects.size(); i++)
215 if ( objects[i] == o_it->id() )
219 if ( (objects.size() == 1) && (holes.size() == 1) && ( objects[0] == o_it->id() ) ){
229 object->boundingBox(_bbMin, _bbMax);
248 o_it->setObjectData(HOLEINFO, holeInfo);
252 MeshSelection::clearEdgeSelection(mesh);
255 for (uint i = 0; i < objects.size(); i++)
256 if ( objects[i] == o_it->id() )
260 if ( (objects.size() == 1) && (holes.size() == 1) && ( objects[0] == o_it->id() ) ){
270 object->boundingBox(_bbMin, _bbMax);
417 tool_->tableWidget->clear();
419 tool_->tableWidget->setRowCount ( 0 );
420 tool_->tableWidget->setColumnCount ( 4 );
422 QStringList headerdata;
423 headerdata << tr(
"Object") << tr(
"Edges") << tr(
"Boundary Length") << tr(
"BB Diagonal");
425 tool_->tableWidget->setHorizontalHeaderLabels(headerdata);
426 tool_->updateGeometry();
441 elements += holeInfo->
holes()->size();
442 tool_->tableWidget->setRowCount ( elements );
445 for (uint i = 0 ; i < holeInfo->
holes()->size() ; ++i ) {
447 QTableWidgetItem*
name =
new QTableWidgetItem( o_it->name() );
448#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
451 name->setFlags( Qt::ItemFlags() );
453 name->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled);
454 tool_->tableWidget->setItem(count,0,
name);
456 size_t egde_count = 0;
458 double boundaryLength = 0.0;
460 holeInfo->
getHoleInfo(i, egde_count, bbDiagonal, boundaryLength);
463 QTableWidgetItem* size =
new QTableWidgetItem( QString::number( egde_count ) );
464#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
467 size->setFlags( Qt::ItemFlags() );
469 size->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled);
470 tool_->tableWidget->setItem(count,1,size);
473 QTableWidgetItem* boundaryLengthWidget =
new QTableWidgetItem( QString::number(boundaryLength) );
474#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
475 boundaryLengthWidget->setFlags( 0 );
477 boundaryLengthWidget->setFlags( Qt::ItemFlags() );
479 boundaryLengthWidget->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled);
480 tool_->tableWidget->setItem(count,2,boundaryLengthWidget);
482 QTableWidgetItem* bbDiagonalWidget =
new QTableWidgetItem( QString::number(bbDiagonal) );
483#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
484 bbDiagonalWidget->setFlags( 0 );
486 bbDiagonalWidget->setFlags( Qt::ItemFlags() );
488 bbDiagonalWidget->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled);
489 tool_->tableWidget->setItem(count,3,bbDiagonalWidget);
492 holeMapping_.push_back( std::pair<int , int>( o_it->id() , i ) );
505 elements += holeInfo->
holes()->size();
506 tool_->tableWidget->setRowCount ( elements );
509 for (uint i = 0 ; i < holeInfo->
holes()->size() ; ++i ) {
511 QTableWidgetItem*
name =
new QTableWidgetItem( o_it->name() );
512#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
515 name->setFlags( Qt::ItemFlags() );
517 name->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled);
518 tool_->tableWidget->setItem(count,0,
name);
520 size_t egde_count = 0;
521 double boundaryLength = 0.0;
524 holeInfo->
getHoleInfo(i, egde_count, boundaryLength, bbDiagonal);
527 QTableWidgetItem* size =
new QTableWidgetItem( QString::number( egde_count ) );
528#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
531 size->setFlags( Qt::ItemFlags() );
533 size->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled);
534 tool_->tableWidget->setItem(count,1,size);
537 QTableWidgetItem* radius =
new QTableWidgetItem( QString::number(boundaryLength) );
538#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
539 radius->setFlags( 0 );
541 radius->setFlags( Qt::ItemFlags() );
543 radius->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled);
544 tool_->tableWidget->setItem(count,2,radius);
547 QTableWidgetItem* bbDiagonalWidget =
new QTableWidgetItem( QString::number(bbDiagonal) );
548#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
549 bbDiagonalWidget->setFlags( 0 );
551 bbDiagonalWidget->setFlags( Qt::ItemFlags() );
553 bbDiagonalWidget->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled);
554 tool_->tableWidget->setItem(count,3,bbDiagonalWidget);
557 holeMapping_.push_back( std::pair<int , int>( o_it->id() , i ) );
565 tool_->tableWidget->resizeColumnToContents ( 1 );