ESyS-Particle  2.3.4
VtkUnstructuredGrid.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 
14 #ifndef ESYS_LSM_VTKUNSTRUCTUREDGRID_H
15 #define ESYS_LSM_VTKUNSTRUCTUREDGRID_H
16 
17 #include <vector>
18 #include <map>
19 #include <iostream>
20 #include <sstream>
21 
26 
27 namespace esys
28 {
29  namespace lsm
30  {
31  namespace vtk
32  {
33  template <typename TmplPointType, typename TmplPointDataTypeTuple>
34  class UnstructuredPiece : public Piece<TmplPointType, TmplPointDataTypeTuple>
35  {
36  public:
38  typedef typename Inherited::PointType PointType;
39  typedef typename Inherited::PointValue PointValue;
41  typedef typename Inherited::PointData PointData;
42 
43  UnstructuredPiece(const PointType &pointType, const PointDataTypeTuple &pointDataType)
44  : Inherited(pointType, pointDataType)
45  {
46  }
47 
48  virtual void writeXml(std::ostream &oStream)
49  {
50  oStream
51  << "<Piece NumberOfPoints=" << quote(this->getNumPoints())
52  << " NumberOfCells=" << quote(this->getNumCells()) << ">" << std::endl;
53  this->writePointsXml(oStream);
54  this->writePointDataXml(oStream);
55  this->writeCellsXml(oStream);
56  this->writeCellDataXml(oStream);
57 
58  oStream << "</Piece>";
59  }
60 
61  private:
62  };
63 
65  {
66  private:
67  typedef std::vector<XmlPiece *> PiecePtrVector;
68 
69  public:
71  : m_pieceVector()
72  {
73  }
74 
76  {
77  }
78 
79  void addPiece(XmlPiece &piece)
80  {
81  m_pieceVector.push_back(&piece);
82  }
83 
84  virtual void writeXml(std::ostream &oStream)
85  {
86  oStream
87  << "<VTKFile type=\"UnstructuredGrid\" version=\"0.1\">\n"
88  << "<UnstructuredGrid>" << std::endl;
89  for (
90  PiecePtrVector::const_iterator it = m_pieceVector.begin();
91  it != m_pieceVector.end();
92  it++
93  )
94  {
95  (*it)->writeXml(oStream);
96  oStream << "\n";
97  }
98  oStream << "</UnstructuredGrid>\n";
99  oStream << "</VTKFile>";
100  }
101  private:
103  };
104  }
105  }
106 }
107 
108 #endif
esys::lsm::vtk::quote
std::string quote(const TmplType &thing)
Definition: VtkDataType.h:49
esys::lsm::vtk::Piece::writeCellsXml
virtual void writeCellsXml(std::ostream &oStream)
Definition: VtkPiece.h:103
esys::lsm::vtk::UnstructuredGrid::PiecePtrVector
std::vector< XmlPiece * > PiecePtrVector
Definition: VtkUnstructuredGrid.h:67
esys::lsm::vtk::Piece::PointDataTypeTuple
TmplPointDataTypeTuple PointDataTypeTuple
Definition: VtkPiece.h:44
esys::lsm::vtk::UnstructuredPiece::PointType
Inherited::PointType PointType
Definition: VtkUnstructuredGrid.h:38
esys::lsm::vtk::UnstructuredGrid
Definition: VtkUnstructuredGrid.h:65
esys::lsm::vtk::UnstructuredPiece::UnstructuredPiece
UnstructuredPiece(const PointType &pointType, const PointDataTypeTuple &pointDataType)
Definition: VtkUnstructuredGrid.h:43
esys::lsm::vtk::UnstructuredPiece
Definition: VtkUnstructuredGrid.h:35
esys::lsm::vtk::UnstructuredGrid::addPiece
void addPiece(XmlPiece &piece)
Definition: VtkUnstructuredGrid.h:79
esys::lsm::vtk::Piece::getNumPoints
int getNumPoints() const
Definition: VtkPiece.h:77
VtkPiece.h
esys
Definition: CheckPointable.cpp:17
VtkDataType.h
esys::lsm::vtk::UnstructuredPiece::writeXml
virtual void writeXml(std::ostream &oStream)
Definition: VtkUnstructuredGrid.h:48
esys::lsm::vtk::Piece
Definition: VtkPiece.h:40
esys::lsm::vtk::Piece::writePointsXml
virtual void writePointsXml(std::ostream &oStream)
Definition: VtkPiece.h:89
esys::lsm::vtk::UnstructuredGrid::~UnstructuredGrid
virtual ~UnstructuredGrid()
Definition: VtkUnstructuredGrid.h:75
esys::lsm::vtk::Piece::PointType
TmplPointType PointType
Definition: VtkPiece.h:42
VtkUnstructuredGrid.h
Vec3
Definition: vec3.h:47
esys::lsm::vtk::UnstructuredPiece::Inherited
Piece< TmplPointType, TmplPointDataTypeTuple > Inherited
Definition: VtkUnstructuredGrid.h:37
esys::lsm::vtk::Piece::PointData
PointDataTypeTuple::DataValueTuple PointData
Definition: VtkPiece.h:45
esys::lsm::vtk::UnstructuredGrid::UnstructuredGrid
UnstructuredGrid()
Definition: VtkUnstructuredGrid.h:70
esys::lsm::vtk::Piece::writePointDataXml
virtual void writePointDataXml(std::ostream &oStream)
Definition: VtkPiece.h:96
VtkDataTypeTuple.h
esys::lsm::vtk::Piece::writeCellDataXml
virtual void writeCellDataXml(std::ostream &oStream)
Definition: VtkPiece.h:117
esys::lsm::vtk::Piece::getNumCells
int getNumCells() const
Definition: VtkPiece.h:82
VtkDataArray.h
esys::lsm::vtk::UnstructuredPiece::PointValue
Inherited::PointValue PointValue
Definition: VtkUnstructuredGrid.h:39
esys::lsm::vtk::UnstructuredGrid::writeXml
virtual void writeXml(std::ostream &oStream)
Definition: VtkUnstructuredGrid.h:84
esys::lsm::vtk::UnstructuredGrid::m_pieceVector
PiecePtrVector m_pieceVector
Definition: VtkUnstructuredGrid.h:102
esys::lsm::vtk::UnstructuredPiece::PointDataTypeTuple
Inherited::PointDataTypeTuple PointDataTypeTuple
Definition: VtkUnstructuredGrid.h:40
esys::lsm::vtk::UnstructuredPiece::PointData
Inherited::PointData PointData
Definition: VtkUnstructuredGrid.h:41
esys::lsm::vtk::XmlPiece
Definition: VtkPiece.h:33