]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Extensions/Visualization/MPRActors.cxx
Interaction improved: cursor
[cpPlugins.git] / lib / cpPlugins / Extensions / Visualization / MPRActors.cxx
index 1843fb17cbb0882b4831455db8c5392f109f4fca..b8332786b7ad36d2afcdfc381c1b594554bf559b 100644 (file)
@@ -287,30 +287,59 @@ GetSlicePlane( const int& axis ) const
 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 ] );
 }
 
 // -------------------------------------------------------------------------