From 18843fe5e1e94f10c38d1b4e0bc899d543892240 Mon Sep 17 00:00:00 2001 From: mensinda Date: Tue, 5 Apr 2016 22:53:54 +0200 Subject: [PATCH] Replaced BOOST_FOREACH with c++11 ranged for loops --- code/BlenderDNA.cpp | 12 +++--- code/BlenderIntermediate.h | 5 +-- code/BlenderLoader.cpp | 10 ++--- code/BlobIOSystem.h | 7 ++-- code/C4DImporter.cpp | 4 +- code/COBLoader.cpp | 33 ++++++++--------- code/ColladaLoader.cpp | 9 ++--- code/ColladaParser.cpp | 19 +++++----- code/DXFLoader.cpp | 23 ++++++------ code/Exporter.cpp | 2 +- code/FBXAnimation.cpp | 9 ++--- code/FBXConverter.cpp | 75 +++++++++++++++++++------------------- code/FBXDeformer.cpp | 5 +-- code/FBXDocument.cpp | 11 +++--- code/FBXMaterial.cpp | 5 +-- code/FBXMeshGeometry.cpp | 9 ++--- code/FBXModel.cpp | 5 +-- code/FBXParser.cpp | 3 +- code/FBXProperties.cpp | 7 ++-- code/IFCBoolean.cpp | 2 +- code/IFCCurve.cpp | 14 +++---- code/IFCGeometry.cpp | 20 +++++----- code/IFCLoader.cpp | 30 +++++++-------- code/IFCMaterial.cpp | 6 +-- code/IFCOpenings.cpp | 72 ++++++++++++++++++------------------ code/IFCProfile.cpp | 2 +- code/IFCUtil.cpp | 6 +-- code/NDOLoader.cpp | 8 ++-- code/ObjExporter.cpp | 13 +++---- code/STEPFile.h | 5 +-- code/XGLLoader.cpp | 4 +- code/XGLLoader.h | 5 +-- code/glTFExporter.cpp | 5 +-- 33 files changed, 209 insertions(+), 236 deletions(-) diff --git a/code/BlenderDNA.cpp b/code/BlenderDNA.cpp index 5fb14c052..a91c9f33d 100644 --- a/code/BlenderDNA.cpp +++ b/code/BlenderDNA.cpp @@ -48,13 +48,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "BlenderDNA.h" #include "StreamReader.h" #include "fast_atof.h" -#include using namespace Assimp; using namespace Assimp::Blender; using namespace Assimp::Formatter; -#define for_each BOOST_FOREACH bool match4(StreamReaderAny& stream, const char* string) { char tmp[] = { (stream).GetI1(), @@ -86,7 +84,7 @@ void DNAParser :: Parse () } std::vector names (stream.GetI4()); - for_each(std::string& s, names) { + for(std::string& s : names) { while (char c = stream.GetI1()) { s += c; } @@ -99,7 +97,7 @@ void DNAParser :: Parse () } std::vector types (stream.GetI4()); - for_each(Type& s, types) { + for(Type& s : types) { while (char c = stream.GetI1()) { s.name += c; } @@ -111,7 +109,7 @@ void DNAParser :: Parse () throw DeadlyImportError("BlenderDNA: Expected TLEN field"); } - for_each(Type& s, types) { + for(Type& s : types) { s.size = stream.GetI2(); } @@ -238,9 +236,9 @@ void DNA :: DumpToFile() f << "Field format: type name offset size" << "\n"; f << "Structure format: name size" << "\n"; - for_each(const Structure& s, structures) { + for(const Structure& s : structures) { f << s.name << " " << s.size << "\n\n"; - for_each(const Field& ff, s.fields) { + for(const Field& ff : s.fields) { f << "\t" << ff.type << " " << ff.name << " " << ff.offset << " " << ff.size << std::endl; } f << std::endl; diff --git a/code/BlenderIntermediate.h b/code/BlenderIntermediate.h index bf332516e..960a64e3d 100644 --- a/code/BlenderIntermediate.h +++ b/code/BlenderIntermediate.h @@ -49,14 +49,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "BlenderDNA.h" #include "BlenderScene.h" #include "BlenderSceneGen.h" -#include #include #include "./../include/assimp/material.h" struct aiTexture; -#define for_each(x,y) BOOST_FOREACH(x,y) - namespace Assimp { namespace Blender { @@ -71,7 +68,7 @@ namespace Blender { } ~TempArray () { - for_each(T* elem, arr) { + for(T* elem : arr) { delete elem; } } diff --git a/code/BlenderLoader.cpp b/code/BlenderLoader.cpp index 8df2f50fb..c9956249f 100644 --- a/code/BlenderLoader.cpp +++ b/code/BlenderLoader.cpp @@ -305,7 +305,7 @@ void BlenderImporter::ExtractScene(Scene& out, const FileDatabase& file) const Structure& ss = file.dna.structures[(*it).second]; // we need a scene somewhere to start with. - for_each(const FileBlockHead& bl,file.entries) { + for(const FileBlockHead& bl :file.entries) { // Fix: using the DNA index is more reliable to locate scenes //if (bl.id == "SC") { @@ -560,7 +560,7 @@ void BlenderImporter::BuildMaterials(ConversionData& conv_data) // add a default material if necessary unsigned int index = static_cast( -1 ); - for_each( aiMesh* mesh, conv_data.meshes.get() ) { + for( aiMesh* mesh : conv_data.meshes.get() ) { if (mesh->mMaterialIndex == static_cast( -1 )) { if (index == static_cast( -1 )) { @@ -589,7 +589,7 @@ void BlenderImporter::BuildMaterials(ConversionData& conv_data) } } - for_each(boost::shared_ptr mat, conv_data.materials_raw) { + for(boost::shared_ptr mat : conv_data.materials_raw) { // reset per material global counters for (size_t i = 0; i < sizeof(conv_data.next_texture)/sizeof(conv_data.next_texture[0]);++i) { @@ -722,7 +722,7 @@ void BlenderImporter::ConvertMesh(const Scene& /*in*/, const Object* /*obj*/, co temp->reserve(temp->size() + per_mat.size()); std::map mat_num_to_mesh_idx; - for_each(MyPair& it, per_mat) { + for(MyPair& it : per_mat) { mat_num_to_mesh_idx[it.first] = temp->size(); temp->push_back(new aiMesh()); @@ -1157,7 +1157,7 @@ aiNode* BlenderImporter::ConvertNode(const Scene& in, const Object* obj, Convers if (children.size()) { node->mNumChildren = static_cast(children.size()); aiNode** nd = node->mChildren = new aiNode*[node->mNumChildren](); - for_each (const Object* nobj,children) { + for (const Object* nobj :children) { *nd = ConvertNode(in,nobj,conv_data,node->mTransformation * parentTransform); (*nd++)->mParent = node; } diff --git a/code/BlobIOSystem.h b/code/BlobIOSystem.h index e157bb433..6cd014254 100644 --- a/code/BlobIOSystem.h +++ b/code/BlobIOSystem.h @@ -49,7 +49,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "./../include/assimp/cexport.h" #include "./../include/assimp/IOSystem.hpp" #include "./../include/assimp/DefaultLogger.hpp" -#include #include #include #include @@ -224,7 +223,7 @@ public: virtual ~BlobIOSystem() { - BOOST_FOREACH(BlobEntry& blobby, blobs) { + for(BlobEntry& blobby : blobs) { delete blobby.second; } } @@ -243,7 +242,7 @@ public: { // one must be the master aiExportDataBlob* master = NULL, *cur; - BOOST_FOREACH(const BlobEntry& blobby, blobs) { + for(const BlobEntry& blobby : blobs) { if (blobby.first == AI_BLOBIO_MAGIC) { master = blobby.second; break; @@ -257,7 +256,7 @@ public: master->name.Set(""); cur = master; - BOOST_FOREACH(const BlobEntry& blobby, blobs) { + for(const BlobEntry& blobby : blobs) { if (blobby.second == master) { continue; } diff --git a/code/C4DImporter.cpp b/code/C4DImporter.cpp index bfb82f93c..ae2cc8edf 100644 --- a/code/C4DImporter.cpp +++ b/code/C4DImporter.cpp @@ -161,7 +161,7 @@ void C4DImporter::InternReadFile( const std::string& pFile, RecurseHierarchy(doc->GetFirstObject(), pScene->mRootNode); } catch(...) { - BOOST_FOREACH(aiMesh* mesh, meshes) { + for(aiMesh* mesh : meshes) { delete mesh; } BaseDocument::Free(doc); @@ -176,7 +176,7 @@ void C4DImporter::InternReadFile( const std::string& pFile, // copy materials over, adding a default material if necessary unsigned int mat_count = static_cast(materials.size()); - BOOST_FOREACH(aiMesh* mesh, meshes) { + for(aiMesh* mesh : meshes) { ai_assert(mesh->mMaterialIndex <= mat_count); if(mesh->mMaterialIndex >= mat_count) { ++mat_count; diff --git a/code/COBLoader.cpp b/code/COBLoader.cpp index 210913e19..f4560f944 100644 --- a/code/COBLoader.cpp +++ b/code/COBLoader.cpp @@ -54,7 +54,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "LineSplitter.h" #include "TinyFormatter.h" #include -#include #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/DefaultLogger.hpp" #include "../include/assimp/scene.h" @@ -64,8 +63,6 @@ using namespace Assimp; using namespace Assimp::COB; using namespace Assimp::Formatter; -#define for_each BOOST_FOREACH - static const float units[] = { 1000.f, @@ -170,17 +167,17 @@ void COBImporter::InternReadFile( const std::string& pFile, } // sort faces by material indices - for_each(boost::shared_ptr< Node >& n,scene.nodes) { + for(boost::shared_ptr< Node >& n : scene.nodes) { if (n->type == Node::TYPE_MESH) { Mesh& mesh = (Mesh&)(*n.get()); - for_each(Face& f,mesh.faces) { + for(Face& f : mesh.faces) { mesh.temp_map[f.material].push_back(&f); } } } // count meshes - for_each(boost::shared_ptr< Node >& n,scene.nodes) { + for(boost::shared_ptr< Node >& n : scene.nodes) { if (n->type == Node::TYPE_MESH) { Mesh& mesh = (Mesh&)(*n.get()); if (mesh.vertex_positions.size() && mesh.texture_coords.size()) { @@ -193,7 +190,7 @@ void COBImporter::InternReadFile( const std::string& pFile, pScene->mNumMeshes = 0; // count lights and cameras - for_each(boost::shared_ptr< Node >& n,scene.nodes) { + for(boost::shared_ptr< Node >& n : scene.nodes) { if (n->type == Node::TYPE_LIGHT) { ++pScene->mNumLights; } @@ -251,10 +248,10 @@ aiNode* COBImporter::BuildNodes(const Node& root,const Scene& scin,aiScene* fill if (ndmesh.vertex_positions.size() && ndmesh.texture_coords.size()) { typedef std::pair Entry; - for_each(const Entry& reflist,ndmesh.temp_map) { + for(const Entry& reflist : ndmesh.temp_map) { { // create mesh size_t n = 0; - for_each(Face* f, reflist.second) { + for(Face* f : reflist.second) { n += f->indices.size(); } if (!n) { @@ -267,7 +264,7 @@ aiNode* COBImporter::BuildNodes(const Node& root,const Scene& scin,aiScene* fill outmesh->mTextureCoords[0] = new aiVector3D[n]; outmesh->mFaces = new aiFace[reflist.second.size()](); - for_each(Face* f, reflist.second) { + for(Face* f : reflist.second) { if (f->indices.empty()) { continue; } @@ -275,7 +272,7 @@ aiNode* COBImporter::BuildNodes(const Node& root,const Scene& scin,aiScene* fill aiFace& fout = outmesh->mFaces[outmesh->mNumFaces++]; fout.mIndices = new unsigned int[f->indices.size()]; - for_each(VertexIndex& v, f->indices) { + for(VertexIndex& v : f->indices) { if (v.pos_idx >= ndmesh.vertex_positions.size()) { ThrowException("Position index out of range"); } @@ -295,7 +292,7 @@ aiNode* COBImporter::BuildNodes(const Node& root,const Scene& scin,aiScene* fill outmesh->mMaterialIndex = fill->mNumMaterials; }{ // create material const Material* min = NULL; - for_each(const Material& m, scin.materials) { + for(const Material& m : scin.materials) { if (m.parent_id == ndmesh.id && m.matnum == reflist.first) { min = &m; break; @@ -396,7 +393,7 @@ aiNode* COBImporter::BuildNodes(const Node& root,const Scene& scin,aiScene* fill // add children recursively nd->mChildren = new aiNode*[root.temp_children.size()](); - for_each(const Node* n, root.temp_children) { + for(const Node* n : root.temp_children) { (nd->mChildren[nd->mNumChildren++] = BuildNodes(*n,scin,fill))->mParent = nd; } @@ -647,7 +644,7 @@ void COBImporter::ReadUnit_Ascii(Scene& out, LineSplitter& splitter, const Chunk // parent chunks preceede their childs, so we should have the // corresponding chunk already. - for_each(boost::shared_ptr< Node >& nd, out.nodes) { + for(boost::shared_ptr< Node >& nd : out.nodes) { if (nd->id == nfo.parent_id) { const unsigned int t=strtoul10(splitter[1]); @@ -903,7 +900,7 @@ void COBImporter::ReadBitM_Ascii(Scene& /*out*/, LineSplitter& splitter, const C void COBImporter::ReadString_Binary(std::string& out, StreamReaderLE& reader) { out.resize( reader.GetI2()); - for_each(char& c,out) { + for(char& c : out) { c = reader.GetI1(); } } @@ -1043,14 +1040,14 @@ void COBImporter::ReadPolH_Binary(COB::Scene& out, StreamReaderLE& reader, const ReadBasicNodeInfo_Binary(msh,reader,nfo); msh.vertex_positions.resize(reader.GetI4()); - for_each(aiVector3D& v,msh.vertex_positions) { + for(aiVector3D& v : msh.vertex_positions) { v.x = reader.GetF4(); v.y = reader.GetF4(); v.z = reader.GetF4(); } msh.texture_coords.resize(reader.GetI4()); - for_each(aiVector2D& v,msh.texture_coords) { + for(aiVector2D& v : msh.texture_coords) { v.x = reader.GetF4(); v.y = reader.GetF4(); } @@ -1283,7 +1280,7 @@ void COBImporter::ReadUnit_Binary(COB::Scene& out, StreamReaderLE& reader, const // parent chunks preceede their childs, so we should have the // corresponding chunk already. - for_each(boost::shared_ptr< Node >& nd, out.nodes) { + for(boost::shared_ptr< Node >& nd : out.nodes) { if (nd->id == nfo.parent_id) { const unsigned int t=reader.GetI2(); nd->unit_scale = t>=sizeof(units)/sizeof(units[0])?( diff --git a/code/ColladaLoader.cpp b/code/ColladaLoader.cpp index e3a697929..74139bf56 100644 --- a/code/ColladaLoader.cpp +++ b/code/ColladaLoader.cpp @@ -56,7 +56,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "time.h" #include "math.h" -#include #include "../include/assimp/DefaultLogger.hpp" #include "../include/assimp/Importer.hpp" #include @@ -317,7 +316,7 @@ void ColladaLoader::ApplyVertexToEffectSemanticMapping(Collada::Sampler& sampler // Builds lights for the given node and references them void ColladaLoader::BuildLightsForNode( const ColladaParser& pParser, const Collada::Node* pNode, aiNode* pTarget) { - BOOST_FOREACH( const Collada::LightInstance& lid, pNode->mLights) + for( const Collada::LightInstance& lid : pNode->mLights) { // find the referred light ColladaParser::LightLibrary::const_iterator srcLightIt = pParser.mLightLibrary.find( lid.mLight); @@ -385,7 +384,7 @@ void ColladaLoader::BuildLightsForNode( const ColladaParser& pParser, const Coll // Builds cameras for the given node and references them void ColladaLoader::BuildCamerasForNode( const ColladaParser& pParser, const Collada::Node* pNode, aiNode* pTarget) { - BOOST_FOREACH( const Collada::CameraInstance& cid, pNode->mCameras) + for( const Collada::CameraInstance& cid : pNode->mCameras) { // find the referred light ColladaParser::CameraLibrary::const_iterator srcCameraIt = pParser.mCameraLibrary.find( cid.mCamera); @@ -447,7 +446,7 @@ void ColladaLoader::BuildMeshesForNode( const ColladaParser& pParser, const Coll newMeshRefs.reserve(pNode->mMeshes.size()); // add a mesh for each subgroup in each collada mesh - BOOST_FOREACH( const Collada::MeshInstance& mid, pNode->mMeshes) + for( const Collada::MeshInstance& mid : pNode->mMeshes) { const Collada::Mesh* srcMesh = NULL; const Collada::Controller* srcController = NULL; @@ -1170,7 +1169,7 @@ void ColladaLoader::CreateAnimation( aiScene* pScene, const ColladaParser& pPars } ++pos; } - + // https://github.com/assimp/assimp/issues/458 // Sub-sample axis-angle channels if the delta between two consecutive // key-frame angles is >= 180 degrees. diff --git a/code/ColladaParser.cpp b/code/ColladaParser.cpp index bccac5f79..e1304c65f 100644 --- a/code/ColladaParser.cpp +++ b/code/ColladaParser.cpp @@ -52,7 +52,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "fast_atof.h" #include "ParsingUtils.h" #include -#include #include "../include/assimp/DefaultLogger.hpp" #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/light.h" @@ -529,10 +528,10 @@ void ColladaParser::ReadAnimation( Collada::Animation* pParent) // it turned out to have channels - add them if( !channels.empty()) { - // FIXME: Is this essentially doing the same as "single-anim-node" codepath in + // FIXME: Is this essentially doing the same as "single-anim-node" codepath in // ColladaLoader::StoreAnimations? For now, this has been deferred to after - // all animations and all clips have been read. Due to handling of - // this cannot be done here, as the channel owner + // all animations and all clips have been read. Due to handling of + // this cannot be done here, as the channel owner // is lost, and some exporters make up animations by referring to multiple // single-channel animations from an . /* @@ -1404,7 +1403,7 @@ void ColladaParser::ReadEffectProfileCommon( Collada::Effect& pEffect) pEffect.mHasTransparency = true; const char* opaque = mReader->getAttributeValueSafe("opaque"); - + if(::strcmp(opaque, "RGB_ZERO") == 0 || ::strcmp(opaque, "RGB_ONE") == 0) { pEffect.mRGBTransparency = true; } @@ -2249,7 +2248,7 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector& pP // find the offset index for all per-vertex channels size_t numOffsets = 1; size_t perVertexOffset = SIZE_MAX; // invalid value - BOOST_FOREACH( const InputChannel& channel, pPerIndexChannels) + for( const InputChannel& channel : pPerIndexChannels) { numOffsets = std::max( numOffsets, channel.mOffset+1); if( channel.mType == IT_Vertex) @@ -2262,7 +2261,7 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector& pP { case Prim_Polylist: { - BOOST_FOREACH( size_t i, pVCount) + for( size_t i : pVCount) expectedPointCount += i; break; } @@ -2910,14 +2909,14 @@ AI_WONT_RETURN void ColladaParser::ThrowException( const std::string& pError) co void ColladaParser::ReportWarning(const char* msg,...) { ai_assert(NULL != msg); - + va_list args; va_start(args,msg); - + char szBuffer[3000]; const int iLen = vsprintf(szBuffer,msg,args); ai_assert(iLen > 0); - + va_end(args); DefaultLogger::get()->warn("Validation warning: " + std::string(szBuffer,iLen)); } diff --git a/code/DXFLoader.cpp b/code/DXFLoader.cpp index f21ea15fb..7f861a992 100644 --- a/code/DXFLoader.cpp +++ b/code/DXFLoader.cpp @@ -54,7 +54,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "DXFHelper.h" #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/scene.h" -#include #include using namespace Assimp; @@ -222,8 +221,8 @@ void DXFImporter::ConvertMeshes(aiScene* pScene, DXF::FileData& output) if (!DefaultLogger::isNullLogger()) { unsigned int vcount = 0, icount = 0; - BOOST_FOREACH (const DXF::Block& bl, output.blocks) { - BOOST_FOREACH (boost::shared_ptr pl, bl.lines) { + for (const DXF::Block& bl : output.blocks) { + for (boost::shared_ptr pl : bl.lines) { vcount += pl->positions.size(); icount += pl->counts.size(); } @@ -242,7 +241,7 @@ void DXFImporter::ConvertMeshes(aiScene* pScene, DXF::FileData& output) // index blocks by name DXF::BlockMap blocks_by_name; - BOOST_FOREACH (DXF::Block& bl, output.blocks) { + for (DXF::Block& bl : output.blocks) { blocks_by_name[bl.name] = &bl; if ( !entities && bl.name == AI_DXF_ENTITIES_MAGIC_BLOCK ) { entities = &bl; @@ -263,7 +262,7 @@ void DXFImporter::ConvertMeshes(aiScene* pScene, DXF::FileData& output) ExpandBlockReferences(*entities,blocks_by_name); unsigned int cur = 0; - BOOST_FOREACH (boost::shared_ptr pl, entities->lines) { + for (boost::shared_ptr pl : entities->lines) { if (pl->positions.size()) { std::map::iterator it = layers.find(pl->layer); @@ -289,12 +288,12 @@ void DXFImporter::ConvertMeshes(aiScene* pScene, DXF::FileData& output) pScene->mMeshes = new aiMesh*[ pScene->mNumMeshes ] (); - BOOST_FOREACH(const LayerMap::value_type& elem, layers){ + for(const LayerMap::value_type& elem : layers){ aiMesh* const mesh = pScene->mMeshes[elem.second] = new aiMesh(); mesh->mName.Set(elem.first); unsigned int cvert = 0,cface = 0; - BOOST_FOREACH(const DXF::PolyLine* pl, corr[elem.second]){ + for(const DXF::PolyLine* pl : corr[elem.second]){ // sum over all faces since we need to 'verbosify' them. cvert += std::accumulate(pl->counts.begin(),pl->counts.end(),0); cface += pl->counts.size(); @@ -309,10 +308,10 @@ void DXFImporter::ConvertMeshes(aiScene* pScene, DXF::FileData& output) unsigned int prims = 0; unsigned int overall_indices = 0; - BOOST_FOREACH(const DXF::PolyLine* pl, corr[elem.second]){ + for(const DXF::PolyLine* pl : corr[elem.second]){ std::vector::const_iterator it = pl->indices.begin(); - BOOST_FOREACH(unsigned int facenumv,pl->counts) { + for(unsigned int facenumv : pl->counts) { aiFace& face = *faces++; face.mIndices = new unsigned int[face.mNumIndices = facenumv]; @@ -358,7 +357,7 @@ void DXFImporter::ConvertMeshes(aiScene* pScene, DXF::FileData& output) // ------------------------------------------------------------------------------------------------ void DXFImporter::ExpandBlockReferences(DXF::Block& bl,const DXF::BlockMap& blocks_by_name) { - BOOST_FOREACH (const DXF::InsertBlock& insert, bl.insertions) { + for (const DXF::InsertBlock& insert : bl.insertions) { // first check if the referenced blocks exists ... const DXF::BlockMap::const_iterator it = blocks_by_name.find(insert.name); @@ -372,7 +371,7 @@ void DXFImporter::ExpandBlockReferences(DXF::Block& bl,const DXF::BlockMap& bloc // XXX this would be the place to implement recursive expansion if needed. const DXF::Block& bl_src = *(*it).second; - BOOST_FOREACH (boost::shared_ptr pl_in, bl_src.lines) { + for (boost::shared_ptr pl_in : bl_src.lines) { boost::shared_ptr pl_out = boost::shared_ptr(new DXF::PolyLine(*pl_in)); if (bl_src.base.Length() || insert.scale.x!=1.f || insert.scale.y!=1.f || insert.scale.z!=1.f || insert.angle || insert.pos.Length()) { @@ -388,7 +387,7 @@ void DXFImporter::ExpandBlockReferences(DXF::Block& bl,const DXF::BlockMap& bloc DefaultLogger::get()->warn("DXF: BLOCK rotation not currently implemented"); } - BOOST_FOREACH (aiVector3D& v, pl_out->positions) { + for (aiVector3D& v : pl_out->positions) { v *= trafo; } } diff --git a/code/Exporter.cpp b/code/Exporter.cpp index 888a65bd0..873fa1612 100644 --- a/code/Exporter.cpp +++ b/code/Exporter.cpp @@ -491,7 +491,7 @@ const aiExportFormatDesc* Exporter :: GetExportFormatDescription( size_t pIndex // ------------------------------------------------------------------------------------------------ aiReturn Exporter :: RegisterExporter(const ExportFormatEntry& desc) { - BOOST_FOREACH(const ExportFormatEntry& e, pimpl->mExporters) { + for(const ExportFormatEntry& e : pimpl->mExporters) { if (!strcmp(e.mDescription.id,desc.mDescription.id)) { return aiReturn_FAILURE; } diff --git a/code/FBXAnimation.cpp b/code/FBXAnimation.cpp index dc5550ec9..0758d4db7 100644 --- a/code/FBXAnimation.cpp +++ b/code/FBXAnimation.cpp @@ -51,7 +51,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "FBXImportSettings.h" #include "FBXDocumentUtil.h" #include "FBXProperties.h" -#include namespace Assimp { namespace FBX { @@ -110,7 +109,7 @@ AnimationCurveNode::AnimationCurveNode(uint64_t id, const Element& element, cons const char* whitelist[] = {"Model","NodeAttribute"}; const std::vector& conns = doc.GetConnectionsBySourceSequenced(ID(),whitelist,2); - BOOST_FOREACH(const Connection* con, conns) { + for(const Connection* con : conns) { // link should go for a property if (!con->PropertyName().length()) { @@ -171,7 +170,7 @@ const AnimationCurveMap& AnimationCurveNode::Curves() const // resolve attached animation curves const std::vector& conns = doc.GetConnectionsByDestinationSequenced(ID(),"AnimationCurve"); - BOOST_FOREACH(const Connection* con, conns) { + for(const Connection* con : conns) { // link should go for a property if (!con->PropertyName().length()) { @@ -227,7 +226,7 @@ AnimationCurveNodeList AnimationLayer::Nodes(const char* const * target_prop_whi const std::vector& conns = doc.GetConnectionsByDestinationSequenced(ID(),"AnimationCurveNode"); nodes.reserve(conns.size()); - BOOST_FOREACH(const Connection* con, conns) { + for(const Connection* con : conns) { // link should not go to a property if (con->PropertyName().length()) { @@ -278,7 +277,7 @@ AnimationStack::AnimationStack(uint64_t id, const Element& element, const std::s const std::vector& conns = doc.GetConnectionsByDestinationSequenced(ID(),"AnimationLayer"); layers.reserve(conns.size()); - BOOST_FOREACH(const Connection* con, conns) { + for(const Connection* con : conns) { // link should not go to a property if (con->PropertyName().length()) { diff --git a/code/FBXConverter.cpp b/code/FBXConverter.cpp index 6c22f0792..4ff44b86d 100644 --- a/code/FBXConverter.cpp +++ b/code/FBXConverter.cpp @@ -55,7 +55,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "../include/assimp/scene.h" #include -#include #include #include @@ -79,8 +78,8 @@ using namespace Util; class Converter { public: - /** - * The different parts that make up the final local transformation of a fbx-node + /** + * The different parts that make up the final local transformation of a fbx-node */ enum TransformationComp { @@ -144,8 +143,8 @@ private: // ------------------------------------------------------------------------------------------------ void GetRotationMatrix( Model::RotOrder mode, const aiVector3D& rotation, aiMatrix4x4& out ); // ------------------------------------------------------------------------------------------------ - /** - * checks if a node has more than just scaling, rotation and translation components + /** + * checks if a node has more than just scaling, rotation and translation components */ bool NeedsComplexTransformationChain( const Model& model ); @@ -154,8 +153,8 @@ private: std::string NameTransformationChainNode( const std::string& name, TransformationComp comp ); // ------------------------------------------------------------------------------------------------ - /** - * note: memory for output_nodes will be managed by the caller + /** + * note: memory for output_nodes will be managed by the caller */ void GenerateTransformationNodeChain( const Model& model, std::vector& output_nodes ); @@ -192,11 +191,11 @@ private: // ------------------------------------------------------------------------------------------------ - /** + /** * - if materialIndex == NO_MATERIAL_SEPARATION, materials are not taken into * account when determining which weights to include. * - outputVertStartIndices is only used when a material index is specified, it gives for - * each output vertex the DOM index it maps to. + * each output vertex the DOM index it maps to. */ void ConvertWeights( aiMesh* out, const Model& model, const MeshGeometry& geo, const aiMatrix4x4& node_global_transform = aiMatrix4x4(), @@ -457,7 +456,7 @@ Converter::Converter( aiScene* out, const Document& doc ) if ( doc.Settings().readAllMaterials ) { // unfortunately this means we have to evaluate all objects - BOOST_FOREACH( const ObjectMap::value_type& v, doc.Objects() ) { + for( const ObjectMap::value_type& v : doc.Objects() ) { const Object* ob = v.second->Get(); if ( !ob ) { @@ -515,7 +514,7 @@ void Converter::ConvertNodes( uint64_t id, aiNode& parent, const aiMatrix4x4& pa std::vector nodes_chain; try { - BOOST_FOREACH( const Connection* con, conns ) { + for( const Connection* con : conns ) { // ignore object-property links if ( con->PropertyName().length() ) { @@ -550,7 +549,7 @@ void Converter::ConvertNodes( uint64_t id, aiNode& parent, const aiMatrix4x4& pa // preserve the name - people might have scripts etc. that rely // on specific node names. aiNode* name_carrier = NULL; - BOOST_FOREACH( aiNode* prenode, nodes_chain ) { + for( aiNode* prenode : nodes_chain ) { if ( !strcmp( prenode->mName.C_Str(), original_name.c_str() ) ) { name_carrier = prenode; break; @@ -567,7 +566,7 @@ void Converter::ConvertNodes( uint64_t id, aiNode& parent, const aiMatrix4x4& pa // link all nodes in a row aiNode* last_parent = &parent; - BOOST_FOREACH( aiNode* prenode, nodes_chain ) { + for( aiNode* prenode : nodes_chain ) { ai_assert( prenode ); if ( last_parent != &parent ) { @@ -619,7 +618,7 @@ void Converter::ConvertNodes( uint64_t id, aiNode& parent, const aiMatrix4x4& pa void Converter::ConvertLights( const Model& model ) { const std::vector& node_attrs = model.GetAttributes(); - BOOST_FOREACH( const NodeAttribute* attr, node_attrs ) { + for( const NodeAttribute* attr : node_attrs ) { const Light* const light = dynamic_cast( attr ); if ( light ) { ConvertLight( model, *light ); @@ -630,7 +629,7 @@ void Converter::ConvertLights( const Model& model ) void Converter::ConvertCameras( const Model& model ) { const std::vector& node_attrs = model.GetAttributes(); - BOOST_FOREACH( const NodeAttribute* attr, node_attrs ) { + for( const NodeAttribute* attr : node_attrs ) { const Camera* const cam = dynamic_cast( attr ); if ( cam ) { ConvertCamera( model, *cam ); @@ -1089,7 +1088,7 @@ void Converter::SetupNodeMetadata( const Model& model, aiNode& nd ) data->Set( index++, "IsNull", model.IsNull() ? true : false ); // add unparsed properties to the node's metadata - BOOST_FOREACH( const DirectPropertyMap::value_type& prop, unparsedProperties ) { + for( const DirectPropertyMap::value_type& prop : unparsedProperties ) { // Interpret the property as a concrete type if ( const TypedProperty* interpreted = prop.second->As >() ) @@ -1116,7 +1115,7 @@ void Converter::ConvertModel( const Model& model, aiNode& nd, const aiMatrix4x4& std::vector meshes; meshes.reserve( geos.size() ); - BOOST_FOREACH( const Geometry* geo, geos ) { + for( const Geometry* geo : geos ) { const MeshGeometry* const mesh = dynamic_cast< const MeshGeometry* >( geo ); if ( mesh ) { @@ -1160,7 +1159,7 @@ std::vector Converter::ConvertMesh( const MeshGeometry& mesh, cons const MatIndexArray& mindices = mesh.GetMaterialIndices(); if ( doc.Settings().readMaterials && !mindices.empty() ) { const MatIndexArray::value_type base = mindices[ 0 ]; - BOOST_FOREACH( MatIndexArray::value_type index, mindices ) { + for( MatIndexArray::value_type index : mindices ) { if ( index != base ) { return ConvertMeshMultiMaterial( mesh, model, node_global_transform ); } @@ -1212,7 +1211,7 @@ unsigned int Converter::ConvertMeshSingleMaterial( const MeshGeometry& mesh, con aiFace* fac = out_mesh->mFaces = new aiFace[ faces.size() ](); unsigned int cursor = 0; - BOOST_FOREACH( unsigned int pcount, faces ) { + for( unsigned int pcount : faces ) { aiFace& f = *fac++; f.mNumIndices = pcount; f.mIndices = new unsigned int[ pcount ]; @@ -1287,7 +1286,7 @@ unsigned int Converter::ConvertMeshSingleMaterial( const MeshGeometry& mesh, con } aiVector3D* out_uv = out_mesh->mTextureCoords[ i ] = new aiVector3D[ vertices.size() ]; - BOOST_FOREACH( const aiVector2D& v, uvs ) { + for( const aiVector2D& v : uvs ) { *out_uv++ = aiVector3D( v.x, v.y, 0.0f ); } @@ -1329,7 +1328,7 @@ std::vector Converter::ConvertMeshMultiMaterial( const MeshGeometr std::set had; std::vector indices; - BOOST_FOREACH( MatIndexArray::value_type index, mindices ) { + for( MatIndexArray::value_type index : mindices ) { if ( had.find( index ) == had.end() ) { indices.push_back( ConvertMeshMultiMaterial( mesh, model, index, node_global_transform ) ); @@ -1537,7 +1536,7 @@ void Converter::ConvertWeights( aiMesh* out, const Model& model, const MeshGeome try { - BOOST_FOREACH( const Cluster* cluster, sk.Clusters() ) { + for( const Cluster* cluster : sk.Clusters() ) { ai_assert( cluster ); const WeightIndexArray& indices = cluster->GetIndices(); @@ -1558,7 +1557,7 @@ void Converter::ConvertWeights( aiMesh* out, const Model& model, const MeshGeome // now check if *any* of these weights is contained in the output mesh, // taking notes so we don't need to do it twice. - BOOST_FOREACH( WeightIndexArray::value_type index, indices ) { + for( WeightIndexArray::value_type index : indices ) { unsigned int count = 0; const unsigned int* const out_idx = geo.ToOutputVertexIndex( index, count ); @@ -1839,7 +1838,7 @@ void Converter::TrySetTextureProperties( aiMaterial* out_mat, const TextureMap& uvIndex = -1; if ( !mesh ) { - BOOST_FOREACH( const MeshMap::value_type& v, meshes_converted ) { + for( const MeshMap::value_type& v : meshes_converted ) { const MeshGeometry* const mesh = dynamic_cast ( v.first ); if ( !mesh ) { continue; @@ -1957,7 +1956,7 @@ void Converter::TrySetTextureProperties( aiMaterial* out_mat, const LayeredTextu uvIndex = -1; if ( !mesh ) { - BOOST_FOREACH( const MeshMap::value_type& v, meshes_converted ) { + for( const MeshMap::value_type& v : meshes_converted ) { const MeshGeometry* const mesh = dynamic_cast ( v.first ); if ( !mesh ) { continue; @@ -2190,7 +2189,7 @@ void Converter::ConvertAnimations() anim_fps = FrameRateToDouble( fps, custom ); const std::vector& animations = doc.AnimationStacks(); - BOOST_FOREACH( const AnimationStack* stack, animations ) { + for( const AnimationStack* stack : animations ) { ConvertAnimationStack( *stack ); } } @@ -2205,21 +2204,21 @@ void Converter::RenameNode( const std::string& fixed_name, const std::string& ne const aiString fn( fixed_name ); - BOOST_FOREACH( aiCamera* cam, cameras ) { + for( aiCamera* cam : cameras ) { if ( cam->mName == fn ) { cam->mName.Set( new_name ); break; } } - BOOST_FOREACH( aiLight* light, lights ) { + for( aiLight* light : lights ) { if ( light->mName == fn ) { light->mName.Set( new_name ); break; } } - BOOST_FOREACH( aiAnimation* anim, animations ) { + for( aiAnimation* anim : animations ) { for ( unsigned int i = 0; i < anim->mNumChannels; ++i ) { aiNodeAnim* const na = anim->mChannels[ i ]; if ( na->mNodeName == fn ) { @@ -2299,11 +2298,11 @@ void Converter::ConvertAnimationStack( const AnimationStack& st ) "Lcl Translation" }; - BOOST_FOREACH( const AnimationLayer* layer, layers ) { + for( const AnimationLayer* layer : layers ) { ai_assert( layer ); const AnimationCurveNodeList& nodes = layer->Nodes( prop_whitelist, 3 ); - BOOST_FOREACH( const AnimationCurveNode* node, nodes ) { + for( const AnimationCurveNode* node : nodes ) { ai_assert( node ); const Model* const model = dynamic_cast( node->Target() ); @@ -2331,7 +2330,7 @@ void Converter::ConvertAnimationStack( const AnimationStack& st ) double stop_timeF = CONVERT_FBX_TIME( stop_time ); try { - BOOST_FOREACH( const NodeMap::value_type& kv, node_map ) { + for( const NodeMap::value_type& kv : node_map ) { GenerateNodeAnimations( node_anims, kv.first, kv.second, @@ -2389,7 +2388,7 @@ void Converter::ConvertAnimationStack( const AnimationStack& st ) static void validateAnimCurveNodes( const std::vector& curves, bool strictMode ) { const Object* target( NULL ); - BOOST_FOREACH( const AnimationCurveNode* node, curves ) { + for( const AnimationCurveNode* node : curves ) { if ( !target ) { target = node->Target(); } @@ -2419,7 +2418,7 @@ void Converter::GenerateNodeAnimations( std::vector& node_anims, validateAnimCurveNodes( curves, doc.Settings().strictMode ); #endif const AnimationCurveNode* curve_node = NULL; - BOOST_FOREACH( const AnimationCurveNode* node, curves ) { + for( const AnimationCurveNode* node : curves ) { ai_assert( node ); if ( node->TargetProperty().empty() ) { @@ -2927,11 +2926,11 @@ Converter::KeyFrameListList Converter::GetKeyframeList( const std::vectorCurves(); - BOOST_FOREACH( const AnimationCurveMap::value_type& kv, curves ) { + for( const AnimationCurveMap::value_type& kv : curves ) { unsigned int mapto; if ( kv.first == "d|X" ) { @@ -2984,7 +2983,7 @@ KeyTimeList Converter::GetKeyTimeList( const KeyFrameListList& inputs ) KeyTimeList keys; size_t estimate = 0; - BOOST_FOREACH( const KeyFrameList& kfl, inputs ) { + for( const KeyFrameList& kfl : inputs ) { estimate = std::max( estimate, kfl.get<0>()->size() ); } @@ -3037,7 +3036,7 @@ void Converter::InterpolateKeys( aiVectorKey* valOut, const KeyTimeList& keys, c next_pos.resize( inputs.size(), 0 ); - BOOST_FOREACH( KeyTimeList::value_type time, keys ) { + for( KeyTimeList::value_type time : keys ) { float result[ 3 ] = { def_value.x, def_value.y, def_value.z }; for ( size_t i = 0; i < count; ++i ) { diff --git a/code/FBXDeformer.cpp b/code/FBXDeformer.cpp index 4df8d97b1..47db96563 100644 --- a/code/FBXDeformer.cpp +++ b/code/FBXDeformer.cpp @@ -50,7 +50,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "FBXImportSettings.h" #include "FBXDocumentUtil.h" #include "FBXProperties.h" -#include namespace Assimp { namespace FBX { @@ -107,7 +106,7 @@ Cluster::Cluster(uint64_t id, const Element& element, const Document& doc, const // read assigned node const std::vector& conns = doc.GetConnectionsByDestinationSequenced(ID(),"Model"); - BOOST_FOREACH(const Connection* con, conns) { + for(const Connection* con : conns) { const Model* const mod = ProcessSimpleConnection(*con, false, "Model -> Cluster", element); if(mod) { node = mod; @@ -143,7 +142,7 @@ Skin::Skin(uint64_t id, const Element& element, const Document& doc, const std:: const std::vector& conns = doc.GetConnectionsByDestinationSequenced(ID(),"Deformer"); clusters.reserve(conns.size()); - BOOST_FOREACH(const Connection* con, conns) { + for(const Connection* con : conns) { const Cluster* const cluster = ProcessSimpleConnection(*con, false, "Cluster -> Skin", element); if(cluster) { diff --git a/code/FBXDocument.cpp b/code/FBXDocument.cpp index e2c38aa85..674d9e17d 100644 --- a/code/FBXDocument.cpp +++ b/code/FBXDocument.cpp @@ -53,7 +53,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "FBXDocumentUtil.h" #include "FBXProperties.h" -#include #include #include @@ -146,7 +145,7 @@ const Object* LazyObject::Get(bool dieOnError) // For debugging //dumpObjectClassInfo( objtype, classtag ); - + if (!strncmp(obtype,"Geometry",length)) { if (!strcmp(classtag.c_str(),"Mesh")) { object.reset(new MeshGeometry(id,element,name,doc)); @@ -290,11 +289,11 @@ Document::Document(const Parser& parser, const ImportSettings& settings) // ------------------------------------------------------------------------------------------------ Document::~Document() { - BOOST_FOREACH(ObjectMap::value_type& v, objects) { + for(ObjectMap::value_type& v : objects) { delete v.second; } - BOOST_FOREACH(ConnectionMap::value_type& v, src_connections) { + for(ConnectionMap::value_type& v : src_connections) { delete v.second; } // |dest_connections| contain the same Connection objects as the |src_connections| @@ -388,7 +387,7 @@ void Document::ReadObjects() objects[0] = new LazyObject(0L, *eobjects, *this); const Scope& sobjects = *eobjects->Compound(); - BOOST_FOREACH(const ElementMap::value_type& el, sobjects.Elements()) { + for(const ElementMap::value_type& el : sobjects.Elements()) { // extract ID const TokenList& tok = el.second->Tokens(); @@ -538,7 +537,7 @@ const std::vector& Document::AnimationStacks() const } animationStacksResolved.reserve(animationStacks.size()); - BOOST_FOREACH(uint64_t id, animationStacks) { + for(uint64_t id : animationStacks) { LazyObject* const lazy = GetObject(id); const AnimationStack* stack; if(!lazy || !(stack = lazy->Get())) { diff --git a/code/FBXMaterial.cpp b/code/FBXMaterial.cpp index c14140319..43e501d67 100644 --- a/code/FBXMaterial.cpp +++ b/code/FBXMaterial.cpp @@ -51,7 +51,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "FBXDocumentUtil.h" #include "FBXProperties.h" #include "ByteSwapper.h" -#include namespace Assimp { namespace FBX { @@ -96,7 +95,7 @@ Material::Material(uint64_t id, const Element& element, const Document& doc, con // resolve texture links const std::vector& conns = doc.GetConnectionsByDestinationSequenced(ID()); - BOOST_FOREACH(const Connection* con, conns) { + for(const Connection* con : conns) { // texture link to properties, not objects if (!con->PropertyName().length()) { @@ -205,7 +204,7 @@ Texture::Texture(uint64_t id, const Element& element, const Document& doc, const // resolve video links if(doc.Settings().readTextures) { const std::vector& conns = doc.GetConnectionsByDestinationSequenced(ID()); - BOOST_FOREACH(const Connection* con, conns) { + for(const Connection* con : conns) { const Object* const ob = con->SourceObject(); if(!ob) { DOMWarning("failed to read source object for texture link, ignoring",&element); diff --git a/code/FBXMeshGeometry.cpp b/code/FBXMeshGeometry.cpp index 5b60e4623..e9d83911b 100644 --- a/code/FBXMeshGeometry.cpp +++ b/code/FBXMeshGeometry.cpp @@ -51,7 +51,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "FBXImporter.h" #include "FBXImportSettings.h" #include "FBXDocumentUtil.h" -#include namespace Assimp { @@ -65,7 +64,7 @@ Geometry::Geometry(uint64_t id, const Element& element, const std::string& name, , skin() { const std::vector& conns = doc.GetConnectionsByDestinationSequenced(ID(),"Deformer"); - BOOST_FOREACH(const Connection* con, conns) { + for(const Connection* con : conns) { const Skin* const sk = ProcessSimpleConnection(*con, false, "Skin -> Geometry", element); if(sk) { skin = sk; @@ -130,7 +129,7 @@ MeshGeometry::MeshGeometry(uint64_t id, const Element& element, const std::strin // generate output vertices, computing an adjacency table to // preserve the mapping from fbx indices to *this* indexing. unsigned int count = 0; - BOOST_FOREACH(int index, tempFaces) { + for(int index : tempFaces) { const int absi = index < 0 ? (-index - 1) : index; if(static_cast(absi) >= vertex_count) { DOMError("polygon vertex index out of range",&PolygonVertexIndex); @@ -156,7 +155,7 @@ MeshGeometry::MeshGeometry(uint64_t id, const Element& element, const std::strin } cursor = 0; - BOOST_FOREACH(int index, tempFaces) { + for(int index : tempFaces) { const int absi = index < 0 ? (-index - 1) : index; mappings[mapping_offsets[absi] + mapping_counts[absi]++] = cursor++; } @@ -494,7 +493,7 @@ void ResolveVertexDataArray(std::vector& data_out, const Scope& source, } unsigned int next = 0; - BOOST_FOREACH(int i, uvIndices) { + for(int i : uvIndices) { if (static_cast(i) >= tempData.size()) { DOMError("index out of range",&GetRequiredElement(source,indexDataElementName)); } diff --git a/code/FBXModel.cpp b/code/FBXModel.cpp index 776334e78..bbeb14bfb 100644 --- a/code/FBXModel.cpp +++ b/code/FBXModel.cpp @@ -51,7 +51,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "FBXImportSettings.h" #include "FBXDocumentUtil.h" #include "FBXProperties.h" -#include namespace Assimp { namespace FBX { @@ -98,7 +97,7 @@ void Model::ResolveLinks(const Element& element, const Document& doc) materials.reserve(conns.size()); geometry.reserve(conns.size()); attributes.reserve(conns.size()); - BOOST_FOREACH(const Connection* con, conns) { + for(const Connection* con : conns) { // material and geometry links should be Object-Object connections if (con->PropertyName().length()) { @@ -139,7 +138,7 @@ void Model::ResolveLinks(const Element& element, const Document& doc) bool Model::IsNull() const { const std::vector& attrs = GetAttributes(); - BOOST_FOREACH(const NodeAttribute* att, attrs) { + for(const NodeAttribute* att : attrs) { const Null* null_tag = dynamic_cast(att); if(null_tag) { diff --git a/code/FBXParser.cpp b/code/FBXParser.cpp index 0c3290151..beca20b14 100644 --- a/code/FBXParser.cpp +++ b/code/FBXParser.cpp @@ -58,7 +58,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "ParsingUtils.h" #include "fast_atof.h" -#include #include "ByteSwapper.h" #include @@ -208,7 +207,7 @@ Scope::Scope(Parser& parser,bool topLevel) // ------------------------------------------------------------------------------------------------ Scope::~Scope() { - BOOST_FOREACH(ElementMap::value_type& v, elements) { + for(ElementMap::value_type& v : elements) { delete v.second; } } diff --git a/code/FBXProperties.cpp b/code/FBXProperties.cpp index 053cd530f..16d2df789 100644 --- a/code/FBXProperties.cpp +++ b/code/FBXProperties.cpp @@ -49,7 +49,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "FBXDocument.h" #include "FBXDocumentUtil.h" #include "FBXProperties.h" -#include namespace Assimp { namespace FBX { @@ -145,7 +144,7 @@ PropertyTable::PropertyTable(const Element& element, boost::shared_ptr::const_iterator vit = first_operand.verts.begin(); - BOOST_FOREACH(unsigned int pcount, first_operand.vertcnt) { + for(unsigned int pcount : first_operand.vertcnt) { temp.Clear(); temp.verts.insert(temp.verts.end(), vit, vit + pcount); diff --git a/code/IFCCurve.cpp b/code/IFCCurve.cpp index 5b1a939b9..7554da5e2 100644 --- a/code/IFCCurve.cpp +++ b/code/IFCCurve.cpp @@ -239,7 +239,7 @@ public: , total() { curves.reserve(entity.Segments.size()); - BOOST_FOREACH(const IfcCompositeCurveSegment& curveSegment,entity.Segments) { + for(const IfcCompositeCurveSegment& curveSegment :entity.Segments) { // according to the specification, this must be a bounded curve boost::shared_ptr< Curve > cv(Curve::Convert(curveSegment.ParentCurve,conv)); boost::shared_ptr< BoundedCurve > bc = boost::dynamic_pointer_cast(cv); @@ -271,7 +271,7 @@ public: } IfcFloat acc = 0; - BOOST_FOREACH(const CurveEntry& entry, curves) { + for(const CurveEntry& entry : curves) { const ParamRange& range = entry.first->GetParametricRange(); const IfcFloat delta = std::abs(range.second-range.first); if (u < acc+delta) { @@ -290,7 +290,7 @@ public: size_t cnt = 0; IfcFloat acc = 0; - BOOST_FOREACH(const CurveEntry& entry, curves) { + for(const CurveEntry& entry : curves) { const ParamRange& range = entry.first->GetParametricRange(); const IfcFloat delta = std::abs(range.second-range.first); if (a <= acc+delta && b >= acc) { @@ -312,7 +312,7 @@ public: const size_t cnt = EstimateSampleCount(a,b); out.verts.reserve(out.verts.size() + cnt); - BOOST_FOREACH(const CurveEntry& entry, curves) { + for(const CurveEntry& entry : curves) { const size_t cnt = out.verts.size(); entry.first->SampleDiscrete(out); @@ -357,7 +357,7 @@ public: // oh well. bool have_param = false, have_point = false; IfcVector3 point; - BOOST_FOREACH(const Entry sel,entity.Trim1) { + for(const Entry sel :entity.Trim1) { if (const EXPRESS::REAL* const r = sel->ToPtr()) { range.first = *r; have_param = true; @@ -374,7 +374,7 @@ public: } } have_param = false, have_point = false; - BOOST_FOREACH(const Entry sel,entity.Trim2) { + for(const Entry sel :entity.Trim2) { if (const EXPRESS::REAL* const r = sel->ToPtr()) { range.second = *r; have_param = true; @@ -465,7 +465,7 @@ public: points.reserve(entity.Points.size()); IfcVector3 t; - BOOST_FOREACH(const IfcCartesianPoint& cp, entity.Points) { + for(const IfcCartesianPoint& cp : entity.Points) { ConvertCartesianPoint(t,cp); points.push_back(t); } diff --git a/code/IFCGeometry.cpp b/code/IFCGeometry.cpp index d62c23644..38e1f0f66 100644 --- a/code/IFCGeometry.cpp +++ b/code/IFCGeometry.cpp @@ -62,7 +62,7 @@ namespace Assimp { bool ProcessPolyloop(const IfcPolyLoop& loop, TempMesh& meshout, ConversionData& /*conv*/) { size_t cnt = 0; - BOOST_FOREACH(const IfcCartesianPoint& c, loop.Polygon) { + for(const IfcCartesianPoint& c : loop.Polygon) { IfcVector3 tmp; ConvertCartesianPoint(tmp,c); @@ -191,10 +191,10 @@ void ProcessPolygonBoundaries(TempMesh& result, const TempMesh& inmesh, size_t m // ------------------------------------------------------------------------------------------------ void ProcessConnectedFaceSet(const IfcConnectedFaceSet& fset, TempMesh& result, ConversionData& conv) { - BOOST_FOREACH(const IfcFace& face, fset.CfsFaces) { + for(const IfcFace& face : fset.CfsFaces) { // size_t ob = -1, cnt = 0; TempMesh meshout; - BOOST_FOREACH(const IfcFaceBound& bound, face.Bounds) { + for(const IfcFaceBound& bound : face.Bounds) { if(const IfcPolyLoop* const polyloop = bound.Bound->ToPtr()) { if(ProcessPolyloop(*polyloop, meshout,conv)) { @@ -219,7 +219,7 @@ void ProcessConnectedFaceSet(const IfcConnectedFaceSet& fset, TempMesh& result, /*if(!IsTrue(bound.Orientation)) { size_t c = 0; - BOOST_FOREACH(unsigned int& c, meshout.vertcnt) { + for(unsigned int& c : meshout.vertcnt) { std::reverse(result.verts.begin() + cnt,result.verts.begin() + cnt + c); cnt += c; } @@ -547,7 +547,7 @@ void ProcessExtrudedArea(const IfcExtrudedAreaSolid& solid, const TempMesh& curv IfcVector3 vmin, vmax; MinMaxChooser()(vmin, vmax); - BOOST_FOREACH(IfcVector3& v, in) { + for(IfcVector3& v : in) { v *= trafo; vmin = std::min(vmin, v); @@ -579,7 +579,7 @@ void ProcessExtrudedArea(const IfcExtrudedAreaSolid& solid, const TempMesh& curv } nors.reserve(conv.apply_openings->size()); - BOOST_FOREACH(TempOpening& t, *conv.apply_openings) { + for(TempOpening& t : *conv.apply_openings) { TempMesh& bounds = *t.profileMesh.get(); if( bounds.verts.size() <= 2 ) { @@ -617,7 +617,7 @@ void ProcessExtrudedArea(const IfcExtrudedAreaSolid& solid, const TempMesh& curv } if( openings ) { - BOOST_FOREACH(TempOpening& opening, *conv.apply_openings) { + for(TempOpening& opening : *conv.apply_openings) { if( !opening.wallPoints.empty() ) { IFCImporter::LogError("failed to generate all window caps"); } @@ -697,7 +697,7 @@ void ProcessExtrudedAreaSolid(const IfcExtrudedAreaSolid& solid, TempMesh& resul std::vector* oldCollectOpenings = conv.collect_openings; conv.collect_openings = &fisherPriceMyFirstOpenings; - BOOST_FOREACH(const IfcCurve* curve, cprofile->InnerCurves) { + for(const IfcCurve* curve : cprofile->InnerCurves) { TempMesh curveMesh, tempMesh; ProcessCurve(*curve, curveMesh, conv); ProcessExtrudedArea(solid, curveMesh, dir, tempMesh, conv, true); @@ -734,7 +734,7 @@ bool ProcessGeometricItem(const IfcRepresentationItem& geo, unsigned int matid, bool fix_orientation = false; boost::shared_ptr< TempMesh > meshtmp = boost::make_shared(); if(const IfcShellBasedSurfaceModel* shellmod = geo.ToPtr()) { - BOOST_FOREACH(boost::shared_ptr shell,shellmod->SbsmBoundary) { + for(boost::shared_ptr shell :shellmod->SbsmBoundary) { try { const EXPRESS::ENTITY& e = shell->To(); const IfcConnectedFaceSet& fs = conv.db.MustGetObject(e).To(); @@ -762,7 +762,7 @@ bool ProcessGeometricItem(const IfcRepresentationItem& geo, unsigned int matid, fix_orientation = true; } else if(const IfcFaceBasedSurfaceModel* surf = geo.ToPtr()) { - BOOST_FOREACH(const IfcConnectedFaceSet& fc, surf->FbsmFaces) { + for(const IfcConnectedFaceSet& fc : surf->FbsmFaces) { ProcessConnectedFaceSet(fc,*meshtmp.get(),conv); } fix_orientation = true; diff --git a/code/IFCLoader.cpp b/code/IFCLoader.cpp index 3cd8c7338..4366fa04e 100644 --- a/code/IFCLoader.cpp +++ b/code/IFCLoader.cpp @@ -383,7 +383,7 @@ void SetUnits(ConversionData& conv) void SetCoordinateSpace(ConversionData& conv) { const IfcRepresentationContext* fav = NULL; - BOOST_FOREACH(const IfcRepresentationContext& v, conv.proj.RepresentationContexts) { + for(const IfcRepresentationContext& v : conv.proj.RepresentationContexts) { fav = &v; // Model should be the most suitable type of context, hence ignore the others if (v.ContextType && v.ContextType.Get() == "Model") { @@ -440,7 +440,7 @@ bool ProcessMappedItem(const IfcMappedItem& mapped, aiNode* nd_src, std::vector< if (conv.apply_openings) { IfcMatrix4 minv = msrc; minv.Inverse(); - BOOST_FOREACH(TempOpening& open,*conv.apply_openings){ + for(TempOpening& open :*conv.apply_openings){ open.Transform(minv); } } @@ -449,7 +449,7 @@ bool ProcessMappedItem(const IfcMappedItem& mapped, aiNode* nd_src, std::vector< const IfcRepresentation& repr = mapped.MappingSource->MappedRepresentation; bool got = false; - BOOST_FOREACH(const IfcRepresentationItem& item, repr.Items) { + for(const IfcRepresentationItem& item : repr.Items) { if(!ProcessRepresentationItem(item,localmatid,meshes,conv)) { IFCImporter::LogWarn("skipping mapped entity of type " + item.GetClassName() + ", no representations could be generated"); } @@ -564,9 +564,9 @@ void ProcessProductRepresentation(const IfcProduct& el, aiNode* nd, std::vector< std::vector repr_ordered(src.size()); std::copy(src.begin(),src.end(),repr_ordered.begin()); std::sort(repr_ordered.begin(),repr_ordered.end(),RateRepresentationPredicate()); - BOOST_FOREACH(const IfcRepresentation* repr, repr_ordered) { + for(const IfcRepresentation* repr : repr_ordered) { bool res = false; - BOOST_FOREACH(const IfcRepresentationItem& item, repr->Items) { + for(const IfcRepresentationItem& item : repr->Items) { if(const IfcMappedItem* const geo = item.ToPtr()) { res = ProcessMappedItem(*geo,nd,subnodes,matid,conv) || res; } @@ -589,7 +589,7 @@ void ProcessMetadata(const ListOf< Lazy< IfcProperty >, 1, 0 >& set, ConversionD const std::string& prefix = "", unsigned int nest = 0) { - BOOST_FOREACH(const IfcProperty& property, set) { + for(const IfcProperty& property : set) { const std::string& key = prefix.length() > 0 ? (prefix + "." + property.Name) : property.Name; if (const IfcPropertySingleValue* const singleValue = property.ToPtr()) { if (singleValue->NominalValue) { @@ -615,7 +615,7 @@ void ProcessMetadata(const ListOf< Lazy< IfcProperty >, 1, 0 >& set, ConversionD std::stringstream ss; ss << "["; unsigned index=0; - BOOST_FOREACH(const IfcValue::Out& v, listValue->ListValues) { + for(const IfcValue::Out& v : listValue->ListValues) { if (!v) continue; if (const EXPRESS::STRING* str = v->ToPtr()) { std::string value = static_cast(*str); @@ -713,7 +713,7 @@ aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el, Conversion data->mValues = new aiMetadataEntry[data->mNumProperties](); unsigned int index = 0; - BOOST_FOREACH(const Metadata::value_type& kv, properties) + for(const Metadata::value_type& kv : properties) data->Set(index++, kv.first, aiString(kv.second)); nd->mMetaData = data; @@ -751,7 +751,7 @@ aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el, Conversion if(cont->RelatingStructure->GetID() != el.GetID()) { continue; } - BOOST_FOREACH(const IfcProduct& pro, cont->RelatedElements) { + for(const IfcProduct& pro : cont->RelatedElements) { if(pro.ToPtr()) { // IfcOpeningElement is handled below. Sadly we can't use it here as is: // The docs say that opening elements are USUALLY attached to building storey, @@ -794,7 +794,7 @@ aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el, Conversion } // we need all openings to be in the local space of *this* node, so transform them - BOOST_FOREACH(TempOpening& op,openings_local) { + for(TempOpening& op :openings_local) { op.Transform( myInv*nd_aggr->mChildren[0]->mTransformation); openings.push_back(op); } @@ -823,7 +823,7 @@ aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el, Conversion nd_aggr->mTransformation = nd->mTransformation; nd_aggr->mChildren = new aiNode*[aggr->RelatedObjects.size()](); - BOOST_FOREACH(const IfcObjectDefinition& def, aggr->RelatedObjects) { + for(const IfcObjectDefinition& def : aggr->RelatedObjects) { if(const IfcProduct* const prod = def.ToPtr()) { aiNode* const ndnew = ProcessSpatialStructure(nd_aggr.get(),*prod,conv,NULL); @@ -849,7 +849,7 @@ aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el, Conversion if (subnodes.size()) { nd->mChildren = new aiNode*[subnodes.size()](); - BOOST_FOREACH(aiNode* nd2, subnodes) { + for(aiNode* nd2 : subnodes) { nd->mChildren[nd->mNumChildren++] = nd2; nd2->mParent = nd.get(); } @@ -889,7 +889,7 @@ void ProcessSpatialStructures(ConversionData& conv) } - BOOST_FOREACH(const STEP::LazyObject* lz, *range) { + for(const STEP::LazyObject* lz : *range) { const IfcSpatialStructureElement* const prod = lz->ToPtr(); if(!prod) { continue; @@ -902,7 +902,7 @@ void ProcessSpatialStructures(ConversionData& conv) for(;range.first != range.second; ++range.first) { if(const IfcRelAggregates* const aggr = conv.db.GetObject((*range.first).second)->ToPtr()) { - BOOST_FOREACH(const IfcObjectDefinition& def, aggr->RelatedObjects) { + for(const IfcObjectDefinition& def : aggr->RelatedObjects) { // comparing pointer values is not sufficient, we would need to cast them to the same type first // as there is multiple inheritance in the game. if (def.GetID() == prod->GetID()) { @@ -919,7 +919,7 @@ void ProcessSpatialStructures(ConversionData& conv) IFCImporter::LogWarn("failed to determine primary site element, taking the first IfcSite"); - BOOST_FOREACH(const STEP::LazyObject* lz, *range) { + for(const STEP::LazyObject* lz : *range) { const IfcSpatialStructureElement* const prod = lz->ToPtr(); if(!prod) { continue; diff --git a/code/IFCMaterial.cpp b/code/IFCMaterial.cpp index d1954a88c..be0015bab 100644 --- a/code/IFCMaterial.cpp +++ b/code/IFCMaterial.cpp @@ -76,7 +76,7 @@ void FillMaterial(aiMaterial* mat,const IFC::IfcSurfaceStyle* surf,ConversionDat mat->AddProperty(&name,AI_MATKEY_NAME); // now see which kinds of surface information are present - BOOST_FOREACH(boost::shared_ptr< const IFC::IfcSurfaceStyleElementSelect > sel2, surf->Styles) { + for(boost::shared_ptr< const IFC::IfcSurfaceStyleElementSelect > sel2 : surf->Styles) { if (const IFC::IfcSurfaceStyleShading* shade = sel2->ResolveSelectPtr(conv.db)) { aiColor4D col_base,col; @@ -139,8 +139,8 @@ unsigned int ProcessMaterials(uint64_t id, unsigned int prevMatId, ConversionDat STEP::DB::RefMapRange range = conv.db.GetRefs().equal_range(id); for(;range.first != range.second; ++range.first) { if(const IFC::IfcStyledItem* const styled = conv.db.GetObject((*range.first).second)->ToPtr()) { - BOOST_FOREACH(const IFC::IfcPresentationStyleAssignment& as, styled->Styles) { - BOOST_FOREACH(boost::shared_ptr sel, as.Styles) { + for(const IFC::IfcPresentationStyleAssignment& as : styled->Styles) { + for(boost::shared_ptr sel : as.Styles) { if( const IFC::IfcSurfaceStyle* const surf = sel->ResolveSelectPtr(conv.db) ) { // try to satisfy from cache diff --git a/code/IFCOpenings.cpp b/code/IFCOpenings.cpp index d1dd9f50c..51ea14314 100644 --- a/code/IFCOpenings.cpp +++ b/code/IFCOpenings.cpp @@ -213,7 +213,7 @@ bool BoundingBoxesOverlapping( const BoundingBox &ibb, const BoundingBox &bb ) bool IsDuplicateVertex(const IfcVector2& vv, const std::vector& temp_contour) { // sanity check for duplicate vertices - BOOST_FOREACH(const IfcVector2& cp, temp_contour) { + for(const IfcVector2& cp : temp_contour) { if ((cp-vv).SquareLength() < 1e-5f) { return true; } @@ -226,7 +226,7 @@ void ExtractVerticesFromClipper(const ClipperLib::Polygon& poly, std::vector()(newbb_min, newbb_max); - BOOST_FOREACH(const ClipperLib::IntPoint& point, poly) { + for(const ClipperLib::IntPoint& point : poly) { IfcVector2 vv = IfcVector2( from_int64(point.X), from_int64(point.Y)); // sanity rounding @@ -391,7 +391,7 @@ void MergeWindowContours (const std::vector& a, ClipperLib::Clipper clipper; ClipperLib::Polygon clip; - BOOST_FOREACH(const IfcVector2& pip, a) { + for(const IfcVector2& pip : a) { clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); } @@ -402,7 +402,7 @@ void MergeWindowContours (const std::vector& a, clipper.AddPolygon(clip, ClipperLib::ptSubject); clip.clear(); - BOOST_FOREACH(const IfcVector2& pip, b) { + for(const IfcVector2& pip : b) { clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); } @@ -425,7 +425,7 @@ void MakeDisjunctWindowContours (const std::vector& a, ClipperLib::Clipper clipper; ClipperLib::Polygon clip; - BOOST_FOREACH(const IfcVector2& pip, a) { + for(const IfcVector2& pip : a) { clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); } @@ -436,7 +436,7 @@ void MakeDisjunctWindowContours (const std::vector& a, clipper.AddPolygon(clip, ClipperLib::ptClip); clip.clear(); - BOOST_FOREACH(const IfcVector2& pip, b) { + for(const IfcVector2& pip : b) { clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); } @@ -458,7 +458,7 @@ void CleanupWindowContour(ProjectedWindowContour& window) ClipperLib::Clipper clipper; ClipperLib::ExPolygons clipped; - BOOST_FOREACH(const IfcVector2& pip, contour) { + for(const IfcVector2& pip : contour) { subject.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); } @@ -488,7 +488,7 @@ void CleanupWindowContours(ContourVector& contours) { // Use PolyClipper to clean up window contours try { - BOOST_FOREACH(ProjectedWindowContour& window, contours) { + for(ProjectedWindowContour& window : contours) { CleanupWindowContour(window); } } @@ -516,7 +516,7 @@ void CleanupOuterContour(const std::vector& contour_flat, TempMesh& ClipperLib::Polygon clip; clip.reserve(contour_flat.size()); - BOOST_FOREACH(const IfcVector2& pip, contour_flat) { + for(const IfcVector2& pip : contour_flat) { clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); } @@ -530,7 +530,7 @@ void CleanupOuterContour(const std::vector& contour_flat, TempMesh& subject.reserve(4); size_t index = 0; size_t countdown = 0; - BOOST_FOREACH(const IfcVector3& pip, curmesh.verts) { + for(const IfcVector3& pip : curmesh.verts) { if (!countdown) { countdown = curmesh.vertcnt[index++]; if (!countdown) { @@ -548,9 +548,9 @@ void CleanupOuterContour(const std::vector& contour_flat, TempMesh& clipper.Execute(ClipperLib::ctIntersection,clipped,ClipperLib::pftNonZero,ClipperLib::pftNonZero); - BOOST_FOREACH(const ClipperLib::ExPolygon& ex, clipped) { + for(const ClipperLib::ExPolygon& ex : clipped) { iold.push_back(ex.outer.size()); - BOOST_FOREACH(const ClipperLib::IntPoint& point, ex.outer) { + for(const ClipperLib::IntPoint& point : ex.outer) { vold.push_back(IfcVector3( from_int64(point.X), from_int64(point.Y), @@ -866,7 +866,7 @@ size_t CloseWindows(ContourVector& contours, OpeningRefs& refs = contours_to_openings[std::distance(contours.begin(), it)]; bool has_other_side = false; - BOOST_FOREACH(const TempOpening* opening, refs) { + for(const TempOpening* opening : refs) { if(!opening->wallPoints.empty()) { has_other_side = true; break; @@ -929,8 +929,8 @@ size_t CloseWindows(ContourVector& contours, const IfcVector3 world_point = minv * IfcVector3(proj_point.x,proj_point.y,0.0f); - BOOST_FOREACH(const TempOpening* opening, refs) { - BOOST_FOREACH(const IfcVector3& other, opening->wallPoints) { + for(const TempOpening* opening : refs) { + for(const IfcVector3& other : opening->wallPoints) { const IfcFloat sqdist = (world_point - other).SquareLength(); if (sqdist < best) { @@ -987,7 +987,7 @@ size_t CloseWindows(ContourVector& contours, else { const Contour::const_iterator cbegin = (*it).contour.begin(), cend = (*it).contour.end(); - BOOST_FOREACH(TempOpening* opening, refs) { + for(TempOpening* opening : refs) { ai_assert(opening->wallPoints.empty()); opening->wallPoints.reserve(opening->wallPoints.capacity() + (*it).contour.size()); for (Contour::const_iterator cit = cbegin; cit != cend; ++cit) { @@ -1023,7 +1023,7 @@ void Quadrify(const std::vector< BoundingBox >& bbs, TempMesh& curmesh) curmesh.vertcnt.resize(quads.size()/4,4); curmesh.verts.reserve(quads.size()); - BOOST_FOREACH(const IfcVector2& v2, quads) { + for(const IfcVector2& v2 : quads) { curmesh.verts.push_back(IfcVector3(v2.x, v2.y, static_cast(0.0))); } } @@ -1034,7 +1034,7 @@ void Quadrify(const ContourVector& contours, TempMesh& curmesh) std::vector bbs; bbs.reserve(contours.size()); - BOOST_FOREACH(const ContourVector::value_type& val, contours) { + for(const ContourVector::value_type& val : contours) { bbs.push_back(val.bb); } @@ -1065,7 +1065,7 @@ IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh MinMaxChooser()(vmin, vmax); // Project all points into the new coordinate system, collect min/max verts on the way - BOOST_FOREACH(const IfcVector3& x, in_verts) { + for(const IfcVector3& x : in_verts) { const IfcVector3 vv = m * x; // keep Z offset in the plane coordinate system. Ignoring precision issues // (which are present, of course), this should be the same value for @@ -1089,7 +1089,7 @@ IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh // [0,1] range. This gives us a consistent data range so all epsilons // used below can be constants. vmax -= vmin; - BOOST_FOREACH(IfcVector2& vv, out_contour) { + for(IfcVector2& vv : out_contour) { vv.x = (vv.x - vmin.x) / vmax.x; vv.y = (vv.y - vmin.y) / vmax.y; @@ -1110,7 +1110,7 @@ IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh // debug code to verify correctness #ifdef ASSIMP_BUILD_DEBUG std::vector out_contour2; - BOOST_FOREACH(const IfcVector3& x, in_verts) { + for(const IfcVector3& x : in_verts) { const IfcVector3& vv = m * x; out_contour2.push_back(IfcVector2(vv.x,vv.y)); @@ -1161,7 +1161,7 @@ bool GenerateOpenings(std::vector& openings, IfcVector3 wall_extrusion_axis_norm = wall_extrusion_axis; wall_extrusion_axis_norm.Normalize(); - BOOST_FOREACH(TempOpening& opening,openings) { + for(TempOpening& opening :openings) { // extrusionDir may be 0,0,0 on case where the opening mesh is not an // IfcExtrudedAreaSolid but something else (i.e. a brep) @@ -1413,7 +1413,7 @@ bool GenerateOpenings(std::vector& openings, CleanupOuterContour(contour_flat, curmesh); // Undo the projection and get back to world (or local object) space - BOOST_FOREACH(IfcVector3& v3, curmesh.verts) { + for(IfcVector3& v3 : curmesh.verts) { v3 = minv * v3; } @@ -1455,7 +1455,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: MinMaxChooser()(vmin, vmax); // Move all points into the new coordinate system, collecting min/max verts on the way - BOOST_FOREACH(IfcVector3& x, out) { + for(IfcVector3& x : out) { const IfcVector3 vv = m * x; // keep Z offset in the plane coordinate system. Ignoring precision issues @@ -1498,7 +1498,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: ClipperLib::Clipper clipper_holes; size_t c = 0; - BOOST_FOREACH(const TempOpening& t,openings) { + for(const TempOpening& t :openings) { const IfcVector3& outernor = nors[c++]; const IfcFloat dot = nor * outernor; if (std::fabs(dot)<1.f-1e-6f) { @@ -1512,7 +1512,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: std::vector contour; - BOOST_FOREACH(const IfcVector3& xx, t.profileMesh->verts) { + for(const IfcVector3& xx : t.profileMesh->verts) { IfcVector3 vv = m * xx, vv_extr = m * (xx + t.extrusionDir); const bool is_extruded_side = std::fabs(vv.z - coord) > std::fabs(vv_extr.z - coord); @@ -1533,7 +1533,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: } ClipperLib::Polygon hole; - BOOST_FOREACH(IfcVector2& pip, contour) { + for(IfcVector2& pip : contour) { pip.x = (pip.x - vmin.x) / vmax.x; pip.y = (pip.y - vmin.y) / vmax.y; @@ -1566,7 +1566,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: // to obtain the final polygon to feed into the triangulator. { ClipperLib::Polygon poly; - BOOST_FOREACH(IfcVector2& pip, contour_flat) { + for(IfcVector2& pip : contour_flat) { pip.x = (pip.x - vmin.x) / vmax.x; pip.y = (pip.y - vmin.y) / vmax.y; @@ -1606,13 +1606,13 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: if (false && do_connections) { std::vector tmpvec; - BOOST_FOREACH(ClipperLib::Polygon& opening, holes_union) { + for(ClipperLib::Polygon& opening : holes_union) { assert(ClipperLib::Orientation(opening)); tmpvec.clear(); - BOOST_FOREACH(ClipperLib::IntPoint& point, opening) { + for(ClipperLib::IntPoint& point : opening) { tmpvec.push_back( minv * IfcVector3( vmin.x + from_int64(point.X) * vmax.x, @@ -1638,13 +1638,13 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: } std::vector< std::vector > contours; - BOOST_FOREACH(ClipperLib::ExPolygon& clip, clipped) { + for(ClipperLib::ExPolygon& clip : clipped) { contours.clear(); // Build the outer polygon contour line for feeding into poly2tri std::vector contour_points; - BOOST_FOREACH(ClipperLib::IntPoint& point, clip.outer) { + for(ClipperLib::IntPoint& point : clip.outer) { contour_points.push_back( new p2t::Point(from_int64(point.X), from_int64(point.Y)) ); } @@ -1664,12 +1664,12 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: // Build the poly2tri inner contours for all holes we got from ClipperLib - BOOST_FOREACH(ClipperLib::Polygon& opening, clip.holes) { + for(ClipperLib::Polygon& opening : clip.holes) { contours.push_back(std::vector()); std::vector& contour = contours.back(); - BOOST_FOREACH(ClipperLib::IntPoint& point, opening) { + for(ClipperLib::IntPoint& point : opening) { contour.push_back( new p2t::Point(from_int64(point.X), from_int64(point.Y)) ); } @@ -1689,7 +1689,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: const std::vector tris = cdt->GetTriangles(); // Collect the triangles we just produced - BOOST_FOREACH(p2t::Triangle* tri, tris) { + for(p2t::Triangle* tri : tris) { for(int i = 0; i < 3; ++i) { const IfcVector2 v = IfcVector2( diff --git a/code/IFCProfile.cpp b/code/IFCProfile.cpp index c2bf91c56..04e0b39cc 100644 --- a/code/IFCProfile.cpp +++ b/code/IFCProfile.cpp @@ -55,7 +55,7 @@ void ProcessPolyLine(const IfcPolyline& def, TempMesh& meshout, ConversionData& { // this won't produce a valid mesh, it just spits out a list of vertices IfcVector3 t; - BOOST_FOREACH(const IfcCartesianPoint& cp, def.Points) { + for(const IfcCartesianPoint& cp : def.Points) { ConvertCartesianPoint(t,cp); meshout.verts.push_back(t); } diff --git a/code/IFCUtil.cpp b/code/IFCUtil.cpp index 233d52d0b..7a47fb02d 100644 --- a/code/IFCUtil.cpp +++ b/code/IFCUtil.cpp @@ -115,7 +115,7 @@ void TempMesh::Clear() // ------------------------------------------------------------------------------------------------ void TempMesh::Transform(const IfcMatrix4& mat) { - BOOST_FOREACH(IfcVector3& v, verts) { + for(IfcVector3& v : verts) { v *= mat; } } @@ -222,7 +222,7 @@ void TempMesh::ComputePolygonNormals(std::vector& normals, } if(normalize) { - BOOST_FOREACH(IfcVector3& n, normals) { + for(IfcVector3& n : normals) { n.Normalize(); } } @@ -383,7 +383,7 @@ void TempMesh::RemoveAdjacentDuplicates() bool drop = false; std::vector::iterator base = verts.begin(); - BOOST_FOREACH(unsigned int& cnt, vertcnt) { + for(unsigned int& cnt : vertcnt) { if (cnt < 2){ base += cnt; continue; diff --git a/code/NDOLoader.cpp b/code/NDOLoader.cpp index 08a151717..699e97051 100644 --- a/code/NDOLoader.cpp +++ b/code/NDOLoader.cpp @@ -50,10 +50,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/scene.h" #include "StreamReader.h" -#include using namespace Assimp; -#define for_each BOOST_FOREACH static const aiImporterDesc desc = { "Nendo Mesh Importer", @@ -241,7 +239,7 @@ void NDOImporter::InternReadFile( const std::string& pFile, std::vector vertices; std::vector indices; - for_each(const Object& obj,objects) { + for(const Object& obj : objects) { aiNode* nd = *cc++ = new aiNode(obj.name); nd->mParent = root; @@ -250,7 +248,7 @@ void NDOImporter::InternReadFile( const std::string& pFile, FaceTable face_table; unsigned int n = 0; - for_each(const Edge& edge, obj.edges) { + for(const Edge& edge : obj.edges) { face_table[edge.edge[2]] = n; face_table[edge.edge[3]] = n; @@ -263,7 +261,7 @@ void NDOImporter::InternReadFile( const std::string& pFile, vertices.clear(); vertices.reserve(4 * face_table.size()); // arbitrarily chosen - for_each(FaceTable::value_type& v, face_table) { + for(FaceTable::value_type& v : face_table) { indices.clear(); aiFace& f = *faces++; diff --git a/code/ObjExporter.cpp b/code/ObjExporter.cpp index 4cfdb37e5..254786968 100644 --- a/code/ObjExporter.cpp +++ b/code/ObjExporter.cpp @@ -51,7 +51,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include -#include #include @@ -217,7 +216,7 @@ void ObjExporter :: WriteGeometryFile() // write vertex positions vpMap.getVectors(vp); mOutput << "# " << vp.size() << " vertex positions" << endl; - BOOST_FOREACH(const aiVector3D& v, vp) { + for(const aiVector3D& v : vp) { mOutput << "v " << v.x << " " << v.y << " " << v.z << endl; } mOutput << endl; @@ -225,7 +224,7 @@ void ObjExporter :: WriteGeometryFile() // write uv coordinates vtMap.getVectors(vt); mOutput << "# " << vt.size() << " UV coordinates" << endl; - BOOST_FOREACH(const aiVector3D& v, vt) { + for(const aiVector3D& v : vt) { mOutput << "vt " << v.x << " " << v.y << " " << v.z << endl; } mOutput << endl; @@ -233,22 +232,22 @@ void ObjExporter :: WriteGeometryFile() // write vertex normals vnMap.getVectors(vn); mOutput << "# " << vn.size() << " vertex normals" << endl; - BOOST_FOREACH(const aiVector3D& v, vn) { + for(const aiVector3D& v : vn) { mOutput << "vn " << v.x << " " << v.y << " " << v.z << endl; } mOutput << endl; // now write all mesh instances - BOOST_FOREACH(const MeshInstance& m, meshes) { + for(const MeshInstance& m : meshes) { mOutput << "# Mesh \'" << m.name << "\' with " << m.faces.size() << " faces" << endl; if (!m.name.empty()) { mOutput << "g " << m.name << endl; } mOutput << "usemtl " << m.matname << endl; - BOOST_FOREACH(const Face& f, m.faces) { + for(const Face& f : m.faces) { mOutput << f.kind << ' '; - BOOST_FOREACH(const FaceVertex& fv, f.indices) { + for(const FaceVertex& fv : f.indices) { mOutput << ' ' << fv.vp; if (f.kind != 'p') { diff --git a/code/STEPFile.h b/code/STEPFile.h index a0f936889..050e76b24 100644 --- a/code/STEPFile.h +++ b/code/STEPFile.h @@ -42,7 +42,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define INCLUDED_AI_STEPFILE_H #include -#include #include #include #include @@ -868,7 +867,7 @@ namespace STEP { public: ~DB() { - BOOST_FOREACH(ObjectMap::value_type& o, objects) { + for(ObjectMap::value_type& o : objects) { delete o.second; } } @@ -950,7 +949,7 @@ namespace STEP { // evaluate *all* entities in the file. this is a power test for the loader void EvaluateAll() { - BOOST_FOREACH(ObjectMap::value_type& e,objects) { + for(ObjectMap::value_type& e :objects) { **e.second; } ai_assert(evaluated_count == objects.size()); diff --git a/code/XGLLoader.cpp b/code/XGLLoader.cpp index 1d1a8d6c9..0c4f3cb3f 100644 --- a/code/XGLLoader.cpp +++ b/code/XGLLoader.cpp @@ -431,7 +431,7 @@ aiNode* XGLImporter::ReadObject(TempScope& scope, bool skipFirst, const char* cl } } catch(...) { - BOOST_FOREACH(aiNode* ch, children) { + for(aiNode* ch : children) { delete ch; } throw; @@ -691,7 +691,7 @@ bool XGLImporter::ReadMesh(TempScope& scope) // finally extract output meshes and add them to the scope typedef std::pair pairt; - BOOST_FOREACH(const pairt& p, bymat) { + for(const pairt& p : bymat) { aiMesh* const m = ToOutputMesh(p.second); scope.meshes_linear.push_back(m); diff --git a/code/XGLLoader.h b/code/XGLLoader.h index 582c07429..a27b817f5 100644 --- a/code/XGLLoader.h +++ b/code/XGLLoader.h @@ -47,7 +47,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "BaseImporter.h" #include "irrXMLWrapper.h" #include "LogAux.h" -#include #include "../include/assimp/material.h" #include "../include/assimp/Importer.hpp" #include "../include/assimp/mesh.h" @@ -102,11 +101,11 @@ private: ~TempScope() { - BOOST_FOREACH(aiMesh* m, meshes_linear) { + for(aiMesh* m : meshes_linear) { delete m; } - BOOST_FOREACH(aiMaterial* m, materials_linear) { + for(aiMaterial* m : materials_linear) { delete m; } diff --git a/code/glTFExporter.cpp b/code/glTFExporter.cpp index 41cdaf084..d40ea695f 100644 --- a/code/glTFExporter.cpp +++ b/code/glTFExporter.cpp @@ -54,7 +54,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include -#include #include #include @@ -130,7 +129,7 @@ glTFExporter::glTFExporter(const char* filename, IOSystem* pIOSystem, const aiSc static void CopyValue(const aiMatrix4x4& v, glTF::mat4& o) -{ +{ o[ 0] = v.a1; o[ 1] = v.b1; o[ 2] = v.c1; o[ 3] = v.d1; o[ 4] = v.a2; o[ 5] = v.b2; o[ 6] = v.c2; o[ 7] = v.d2; o[ 8] = v.a3; o[ 9] = v.b3; o[10] = v.c3; o[11] = v.d3; @@ -233,7 +232,7 @@ void glTFExporter::ExportMaterials() for (unsigned int i = 0; i < mScene->mNumMaterials; ++i) { const aiMaterial* mat = mScene->mMaterials[i]; - + std::string name; if (mat->Get(AI_MATKEY_NAME, aiName) == AI_SUCCESS) { name = aiName.C_Str();