VTK
vtkOpenQubeElectronicData.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkOpenQubeElectronicData.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 =========================================================================*/
24 #ifndef vtkOpenQubeElectronicData_h
25 #define vtkOpenQubeElectronicData_h
26 
27 #include "vtkDomainsChemistryModule.h" // For export macro
29 #include "vtkNew.h" // for vtkNew
30 
31 namespace OpenQube {
32  class BasisSet;
33  class Cube;
34 }
35 
36 class vtkImageData;
38 
39 class VTKDOMAINSCHEMISTRY_EXPORT vtkOpenQubeElectronicData
41 {
42 public:
45  void PrintSelf(ostream& os, vtkIndent indent);
46 
51 
55  unsigned int GetNumberOfElectrons();
56 
61  vtkImageData * GetMO(vtkIdType orbitalNumber);
62 
68 
70 
73  vtkSetMacro(BasisSet, OpenQube::BasisSet*);
74  vtkGetMacro(BasisSet, OpenQube::BasisSet*);
76 
78 
82  vtkSetMacro(Padding, double);
83  vtkGetMacro(Padding, double);
85 
87 
90  vtkSetMacro(Spacing, double);
91  vtkGetMacro(Spacing, double);
93 
95 
98  vtkGetNewMacro(Images, vtkDataSetCollection);
100 
104  virtual void DeepCopy(vtkDataObject *obj);
105 
106 protected:
109 
111 
115  vtkImageData * CalculateMO(vtkIdType orbitalNumber);
116  vtkImageData * CalculateElectronDensity();
118 
122  void FillImageDataFromQube(OpenQube::Cube *qube,
124 
129 
133  OpenQube::BasisSet *BasisSet;
134 
138  double Spacing;
139 
140 private:
141  vtkOpenQubeElectronicData(const vtkOpenQubeElectronicData&) VTK_DELETE_FUNCTION;
142  void operator=(const vtkOpenQubeElectronicData&) VTK_DELETE_FUNCTION;
143 };
144 
145 #endif
maintain an unordered list of dataset objects
vtkNew< vtkDataSetCollection > Images
Cache of calculated image data.
static vtkDataObject * New()
virtual vtkIdType GetNumberOfElectrons()=0
Returns the number of electrons in the molecule.
int vtkIdType
Definition: vtkType.h:287
void DeepCopy(vtkDataObject *obj) override
Deep copies the data object into this.
Provides access to and storage of chemical electronic data.
virtual vtkImageData * GetElectronDensity()=0
Returns vtkImageData for the molecule's electron density.
a simple class to control print indentation
Definition: vtkIndent.h:39
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
double Spacing
Used to determine the spacing of the image data.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
virtual vtkIdType GetNumberOfMOs()=0
Returns the number of molecular orbitals available.
Provides access to and storage of electronic data calculated by OpenQube.
OpenQube::BasisSet * BasisSet
The OpenQube::BasisSet object used to calculate the images.
virtual vtkImageData * GetMO(vtkIdType orbitalNumber)=0
Returns the vtkImageData for the requested molecular orbital.
general representation of visualization data
Definition: vtkDataObject.h:64