ESyS-Particle  4.0.1
TriMesh.hpp
1 
2 // //
3 // Copyright (c) 2003-2011 by The University of Queensland //
4 // Earth Systems Science Computational Centre (ESSCC) //
5 // http://www.uq.edu.au/esscc //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 #include <utility>
14 using std::make_pair;
15 
26 template <typename P>
27 void TriMesh::forAllTrianglesGet(P& cont,typename P::value_type (Triangle::*rdf)() const)
28 {
29  for(vector<Triangle>::iterator iter=m_triangles.begin();
30  iter!=m_triangles.end();
31  iter++){
32  cont.push_back(((*iter).*rdf)());
33  }
34 }
35 
39 template <typename P>
40 vector<pair<int,P> > TriMesh::forAllTrianglesGetIndexed(P (Triangle::*rdf)() const)
41 {
42  vector<pair<int,P> > res;
43 
44  for(vector<Triangle>::iterator iter=m_triangles.begin();
45  iter!=m_triangles.end();
46  iter++){
47  res.push_back(make_pair(iter->getID(),((*iter).*rdf)()));
48  }
49 
50  return res;
51 }