VTK
dox/Domains/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 "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