VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkOpenQubeMoleculeSource.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 =========================================================================*/ 00025 #ifndef __vtkOpenQubeMoleculeSource_h 00026 #define __vtkOpenQubeMoleculeSource_h 00027 00028 #include "vtkDomainsChemistryModule.h" // For export macro 00029 #include "vtkDataReader.h" 00030 00031 class vtkMolecule; 00032 00033 namespace OpenQube 00034 { 00035 class Molecule; 00036 class BasisSet; 00037 } 00038 00039 class VTKDOMAINSCHEMISTRY_EXPORT vtkOpenQubeMoleculeSource : public vtkDataReader 00040 { 00041 public: 00042 static vtkOpenQubeMoleculeSource *New(); 00043 vtkTypeMacro(vtkOpenQubeMoleculeSource,vtkDataReader); 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00047 00048 vtkMolecule *GetOutput(); 00049 void SetOutput(vtkMolecule *); 00051 00053 00057 vtkSetStringMacro(FileName); 00058 vtkGetStringMacro(FileName); 00060 00062 00066 virtual void SetBasisSet(OpenQube::BasisSet *b); 00067 vtkGetMacro(BasisSet, OpenQube::BasisSet*); 00069 00071 00075 vtkSetMacro(CleanUpBasisSet, bool); 00076 vtkGetMacro(CleanUpBasisSet, bool); 00077 vtkBooleanMacro(CleanUpBasisSet, bool); 00079 00080 protected: 00081 vtkOpenQubeMoleculeSource(); 00082 ~vtkOpenQubeMoleculeSource(); 00083 00084 int RequestData(vtkInformation *, vtkInformationVector **, 00085 vtkInformationVector *); 00086 int FillOutputPortInformation(int, vtkInformation*); 00087 00088 char *FileName; 00089 OpenQube::BasisSet *BasisSet; 00090 bool CleanUpBasisSet; 00091 00093 00095 void CopyOQMoleculeToVtkMolecule(const OpenQube::Molecule *oqmol, 00096 vtkMolecule *mol); 00098 00099 private: 00100 // Not implemented: 00101 vtkOpenQubeMoleculeSource(const vtkOpenQubeMoleculeSource&); 00102 void operator=(const vtkOpenQubeMoleculeSource&); 00103 }; 00104 00105 #endif