this->m_Data->GetWindowLevel( win_lev );
// Intensity range
+ this->m_UI->MinimumBox->setMinimum( -1000000 );
+ this->m_UI->MinimumBox->setMaximum( 1000000 );
+ this->m_UI->MaximumBox->setMinimum( -1000000 );
+ this->m_UI->MaximumBox->setMaximum( 1000000 );
this->m_UI->MinimumBox->setValue( range[ 0 ] );
this->m_UI->MaximumBox->setValue( range[ 1 ] );
default : this->m_UI->InterpolatorBox->setCurrentIndex( 0 ); break;
} // hctiws
- /* TODO
- this->connect(
- this->m_UI->Top, SIGNAL( splitterMoved( int, int ) ),
- this, SLOT( _SyncBottom( int, int ) )
- );
- */
-
+ // Slots <-> signals
this->connect(
this->m_UI->MaximumBox, SIGNAL( valueChanged( int ) ),
this, SLOT( _maximumValue( int ) )
void cpExtensions::QT::WindowLevelImageConfiguration::
_maximumValue( int v )
{
+ double range[ 2 ];
+ range[ 0 ] = double( this->m_UI->MinimumBox->value( ) );
+ range[ 1 ] = double( v );
+ this->m_Data->SetScalarRange( range );
}
// -------------------------------------------------------------------------
void cpExtensions::QT::WindowLevelImageConfiguration::
_minimumValue( int v )
{
+ double range[ 2 ];
+ range[ 0 ] = double( v );
+ range[ 1 ] = double( this->m_UI->MaximumBox->value( ) );
+ this->m_Data->SetScalarRange( range );
}
// -------------------------------------------------------------------------
void cpExtensions::QT::WindowLevelImageConfiguration::
_levelValue( int v )
{
+ double r[ 2 ];
+ double l, s;
+
+ this->m_Data->GetScalarRange( r );
+ if( this->sender( ) == this->m_UI->LevelSlider )
+ {
+ s = double( v ) / double( this->m_UI->LevelSlider->maximum( ) );
+ l = ( ( r[ 1 ] - r[ 0 ] ) * s ) + r[ 0 ];
+ }
+ else
+ {
+ l = double( v );
+ s = ( l - r[ 0 ] ) / ( r[ 1 ] - r[ 0 ] );
+
+ } // fi
+ s *= this->m_UI->LevelSlider->maximum( );
+
+ bool b = this->m_UI->LevelSlider->blockSignals( true );
+ this->m_UI->LevelSlider->setValue( s );
+ this->m_UI->LevelSlider->blockSignals( b );
+ b = this->m_UI->LevelBox->blockSignals( true );
+ this->m_UI->LevelBox->setValue( l );
+ this->m_UI->LevelBox->blockSignals( b );
+
+ double wl[ 2 ];
+ this->m_Data->GetWindowLevel( wl );
+ wl[ 1 ] = l;
+ this->m_Data->SetWindowLevel( wl );
}
// -------------------------------------------------------------------------
void cpExtensions::QT::WindowLevelImageConfiguration::
_windowValue( int v )
{
+ double r[ 2 ];
+ double w, s;
+
+ this->m_Data->GetScalarRange( r );
+ if( this->sender( ) == this->m_UI->WindowSlider )
+ {
+ s = double( v ) / double( this->m_UI->WindowSlider->maximum( ) );
+ w = ( ( r[ 1 ] - r[ 0 ] ) * s ) + r[ 0 ];
+ }
+ else
+ {
+ w = double( v );
+ s = ( w - r[ 0 ] ) / ( r[ 1 ] - r[ 0 ] );
+
+ } // fi
+ s *= this->m_UI->WindowSlider->maximum( );
+
+ bool b = this->m_UI->WindowSlider->blockSignals( true );
+ this->m_UI->WindowSlider->setValue( s );
+ this->m_UI->WindowSlider->blockSignals( b );
+ b = this->m_UI->WindowBox->blockSignals( true );
+ this->m_UI->WindowBox->setValue( w );
+ this->m_UI->WindowBox->blockSignals( b );
+
+ double wl[ 2 ];
+ this->m_Data->GetWindowLevel( wl );
+ wl[ 0 ] = w;
+ this->m_Data->SetWindowLevel( wl );
}
// -------------------------------------------------------------------------
void cpExtensions::QT::WindowLevelImageConfiguration::
_interpolatorValue( int v )
{
+ switch( v )
+ {
+ case 1 : this->m_Data->SetImageInterpolation( 'L' ); break;
+ case 2 : this->m_Data->SetImageInterpolation( 'C' ); break;
+ default : this->m_Data->SetImageInterpolation( 'N' ); break;
+ } // hctiws
}
#endif // cpExtensions_QT4