int cpPlugins::Extensions::Visualization::MPRActors::
GetSliceNumberMinValue( const int& axis ) const
{
+ return( this->Slices[ axis ]->GetSliceNumberMinValue( ) );
}
// -------------------------------------------------------------------------
int cpPlugins::Extensions::Visualization::MPRActors::
GetSliceNumberMaxValue( const int& axis ) const
{
+ return( this->Slices[ axis ]->GetSliceNumberMaxValue( ) );
}
// -------------------------------------------------------------------------
int cpPlugins::Extensions::Visualization::MPRActors::
GetSlice( const int& axis ) const
{
+ return( this->Slices[ axis ]->GetSliceNumber( ) );
}
// -------------------------------------------------------------------------
void cpPlugins::Extensions::Visualization::MPRActors::
SetSlice( const int& axis, const int& slice )
{
+ // Get image data extent
+ if( this->Image == NULL )
+ return;
+ int ext[ 6 ];
+ this->Image->GetExtent( ext );
+
+ // Check if the slice is valid
+ int real = slice;
+ if( slice < ext[ axis << 1 ] )
+ real = ext[ axis << 1 ];
+ if( ext[ ( axis << 1 ) + 1 ] < slice )
+ real = ext[ ( axis << 1 ) + 1 ];
+
+ // Change slice
+ this->Slices[ axis ]->SetSliceNumber( real );
+ this->Modified( );
}
// -------------------------------------------------------------------------
void cpPlugins::Extensions::Visualization::MPRActors::
SetSlice( const int& axis, const double& slice )
{
+ if( this->Image == NULL )
+ return;
+
+ double x[ 3 ] = { double( 0 ) };
+ double pcoords[ 3 ];
+ int ijk[ 3 ];
+
+ x[ axis ] = slice;
+ this->Image->ComputeStructuredCoordinates( x, ijk, pcoords );
+ this->SetSlice( axis, ijk[ axis ] );
}
// -------------------------------------------------------------------------