From bf4a73e42e089601e132f6086c495a49fbe06bd5 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 19:42:07 -0600 Subject: [PATCH 01/15] Refactor: Remove unused member variable --- code/OptimizeMeshes.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/OptimizeMeshes.h b/code/OptimizeMeshes.h index 88e81629c..38c06e221 100644 --- a/code/OptimizeMeshes.h +++ b/code/OptimizeMeshes.h @@ -164,9 +164,6 @@ private: //! Per mesh info std::vector meshes; - //! Next output mesh - aiMesh* mesh; - //! Output meshes std::vector output; From 63520d562a4d2e6e2ebe50591deaac17dd52bb56 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 19:42:30 -0600 Subject: [PATCH 02/15] Refactor: Initialize members in declaration order; prefer initialization over assignment --- code/StepExporter.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/code/StepExporter.cpp b/code/StepExporter.cpp index 0ce273313..65e165afb 100644 --- a/code/StepExporter.cpp +++ b/code/StepExporter.cpp @@ -152,7 +152,7 @@ namespace { // ------------------------------------------------------------------------------------------------ // Constructor for a specific scene to export -StepExporter::StepExporter(const aiScene* pScene, IOSystem* pIOSystem, const std::string& path, const std::string& file, const ExportProperties* pProperties) : mIOSystem(pIOSystem), mPath(path), mFile(file), mProperties(pProperties) +StepExporter::StepExporter(const aiScene* pScene, IOSystem* pIOSystem, const std::string& path, const std::string& file, const ExportProperties* pProperties) : mProperties(pProperties), mIOSystem(pIOSystem), mFile(file), mPath(path), mScene(pScene), endstr(";\n") { CollectTrafos(pScene->mRootNode, trafos); CollectMeshes(pScene->mRootNode, meshes); @@ -160,11 +160,6 @@ StepExporter::StepExporter(const aiScene* pScene, IOSystem* pIOSystem, const std // make sure that all formatting happens using the standard, C locale and not the user's current locale mOutput.imbue( std::locale("C") ); - mScene = pScene; - - // set up strings - endstr = ";\n"; - // start writing WriteFile(); } From fbf90a28ffb2aace358c25d06d7eed65ccadce39 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 19:46:01 -0600 Subject: [PATCH 03/15] Fixed: Ensure variable is always initialized before use --- code/3DSExporter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/3DSExporter.cpp b/code/3DSExporter.cpp index b16a3b2c7..1bd341c78 100644 --- a/code/3DSExporter.cpp +++ b/code/3DSExporter.cpp @@ -47,9 +47,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "SceneCombiner.h" #include "SplitLargeMeshes.h" #include "StringComparison.h" -#include "../include/assimp/IOSystem.hpp" -#include "../include/assimp/DefaultLogger.hpp" -#include "../include/assimp/Exporter.hpp" +#include "../include/assimp/IOSystem.hpp" +#include "../include/assimp/DefaultLogger.hpp" +#include "../include/assimp/Exporter.hpp" #include using namespace Assimp; @@ -324,6 +324,7 @@ void Discreet3DSExporter::WriteMaterials() break; default: + shading_mode_out = Discreet3DS::Flat; ai_assert(false); }; writer.PutU2(static_cast(shading_mode_out)); From 8c94e51e90971c8bed5cb2a35292215fa7232633 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 19:47:13 -0600 Subject: [PATCH 04/15] Refactor: Delete unused functions --- code/StepExporter.cpp | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/code/StepExporter.cpp b/code/StepExporter.cpp index 65e165afb..845396780 100644 --- a/code/StepExporter.cpp +++ b/code/StepExporter.cpp @@ -115,21 +115,6 @@ void ExportSceneStep(const char* pFile,IOSystem* pIOSystem, const aiScene* pScen namespace { - inline uint64_t toIndexHash(int32_t id1, int32_t id2) - { - // dont wonder that -1/-1 -> hash=-1 - uint64_t hash = (uint32_t) id1; - hash = (hash << 32); - hash += (uint32_t) id2; - return hash; - } - - inline void fromIndexHash(uint64_t hash, int32_t &id1, int32_t &id2) - { - id1 = (hash & 0xFFFFFFFF00000000) >> 32; - id2 = (hash & 0xFFFFFFFF); - } - // Collect world transformations for each node void CollectTrafos(const aiNode* node, std::map& trafos) { const aiMatrix4x4& parent = node->mParent ? trafos[node->mParent] : aiMatrix4x4(); From d25c36960a1e49dba2e204e08c68b74a6f372988 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 19:56:01 -0600 Subject: [PATCH 05/15] Refactor: Initialize all POD members --- code/OpenGEXImporter.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index fde5e3d45..be82db84f 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -47,6 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include +#include #include static const aiImporterDesc desc = { @@ -183,12 +184,11 @@ USE_ODDLPARSER_NS //------------------------------------------------------------------------------------------------ OpenGEXImporter::VertexContainer::VertexContainer() : m_numVerts( 0 ) -, m_vertices() +, m_vertices(NULL) , m_numNormals( 0 ) -, m_normals() -, m_textureCoords() -, m_numUVComps() { - // empty +, m_normals(NULL) { + std::fill(&m_numUVComps[0], &m_numUVComps[AI_MAX_NUMBER_OF_TEXTURECOORDS], 0U); + std::fill(&m_textureCoords[0], &m_textureCoords[AI_MAX_NUMBER_OF_TEXTURECOORDS], static_cast(NULL)); } //------------------------------------------------------------------------------------------------ From 6ae97976482522a49669d996a3406c7e29a39ce2 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:01:51 -0600 Subject: [PATCH 06/15] Refactor: Initialize members in declaration order; initialize POD arrays --- code/OpenGEXImporter.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index be82db84f..5b8209ed7 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -215,9 +215,9 @@ OpenGEXImporter::RefInfo::~RefInfo() { //------------------------------------------------------------------------------------------------ OpenGEXImporter::OpenGEXImporter() -: m_meshCache() -, m_root( NULL ) +: m_root( NULL ) , m_nodeChildMap() +, m_meshCache() , m_mesh2refMap() , m_ctx( NULL ) , m_currentNode( NULL ) @@ -226,7 +226,7 @@ OpenGEXImporter::OpenGEXImporter() , m_tokenType( Grammar::NoneType ) , m_nodeStack() , m_unresolvedRefStack() { - // empty + std::fill(&m_metrics[0], &m_metrics[MetricInfo::Max], MetricInfo()); } //------------------------------------------------------------------------------------------------ From 2de6dd49732579adbd24b4216308eee5ebaad207 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:02:58 -0600 Subject: [PATCH 07/15] Refactor: Delete unused variable --- code/OpenGEXImporter.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index 5b8209ed7..a568f925e 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -665,7 +665,6 @@ void OpenGEXImporter::handleVertexArrayNode( ODDLParser::DDLNode *node, aiScene } const size_t numItems( countDataArrayListItems( vaList ) ); - Value *next( vaList->m_dataList ); if( Position == attribType ) { m_currentVertices.m_numVerts = numItems; m_currentVertices.m_vertices = new aiVector3D[ numItems ]; From 79c916daf4cd44f433c37d883a51990ea21a5a55 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:05:05 -0600 Subject: [PATCH 08/15] Refactor: Remove unused variable --- code/PlyExporter.cpp | 15 +++++++-------- code/PlyExporter.h | 1 - 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/code/PlyExporter.cpp b/code/PlyExporter.cpp index 0a4c94a48..12e59f2b6 100644 --- a/code/PlyExporter.cpp +++ b/code/PlyExporter.cpp @@ -43,14 +43,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #if !defined(ASSIMP_BUILD_NO_EXPORT) && !defined(ASSIMP_BUILD_NO_PLY_EXPORTER) #include "PlyExporter.h" -#include +#include #include -#include "Exceptional.h" -#include "../include/assimp/scene.h" -#include "../include/assimp/version.h" -#include "../include/assimp/IOSystem.hpp" +#include "Exceptional.h" +#include "../include/assimp/scene.h" +#include "../include/assimp/version.h" +#include "../include/assimp/IOSystem.hpp" #include "../include/assimp/Exporter.hpp" -#include "qnan.h" +#include "qnan.h" using namespace Assimp; @@ -96,8 +96,7 @@ void ExportScenePlyBinary(const char* pFile, IOSystem* pIOSystem, const aiScene* // ------------------------------------------------------------------------------------------------ PlyExporter::PlyExporter(const char* _filename, const aiScene* pScene, bool binary) : filename(_filename) -, pScene(pScene) -, endl("\n") +, endl("\n") { // make sure that all formatting happens using the standard, C locale and not the user's current locale const std::locale& l = std::locale("C"); diff --git a/code/PlyExporter.h b/code/PlyExporter.h index ec20903d7..64649d7cc 100644 --- a/code/PlyExporter.h +++ b/code/PlyExporter.h @@ -78,7 +78,6 @@ private: private: const std::string filename; - const aiScene* const pScene; // obviously, this endl() doesn't flush() the stream const std::string endl; From 7b3fa5ebc2b1c2ad8266f0d920a379f1d666bd20 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:22:31 -0600 Subject: [PATCH 09/15] Refactor: Delete unused forward decls, delete unused function --- code/IFCLoader.cpp | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/code/IFCLoader.cpp b/code/IFCLoader.cpp index 34f176c89..8ffefcb91 100644 --- a/code/IFCLoader.cpp +++ b/code/IFCLoader.cpp @@ -60,9 +60,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "StreamReader.h" #include "MemoryIOWrapper.h" -#include "../include/assimp/scene.h" -#include "../include/assimp/Importer.hpp" - +#include "../include/assimp/scene.h" +#include "../include/assimp/Importer.hpp" + namespace Assimp { template<> const std::string LogFunctions::log_prefix = "IFC: "; @@ -93,8 +93,6 @@ namespace { void SetUnits(ConversionData& conv); void SetCoordinateSpace(ConversionData& conv); void ProcessSpatialStructures(ConversionData& conv); -aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el ,ConversionData& conv); -void ProcessProductRepresentation(const IfcProduct& el, aiNode* nd, ConversionData& conv); void MakeTreeRelative(ConversionData& conv); void ConvertUnit(const EXPRESS::DataType& dt,ConversionData& conv); @@ -421,16 +419,6 @@ void ResolveObjectPlacement(aiMatrix4x4& m, const IfcObjectPlacement& place, Con } } -// ------------------------------------------------------------------------------------------------ -void GetAbsTransform(aiMatrix4x4& out, const aiNode* nd, ConversionData& conv) -{ - aiMatrix4x4 t; - if (nd->mParent) { - GetAbsTransform(t,nd->mParent,conv); - } - out = t*nd->mTransformation; -} - // ------------------------------------------------------------------------------------------------ bool ProcessMappedItem(const IfcMappedItem& mapped, aiNode* nd_src, std::vector< aiNode* >& subnodes_src, unsigned int matid, ConversionData& conv) { @@ -682,14 +670,14 @@ aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el, Conversion // skip over space and annotation nodes - usually, these have no meaning in Assimp's context bool skipGeometry = false; if(conv.settings.skipSpaceRepresentations) { - if(const IfcSpace* const space = el.ToPtr()) { + if(el.ToPtr()) { IFCImporter::LogDebug("skipping IfcSpace entity due to importer settings"); skipGeometry = true; } } if(conv.settings.skipAnnotations) { - if(const IfcAnnotation* const ann = el.ToPtr()) { + if(el.ToPtr()) { IFCImporter::LogDebug("skipping IfcAnnotation entity due to importer settings"); return NULL; } @@ -764,7 +752,7 @@ aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el, Conversion continue; } BOOST_FOREACH(const IfcProduct& pro, cont->RelatedElements) { - if(const IfcOpeningElement* const open = pro.ToPtr()) { + 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, // but we want them for the building elements to which they belong. From 5bb09377cb24557a2dc9f3ba1191d220c8e6a090 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:40:35 -0600 Subject: [PATCH 10/15] Refactor: Delete unused variable --- code/IFCProfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/IFCProfile.cpp b/code/IFCProfile.cpp index 42d090d9d..9e70c2ac1 100644 --- a/code/IFCProfile.cpp +++ b/code/IFCProfile.cpp @@ -114,7 +114,7 @@ void ProcessParametrizedProfile(const IfcParameterizedProfileDef& def, TempMesh& meshout.vertcnt.push_back(4); } else if( const IfcCircleProfileDef* const circle = def.ToPtr()) { - if( const IfcCircleHollowProfileDef* const hollow = def.ToPtr()) { + if(def.ToPtr()) { // TODO } const size_t segments = 32; From 814ef32dce482176797e142548f2583d76ea8d1f Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:43:25 -0600 Subject: [PATCH 11/15] Refactor: Delete unused fields --- code/IFCCurve.cpp | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/code/IFCCurve.cpp b/code/IFCCurve.cpp index 0625ea631..aca350fc9 100644 --- a/code/IFCCurve.cpp +++ b/code/IFCCurve.cpp @@ -173,7 +173,6 @@ public: // -------------------------------------------------- Line(const IfcLine& entity, ConversionData& conv) : Curve(entity,conv) - , entity(entity) { ConvertCartesianPoint(p,entity.Pnt); ConvertVector(v,entity.Dir); @@ -221,7 +220,6 @@ public: } private: - const IfcLine& entity; IfcVector3 p,v; }; @@ -238,7 +236,6 @@ public: // -------------------------------------------------- CompositeCurve(const IfcCompositeCurve& entity, ConversionData& conv) : BoundedCurve(entity,conv) - , entity(entity) , total() { curves.reserve(entity.Segments.size()); @@ -331,7 +328,6 @@ public: } private: - const IfcCompositeCurve& entity; std::vector< CurveEntry > curves; IfcFloat total; @@ -349,8 +345,6 @@ public: // -------------------------------------------------- TrimmedCurve(const IfcTrimmedCurve& entity, ConversionData& conv) : BoundedCurve(entity,conv) - , entity(entity) - , ok() { base = boost::shared_ptr(Curve::Convert(entity.BasisCurve,conv)); @@ -448,11 +442,9 @@ private: private: - const IfcTrimmedCurve& entity; ParamRange range; IfcFloat maxval; bool agree_sense; - bool ok; boost::shared_ptr base; }; @@ -469,7 +461,6 @@ public: // -------------------------------------------------- PolyLine(const IfcPolyline& entity, ConversionData& conv) : BoundedCurve(entity,conv) - , entity(entity) { points.reserve(entity.Points.size()); @@ -507,7 +498,6 @@ public: } private: - const IfcPolyline& entity; std::vector points; }; From a34adb84502c2f9b4c25dedeaccf5a5e6f14f7b2 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:45:16 -0600 Subject: [PATCH 12/15] Refactor: Delete unused functions --- code/STEPFileReader.cpp | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/code/STEPFileReader.cpp b/code/STEPFileReader.cpp index 113ab50a1..d7780e317 100644 --- a/code/STEPFileReader.cpp +++ b/code/STEPFileReader.cpp @@ -46,7 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "STEPFileReader.h" #include "STEPFileEncoding.h" #include "TinyFormatter.h" -#include "fast_atof.h" +#include "fast_atof.h" #include @@ -55,28 +55,6 @@ namespace EXPRESS = STEP::EXPRESS; #include -// ------------------------------------------------------------------------------------------------ -// From http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring - -// trim from start -static inline std::string <rim(std::string &s) { - s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1( std::ptr_fun(Assimp::IsSpace)))); - return s; -} - -// trim from end -static inline std::string &rtrim(std::string &s) { - s.erase(std::find_if(s.rbegin(), s.rend(), std::not1( std::ptr_fun(Assimp::IsSpace))).base(),s.end()); - return s; -} -// trim from both ends -static inline std::string &trim(std::string &s) { - return ltrim(rtrim(s)); -} - - - - // ------------------------------------------------------------------------------------------------ std::string AddLineNumber(const std::string& s,uint64_t line /*= LINE_NOT_SPECIFIED*/, const std::string& prefix = "") { From 4a5e9352d6cc134c6ec936bc9103c99dcd472c78 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:46:56 -0600 Subject: [PATCH 13/15] Refactor: Delete unused functions --- code/FBXParser.cpp | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/code/FBXParser.cpp b/code/FBXParser.cpp index f77c24a8d..4e4668902 100644 --- a/code/FBXParser.cpp +++ b/code/FBXParser.cpp @@ -86,27 +86,6 @@ namespace { } - // ------------------------------------------------------------------------------------------------ - // print warning, do return - void ParseWarning(const std::string& message, const Token& token) - { - if(DefaultLogger::get()) { - DefaultLogger::get()->warn(Util::AddTokenText("FBX-Parser",message,&token)); - } - } - - // ------------------------------------------------------------------------------------------------ -/* void ParseWarning(const std::string& message, const Element* element = NULL) - { - if(element) { - ParseWarning(message,element->KeyToken()); - return; - } - if(DefaultLogger::get()) { - DefaultLogger::get()->warn("FBX-Parser: " + message); - } - } -*/ // ------------------------------------------------------------------------------------------------ void ParseError(const std::string& message, TokenPtr token) { From cac87071214ba21e1cfce00f896e41066d0d8f89 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:48:04 -0600 Subject: [PATCH 14/15] Refactor: Delete unused field --- code/STLExporter.cpp | 17 ++++++++--------- code/STLExporter.h | 1 - 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/code/STLExporter.cpp b/code/STLExporter.cpp index 13684fecc..f1ac8a53c 100644 --- a/code/STLExporter.cpp +++ b/code/STLExporter.cpp @@ -43,13 +43,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #if !defined(ASSIMP_BUILD_NO_EXPORT) && !defined(ASSIMP_BUILD_NO_STL_EXPORTER) #include "STLExporter.h" -#include "../include/assimp/version.h" -#include "../include/assimp/IOSystem.hpp" -#include "../include/assimp/scene.h" -#include "../include/assimp/Exporter.hpp" -#include -#include "Exceptional.h" -#include "ByteSwapper.h" +#include "../include/assimp/version.h" +#include "../include/assimp/IOSystem.hpp" +#include "../include/assimp/scene.h" +#include "../include/assimp/Exporter.hpp" +#include +#include "Exceptional.h" +#include "ByteSwapper.h" using namespace Assimp; namespace Assimp { @@ -89,8 +89,7 @@ void ExportSceneSTLBinary(const char* pFile,IOSystem* pIOSystem, const aiScene* // ------------------------------------------------------------------------------------------------ STLExporter :: STLExporter(const char* _filename, const aiScene* pScene, bool binary) : filename(_filename) -, pScene(pScene) -, endl("\n") +, endl("\n") { // make sure that all formatting happens using the standard, C locale and not the user's current locale const std::locale& l = std::locale("C"); diff --git a/code/STLExporter.h b/code/STLExporter.h index 3284650c3..de7fce43e 100644 --- a/code/STLExporter.h +++ b/code/STLExporter.h @@ -75,7 +75,6 @@ private: private: const std::string filename; - const aiScene* const pScene; // this endl() doesn't flush() the stream const std::string endl; From 9cbef8cba35762ab0cabf6717883d8c6d8704a21 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:50:58 -0600 Subject: [PATCH 15/15] Refactor: Initialize members in declaration order; prefer initialization over assignment --- code/XFileExporter.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/code/XFileExporter.cpp b/code/XFileExporter.cpp index 276b309dd..278bf12a8 100644 --- a/code/XFileExporter.cpp +++ b/code/XFileExporter.cpp @@ -95,17 +95,18 @@ void ExportSceneXFile(const char* pFile,IOSystem* pIOSystem, const aiScene* pSce // ------------------------------------------------------------------------------------------------ // Constructor for a specific scene to export -XFileExporter::XFileExporter(const aiScene* pScene, IOSystem* pIOSystem, const std::string& path, const std::string& file, const ExportProperties* pProperties) : mIOSystem(pIOSystem), mPath(path), mFile(file), mProperties(pProperties) +XFileExporter::XFileExporter(const aiScene* pScene, IOSystem* pIOSystem, const std::string& path, const std::string& file, const ExportProperties* pProperties) + : mProperties(pProperties), + mIOSystem(pIOSystem), + mPath(path), + mFile(file), + mScene(pScene), + mSceneOwned(false), + endstr("\n") { // make sure that all formatting happens using the standard, C locale and not the user's current locale mOutput.imbue( std::locale("C") ); - mScene = pScene; - mSceneOwned = false; - - // set up strings - endstr = "\n"; - // start writing WriteFile(); }