00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkUnstructuredGridVolumeMapper.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00031 #ifndef __vtkUnstructuredGridVolumeMapper_h 00032 #define __vtkUnstructuredGridVolumeMapper_h 00033 00034 #include "vtkAbstractVolumeMapper.h" 00035 00036 class vtkRenderer; 00037 class vtkVolume; 00038 class vtkUnstructuredGrid; 00039 class vtkWindow; 00040 00041 00042 class VTK_RENDERING_EXPORT vtkUnstructuredGridVolumeMapper : public vtkAbstractVolumeMapper 00043 { 00044 public: 00045 vtkTypeRevisionMacro(vtkUnstructuredGridVolumeMapper,vtkAbstractVolumeMapper); 00046 void PrintSelf( ostream& os, vtkIndent indent ); 00047 00049 00050 virtual void SetInput( vtkUnstructuredGrid * ); 00051 virtual void SetInput( vtkDataSet * ); 00052 vtkUnstructuredGrid *GetInput(); 00054 00055 vtkSetMacro( BlendMode, int ); 00056 void SetBlendModeToComposite() 00057 { this->SetBlendMode( vtkUnstructuredGridVolumeMapper::COMPOSITE_BLEND ); } 00058 void SetBlendModeToMaximumIntensity() 00059 { this->SetBlendMode( vtkUnstructuredGridVolumeMapper::MAXIMUM_INTENSITY_BLEND ); } 00060 vtkGetMacro( BlendMode, int ); 00061 00062 00063 //BTX 00064 00067 virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0; 00068 00073 virtual void ReleaseGraphicsResources(vtkWindow *) {}; 00074 00075 enum 00076 { 00077 COMPOSITE_BLEND, 00078 MAXIMUM_INTENSITY_BLEND 00079 }; 00080 00081 //ETX 00082 00083 protected: 00084 vtkUnstructuredGridVolumeMapper(); 00085 ~vtkUnstructuredGridVolumeMapper(); 00086 00087 int BlendMode; 00088 00089 private: 00090 vtkUnstructuredGridVolumeMapper(const vtkUnstructuredGridVolumeMapper&); // Not implemented. 00091 void operator=(const vtkUnstructuredGridVolumeMapper&); // Not implemented. 00092 }; 00093 00094 00095 #endif 00096 00097