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
46class vtkFloatArray;
47class vtkStdString;
48class vtkStringArray;
50
51class VTKDOMAINSCHEMISTRY_EXPORT vtkBlueObeliskDataParser : public vtkXMLParser
52{
53 public:
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
78protected:
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);
95
97 void NewValueStarted(const char **attr);
99
101
103 None = 0,
121 Group
122 } CurrentValueType;
123
137 float CurrentDefaultColor[3];
140 unsigned int CurrentPeriod;
141 unsigned int CurrentGroup;
142
143private:
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
Abstract superclass for all arrays.
Fill a vtkBlueObeliskData container with data from the BODR XML dataset.
virtual int Parse(const char *, unsigned int)
static vtkBlueObeliskDataParser * New()
void EndElement(const char *name)
void NewAtomStarted(const char **attr)
void CharacterDataHandler(const char *data, int length)
virtual int Parse()
Start parsing.
void NewValueStarted(const char **attr)
void SetCurrentValue(const char *data)
void StartElement(const char *name, const char **attr)
virtual void SetTarget(vtkBlueObeliskData *bodr)
Set the target vtkBlueObeliskData object that this parser will populate.
virtual int Parse(const char *)
These are only implemented to prevent compiler warnings about hidden virtual overloads.
void SetCurrentValue(const char *data, int length)
Contains chemical data from the Blue Obelisk Data Repository.
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:42
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:49
a vtkAbstractArray subclass for strings
dynamic, self-adjusting array of unsigned short
Parse XML to handle element tags and attributes.
Definition: vtkXMLParser.h:43
@ Group
Definition: vtkX3D.h:51
@ length
Definition: vtkX3D.h:393
@ name
Definition: vtkX3D.h:219
@ data
Definition: vtkX3D.h:315
@ string
Definition: vtkX3D.h:490
int vtkIdType
Definition: vtkType.h:287