VTK
vtkVASPTessellationReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkVASPTessellationReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
27 #ifndef vtkVASPTessellationReader_h
28 #define vtkVASPTessellationReader_h
29 
30 #include "vtkDomainsChemistryModule.h" // For export macro
31 #include "vtkMoleculeAlgorithm.h"
32 
33 namespace vtksys {
34 class RegularExpression;
35 }
36 
38 
39 class VTKDOMAINSCHEMISTRY_EXPORT vtkVASPTessellationReader
40  : public vtkMoleculeAlgorithm
41 {
42 public:
43  static vtkVASPTessellationReader* New();
45  void PrintSelf(ostream &os, vtkIndent indent) override;
46 
48 
51  vtkSetStringMacro(FileName)
52  vtkGetStringMacro(FileName)
54 
55 protected:
57  ~vtkVASPTessellationReader() override;
58 
59  int RequestData(vtkInformation *request,
60  vtkInformationVector **inInfoVecs,
61  vtkInformationVector *outInfoVec) override;
62  int RequestInformation(vtkInformation *request,
63  vtkInformationVector **inInfoVecs,
64  vtkInformationVector *outInfoVec) override;
65  int FillOutputPortInformation(int port, vtkInformation *info) override;
66 
73  bool NextTimeStep(std::istream &in, double &time);
74 
81  size_t SelectTimeStepIndex(vtkInformation *info);
82 
83  bool ReadTimeStep(std::istream &in, vtkMolecule *molecule,
84  vtkUnstructuredGrid *voronoi);
85 
86  char *FileName;
87 
88  vtksys::RegularExpression *TimeParser;
89  vtksys::RegularExpression *LatticeParser;
90  vtksys::RegularExpression *AtomCountParser;
91  vtksys::RegularExpression *AtomParser;
92  vtksys::RegularExpression *ParenExtract;
93 
94 private:
95  vtkVASPTessellationReader(const vtkVASPTessellationReader&) = delete;
96  void operator=(const vtkVASPTessellationReader&) = delete;
97 };
98 
99 #endif // vtkVASPTessellationReader_h
Store vtkAlgorithm input/output information.
class describing a molecule
Definition: vtkMolecule.h:94
Superclass for algorithms that operate on vtkMolecules.
a simple class to control print indentation
Definition: vtkIndent.h:39
dataset represents arbitrary combinations of all possible cell types
Store zero or more vtkInformation instances.
Read NPT_Z_TESSELLATE.out files.