VTK
vtkBlueObeliskDataParser.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkBlueObeliskDataParser.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
36 #ifndef vtkBlueObeliskDataParser_h
37 #define vtkBlueObeliskDataParser_h
38 
39 #include "vtkDomainsChemistryModule.h" // For export macro
40 #include "vtkXMLParser.h"
41 
42 #include "vtkSmartPointer.h" // For vtkSmartPointer
43 
44 class vtkAbstractArray;
45 class vtkBlueObeliskData;
46 class vtkFloatArray;
47 class vtkStdString;
48 class vtkStringArray;
50 
51 class VTKDOMAINSCHEMISTRY_EXPORT vtkBlueObeliskDataParser : public vtkXMLParser
52 {
53  public:
55  static vtkBlueObeliskDataParser * New();
56 
61  virtual void SetTarget(vtkBlueObeliskData *bodr);
62 
66  virtual int Parse();
67 
69 
74  virtual int Parse(const char *);
75  virtual int Parse(const char *, unsigned int);
77 
78 protected:
81 
82  void StartElement(const char *name, const char **attr);
83  void EndElement(const char *name);
84 
85  void CharacterDataHandler(const char *data, int length);
86 
87  void SetCurrentValue(const char *data, int length);
88  void SetCurrentValue(const char *data);
89 
91 
93  void NewAtomStarted(const char **attr);
94  void NewAtomFinished();
95 
97  void NewValueStarted(const char **attr);
98  void NewValueFinished();
99 
101 
103  None = 0,
122  } CurrentValueType;
123 
130  float CurrentMass;
137  float CurrentDefaultColor[3];
140  unsigned int CurrentPeriod;
141  unsigned int CurrentGroup;
142 
143 private:
144  vtkBlueObeliskDataParser(const vtkBlueObeliskDataParser&) VTK_DELETE_FUNCTION;
145  void operator=(const vtkBlueObeliskDataParser&) VTK_DELETE_FUNCTION;
146 
148 
151  static void ResizeArrayIfNeeded(vtkAbstractArray *arr, vtkIdType ind);
152  static void ResizeAndSetValue(vtkStdString *val,
153  vtkStringArray *arr,
154  vtkIdType ind);
155  static void ResizeAndSetValue(float val,
156  vtkFloatArray *arr,
157  vtkIdType ind);
158  static void ResizeAndSetValue(unsigned short val,
160  vtkIdType ind);
162 
164 
167  static int parseInt(const char *);
168  static float parseFloat(const char *);
169  static void parseFloat3(const char * str, float[3]);
170  static unsigned short parseUnsignedShort(const char *);
172 
174 
178  static vtkStdString * ToLower(vtkStdString *);
179 };
181 
182 #endif
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:47
virtual int Parse()
Parse the XML input.
Parse XML to handle element tags and attributes.
Definition: vtkXMLParser.h:42
Abstract superclass for all arrays.
virtual void StartElement(const char *name, const char **atts)
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:41
a vtkAbstractArray subclass for strings
int vtkIdType
Definition: vtkType.h:287
virtual void CharacterDataHandler(const char *data, int length)
virtual void EndElement(const char *name)
static vtkXMLParser * New()
Fill a vtkBlueObeliskData container with data from the BODR XML dataset.
dynamic, self-adjusting array of unsigned short
Contains chemical data from the Blue Obelisk Data Repository.