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 "vtkProp3D.h" 00030 00031 class vtkResliceCursor; 00032 class vtkResliceCursorPolyDataAlgorithm; 00033 class vtkPolyDataMapper; 00034 class vtkActor; 00035 class vtkProperty; 00036 class vtkBoundingBox; 00037 00038 class VTK_RENDERING_EXPORT vtkResliceCursorActor : public vtkProp3D 00039 { 00040 00041 public: 00042 00044 00045 static vtkResliceCursorActor *New(); 00046 vtkTypeMacro(vtkResliceCursorActor,vtkProp3D); 00047 void PrintSelf(ostream& os, vtkIndent indent); 00049 00051 00052 vtkGetObjectMacro( CursorAlgorithm, vtkResliceCursorPolyDataAlgorithm ); 00054 00056 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00057 00059 virtual int HasTranslucentPolygonalGeometry(); 00060 00064 void ReleaseGraphicsResources(vtkWindow *); 00065 00067 double *GetBounds(); 00068 00070 unsigned long int GetMTime(); 00071 00073 00074 vtkProperty *GetCenterlineProperty( int i ); 00075 vtkProperty *GetThickSlabProperty( int i ); 00077 00079 vtkActor * GetCenterlineActor(int axis); 00080 00082 virtual void SetUserMatrix( vtkMatrix4x4 *matrix); 00083 00084 protected: 00085 vtkResliceCursorActor(); 00086 ~vtkResliceCursorActor(); 00087 00088 void UpdateViewProps( vtkViewport * v = NULL ); 00089 void UpdateHoleSize( vtkViewport * v ); 00090 00091 vtkResliceCursorPolyDataAlgorithm * CursorAlgorithm; 00092 vtkPolyDataMapper * CursorCenterlineMapper[3]; 00093 vtkActor * CursorCenterlineActor[3]; 00094 vtkPolyDataMapper * CursorThickSlabMapper[3]; 00095 vtkActor * CursorThickSlabActor[3]; 00096 vtkProperty * CenterlineProperty[3]; 00097 vtkProperty * ThickSlabProperty[3]; 00098 00099 private: 00100 vtkResliceCursorActor(const vtkResliceCursorActor&); // Not implemented. 00101 void operator=(const vtkResliceCursorActor&); // Not implemented. 00102 }; 00103 00104 #endif