ESyS-Particle  4.0.1
SphAggGougeBlock.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 namespace esys {
00014   namespace lsm {
00015 
00018     template <typename TmplVisitor> 
00019     void SphAggGougeBlock::visitParticles(TmplVisitor& visitor)
00020     {
00021       GougeBlock3D::visitParticles(visitor);
00022       for(vector<SBG_ptr>::iterator it = m_grainParticleGen.begin();
00023           it != m_grainParticleGen.end();
00024           it++)
00025         {
00026           SphereBlockGenerator::ParticleIterator particleIt = (*it)->getParticleIterator();
00027           while (particleIt.hasNext()) {
00028             particleIt.next()->visit(visitor);
00029           }
00030         }
00031     }
00032 
00035     template <typename TmplVisitor> 
00036     void SphAggGougeBlock::visitParticles(TmplVisitor& visitor) const
00037     {
00038       GougeBlock3D::visitParticles(visitor);
00039       for(vector<SBG_ptr>::iterator it = m_grainParticleGen.begin();
00040           it != m_grainParticleGen.end();
00041           it++)
00042         {
00043           SphereBlockGenerator::ParticleIterator particleIt = (*it)->getParticleIterator();
00044           while (particleIt.hasNext()) {
00045             particleIt.next()->visit(visitor);
00046           }
00047         }
00048     }
00049   }; // namespace lsm
00050 }; // namespace esys