Enable overlaying circular arcs and algebraic traits arrangements.

This commit is contained in:
Alex Tsui 2012-08-20 20:40:31 +00:00
parent 95f2de9801
commit 51b0dc6c96
2 changed files with 62 additions and 1 deletions

View File

@ -794,6 +794,10 @@ on_actionOverlay_triggered( )
Conic_arr* conic_arr2; Conic_arr* conic_arr2;
Lin_arr* lin_arr; Lin_arr* lin_arr;
Lin_arr* lin_arr2; Lin_arr* lin_arr2;
Arc_arr* arc_arr;
Arc_arr* arc_arr2;
Alg_seg_arr* alg_arr;
Alg_seg_arr* alg_arr2;
if ( CGAL::assign( seg_arr, arrs[ 0 ] ) && CGAL::assign( seg_arr2, arrs[ 1 ] ) ) if ( CGAL::assign( seg_arr, arrs[ 0 ] ) && CGAL::assign( seg_arr2, arrs[ 1 ] ) )
{ {
this->makeOverlayTab( seg_arr, seg_arr2 ); this->makeOverlayTab( seg_arr, seg_arr2 );
@ -810,7 +814,14 @@ on_actionOverlay_triggered( )
{ {
this->makeOverlayTab( lin_arr, lin_arr2 ); this->makeOverlayTab( lin_arr, lin_arr2 );
} }
if ( CGAL::assign( arc_arr, arrs[ 0 ] ) && CGAL::assign( arc_arr2, arrs[ 1 ] ) )
{
this->makeOverlayTab( arc_arr, arc_arr2 );
}
if ( CGAL::assign( alg_arr, arrs[ 0 ] ) && CGAL::assign( alg_arr2, arrs[ 1 ] ) )
{
this->makeOverlayTab( alg_arr, alg_arr2 );
}
#if 0 #if 0
if ( CGAL::assign( conic_arr, arrs[ 0 ] ) || CGAL::assign( conic_arr, arrs[ 1 ] ) ) if ( CGAL::assign( conic_arr, arrs[ 0 ] ) || CGAL::assign( conic_arr, arrs[ 1 ] ) )

View File

@ -33,6 +33,8 @@ OverlayDialog( ArrangementDemoWindow* parent, Qt::WindowFlags f ):
Pol_arr* pol; Pol_arr* pol;
Conic_arr* conic; Conic_arr* conic;
Lin_arr* lin; Lin_arr* lin;
Arc_arr* arc;
Alg_seg_arr* alg;
if ( CGAL::assign( seg, arrangements[ i ] ) ) if ( CGAL::assign( seg, arrangements[ i ] ) )
{ {
icon.addFile(QString::fromUtf8(":/icons/green_icon.xpm"), QSize(), QIcon::Normal, QIcon::Off); icon.addFile(QString::fromUtf8(":/icons/green_icon.xpm"), QSize(), QIcon::Normal, QIcon::Off);
@ -49,6 +51,14 @@ OverlayDialog( ArrangementDemoWindow* parent, Qt::WindowFlags f ):
{ {
icon.addFile(QString::fromUtf8(":/icons/blue_icon.xpm"), QSize(), QIcon::Normal, QIcon::Off); icon.addFile(QString::fromUtf8(":/icons/blue_icon.xpm"), QSize(), QIcon::Normal, QIcon::Off);
} }
else if ( CGAL::assign( arc, arrangements[ i ] ) )
{
icon.addFile(QString::fromUtf8(":/icons/green_icon.xpm"), QSize(), QIcon::Normal, QIcon::Off);
}
else if ( CGAL::assign( alg, arrangements[ i ] ) )
{
icon.addFile(QString::fromUtf8(":/icons/yellow_icon.xpm"), QSize(), QIcon::Normal, QIcon::Off);
}
item->setIcon( icon ); item->setIcon( icon );
} }
} }
@ -128,6 +138,8 @@ restrictSelection( QListWidgetItem* item )
Pol_arr* pol; Pol_arr* pol;
Conic_arr* conic; Conic_arr* conic;
Lin_arr* lin; Lin_arr* lin;
Arc_arr* arc;
Alg_seg_arr* alg;
if ( CGAL::assign( seg, o ) ) if ( CGAL::assign( seg, o ) )
{ {
for ( int i = 0; i < this->ui->arrangementsListWidget->count( ); ++i ) for ( int i = 0; i < this->ui->arrangementsListWidget->count( ); ++i )
@ -204,6 +216,44 @@ restrictSelection( QListWidgetItem* item )
otherItem->setFlags( flags ); otherItem->setFlags( flags );
} }
} }
else if ( CGAL::assign( arc, o ) )
{
for ( int i = 0; i < this->ui->arrangementsListWidget->count( ); ++i )
{
QListWidgetItem* otherItem = this->ui->arrangementsListWidget->item( i );
CGAL::Object o2 = otherItem->data( ARRANGEMENT ).value< CGAL::Object >( );
bool enabled = CGAL::assign( arc, o2 );
Qt::ItemFlags flags = otherItem->flags( );
if ( ! enabled )
{
flags &= ~( Qt::ItemIsEnabled );
}
else
{
flags |= Qt::ItemIsEnabled;
}
otherItem->setFlags( flags );
}
}
else if ( CGAL::assign( alg, o ) )
{
for ( int i = 0; i < this->ui->arrangementsListWidget->count( ); ++i )
{
QListWidgetItem* otherItem = this->ui->arrangementsListWidget->item( i );
CGAL::Object o2 = otherItem->data( ARRANGEMENT ).value< CGAL::Object >( );
bool enabled = CGAL::assign( alg, o2 );
Qt::ItemFlags flags = otherItem->flags( );
if ( ! enabled )
{
flags &= ~( Qt::ItemIsEnabled );
}
else
{
flags |= Qt::ItemIsEnabled;
}
otherItem->setFlags( flags );
}
}
} }
void void