VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkProgrammableElectronicData.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 =========================================================================*/ 00023 #ifndef __vtkProgrammableElectronicData_h 00024 #define __vtkProgrammableElectronicData_h 00025 00026 #include "vtkDomainsChemistryModule.h" // For export macro 00027 #include "vtkAbstractElectronicData.h" 00028 00029 class vtkImageData; 00030 00031 class StdVectorOfImageDataPointers; 00032 00033 class VTKDOMAINSCHEMISTRY_EXPORT vtkProgrammableElectronicData 00034 : public vtkAbstractElectronicData 00035 { 00036 public: 00037 static vtkProgrammableElectronicData *New(); 00038 vtkTypeMacro(vtkProgrammableElectronicData,vtkAbstractElectronicData); 00039 void PrintSelf(ostream& os, vtkIndent indent); 00040 00042 00044 virtual vtkIdType GetNumberOfMOs(); 00045 virtual void SetNumberOfMOs(vtkIdType); 00047 00049 00051 vtkGetMacro(NumberOfElectrons, vtkIdType); 00052 vtkSetMacro(NumberOfElectrons, vtkIdType); 00054 00056 00057 virtual vtkImageData * GetMO(vtkIdType orbitalNumber); 00058 void SetMO(vtkIdType orbitalNumber, vtkImageData *data); 00060 00062 00063 vtkGetObjectMacro(ElectronDensity, vtkImageData); 00064 virtual void SetElectronDensity(vtkImageData *); 00066 00068 00070 vtkSetMacro(Padding, double); 00071 vtkGetMacro(Padding, double); 00073 00075 virtual void DeepCopy(vtkDataObject *obj); 00076 00077 protected: 00078 vtkProgrammableElectronicData(); 00079 ~vtkProgrammableElectronicData(); 00080 00082 vtkIdType NumberOfElectrons; 00083 00085 00086 StdVectorOfImageDataPointers *MOs; 00087 vtkImageData *ElectronDensity; 00089 00090 private: 00091 // Not implemented: 00092 vtkProgrammableElectronicData(const vtkProgrammableElectronicData&); 00093 void operator=(const vtkProgrammableElectronicData&); 00094 }; 00095 00096 #endif