VTK
dox/Chemistry/vtkOpenQubeMoleculeSource.h
Go to the documentation of this file.
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