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 "vtkDataReader.h" 00029 00030 class vtkMolecule; 00031 00032 namespace OpenQube 00033 { 00034 class Molecule; 00035 class BasisSet; 00036 } 00037 00038 class VTK_CHEMISTRY_EXPORT vtkOpenQubeMoleculeSource : public vtkDataReader 00039 { 00040 public: 00041 static vtkOpenQubeMoleculeSource *New(); 00042 vtkTypeMacro(vtkOpenQubeMoleculeSource,vtkDataReader); 00043 void PrintSelf(ostream& os, vtkIndent indent); 00044 00046 00047 vtkMolecule *GetOutput(); 00048 void SetOutput(vtkMolecule *); 00050 00052 00056 vtkSetStringMacro(FileName); 00057 vtkGetStringMacro(FileName); 00059 00061 00065 virtual void SetBasisSet(OpenQube::BasisSet *b); 00066 vtkGetMacro(BasisSet, OpenQube::BasisSet*); 00068 00070 00074 vtkSetMacro(CleanUpBasisSet, bool); 00075 vtkGetMacro(CleanUpBasisSet, bool); 00076 vtkBooleanMacro(CleanUpBasisSet, bool); 00078 00079 protected: 00080 vtkOpenQubeMoleculeSource(); 00081 ~vtkOpenQubeMoleculeSource(); 00082 00083 int RequestData(vtkInformation *, vtkInformationVector **, 00084 vtkInformationVector *); 00085 int FillOutputPortInformation(int, vtkInformation*); 00086 00087 char *FileName; 00088 OpenQube::BasisSet *BasisSet; 00089 bool CleanUpBasisSet; 00090 00092 00094 void CopyOQMoleculeToVtkMolecule(const OpenQube::Molecule *oqmol, 00095 vtkMolecule *mol); 00097 00098 private: 00099 // Not implemented: 00100 vtkOpenQubeMoleculeSource(const vtkOpenQubeMoleculeSource&); 00101 void operator=(const vtkOpenQubeMoleculeSource&); 00102 }; 00103 00104 #endif