VTK
dox/Interaction/Widgets/vtkResliceCursorActor.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkResliceCursorActor.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00026 #ifndef __vtkResliceCursorActor_h
00027 #define __vtkResliceCursorActor_h
00028 
00029 #include "vtkInteractionWidgetsModule.h" // For export macro
00030 #include "vtkProp3D.h"
00031 
00032 class vtkResliceCursor;
00033 class vtkResliceCursorPolyDataAlgorithm;
00034 class vtkPolyDataMapper;
00035 class vtkActor;
00036 class vtkProperty;
00037 class vtkBoundingBox;
00038 
00039 class VTKINTERACTIONWIDGETS_EXPORT vtkResliceCursorActor : public vtkProp3D
00040 {
00041 
00042 public:
00043 
00045 
00046   static vtkResliceCursorActor *New();
00047   vtkTypeMacro(vtkResliceCursorActor,vtkProp3D);
00048   void PrintSelf(ostream& os, vtkIndent indent);
00050 
00052 
00053   vtkGetObjectMacro( CursorAlgorithm, vtkResliceCursorPolyDataAlgorithm );
00055 
00057   virtual int RenderOpaqueGeometry(vtkViewport *viewport);
00058 
00060   virtual int HasTranslucentPolygonalGeometry();
00061 
00065   void ReleaseGraphicsResources(vtkWindow *);
00066 
00068   double *GetBounds();
00069 
00071   unsigned long int GetMTime();
00072 
00074 
00075   vtkProperty *GetCenterlineProperty( int i );
00076   vtkProperty *GetThickSlabProperty( int i );
00078 
00080   vtkActor * GetCenterlineActor(int axis);
00081 
00083   virtual void SetUserMatrix( vtkMatrix4x4 *matrix);
00084 
00085 protected:
00086   vtkResliceCursorActor();
00087   ~vtkResliceCursorActor();
00088 
00089   void UpdateViewProps( vtkViewport * v = NULL );
00090   void UpdateHoleSize( vtkViewport * v );
00091 
00092   vtkResliceCursorPolyDataAlgorithm * CursorAlgorithm;
00093   vtkPolyDataMapper                 * CursorCenterlineMapper[3];
00094   vtkActor                          * CursorCenterlineActor[3];
00095   vtkPolyDataMapper                 * CursorThickSlabMapper[3];
00096   vtkActor                          * CursorThickSlabActor[3];
00097   vtkProperty                       * CenterlineProperty[3];
00098   vtkProperty                       * ThickSlabProperty[3];
00099 
00100 private:
00101   vtkResliceCursorActor(const vtkResliceCursorActor&);  // Not implemented.
00102   void operator=(const vtkResliceCursorActor&);  // Not implemented.
00103 };
00104 
00105 #endif