ESyS-Particle  2.3.4
VtkXmlWriter.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_LSMVTKXMLWRITER_H
15 #define ESYS_LSMVTKXMLWRITER_H
16 
19 
20 #include <iostream>
21 #include <boost/shared_ptr.hpp>
22 
23 namespace esys
24 {
25  namespace lsm
26  {
28  {
31  public:
33 
34  void visitSimpleParticle(const Particle &particle);
35 
36  void visitParticle(const Particle &particle);
37 
38  void visitBasicInteraction(const Connection &connection);
39 
40  void visitConnection(const Connection &connection);
41 
42  size_t getNumParticles() const;
43 
44  size_t getNumConnections() const;
45 
46  int getIndex(int particleId) const;
47 
48  void writeCentrePoints(std::ostream &oStream) const;
49 
50  void writeRadii(std::ostream &oStream) const;
51 
52  void writeTags(std::ostream &oStream) const;
53 
54  void writeIds(std::ostream &oStream) const;
55 
56  void writeParticleIndexConnections(std::ostream &oStream) const;
57 
58  void writeConnectionTags(std::ostream &oStream) const;
59 
60  private:
61  class Impl;
62  typedef boost::shared_ptr<Impl> ImplPtr;
64  };
65 
70  {
71  public:
72  VtkXmlWriter();
73 
74  virtual ~VtkXmlWriter();
75 
76  void setData(const ParticleDataVisitor &particleData);
77 
78  size_t getNumParticles() const;
79 
80  size_t getNumConnections() const;
81 
82  virtual void writePoints(std::ostream &oStream);
83  virtual void writePointData(std::ostream &oStream);
84  virtual void writeCells(std::ostream &oStream);
85  virtual void writeCellData(std::ostream &oStream);
86 
87  virtual void write(std::ostream &oStream);
88 
89  virtual void writeToFile(const std::string &fileName);
90 
91  private:
92 
93  class Impl;
94  typedef boost::shared_ptr<Impl> ImplPtr;
96  };
97  }
98 }
99 
100 #endif
SimpleParticle::getRad
double getRad() const
Definition: SimpleParticle.hpp:70
esys::lsm::VtkXmlWriter::writeCells
virtual void writeCells(std::ostream &oStream)
Definition: VtkXmlWriter.cpp:295
esys::lsm::ParticleDataVisitor::writeTags
void writeTags(std::ostream &oStream) const
Definition: VtkXmlWriter.cpp:178
esys::lsm::ParticleDataVisitor::Impl
Definition: VtkXmlWriter.cpp:31
BasicInteraction.h
esys::lsm::ParticleDataVisitor::Impl::m_idIndexMap
IdIndexMap m_idIndexMap
Definition: VtkXmlWriter.cpp:50
esys::lsm::ParticleVector
std::vector< const SimpleParticle * > ParticleVector
Definition: VtkXmlWriter.cpp:26
esys::lsm::SimpleParticleData::getID
Id getID() const
Definition: SimpleParticleData.hpp:109
esys::lsm::ConstContainerIterator::ConstContainerIterator
ConstContainerIterator(const TmplContainer &container)
Definition: VtkXmlWriter.cpp:93
esys::lsm::ParticleDataVisitor::visitConnection
void visitConnection(const Connection &connection)
Definition: VtkXmlWriter.cpp:74
esys::lsm::ParticleDataVisitor::writeParticleIndexConnections
void writeParticleIndexConnections(std::ostream &oStream) const
Definition: VtkXmlWriter.cpp:208
esys::lsm::VtkXmlWriter::Impl::m_pParticleData
const ParticleDataVisitor * m_pParticleData
Definition: VtkXmlWriter.cpp:241
esys::lsm::ParticleDataVisitor::Impl::Impl
Impl()
Definition: VtkXmlWriter.cpp:33
esys::lsm::ParticleDataVisitor::ImplPtr
boost::shared_ptr< Impl > ImplPtr
Definition: VtkXmlWriter.h:61
SimpleParticle::getPos
const Vec3 & getPos() const
Definition: SimpleParticle.hpp:30
esys::lsm::VtkXmlWriter::Impl
Definition: VtkXmlWriter.cpp:235
esys::lsm::VtkXmlWriter::write
virtual void write(std::ostream &oStream)
Definition: VtkXmlWriter.cpp:323
esys::lsm::ParticleIterator::m_it
ConstContainerIterator< ParticleVector > m_it
Definition: VtkXmlWriter.cpp:135
esys::lsm::ConstContainerIterator::m_it
TmplContainer::const_iterator m_it
Definition: VtkXmlWriter.cpp:112
esys::lsm::ConnectionIterator::hasNext
bool hasNext() const
Definition: VtkXmlWriter.cpp:146
esys::lsm::VtkXmlWriter::setData
void setData(const ParticleDataVisitor &particleData)
Definition: VtkXmlWriter.cpp:254
SimpleParticle
Definition: SimpleParticle.h:25
esys::lsm::ParticleDataVisitor::ParticleDataVisitor
ParticleDataVisitor()
Definition: VtkXmlWriter.cpp:54
BasicInteraction::first
Id first() const
Definition: BasicInteraction.h:42
esys::lsm::ParticleDataVisitor::writeCentrePoints
void writeCentrePoints(std::ostream &oStream) const
Definition: VtkXmlWriter.cpp:160
esys::lsm::ParticleDataVisitor::Impl::m_particleVector
ParticleVector m_particleVector
Definition: VtkXmlWriter.cpp:48
esys::lsm::ParticleDataVisitor::Particle
SimpleParticle Particle
Definition: VtkXmlWriter.h:29
esys::lsm::ParticleIterator::next
const SimpleParticle & next()
Definition: VtkXmlWriter.cpp:129
esys
Definition: CheckPointable.cpp:17
esys::lsm::ParticleDataVisitor::Impl::m_connectionVector
ConnectionVector m_connectionVector
Definition: VtkXmlWriter.cpp:49
BasicInteraction::second
Id second() const
Definition: BasicInteraction.h:44
esys::lsm::ParticleDataVisitor::getIndex
int getIndex(int particleId) const
Definition: VtkXmlWriter.cpp:196
esys::lsm::ParticleDataVisitor::Impl::append
void append(const SimpleParticle &particle)
Definition: VtkXmlWriter.cpp:37
SimpleParticle.h
BasicInteraction
Class to represent the common part of a pair interaction, i.e. the IDs of the particles and the inter...
Definition: BasicInteraction.h:28
esys::lsm::ConnectionIterator
Definition: VtkXmlWriter.cpp:139
esys::lsm::VtkXmlWriter::writeToFile
virtual void writeToFile(const std::string &fileName)
Definition: VtkXmlWriter.cpp:339
esys::lsm::VtkXmlWriter::getNumConnections
size_t getNumConnections() const
Definition: VtkXmlWriter.cpp:264
NULL
#define NULL
Definition: t_list.h:17
esys::lsm::VtkXmlWriter::getNumParticles
size_t getNumParticles() const
Definition: VtkXmlWriter.cpp:259
esys::lsm::ConstContainerIterator::hasNext
bool hasNext() const
Definition: VtkXmlWriter.cpp:99
esys::lsm::ConnectionIterator::ConnectionIterator
ConnectionIterator(const ConnectionVector &connectionVector)
Definition: VtkXmlWriter.cpp:141
esys::lsm::VtkXmlWriter
Definition: VtkXmlWriter.h:70
esys::lsm::VtkXmlWriter::writePointData
virtual void writePointData(std::ostream &oStream)
Definition: VtkXmlWriter.cpp:278
esys::lsm::ParticleDataVisitor::writeIds
void writeIds(std::ostream &oStream) const
Definition: VtkXmlWriter.cpp:187
esys::lsm::VtkXmlWriter::writeCellData
virtual void writeCellData(std::ostream &oStream)
Definition: VtkXmlWriter.cpp:314
esys::lsm::ConnectionIterator::next
const BasicInteraction & next()
Definition: VtkXmlWriter.cpp:151
BasicInteraction::getTag
Tag getTag() const
Definition: BasicInteraction.h:56
esys::lsm::VtkXmlWriter::m_implPtr
ImplPtr m_implPtr
Definition: VtkXmlWriter.h:95
esys::lsm::ParticleDataVisitor::writeRadii
void writeRadii(std::ostream &oStream) const
Definition: VtkXmlWriter.cpp:169
esys::lsm::ParticleDataVisitor::getNumParticles
size_t getNumParticles() const
Definition: VtkXmlWriter.cpp:79
esys::lsm::ParticleIterator::ParticleIterator
ParticleIterator(const ParticleVector &particleVector)
Definition: VtkXmlWriter.cpp:119
esys::lsm::ParticleDataVisitor::Impl::append
void append(const BasicInteraction &connection)
Definition: VtkXmlWriter.cpp:43
esys::lsm::VtkXmlWriter::VtkXmlWriter
VtkXmlWriter()
Definition: VtkXmlWriter.cpp:245
esys::lsm::ConnectionIterator::m_it
ConstContainerIterator< ConnectionVector > m_it
Definition: VtkXmlWriter.cpp:157
esys::lsm::ConstContainerIterator::m_end
TmplContainer::const_iterator m_end
Definition: VtkXmlWriter.cpp:113
esys::lsm::VtkXmlWriter::ImplPtr
boost::shared_ptr< Impl > ImplPtr
Definition: VtkXmlWriter.h:93
esys::lsm::ConstContainerIterator::next
TmplContainer::const_reference next()
Definition: VtkXmlWriter.cpp:104
VtkXmlWriter.h
esys::lsm::ParticleDataVisitor::Connection
BasicInteraction Connection
Definition: VtkXmlWriter.h:30
esys::lsm::ParticleDataVisitor::visitSimpleParticle
void visitSimpleParticle(const Particle &particle)
Definition: VtkXmlWriter.cpp:59
esys::lsm::VtkXmlWriter::writePoints
virtual void writePoints(std::ostream &oStream)
Definition: VtkXmlWriter.cpp:269
esys::lsm::VtkXmlWriter::Impl::Impl
Impl()
Definition: VtkXmlWriter.cpp:237
esys::lsm::IdIndexMap
std::map< int, int > IdIndexMap
Definition: VtkXmlWriter.cpp:28
esys::lsm::VtkXmlWriter::~VtkXmlWriter
virtual ~VtkXmlWriter()
Definition: VtkXmlWriter.cpp:250
esys::lsm::ParticleIterator
Definition: GeometryReader.h:41
esys::lsm::ParticleDataVisitor
Definition: VtkXmlWriter.h:28
esys::lsm::ConstContainerIterator
Definition: VtkXmlWriter.cpp:91
esys::lsm::SimpleParticleData::getTag
Tag getTag() const
Definition: SimpleParticleData.hpp:124
esys::lsm::ParticleDataVisitor::visitBasicInteraction
void visitBasicInteraction(const Connection &connection)
Definition: VtkXmlWriter.cpp:69
esys::lsm::ParticleDataVisitor::writeConnectionTags
void writeConnectionTags(std::ostream &oStream) const
Definition: VtkXmlWriter.cpp:222
esys::lsm::ParticleDataVisitor::visitParticle
void visitParticle(const Particle &particle)
Definition: VtkXmlWriter.cpp:64
esys::lsm::ParticleIterator::hasNext
bool hasNext() const
Definition: VtkXmlWriter.cpp:124
esys::lsm::ConnectionVector
std::vector< const BasicInteraction * > ConnectionVector
Definition: VtkXmlWriter.cpp:27
esys::lsm::ParticleDataVisitor::m_implPtr
ImplPtr m_implPtr
Definition: VtkXmlWriter.h:63
esys::lsm::ParticleDataVisitor::getNumConnections
size_t getNumConnections() const
Definition: VtkXmlWriter.cpp:84