00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkUnstructuredGridVolumeMapper.h,v $ 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 =========================================================================*/ 00027 #ifndef __vtkUnstructuredGridVolumeMapper_h 00028 #define __vtkUnstructuredGridVolumeMapper_h 00029 00030 #include "vtkAbstractVolumeMapper.h" 00031 00032 class vtkRenderer; 00033 class vtkVolume; 00034 class vtkUnstructuredGrid; 00035 class vtkWindow; 00036 00037 00038 class VTK_VOLUMERENDERING_EXPORT vtkUnstructuredGridVolumeMapper : public vtkAbstractVolumeMapper 00039 { 00040 public: 00041 vtkTypeRevisionMacro(vtkUnstructuredGridVolumeMapper,vtkAbstractVolumeMapper); 00042 void PrintSelf( ostream& os, vtkIndent indent ); 00043 00045 00046 virtual void SetInput( vtkUnstructuredGrid * ); 00047 virtual void SetInput( vtkDataSet * ); 00048 vtkUnstructuredGrid *GetInput(); 00050 00051 vtkSetMacro( BlendMode, int ); 00052 void SetBlendModeToComposite() 00053 { this->SetBlendMode( vtkUnstructuredGridVolumeMapper::COMPOSITE_BLEND ); } 00054 void SetBlendModeToMaximumIntensity() 00055 { this->SetBlendMode( vtkUnstructuredGridVolumeMapper::MAXIMUM_INTENSITY_BLEND ); } 00056 vtkGetMacro( BlendMode, int ); 00057 00058 00059 //BTX 00060 00063 virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0; 00064 00069 virtual void ReleaseGraphicsResources(vtkWindow *) {}; 00070 00071 enum 00072 { 00073 COMPOSITE_BLEND, 00074 MAXIMUM_INTENSITY_BLEND 00075 }; 00076 00077 //ETX 00078 00079 protected: 00080 vtkUnstructuredGridVolumeMapper(); 00081 ~vtkUnstructuredGridVolumeMapper(); 00082 00083 int BlendMode; 00084 00085 virtual int FillInputPortInformation(int, vtkInformation*); 00086 00087 private: 00088 vtkUnstructuredGridVolumeMapper(const vtkUnstructuredGridVolumeMapper&); // Not implemented. 00089 void operator=(const vtkUnstructuredGridVolumeMapper&); // Not implemented. 00090 }; 00091 00092 00093 #endif 00094 00095