#ifndef _vtkKWPageView_h #define _vtkKWPageView_h #include "vtkKWFrame.h" #include #include class vtkKWRenderWidget; class vtkKWIcon; class vtkViewImage2D; class vtkViewImage2DWithTracer; class vtkViewImage2DWithRegister; class vtkViewImage3D; class vtkRenderWindow; class vtkImageData; class vtkDataSet; class vtkLookupTable; class vtkProperty; class vtkActor; class vtkPolyData; class VTK_EXPORT vtkKWPageView : public vtkKWFrame { public: static vtkKWPageView* New(); vtkTypeRevisionMacro(vtkKWPageView,vtkKWFrame); // Description: vtkGetMacro (IsFullScreen, int); vtkSetMacro (IsFullScreen, int); vtkBooleanMacro (IsFullScreen, int); vtkGetObjectMacro (View1, vtkViewImage2D); vtkGetObjectMacro (View2, vtkViewImage2D); vtkGetObjectMacro (View3, vtkViewImage2D); vtkGetObjectMacro (View4, vtkViewImage3D); vtkGetObjectMacro (RenderWidget1, vtkKWRenderWidget); vtkGetObjectMacro (RenderWidget2, vtkKWRenderWidget); vtkGetObjectMacro (RenderWidget3, vtkKWRenderWidget); vtkGetObjectMacro (RenderWidget4, vtkKWRenderWidget); virtual void SetImage (vtkImageData* metaimage); virtual vtkImageData* GetImage (void); virtual void ToggleFullScreenView4 (void); virtual void ToggleFullScreenAxial (void); virtual void ToggleFullScreenCoronal (void); virtual void ToggleFullScreenSagittal (void); virtual int GetAxialScreenshot(vtkKWIcon* screenshot, int size = 32); virtual void SetScalarBarVisibility (bool state); virtual int GetScalarBarVisibility(void) const; virtual void ScalarBarVisibilityOn (void) { this->SetScalarBarVisibility (true); } virtual void ScalarBarVisibilityOff (void) { this->SetScalarBarVisibility (false); } virtual int GetVisibility (vtkDataSet* dataset); virtual void SetVisibility (vtkDataSet* dataset, bool state); virtual void Render (void); /** Get/Set methods for the viewframe tag Use this tag in case you have several vtkKWPageView to manage */ virtual const char* GetTag (void) const; virtual void SetTag (const char* path); virtual void SetLookupTable (vtkLookupTable* lut); //BTX std::vector AddDataSet(vtkDataSet* dataset, vtkProperty* property); std::vector AddPolyData(vtkPolyData* dataset, vtkProperty* property = NULL, double thickness = 0.2); //ETX void RemoveDataSet(vtkDataSet* dataset); vtkKWRenderWidget* GetActiveRenderWidget (void); protected: vtkKWPageView(); ~vtkKWPageView(); // Description: // Create the widget. virtual void CreateWidget(); virtual void CreateRenderWidgets(); virtual void Create4Views(); virtual void SetProperties(); virtual void PackSelf(); int BuildScreenshotFromImage(vtkImageData *image, vtkKWIcon* screenshot, int size = 0); int BuildScreenshotFromRenderWindow(vtkRenderWindow *win, vtkKWIcon* screenshot, int size = 0); vtkViewImage2D* View1; vtkViewImage2D* View2; vtkViewImage2D* View3; vtkViewImage3D* View4; vtkKWRenderWidget* RenderWidget1; vtkKWRenderWidget* RenderWidget2; vtkKWRenderWidget* RenderWidget3; vtkKWRenderWidget* RenderWidget4; private: vtkKWPageView(const vtkKWPageView&); // Not implemented. void operator=(const vtkKWPageView&); // Not implemented. int IsFullScreen; //BTX std::string Tag; //ETX }; #endif