#ifndef __CPEXTENSIONS__VISUALIZATION__MPRACTORS__H__
#define __CPEXTENSIONS__VISUALIZATION__MPRACTORS__H__
-#include <vector>
-
#include <cpExtensions/cpExtensions_Export.h>
#include <cpExtensions/Visualization/ImageSliceActors.h>
-#include <vtkSmartPointer.h>
-#include <vtkActor.h>
-#include <vtkImageMapToColors.h>
-
-// -------------------------------------------------------------------------
-class vtkAlgorithmOutput;
-class vtkImageData;
-class vtkRenderer;
-class vtkScalarsToColors;
-
-// -------------------------------------------------------------------------
namespace cpExtensions
{
namespace Visualization
public:
typedef MPRActors Self;
+ typedef ImageSliceActors::TStyle TStyle;
+ typedef ImageSliceActors::TMouseCommand TMouseCommand;
+ typedef ImageSliceActors::TMouseWheelCommand TMouseWheelCommand;
+ typedef ImageSliceActors::TKeyCommand TKeyCommand;
+ typedef ImageSliceActors::TVoidCommand TVoidCommand;
+ typedef ImageSliceActors::TMouseMoveCommand TMouseMoveCommand;
+ typedef ImageSliceActors::TMouseClickCommand TMouseClickCommand;
+ typedef ImageSliceActors::TMouseDoubleClickCommand TMouseDoubleClickCommand;
+ typedef ImageSliceActors::TExposeCommand TExposeCommand;
+ typedef ImageSliceActors::TConfigureCommand TConfigureCommand;
+ typedef ImageSliceActors::TEnterCommand TEnterCommand;
+ typedef ImageSliceActors::TLeaveCommand TLeaveCommand;
+
public:
vtkTypeMacro( MPRActors, vtkPropCollection );
ImageSliceActors* GetSliceActors( const int& i ) const;
int AddInputConnection( vtkAlgorithmOutput* aout );
- int AddInputData( vtkImageData* image );
-
- /*
- void SetInputConnection( vtkAlgorithmOutput* aout );
- void SetInputData( vtkImageData* image );
- */
-
- void PushDataInto(
- vtkRenderer* x,
- vtkRenderer* y,
- vtkRenderer* z,
- vtkRenderer* w
+ int AddInputData( vtkImageData* new_image );
+ unsigned int GetNumberOfImages( ) const;
+
+ void PushActorsInto(
+ vtkRenderWindow* x,
+ vtkRenderWindow* y,
+ vtkRenderWindow* z,
+ vtkRenderWindow* w
);
- void PopDataFrom(
- vtkRenderer* x,
- vtkRenderer* y,
- vtkRenderer* z,
- vtkRenderer* w
+ void PopActorsFrom(
+ vtkRenderWindow* x,
+ vtkRenderWindow* y,
+ vtkRenderWindow* z,
+ vtkRenderWindow* w
);
- void LinkInteractors( )
- {
- this->_Update( 0 );
- this->_Update( 1 );
- this->_Update( 2 );
- }
-
- // Lookup table methods
- void SetLookupTable( unsigned int i, vtkScalarsToColors* lut );
- vtkScalarsToColors* GetLookupTable( unsigned int i ) const;
-
- // Grayscale window/level lookup
- void SetLookupTableToWindowLevel( unsigned int i );
- double GetMinWindow( unsigned int i ) const;
- double GetMaxWindow( unsigned int i ) const;
- double GetMinLevel( unsigned int i ) const;
- double GetMaxLevel( unsigned int i ) const;
- double GetWindow( unsigned int i ) const;
- double GetLevel( unsigned int i ) const;
- void SetWindow( unsigned int i, const double& w );
- void SetLevel( unsigned int i, const double& l );
- void ResetWindowLevel( unsigned int i );
+
+ double GetWindow( );
+ double GetLevel( );
// Slice access
int GetSliceNumberMinValue( const int& axis ) const;
MPRActors( );
virtual ~MPRActors( );
- vtkImageData* _Image( unsigned int i ) const;
- void _Update( unsigned int i );
+ void _CreateBoundingBox( );
+
+ static void _SlicesCommand( double* pos, int axis, void* data );
+ static void _WindowLevelCommand(
+ double window, double level, void* data
+ );
+ static void _RenderCommand( void* data );
private:
// Purposely not implemented
Self& operator=( const Self& );
protected:
- std::vector< vtkSmartPointer< vtkImageMapToColors > > ImageMaps;
vtkSmartPointer< vtkActor > ImageOutlineActor;
vtkSmartPointer< ImageSliceActors > Slices[ 2 ][ 3 ];
};