VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageActor.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 =========================================================================*/ 00036 #ifndef vtkImageActor_h 00037 #define vtkImageActor_h 00038 00039 #include "vtkRenderingCoreModule.h" // For export macro 00040 #include "vtkImageSlice.h" 00041 00042 class vtkAlgorithm; 00043 class vtkPropCollection; 00044 class vtkRenderer; 00045 class vtkImageData; 00046 00047 00048 class VTKRENDERINGCORE_EXPORT vtkImageActor : public vtkImageSlice 00049 { 00050 public: 00051 vtkTypeMacro(vtkImageActor,vtkImageSlice); 00052 void PrintSelf(ostream& os, vtkIndent indent); 00053 00055 static vtkImageActor *New(); 00056 00058 00061 virtual void SetInputData(vtkImageData *); 00062 virtual vtkImageData *GetInput(); 00064 00066 00068 virtual void SetInterpolate(int); 00069 virtual int GetInterpolate(); 00070 vtkBooleanMacro(Interpolate,int); 00072 00074 00076 virtual void SetOpacity(double); 00077 virtual double GetOpacity(); 00078 double GetOpacityMinValue() { return 0.0; } 00079 double GetOpacityMaxValue() { return 1.0; } 00081 00083 00085 void SetDisplayExtent(int extent[6]); 00086 void SetDisplayExtent(int minX, int maxX, int minY, int maxY, 00087 int minZ, int maxZ); 00088 void GetDisplayExtent(int extent[6]); 00089 int *GetDisplayExtent() {return this->DisplayExtent;} 00091 00093 00097 double *GetBounds(); 00098 void GetBounds(double bounds[6]) { this->Superclass::GetBounds(bounds); }; 00100 00102 00105 double *GetDisplayBounds(); 00106 void GetDisplayBounds(double bounds[6]); 00108 00110 00112 int GetSliceNumber(); 00113 int GetSliceNumberMax(); 00114 int GetSliceNumberMin(); 00116 00118 00125 void SetZSlice(int z) {this->SetDisplayExtent( 00126 this->DisplayExtent[0], this->DisplayExtent[1], 00127 this->DisplayExtent[2], this->DisplayExtent[3], z, z); 00128 }; 00129 int GetZSlice() { return this->DisplayExtent[4];}; 00130 int GetWholeZMin(); 00131 int GetWholeZMax(); 00133 00136 virtual int HasTranslucentPolygonalGeometry(); 00137 00138 protected: 00139 vtkImageActor(); 00140 ~vtkImageActor(); 00141 00144 static int GetOrientationFromExtent(const int extent[6]); 00145 00146 int DisplayExtent[6]; 00147 double DisplayBounds[6]; 00148 00149 // Convenience function that returns the input of the mapper 00150 vtkAlgorithm *GetInputAlgorithm(); 00151 00152 private: 00153 vtkImageActor(const vtkImageActor&); // Not implemented. 00154 void operator=(const vtkImageActor&); // Not implemented. 00155 }; 00156 00157 #endif