VTK
|
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