#include <cpExtensions/cpExtensions_Export.h>
#include <cpExtensions/Visualization/ImageSliceActors.h>
-#include <vtkActor.h>
-#include <vtkImageMapToColors.h>
-
-// -------------------------------------------------------------------------
-class vtkAlgorithmOutput;
-class vtkImageData;
-class vtkRenderer;
-class vtkScalarsToColors;
-class vtkWindowLevelLookupTable;
-
-// -------------------------------------------------------------------------
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 );
- cpPlugins_ImageSliceActors( ImageOutline, vtkImageActor );
-
public:
// Creation
static MPRActors* New( );
ImageSliceActors* GetSliceActors( const int& i ) const;
- void SetInputConnection( vtkAlgorithmOutput* aout );
- void SetInputData( vtkImageData* image );
-
- void PushDataInto(
- vtkRenderer* x,
- vtkRenderer* y,
- vtkRenderer* z,
- vtkRenderer* w
+
+ int AddInputConnection( vtkAlgorithmOutput* aout );
+ 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
);
- // Lookup table methods
- vtkScalarsToColors* GetLookupTable( ) const;
- void SetLookupTable( vtkScalarsToColors* lut );
-
- // Grayscale window/level lookup
- vtkWindowLevelLookupTable* GetLookupTableAsWindowLevel( ) const;
- void SetLookupTableToWindowLevel( );
- double GetMinWindow( ) const;
- double GetMaxWindow( ) const;
- double GetMinLevel( ) const;
- double GetMaxLevel( ) const;
- double GetWindow( ) const;
- double GetLevel( ) const;
- void SetWindow( const double& w );
- void SetLevel( const double& l );
- void SetWindowLevel( const double& w, const double& l );
- void ResetWindowLevel( );
+ double GetWindow( );
+ double GetLevel( );
// Slice access
int GetSliceNumberMinValue( const int& axis ) const;
void SetSlice( const int& axis, const double& slice );
void ResetSlices( );
- // General accessors
- void GetImageBounds( double bounds[ 6 ] ) const;
-
protected:
MPRActors( );
virtual ~MPRActors( );
- vtkImageData* _InputImage( ) const;
- void _UpdateSlices( );
+ 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:
- vtkSmartPointer< vtkImageMapToColors > ImageMapToColors;
- vtkSmartPointer< vtkActor > ImageOutlineActor;
-
- typedef
- cpExtensions::Visualization::ImageSliceActors
- _TSlice;
- vtkSmartPointer< _TSlice > Slices[ 3 ];
-
- unsigned int ImageOutlineActorIndex;
+ vtkSmartPointer< vtkActor > ImageOutlineActor;
+ vtkSmartPointer< ImageSliceActors > Slices[ 2 ][ 3 ];
};
} // ecapseman