VTK
vtkBlueObeliskData.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkBlueObeliskData.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 vtkBlueObeliskData_h
37 #define vtkBlueObeliskData_h
38 
39 #include "vtkDomainsChemistryModule.h" // For export macro
40 #include "vtkObject.h"
41 #include "vtkNew.h" // For vtkNew
42 
43 class vtkAbstractArray;
44 class vtkFloatArray;
45 class vtkStringArray;
46 class vtkSimpleMutexLock;
48 
49 // Hidden STL reference: std::vector<vtkAbstractArray*>
50 class MyStdVectorOfVtkAbstractArrays;
51 
52 class VTKDOMAINSCHEMISTRY_EXPORT vtkBlueObeliskData : public vtkObject
53 {
54  public:
56  void PrintSelf(ostream& os, vtkIndent indent) override;
57  static vtkBlueObeliskData *New();
58 
65  void Initialize();
66 
70  bool IsInitialized() { return this->Initialized;}
71 
73 
77  vtkGetObjectMacro(WriteMutex, vtkSimpleMutexLock);
79 
81 
85  vtkGetMacro(NumberOfElements, unsigned short);
87 
89 
92  vtkGetNewMacro(Symbols, vtkStringArray);
93  vtkGetNewMacro(LowerSymbols, vtkStringArray);
94  vtkGetNewMacro(Names, vtkStringArray);
95  vtkGetNewMacro(LowerNames, vtkStringArray);
96  vtkGetNewMacro(PeriodicTableBlocks, vtkStringArray);
98  vtkGetNewMacro(Families, vtkStringArray);
100 
101  vtkGetNewMacro(Masses, vtkFloatArray);
102  vtkGetNewMacro(ExactMasses, vtkFloatArray);
103  vtkGetNewMacro(IonizationEnergies, vtkFloatArray);
104  vtkGetNewMacro(ElectronAffinities, vtkFloatArray);
105  vtkGetNewMacro(PaulingElectronegativities, vtkFloatArray);
106  vtkGetNewMacro(CovalentRadii, vtkFloatArray);
107  vtkGetNewMacro(VDWRadii, vtkFloatArray);
108  vtkGetNewMacro(DefaultColors, vtkFloatArray);
109  vtkGetNewMacro(BoilingPoints, vtkFloatArray);
110  vtkGetNewMacro(MeltingPoints, vtkFloatArray);
111 
112  vtkGetNewMacro(Periods, vtkUnsignedShortArray);
113  vtkGetNewMacro(Groups, vtkUnsignedShortArray);
114 
119  static bool GenerateHeaderFromXML(std::istream &xml, std::ostream &header);
120 
121  protected:
123 
125  ~vtkBlueObeliskData() override;
126 
129 
134  virtual int Allocate(vtkIdType sz, vtkIdType ext=1000);
135 
139  virtual void Reset();
140 
144  virtual void Squeeze();
145 
146  unsigned short NumberOfElements;
147 
148  // Lists all arrays
149  MyStdVectorOfVtkAbstractArrays *Arrays;
150 
151  // Atomic Symbols
154 
155  // Element Names
158 
159  // Misc Strings
162  vtkNew<vtkStringArray> Families; // Non-Metal, Noblegas, Metalloids, etc
163 
164  // Misc Data
172  vtkNew<vtkFloatArray> DefaultColors; // rgb 3-tuples, [0.0,1.0]
175  vtkNew<vtkUnsignedShortArray> Periods; // Row of periodic table
176  vtkNew<vtkUnsignedShortArray> Groups; // Column of periodic table
177 
178  void PrintSelfIfExists(const char *, vtkObject *, ostream&, vtkIndent);
179 
180  private:
181  vtkBlueObeliskData(const vtkBlueObeliskData&) = delete;
182  void operator=(const vtkBlueObeliskData&) = delete;
183 };
184 
185 #endif
vtkBlueObeliskData::PaulingElectronegativities
vtkNew< vtkFloatArray > PaulingElectronegativities
Definition: vtkBlueObeliskData.h:169
vtkBlueObeliskData::Families
vtkNew< vtkStringArray > Families
Definition: vtkBlueObeliskData.h:162
_vtkBlueObeliskData::VDWRadii
static const float VDWRadii[119][1]
Definition: vtkBlueObeliskDataInternal.h:1597
vtkBlueObeliskData::MeltingPoints
vtkNew< vtkFloatArray > MeltingPoints
Definition: vtkBlueObeliskData.h:174
vtkBlueObeliskData::ElectronicConfigurations
vtkNew< vtkStringArray > ElectronicConfigurations
Definition: vtkBlueObeliskData.h:161
_vtkBlueObeliskData::LowerSymbols
static const char * LowerSymbols[119]
Definition: vtkBlueObeliskDataInternal.h:133
vtkIdType
int vtkIdType
Definition: vtkType.h:347
vtkUnsignedShortArray
dynamic, self-adjusting array of unsigned short
Definition: vtkUnsignedShortArray.h:39
vtkBlueObeliskData::PeriodicTableBlocks
vtkNew< vtkStringArray > PeriodicTableBlocks
Definition: vtkBlueObeliskData.h:160
vtkFloatArray
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:35
vtkBlueObeliskData::Initialized
bool Initialized
Definition: vtkBlueObeliskData.h:128
vtkBlueObeliskData::BoilingPoints
vtkNew< vtkFloatArray > BoilingPoints
Definition: vtkBlueObeliskData.h:173
_vtkBlueObeliskData::Families
static const char * Families[119]
Definition: vtkBlueObeliskDataInternal.h:743
vtkBlueObeliskData::Groups
vtkNew< vtkUnsignedShortArray > Groups
Definition: vtkBlueObeliskData.h:176
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
_vtkBlueObeliskData::IonizationEnergies
static const float IonizationEnergies[119][1]
Definition: vtkBlueObeliskDataInternal.h:1109
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:53
vtkBlueObeliskData::LowerSymbols
vtkNew< vtkStringArray > LowerSymbols
Definition: vtkBlueObeliskData.h:153
_vtkBlueObeliskData::Masses
static const float Masses[119][1]
Definition: vtkBlueObeliskDataInternal.h:865
vtkBlueObeliskData::IsInitialized
bool IsInitialized()
Check if this object has been initialized yet.
Definition: vtkBlueObeliskData.h:70
_vtkBlueObeliskData::PeriodicTableBlocks
static const char * PeriodicTableBlocks[119]
Definition: vtkBlueObeliskDataInternal.h:499
vtkBlueObeliskData::LowerNames
vtkNew< vtkStringArray > LowerNames
Definition: vtkBlueObeliskData.h:157
vtkBlueObeliskDataParser
Fill a vtkBlueObeliskData container with data from the BODR XML dataset.
Definition: vtkBlueObeliskDataParser.h:51
_vtkBlueObeliskData::BoilingPoints
static const float BoilingPoints[119][1]
Definition: vtkBlueObeliskDataInternal.h:1841
vtkBlueObeliskData::DefaultColors
vtkNew< vtkFloatArray > DefaultColors
Definition: vtkBlueObeliskData.h:172
_vtkBlueObeliskData::ElectronAffinities
static const float ElectronAffinities[119][1]
Definition: vtkBlueObeliskDataInternal.h:1231
vtkBlueObeliskData::CovalentRadii
vtkNew< vtkFloatArray > CovalentRadii
Definition: vtkBlueObeliskData.h:170
vtkBlueObeliskData::Symbols
vtkNew< vtkStringArray > Symbols
Definition: vtkBlueObeliskData.h:152
_vtkBlueObeliskData::Periods
static const unsigned short Periods[119][1]
Definition: vtkBlueObeliskDataInternal.h:2085
_vtkBlueObeliskData::DefaultColors
static const float DefaultColors[119][3]
Definition: vtkBlueObeliskDataInternal.h:1719
vtkBlueObeliskData::WriteMutex
vtkSimpleMutexLock * WriteMutex
Definition: vtkBlueObeliskData.h:127
vtkBlueObeliskData
Contains chemical data from the Blue Obelisk Data Repository.
Definition: vtkBlueObeliskData.h:52
_vtkBlueObeliskData::PaulingElectronegativities
static const float PaulingElectronegativities[119][1]
Definition: vtkBlueObeliskDataInternal.h:1353
_vtkBlueObeliskData::LowerNames
static const char * LowerNames[119]
Definition: vtkBlueObeliskDataInternal.h:377
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkBlueObeliskData::VDWRadii
vtkNew< vtkFloatArray > VDWRadii
Definition: vtkBlueObeliskData.h:171
vtkBlueObeliskData::Periods
vtkNew< vtkUnsignedShortArray > Periods
Definition: vtkBlueObeliskData.h:175
vtkNew< vtkStringArray >
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkBlueObeliskData::Names
vtkNew< vtkStringArray > Names
Definition: vtkBlueObeliskData.h:156
vtkBlueObeliskData::NumberOfElements
unsigned short NumberOfElements
Definition: vtkBlueObeliskData.h:146
vtkBlueObeliskData::IonizationEnergies
vtkNew< vtkFloatArray > IonizationEnergies
Definition: vtkBlueObeliskData.h:167
vtkObject.h
_vtkBlueObeliskData::Names
static const char * Names[119]
Definition: vtkBlueObeliskDataInternal.h:255
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:75
vtkSimpleMutexLock
Definition: vtkMutexLock.h:47
_vtkBlueObeliskData::Symbols
static const char * Symbols[119]
Definition: vtkBlueObeliskDataInternal.h:11
_vtkBlueObeliskData::ElectronicConfigurations
static const char * ElectronicConfigurations[119]
Definition: vtkBlueObeliskDataInternal.h:621
_vtkBlueObeliskData::Groups
static const unsigned short Groups[119][1]
Definition: vtkBlueObeliskDataInternal.h:2207
vtkNew.h
vtkBlueObeliskData::ElectronAffinities
vtkNew< vtkFloatArray > ElectronAffinities
Definition: vtkBlueObeliskData.h:168
_vtkBlueObeliskData::MeltingPoints
static const float MeltingPoints[119][1]
Definition: vtkBlueObeliskDataInternal.h:1963
vtkBlueObeliskData::Arrays
MyStdVectorOfVtkAbstractArrays * Arrays
Definition: vtkBlueObeliskData.h:149
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:36
_vtkBlueObeliskData::CovalentRadii
static const float CovalentRadii[119][1]
Definition: vtkBlueObeliskDataInternal.h:1475
_vtkBlueObeliskData::ExactMasses
static const float ExactMasses[119][1]
Definition: vtkBlueObeliskDataInternal.h:987
vtkBlueObeliskData::Masses
vtkNew< vtkFloatArray > Masses
Definition: vtkBlueObeliskData.h:165
vtkBlueObeliskData::ExactMasses
vtkNew< vtkFloatArray > ExactMasses
Definition: vtkBlueObeliskData.h:166