ESyS-Particle  2.3.4
VtkDataArray.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_VTKDATAARRAY_H
15 #define ESYS_LSM_VTKDATAARRAY_H
16 
17 #include <vector>
18 #include <map>
19 #include <iostream>
20 #include <sstream>
21 
23 
24 namespace esys
25 {
26  namespace lsm
27  {
28  namespace vtk
29  {
30  template <typename TmplDataType>
31  class DataArray
32  {
33  public:
34  typedef TmplDataType DataType;
35  typedef typename DataType::value_type value_type;
36 
37  DataArray(const DataType &dataType)
38  : m_dataType(dataType),
40  {
41  m_valueVector.reserve(512);
42  }
43 
44  void setData(int index, const value_type &val)
45  {
46  if (static_cast<int>(m_valueVector.size()) <= index) {
47  m_valueVector.resize(index+1);
48  }
49  m_valueVector.at(index) = val;
50  }
51 
52  int size() const
53  {
54  return m_valueVector.size();
55  }
56 
57  std::string getXmlAttributeString() const
58  {
59  return m_dataType.getXmlAttributeString();
60  }
61 
62  void writeXml(std::ostream &oStream)
63  {
64  oStream << "<DataArray " << getXmlAttributeString() << ">" << "\n";
65  for (typename ValueVector::const_iterator it = m_valueVector.begin(); it != m_valueVector.end(); it++)
66  {
67  oStream << (*it) << "\n";
68  }
69  oStream << "</DataArray>";
70  }
71  private:
72  typedef std::vector<value_type> ValueVector;
75  };
76  }
77  }
78 }
79 
80 #endif
esys::lsm::vtk::DataArray::getXmlAttributeString
std::string getXmlAttributeString() const
Definition: VtkDataArray.h:57
esys::lsm::vtk::DataArray::value_type
DataType::value_type value_type
Definition: VtkDataArray.h:35
esys::lsm::vtk::DataArray::DataType
TmplDataType DataType
Definition: VtkDataArray.h:34
esys::lsm::vtk::DataArray::writeXml
void writeXml(std::ostream &oStream)
Definition: VtkDataArray.h:62
esys::lsm::vtk::DataArray
Definition: VtkDataArray.h:32
esys::lsm::vtk::DataArray::m_dataType
DataType m_dataType
Definition: VtkDataArray.h:73
esys
Definition: CheckPointable.cpp:17
VtkDataType.h
esys::lsm::vtk::DataArray::setData
void setData(int index, const value_type &val)
Definition: VtkDataArray.h:44
Vec3
Definition: vec3.h:47
esys::lsm::vtk::DataArray::size
int size() const
Definition: VtkDataArray.h:52
esys::lsm::vtk::DataArray::ValueVector
std::vector< value_type > ValueVector
Definition: VtkDataArray.h:72
esys::lsm::vtk::DataArray::m_valueVector
ValueVector m_valueVector
Definition: VtkDataArray.h:74
esys::lsm::vtk::Vec3Type
Definition: VtkDataType.h:157
esys::lsm::vtk::DataArray::DataArray
DataArray(const DataType &dataType)
Definition: VtkDataArray.h:37