#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,
- ImageSliceActors::LUTType lut = ImageSliceActors::LUTType_WindowLevel
- );
- int AddInputData(
- vtkImageData* image,
- ImageSliceActors::LUTType lut = ImageSliceActors::LUTType_WindowLevel
- );
+ int AddInputConnection( vtkAlgorithmOutput* aout );
+ int AddInputData( vtkImageData* new_image );
+ unsigned int GetNumberOfImages( ) const;
void PushActorsInto(
vtkRenderWindow* x,
vtkRenderWindow* z,
vtkRenderWindow* w
);
- void PopDataFrom(
- vtkRenderer* x,
- vtkRenderer* y,
- vtkRenderer* z,
- vtkRenderer* w
+ void PopActorsFrom(
+ vtkRenderWindow* x,
+ vtkRenderWindow* y,
+ vtkRenderWindow* z,
+ vtkRenderWindow* w
);
- // 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 SetWindowLevel( unsigned int i, const double& w, const double& l );
- void ResetWindowLevel( unsigned int i );
-
- // Color lookup table
- void SetLookupTableToColor(
- unsigned int i,
- const double& r = double( 1 ),
- const double& g = double( 0 ),
- const double& b = double( 0 )
- );
+ 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 _SetSlices( double* pos, int axis, void* data );
+ 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:
- // TODO: std::vector< vtkSmartPointer< vtkImageMapToColors > > ImageMaps;
vtkSmartPointer< vtkActor > ImageOutlineActor;
vtkSmartPointer< ImageSliceActors > Slices[ 2 ][ 3 ];
};