00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkBMPReader.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 =========================================================================*/ 00043 #ifndef __vtkBMPReader_h 00044 #define __vtkBMPReader_h 00045 00046 #include "vtkImageReader.h" 00047 class vtkLookupTable; 00048 00049 class VTK_IO_EXPORT vtkBMPReader : public vtkImageReader 00050 { 00051 public: 00052 static vtkBMPReader *New(); 00053 vtkTypeRevisionMacro(vtkBMPReader,vtkImageReader); 00054 00055 void PrintSelf(ostream& os, vtkIndent indent); 00056 00058 00059 vtkGetMacro(Depth,int); 00061 00063 virtual int CanReadFile(const char* fname); 00064 00066 00068 virtual const char* GetFileExtensions() 00069 { 00070 return ".bmp"; 00071 } 00073 00075 00077 virtual const char* GetDescriptiveName() 00078 { 00079 return "Windows BMP"; 00080 } 00082 00084 00087 vtkSetMacro(Allow8BitBMP,int); 00088 vtkGetMacro(Allow8BitBMP,int); 00089 vtkBooleanMacro(Allow8BitBMP,int); 00091 00092 vtkGetObjectMacro(LookupTable, vtkLookupTable); 00093 00094 //BTX 00096 00097 vtkGetMacro(Colors,unsigned char *); 00099 //ETX 00100 00101 protected: 00102 vtkBMPReader(); 00103 ~vtkBMPReader(); 00104 00105 unsigned char *Colors; 00106 short Depth; 00107 int Allow8BitBMP; 00108 vtkLookupTable *LookupTable; 00109 00110 virtual void ComputeDataIncrements(); 00111 virtual void ExecuteInformation(); 00112 virtual void ExecuteData(vtkDataObject *out); 00113 private: 00114 vtkBMPReader(const vtkBMPReader&); // Not implemented. 00115 void operator=(const vtkBMPReader&); // Not implemented. 00116 }; 00117 #endif 00118 00119