ESyS-Particle  4.0.1
Mesh2D.hpp
00001 
00002 //                                                         //
00003 // Copyright (c) 2003-2011 by The University of Queensland //
00004 // Earth Systems Science Computational Centre (ESSCC)      //
00005 // http://www.uq.edu.au/esscc                              //
00006 //                                                         //
00007 // Primary Business: Brisbane, Queensland, Australia       //
00008 // Licensed under the Open Software License version 3.0    //
00009 // http://www.opensource.org/licenses/osl-3.0.php          //
00010 //                                                         //
00012 
00013 #include <utility>
00014 using std::make_pair;
00015 
00026 template <typename P> 
00027 void Mesh2D::forAllEdgesGet(P& cont,typename P::value_type (Edge2D::*rdf)() const)
00028 {
00029   for(vector<Edge2D>::iterator iter=m_edges.begin();
00030       iter!=m_edges.end();
00031       iter++){
00032     cont.push_back(((*iter).*rdf)());
00033   }
00034 }
00035 
00039 template <typename P> 
00040 vector<pair<int,P> > Mesh2D::forAllEdgesGetIndexed(P (Edge2D::*rdf)() const)
00041 {
00042   vector<pair<int,P> > res;
00043 
00044   for(vector<Edge2D>::iterator iter=m_edges.begin();
00045       iter!=m_edges.end();
00046       iter++){
00047     res.push_back(make_pair(iter->getID(),((*iter).*rdf)()));
00048   }
00049 
00050   return res;
00051 }