diff --git a/src/blockforest/BlockForest.cpp b/src/blockforest/BlockForest.cpp index 50ebc8c27db75b4f309cec7ef6cebb9620c0e0d1..495da585dd97ab39679cebdd38e1267c1c44e018 100644 --- a/src/blockforest/BlockForest.cpp +++ b/src/blockforest/BlockForest.cpp @@ -74,7 +74,7 @@ void BlockForest::BlockInformation::getAllBlocks( std::vector< shared_ptr< IBloc std::stack< std::pair< const Node *, BlockID > > stack; - stack.push( std::make_pair( nodes_[i].get(), BlockID( i, treeIdMarker ) ) ); + stack.emplace( nodes_[i].get(), BlockID( i, treeIdMarker ) ); while( !stack.empty() ) { @@ -85,7 +85,7 @@ void BlockForest::BlockInformation::getAllBlocks( std::vector< shared_ptr< IBloc if( !node.first->children_.empty() ) { for( uint_t c = 8; c-- != 0; ) - stack.push( std::make_pair( node.first->children_[c].get(), BlockID( node.second, c ) ) ); + stack.emplace( node.first->children_[c].get(), BlockID( node.second, c ) ); } else { blocks.push_back( make_shared< BlockID >( node.second ) ); @@ -2540,7 +2540,7 @@ void BlockForest::update( PhantomBlockForest & phantomForest ) if( phantom->sourceBlockHasTheSameSize() || phantom->sourceBlockIsLarger() ) { WALBERLA_ASSERT( blocksToUnpack.find( block ) == blocksToUnpack.end() ); - blocksToUnpack[ block ].push_back( std::make_pair( state, &(*buffer) ) ); + blocksToUnpack[ block ].emplace_back( state, &(*buffer) ); } else { diff --git a/src/core/config/Config.cpp b/src/core/config/Config.cpp index 6b5899e9b414d0aa1885c5ffacb2c54e74d32af9..75a9cf41127ce25f633796fbbe3e37a0c2b6182c 100644 --- a/src/core/config/Config.cpp +++ b/src/core/config/Config.cpp @@ -224,7 +224,7 @@ void Config::parseFromFile( const char* filename, Block& block, unsigned int lev } //Adding the line to the input string - lineNumbers.push_back( Pair( input.tellp(), lineCounter ) ); + lineNumbers.emplace_back( input.tellp(), lineCounter ); input << line << "\n"; } @@ -572,7 +572,7 @@ void Config::Block::getBlocks( const std::string& key, Blocks& blocks, size_t mi size_t c = 0; for( List::const_iterator it=blocks_.begin(); it!=blocks_.end(); ++it ) { if( string_icompare( key, it->getKey() ) == 0 ) { - blocks.push_back( BlockHandle( &*it ) ); + blocks.emplace_back( &*it ); ++c; } } @@ -595,7 +595,7 @@ void Config::Block::getBlocks( const std::string& key, Blocks& blocks, size_t mi void Config::Block::getBlocks( Blocks& blocks ) const { for( List::const_iterator it=blocks_.begin(); it!=blocks_.end(); ++it ) { - blocks.push_back( BlockHandle( &*it ) ); + blocks.emplace_back( &*it ); } } //********************************************************************************************************************** @@ -610,7 +610,7 @@ void Config::Block::getBlocks( Blocks& blocks ) const void Config::Block::getWritableBlocks( std::vector<Block*> & blocks ) { for( List::iterator it=blocks_.begin(); it!=blocks_.end(); ++it ) { - blocks.push_back( &*it ); + blocks.emplace_back( &*it ); } } //********************************************************************************************************************** @@ -630,7 +630,7 @@ void Config::Block::getWritableBlocks( const std::string & key, std::vector<Bloc size_t c = 0; for( List::iterator it=blocks_.begin(); it!=blocks_.end(); ++it ) { if( string_icompare( key, it->getKey() ) == 0 ) { - blocks.push_back( &*it ); + blocks.emplace_back( &*it ); ++c; } } @@ -676,7 +676,7 @@ bool Config::Block::addParameter( const std::string& key, const std::string& val */ Config::Block& Config::Block::createBlock( const std::string& key ) { - blocks_.push_back( Block( key ) ); + blocks_.emplace_back( key ); return *blocks_.rbegin(); } //********************************************************************************************************************** diff --git a/src/gather/CellGatherPackInfo.impl.h b/src/gather/CellGatherPackInfo.impl.h index ff3e1dcdd687c077773494a0ea30c9d5717cb4dc..0ff0f32eaeee6778dfef72663148175619f4ac0c 100644 --- a/src/gather/CellGatherPackInfo.impl.h +++ b/src/gather/CellGatherPackInfo.impl.h @@ -99,7 +99,7 @@ void CellGatherPackInfo<Field_T,CC>::unpackData( mpi::RecvBuffer & buffer ) for( size_t i=0; i< nrPoints; ++i ) { - receivedData.push_back(std::vector<real_t>(fieldSize+1)); //+1 because we also store t value as first entry + receivedData.emplace_back(std::vector<real_t>(fieldSize+1)); //+1 because we also store t value as first entry std::vector<real_t> & pointVec = receivedData[receivedData.size()-1]; uint_t t; diff --git a/src/gather/CurveGatherPackInfo.impl.h b/src/gather/CurveGatherPackInfo.impl.h index 0039b2a05cb1f3c16adb1ab427bb8ae925fc9923..10d480015f911a61858c682f41613021a6a39178 100644 --- a/src/gather/CurveGatherPackInfo.impl.h +++ b/src/gather/CurveGatherPackInfo.impl.h @@ -185,7 +185,7 @@ void CurveGatherPackInfo<GlF,IP>::unpackData( mpi::RecvBuffer & buffer ) for( size_t i=0; i< nrPoints; ++i ) { - receivedData.push_back(std::vector<real_t>(fieldSize+1)); //+1 because we also store t value as first entry + receivedData.emplace_back(std::vector<real_t>(fieldSize+1)); //+1 because we also store t value as first entry std::vector<real_t> & pointVec = receivedData[receivedData.size()-1]; real_t t; diff --git a/src/mesa_pd/collision_detection/EPA.cpp b/src/mesa_pd/collision_detection/EPA.cpp index 70c39daeea9ff9c2686df4a9043255c6be127cea..240b3e93857a20e9bea653a8f3605d14bbf7b3a2 100644 --- a/src/mesa_pd/collision_detection/EPA.cpp +++ b/src/mesa_pd/collision_detection/EPA.cpp @@ -142,7 +142,7 @@ void EPA::EPA_Triangle::silhouette( size_t index, const Vec3& w, if (!obsolete_) { real_t test = (closest_ * w); if (test < sqrDist_) { - edgeBuffer.push_back(EPA_Edge(this, index)); + edgeBuffer.emplace_back(this, index); } else { obsolete_ = true; // Facet is visible @@ -271,7 +271,7 @@ bool EPA::doEPA( Support &geom1, for(EPA_EntryBuffer::iterator it=entryBuffer.begin(); it != entryBuffer.end(); ++it) { if(it->isClosestInternal()) { - entryHeap.push_back(&(*it)); + entryHeap.emplace_back(&(*it)); } } @@ -402,7 +402,7 @@ bool EPA::doEPA( Support &geom1, } EPA_EdgeBuffer::const_iterator it = edgeBuffer.begin(); - entryBuffer.push_back(EPA_Triangle(it->getEnd(), it->getStart(), epaVolume.size()-1, epaVolume)); + entryBuffer.emplace_back(it->getEnd(), it->getStart(), epaVolume.size()-1, epaVolume); EPA_Triangle* firstTriangle = &(entryBuffer.back()); //if it is expanding candidate add to heap @@ -416,7 +416,7 @@ bool EPA::doEPA( Support &geom1, && firstTriangle->getSqrDist() > lowerBoundSqr && firstTriangle->getSqrDist() < upperBoundSqr) { - entryHeap.push_back(firstTriangle); + entryHeap.emplace_back(firstTriangle); std::push_heap(entryHeap.begin(), entryHeap.end(), EPA::EPA_TriangleComp()); } @@ -431,7 +431,7 @@ bool EPA::doEPA( Support &geom1, break; } - entryBuffer.push_back(EPA_Triangle(it->getEnd(), it->getStart(), epaVolume.size()-1, epaVolume)); + entryBuffer.emplace_back(it->getEnd(), it->getStart(), epaVolume.size()-1, epaVolume); EPA_Triangle* newTriangle = &(entryBuffer.back()); //std::cerr << "Considering Triangle (" << newTriangle->getSqrDist() << ") {" << (*newTriangle)[0] << "," << (*newTriangle)[1] << ","<< (*newTriangle)[2] << "} ("<< epaVolume[(*newTriangle)[0]] * newTriangle->getNormal() << ")" << std::endl; @@ -446,7 +446,7 @@ bool EPA::doEPA( Support &geom1, && newTriangle->getSqrDist() > lowerBoundSqr && newTriangle->getSqrDist() < upperBoundSqr) { - entryHeap.push_back(newTriangle); + entryHeap.emplace_back(newTriangle); std::push_heap(entryHeap.begin(), entryHeap.end(), EPA::EPA_TriangleComp()); } @@ -572,11 +572,11 @@ inline void EPA::createInitialSimplex( size_t numPoints, //check for containment inside if(originInTetrahedron(epaVolume[0], epaVolume[2], epaVolume[3], epaVolume[4]) || originInTetrahedron(epaVolume[1], epaVolume[2], epaVolume[3], epaVolume[4]) ){ //insert triangle 1 - entryBuffer.push_back(EPA_Triangle(1, 2, 3, epaVolume)); //[0] up->ccw1->ccw2 + entryBuffer.emplace_back(1, 2, 3, epaVolume); //[0] up->ccw1->ccw2 //insert triangle 2 - entryBuffer.push_back(EPA_Triangle(1, 3, 4, epaVolume)); //[1] up->ccw2->ccw3 + entryBuffer.emplace_back(1, 3, 4, epaVolume); //[1] up->ccw2->ccw3 //insert triangle 3 - entryBuffer.push_back(EPA_Triangle(1, 4, 2, epaVolume)); //[2] up->ccw3->ccw1 + entryBuffer.emplace_back(1, 4, 2, epaVolume); //[2] up->ccw3->ccw1 //link these 3 triangles entryBuffer[0].link(2, &(entryBuffer[1]), 0); //edge up->ccw1 @@ -585,11 +585,11 @@ inline void EPA::createInitialSimplex( size_t numPoints, //insert triangle 4 - entryBuffer.push_back(EPA_Triangle(0, 2, 4, epaVolume)); //[3] down->ccw1->ccw3 + entryBuffer.emplace_back(0, 2, 4, epaVolume); //[3] down->ccw1->ccw3 //insert triangle 5 - entryBuffer.push_back(EPA_Triangle(0, 4, 3, epaVolume)); //[4] down->ccw3->ccw2 + entryBuffer.emplace_back(0, 4, 3, epaVolume); //[4] down->ccw3->ccw2 //insert triangle 6 - entryBuffer.push_back(EPA_Triangle(0, 3, 2, epaVolume)); //[5] down->ccw2->ccw1 + entryBuffer.emplace_back(0, 3, 2, epaVolume); //[5] down->ccw2->ccw1 //link these 3 triangles entryBuffer[3].link(2, &(entryBuffer[4]), 0); //edge down->ccw3 @@ -643,11 +643,11 @@ inline void EPA::createInitialSimplex( size_t numPoints, else { //Build the hexahedron as it is convex //insert triangle 1 - entryBuffer.push_back(EPA_Triangle(3, 2, 1, epaVolume)); //[0] support1->A->B + entryBuffer.emplace_back(3, 2, 1, epaVolume); //[0] support1->A->B //insert triangle 2 - entryBuffer.push_back(EPA_Triangle(3, 1, 0, epaVolume)); //[1] support1->B->C + entryBuffer.emplace_back(3, 1, 0, epaVolume); //[1] support1->B->C //insert triangle 3 - entryBuffer.push_back(EPA_Triangle(3, 0, 2, epaVolume)); //[2] support1->C->A + entryBuffer.emplace_back(3, 0, 2, epaVolume); //[2] support1->C->A //link these 3 triangles entryBuffer[0].link(2, &(entryBuffer[1]), 0); //edge support1->A @@ -656,11 +656,11 @@ inline void EPA::createInitialSimplex( size_t numPoints, //insert triangle 4 - entryBuffer.push_back(EPA_Triangle(4, 2, 0, epaVolume)); //[3] support2->A->C + entryBuffer.emplace_back(4, 2, 0, epaVolume); //[3] support2->A->C //insert triangle 5 - entryBuffer.push_back(EPA_Triangle(4, 0, 1, epaVolume)); //[4] support2->C->B + entryBuffer.emplace_back(4, 0, 1, epaVolume); //[4] support2->C->B //insert triangle 6 - entryBuffer.push_back(EPA_Triangle(4, 1, 2, epaVolume)); //[5] support2->B->A + entryBuffer.emplace_back(4, 1, 2, epaVolume); //[5] support2->B->A //link these 3 triangles entryBuffer[3].link(2, &(entryBuffer[4]), 0); //edge support2->C @@ -768,13 +768,13 @@ inline void EPA::createInitialTetrahedron( size_t top, EPA_EntryBuffer& entryBuffer ) { //insert triangle 1 - entryBuffer.push_back(EPA_Triangle(top, frontLeft, frontRight, epaVolume)); //[0] vorne + entryBuffer.emplace_back(top, frontLeft, frontRight, epaVolume); //[0] vorne //insert triangle 2 - entryBuffer.push_back(EPA_Triangle(top, frontRight, back, epaVolume)); //[1] rechts hinten + entryBuffer.emplace_back(top, frontRight, back, epaVolume); //[1] rechts hinten //insert triangle 3 - entryBuffer.push_back(EPA_Triangle(top, back, frontLeft, epaVolume)); //[2] links hinten + entryBuffer.emplace_back(top, back, frontLeft, epaVolume); //[2] links hinten //insert triangle 4 - entryBuffer.push_back(EPA_Triangle(back, frontRight, frontLeft, epaVolume)); //[3] unten + entryBuffer.emplace_back(back, frontRight, frontLeft, epaVolume); //[3] unten //make links between the triangles entryBuffer[0].link(0, &(entryBuffer[2]), 2); //Kante vorne links diff --git a/src/pe/ccd/SimpleCCD.cpp b/src/pe/ccd/SimpleCCD.cpp index c9af4591633a3984a696f575081e9c26fe0a6d0c..02cd8860f860dea4f176f814501284e6898cd38b 100644 --- a/src/pe/ccd/SimpleCCD.cpp +++ b/src/pe/ccd/SimpleCCD.cpp @@ -62,9 +62,9 @@ PossibleContacts& SimpleCCD::generatePossibleContacts( WcTimingTree* tt ){ if (!((*it1)->hasInfiniteMass() && (*it2)->hasInfiniteMass())) { if ( (*it1)->getSystemID() > (*it2)->getSystemID() ) - contacts_.push_back(std::make_pair(*it2, *it1)); + contacts_.emplace_back(*it2, *it1); else - contacts_.push_back(std::make_pair(*it1, *it2)); + contacts_.emplace_back(*it1, *it2); } } @@ -73,9 +73,9 @@ PossibleContacts& SimpleCCD::generatePossibleContacts( WcTimingTree* tt ){ if (!((*it1)->hasInfiniteMass() && it2->hasInfiniteMass())) { if ( (*it1)->getSystemID() > it2->getSystemID() ) - contacts_.push_back(std::make_pair(it2.getBodyID(), *it1)); + contacts_.emplace_back(it2.getBodyID(), *it1); else - contacts_.push_back(std::make_pair(*it1, it2.getBodyID())); + contacts_.emplace_back(*it1, it2.getBodyID()); } } } diff --git a/src/pe/collision/EPA.cpp b/src/pe/collision/EPA.cpp index e8d54f178d8e46392fee521524f988eb41b1dd53..26264c277df17ececc30f57cbce9de618963b204 100644 --- a/src/pe/collision/EPA.cpp +++ b/src/pe/collision/EPA.cpp @@ -150,7 +150,7 @@ void EPA::EPA_Triangle::silhouette( size_t index, const Vec3& w, if (!obsolete_) { real_t test = (closest_ * w); if (test < sqrDist_) { - edgeBuffer.push_back(EPA_Edge(this, index)); + edgeBuffer.emplace_back(this, index); } else { obsolete_ = true; // Facet is visible @@ -259,7 +259,7 @@ bool EPA::doEPA( GeomPrimitive &geom1, GeomPrimitive &geom2, const GJK& gjk, Vec for(EPA_EntryBuffer::iterator it=entryBuffer.begin(); it != entryBuffer.end(); ++it) { if(it->isClosestInternal()) { - entryHeap.push_back(&(*it)); + entryHeap.emplace_back(&(*it)); } } @@ -390,7 +390,7 @@ bool EPA::doEPA( GeomPrimitive &geom1, GeomPrimitive &geom2, const GJK& gjk, Vec } EPA_EdgeBuffer::const_iterator it = edgeBuffer.begin(); - entryBuffer.push_back(EPA_Triangle(it->getEnd(), it->getStart(), epaVolume.size()-1, epaVolume)); + entryBuffer.emplace_back(it->getEnd(), it->getStart(), epaVolume.size()-1, epaVolume); EPA_Triangle* firstTriangle = &(entryBuffer.back()); //if it is expanding candidate add to heap @@ -404,7 +404,7 @@ bool EPA::doEPA( GeomPrimitive &geom1, GeomPrimitive &geom2, const GJK& gjk, Vec && firstTriangle->getSqrDist() > lowerBoundSqr && firstTriangle->getSqrDist() < upperBoundSqr) { - entryHeap.push_back(firstTriangle); + entryHeap.emplace_back(firstTriangle); std::push_heap(entryHeap.begin(), entryHeap.end(), EPA::EPA_TriangleComp()); } @@ -419,7 +419,7 @@ bool EPA::doEPA( GeomPrimitive &geom1, GeomPrimitive &geom2, const GJK& gjk, Vec break; } - entryBuffer.push_back(EPA_Triangle(it->getEnd(), it->getStart(), epaVolume.size()-1, epaVolume)); + entryBuffer.emplace_back(it->getEnd(), it->getStart(), epaVolume.size()-1, epaVolume); EPA_Triangle* newTriangle = &(entryBuffer.back()); //std::cerr << "Considering Triangle (" << newTriangle->getSqrDist() << ") {" << (*newTriangle)[0] << "," << (*newTriangle)[1] << ","<< (*newTriangle)[2] << "} ("<< epaVolume[(*newTriangle)[0]] * newTriangle->getNormal() << ")" << std::endl; @@ -434,7 +434,7 @@ bool EPA::doEPA( GeomPrimitive &geom1, GeomPrimitive &geom2, const GJK& gjk, Vec && newTriangle->getSqrDist() > lowerBoundSqr && newTriangle->getSqrDist() < upperBoundSqr) { - entryHeap.push_back(newTriangle); + entryHeap.emplace_back(newTriangle); std::push_heap(entryHeap.begin(), entryHeap.end(), EPA::EPA_TriangleComp()); } @@ -555,11 +555,11 @@ inline void EPA::createInitialSimplex( size_t numPoints, GeomPrimitive &geom1, G //check for containment inside if(originInTetrahedron(epaVolume[0], epaVolume[2], epaVolume[3], epaVolume[4]) || originInTetrahedron(epaVolume[1], epaVolume[2], epaVolume[3], epaVolume[4]) ){ //insert triangle 1 - entryBuffer.push_back(EPA_Triangle(1, 2, 3, epaVolume)); //[0] up->ccw1->ccw2 + entryBuffer.emplace_back(1, 2, 3, epaVolume); //[0] up->ccw1->ccw2 //insert triangle 2 - entryBuffer.push_back(EPA_Triangle(1, 3, 4, epaVolume)); //[1] up->ccw2->ccw3 + entryBuffer.emplace_back(1, 3, 4, epaVolume); //[1] up->ccw2->ccw3 //insert triangle 3 - entryBuffer.push_back(EPA_Triangle(1, 4, 2, epaVolume)); //[2] up->ccw3->ccw1 + entryBuffer.emplace_back(1, 4, 2, epaVolume); //[2] up->ccw3->ccw1 //link these 3 triangles entryBuffer[0].link(2, &(entryBuffer[1]), 0); //edge up->ccw1 @@ -568,11 +568,11 @@ inline void EPA::createInitialSimplex( size_t numPoints, GeomPrimitive &geom1, G //insert triangle 4 - entryBuffer.push_back(EPA_Triangle(0, 2, 4, epaVolume)); //[3] down->ccw1->ccw3 + entryBuffer.emplace_back(0, 2, 4, epaVolume); //[3] down->ccw1->ccw3 //insert triangle 5 - entryBuffer.push_back(EPA_Triangle(0, 4, 3, epaVolume)); //[4] down->ccw3->ccw2 + entryBuffer.emplace_back(0, 4, 3, epaVolume); //[4] down->ccw3->ccw2 //insert triangle 6 - entryBuffer.push_back(EPA_Triangle(0, 3, 2, epaVolume)); //[5] down->ccw2->ccw1 + entryBuffer.emplace_back(0, 3, 2, epaVolume); //[5] down->ccw2->ccw1 //link these 3 triangles entryBuffer[3].link(2, &(entryBuffer[4]), 0); //edge down->ccw3 @@ -626,11 +626,11 @@ inline void EPA::createInitialSimplex( size_t numPoints, GeomPrimitive &geom1, G else { //Build the hexahedron as it is convex //insert triangle 1 - entryBuffer.push_back(EPA_Triangle(3, 2, 1, epaVolume)); //[0] support1->A->B + entryBuffer.emplace_back(3, 2, 1, epaVolume); //[0] support1->A->B //insert triangle 2 - entryBuffer.push_back(EPA_Triangle(3, 1, 0, epaVolume)); //[1] support1->B->C + entryBuffer.emplace_back(3, 1, 0, epaVolume); //[1] support1->B->C //insert triangle 3 - entryBuffer.push_back(EPA_Triangle(3, 0, 2, epaVolume)); //[2] support1->C->A + entryBuffer.emplace_back(3, 0, 2, epaVolume); //[2] support1->C->A //link these 3 triangles entryBuffer[0].link(2, &(entryBuffer[1]), 0); //edge support1->A @@ -639,11 +639,11 @@ inline void EPA::createInitialSimplex( size_t numPoints, GeomPrimitive &geom1, G //insert triangle 4 - entryBuffer.push_back(EPA_Triangle(4, 2, 0, epaVolume)); //[3] support2->A->C + entryBuffer.emplace_back(4, 2, 0, epaVolume); //[3] support2->A->C //insert triangle 5 - entryBuffer.push_back(EPA_Triangle(4, 0, 1, epaVolume)); //[4] support2->C->B + entryBuffer.emplace_back(4, 0, 1, epaVolume); //[4] support2->C->B //insert triangle 6 - entryBuffer.push_back(EPA_Triangle(4, 1, 2, epaVolume)); //[5] support2->B->A + entryBuffer.emplace_back(4, 1, 2, epaVolume); //[5] support2->B->A //link these 3 triangles entryBuffer[3].link(2, &(entryBuffer[4]), 0); //edge support2->C @@ -748,13 +748,13 @@ inline void EPA::createInitialTetrahedron( size_t top, size_t frontLeft, size_t EPA_EntryBuffer& entryBuffer ) { //insert triangle 1 - entryBuffer.push_back(EPA_Triangle(top, frontLeft, frontRight, epaVolume)); //[0] vorne + entryBuffer.emplace_back(top, frontLeft, frontRight, epaVolume); //[0] vorne //insert triangle 2 - entryBuffer.push_back(EPA_Triangle(top, frontRight, back, epaVolume)); //[1] rechts hinten + entryBuffer.emplace_back(top, frontRight, back, epaVolume); //[1] rechts hinten //insert triangle 3 - entryBuffer.push_back(EPA_Triangle(top, back, frontLeft, epaVolume)); //[2] links hinten + entryBuffer.emplace_back(top, back, frontLeft, epaVolume); //[2] links hinten //insert triangle 4 - entryBuffer.push_back(EPA_Triangle(back, frontRight, frontLeft, epaVolume)); //[3] unten + entryBuffer.emplace_back(back, frontRight, frontLeft, epaVolume); //[3] unten //make links between the triangles entryBuffer[0].link(0, &(entryBuffer[2]), 2); //Kante vorne links