VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkDelimitedTextReader.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 =========================================================================*/ 00015 /*------------------------------------------------------------------------- 00016 Copyright 2008 Sandia Corporation. 00017 Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 00018 the U.S. Government retains certain rights in this software. 00019 -------------------------------------------------------------------------*/ 00020 00021 00069 #ifndef __vtkDelimitedTextReader_h 00070 #define __vtkDelimitedTextReader_h 00071 00072 #include "vtkTableAlgorithm.h" 00073 #include "vtkUnicodeString.h" // Needed for vtkUnicodeString 00074 #include "vtkStdString.h" // Needed for vtkStdString 00075 00076 class VTK_INFOVIS_EXPORT vtkDelimitedTextReader : public vtkTableAlgorithm 00077 { 00078 public: 00079 static vtkDelimitedTextReader* New(); 00080 vtkTypeMacro(vtkDelimitedTextReader, vtkTableAlgorithm); 00081 void PrintSelf(ostream& os, vtkIndent indent); 00082 00084 00085 vtkGetStringMacro(FileName); 00086 vtkSetStringMacro(FileName); 00088 00090 00098 vtkGetStringMacro(UnicodeCharacterSet); 00099 vtkSetStringMacro(UnicodeCharacterSet); 00101 00103 00106 void SetUTF8RecordDelimiters(const char* delimiters); 00107 const char* GetUTF8RecordDelimiters(); 00108 void SetUnicodeRecordDelimiters(const vtkUnicodeString& delimiters); 00109 vtkUnicodeString GetUnicodeRecordDelimiters(); 00111 00113 00118 vtkSetStringMacro(FieldDelimiterCharacters); 00119 vtkGetStringMacro(FieldDelimiterCharacters); 00121 00122 void SetUTF8FieldDelimiters(const char* delimiters); 00123 const char* GetUTF8FieldDelimiters(); 00124 void SetUnicodeFieldDelimiters(const vtkUnicodeString& delimiters); 00125 vtkUnicodeString GetUnicodeFieldDelimiters(); 00126 00128 00133 vtkGetMacro(StringDelimiter, char); 00134 vtkSetMacro(StringDelimiter, char); 00136 00137 void SetUTF8StringDelimiters(const char* delimiters); 00138 const char* GetUTF8StringDelimiters(); 00139 void SetUnicodeStringDelimiters(const vtkUnicodeString& delimiters); 00140 vtkUnicodeString GetUnicodeStringDelimiters(); 00141 00143 00144 vtkSetMacro(UseStringDelimiter, bool); 00145 vtkGetMacro(UseStringDelimiter, bool); 00146 vtkBooleanMacro(UseStringDelimiter, bool); 00148 00150 00151 vtkGetMacro(HaveHeaders, bool); 00152 vtkSetMacro(HaveHeaders, bool); 00154 00156 00159 vtkSetMacro(MergeConsecutiveDelimiters, bool); 00160 vtkGetMacro(MergeConsecutiveDelimiters, bool); 00161 vtkBooleanMacro(MergeConsecutiveDelimiters, bool); 00163 00165 00168 vtkGetMacro(MaxRecords, vtkIdType); 00169 vtkSetMacro(MaxRecords, vtkIdType); 00171 00173 00176 vtkSetMacro(DetectNumericColumns, bool); 00177 vtkGetMacro(DetectNumericColumns, bool); 00178 vtkBooleanMacro(DetectNumericColumns, bool); 00180 00182 00185 vtkSetMacro(ForceDouble, bool); 00186 vtkGetMacro(ForceDouble, bool); 00187 vtkBooleanMacro(ForceDouble, bool); 00189 00191 00200 vtkSetMacro(TrimWhitespacePriorToNumericConversion, bool); 00201 vtkGetMacro(TrimWhitespacePriorToNumericConversion, bool); 00202 vtkBooleanMacro(TrimWhitespacePriorToNumericConversion, bool); 00204 00206 00209 vtkSetMacro(DefaultIntegerValue, int); 00210 vtkGetMacro(DefaultIntegerValue, int); 00212 00214 00217 vtkSetMacro(DefaultDoubleValue, double); 00218 vtkGetMacro(DefaultDoubleValue, double); 00220 00222 00224 vtkSetStringMacro(PedigreeIdArrayName); 00225 vtkGetStringMacro(PedigreeIdArrayName); 00227 00229 00231 vtkSetMacro(GeneratePedigreeIds, bool); 00232 vtkGetMacro(GeneratePedigreeIds, bool); 00233 vtkBooleanMacro(GeneratePedigreeIds, bool); 00235 00237 00238 vtkSetMacro(OutputPedigreeIds, bool); 00239 vtkGetMacro(OutputPedigreeIds, bool); 00240 vtkBooleanMacro(OutputPedigreeIds, bool); 00242 00246 vtkStdString GetLastError(); 00247 00249 00252 vtkSetMacro(ReplacementCharacter, vtkTypeUInt32); 00253 vtkGetMacro(ReplacementCharacter, vtkTypeUInt32); 00255 00256 //BTX 00257 protected: 00258 vtkDelimitedTextReader(); 00259 ~vtkDelimitedTextReader(); 00260 00261 int RequestData( 00262 vtkInformation*, 00263 vtkInformationVector**, 00264 vtkInformationVector*); 00265 00266 char* FileName; 00267 char* UnicodeCharacterSet; 00268 vtkIdType MaxRecords; 00269 vtkUnicodeString UnicodeRecordDelimiters; 00270 vtkUnicodeString UnicodeFieldDelimiters; 00271 vtkUnicodeString UnicodeStringDelimiters; 00272 vtkUnicodeString UnicodeWhitespace; 00273 vtkUnicodeString UnicodeEscapeCharacter; 00274 bool DetectNumericColumns; 00275 bool ForceDouble; 00276 bool TrimWhitespacePriorToNumericConversion; 00277 int DefaultIntegerValue; 00278 double DefaultDoubleValue; 00279 char* FieldDelimiterCharacters; 00280 char StringDelimiter; 00281 bool UseStringDelimiter; 00282 bool HaveHeaders; 00283 bool UnicodeOutputArrays; 00284 bool MergeConsecutiveDelimiters; 00285 char* PedigreeIdArrayName; 00286 bool GeneratePedigreeIds; 00287 bool OutputPedigreeIds; 00288 vtkStdString LastError; 00289 vtkTypeUInt32 ReplacementCharacter; 00290 00291 private: 00292 vtkDelimitedTextReader(const vtkDelimitedTextReader&); // Not implemented 00293 void operator=(const vtkDelimitedTextReader&); // Not implemented 00294 //ETX 00295 }; 00296 00297 #endif 00298