Pārlūkot izejas kodu

Merge pull request #28 from assimp/gcc-fixes

Gcc fixes based on this build: https://travis-ci.org/assimp/assimp/jobs/6160384

silence gcc false positive warnings and fix real issues that were pointed out.
Alexander Gessler 12 gadi atpakaļ
vecāks
revīzija
02533c11a0

+ 1 - 1
code/FBXBinaryTokenizer.cpp

@@ -380,7 +380,7 @@ void TokenizeBinary(TokenList& output_tokens, const char* input, unsigned int le
 	}
 
 
-	uint32_t offset = 0x1b;
+	//uint32_t offset = 0x1b;
 
 	const char* cursor = input + 0x1b;
 

+ 3 - 4
code/FBXConverter.cpp

@@ -97,9 +97,9 @@ public:
 public:
 
 	Converter(aiScene* out, const Document& doc)
-		: out(out) 
+		: defaultMaterialIndex()
+		, out(out) 
 		, doc(doc)
-		, defaultMaterialIndex()
 	{
 		// animations need to be converted first since this will
 		// populate the node_anim_chain_bits map, which is needed
@@ -1171,7 +1171,6 @@ private:
 				ai_assert(cluster);
 
 				const WeightIndexArray& indices = cluster->GetIndices();
-				const WeightArray& weights = cluster->GetWeights();
 
 				if(indices.empty()) {
 					continue;
@@ -1198,7 +1197,7 @@ private:
 					count_out_indices.push_back(0);
 
 					for(unsigned int i = 0; i < count; ++i) {					
-						if (no_mat_check || mats[geo.FaceForVertexIndex(out_idx[i])] == materialIndex) {
+						if (no_mat_check || static_cast<size_t>(mats[geo.FaceForVertexIndex(out_idx[i])]) == materialIndex) {
 							
 							if (index_out_indices.back() == no_index_sentinel) {
 								index_out_indices.back() = out_indices.size();

+ 3 - 3
code/FBXDocument.cpp

@@ -231,8 +231,8 @@ Object::~Object()
 
 // ------------------------------------------------------------------------------------------------
 FileGlobalSettings::FileGlobalSettings(const Document& doc, boost::shared_ptr<const PropertyTable> props)
-: doc(doc)
-, props(props)
+: props(props)
+, doc(doc) 
 {
 
 }
@@ -579,7 +579,7 @@ std::vector<const Connection*> Document::GetConnectionsSequenced(uint64_t id, bo
 
 		for (size_t i = 0; i < c; ++i) {
 			ai_assert(classnames[i]);
-			if(std::distance(key.begin(),key.end()) == lenghts[i] && !strncmp(classnames[i],obtype,lenghts[i])) {
+			if(static_cast<size_t>(std::distance(key.begin(),key.end())) == lenghts[i] && !strncmp(classnames[i],obtype,lenghts[i])) {
 				obtype = NULL;
 				break;
 			}

+ 2 - 2
code/FBXImportSettings.h

@@ -51,13 +51,13 @@ namespace FBX {
 struct ImportSettings 
 {
 	ImportSettings()
-		: readAllLayers(true)
+		: strictMode(true)
+		, readAllLayers(true)
 		, readAllMaterials()
 		, readMaterials(true)
 		, readCameras(true)
 		, readLights(true)
 		, readAnimations(true)
-		, strictMode(true)
 		, readWeights(true)
 		, preservePivots(true)
 		, optimizeEmptyAnimationCurves(true)

+ 3 - 6
code/IFCGeometry.cpp

@@ -137,8 +137,6 @@ void ProcessPolygonBoundaries(TempMesh& result, const TempMesh& inmesh, size_t m
 
 	const size_t outer_polygon_size = *outer_polygon_it;
 	const IfcVector3& master_normal = normals[std::distance(begin, outer_polygon_it)];
-	const IfcVector3& master_normal_norm = IfcVector3(master_normal).Normalize();
-
 
 	// Generate fake openings to meet the interface for the quadrulate
 	// algorithm. It boils down to generating small boxes given the
@@ -329,8 +327,7 @@ void ProcessSweptDiskSolid(const IfcSweptDiskSolid solid, TempMesh& result, Conv
 	}
 
 	const std::vector<IfcVector3>& in = result.verts;
-	const size_t size=in.size();
-
+	
 	const unsigned int cnt_segments = 16;
 	const IfcFloat deltaAngle = AI_MATH_TWO_PI/cnt_segments;
 
@@ -476,12 +473,12 @@ IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh& curmesh, bool& ok, IfcVect
 	IfcVector3 nor; 
 
 	// The input polygon is arbitrarily shaped, therefore we might need some tries
-	// until we find a suitable normal. Note that Newells algorithm would give
+	// until we find a suitable normal. Note that Newell's algorithm would give
 	// a more robust result, but this variant also gives us a suitable first
 	// axis for the 2D coordinate space on the polygon plane, exploiting the
 	// fact that the input polygon is nearly always a quad.
 	bool done = false;
-	size_t base = 0, i, j;
+	size_t i, j;
 	for (i = 0; !done && i < s-2; done || ++i) {
 		for (j = i+1; j < s-1; ++j) {
 			nor = -((out[i]-any_point)^(out[j]-any_point));

+ 3 - 7
code/IFCOpenings.cpp

@@ -603,7 +603,6 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1,
 	const IfcVector2& m0, const IfcVector2& m1,
 	IfcVector2& out0, IfcVector2& out1)
 {
-	const IfcVector2& m0_to_m1 = m1 - m0;
 	const IfcVector2& n0_to_n1 = n1 - n0;
 
 	const IfcVector2& n0_to_m0 = m0 - n0;
@@ -898,14 +897,13 @@ size_t CloseWindows(ContourVector& contours,
 
 			ai_assert((*it).skiplist.size() == (*it).contour.size());
 
-			SkipList::const_iterator skipbegin = (*it).skiplist.begin(), skipend = (*it).skiplist.end();
+			SkipList::const_iterator skipbegin = (*it).skiplist.begin();
 
 			curmesh.verts.reserve(curmesh.verts.size() + (*it).contour.size() * 4);
 			curmesh.vertcnt.reserve(curmesh.vertcnt.size() + (*it).contour.size());
 
 			// XXX this algorithm is really a bit inefficient - both in terms
 			// of constant factor and of asymptotic runtime.
-			size_t vstart = curmesh.verts.size();
 			std::vector<bool>::const_iterator skipit = skipbegin;
 
 			IfcVector3 start0;
@@ -991,10 +989,10 @@ size_t CloseWindows(ContourVector& contours,
 					}
 				}
 			}
-
+			/*
 			BOOST_FOREACH(TempOpening* opening, refs) {
 				//opening->wallPoints.clear();
-			}
+			}*/
 
 		}
 		else {
@@ -1146,7 +1144,6 @@ bool GenerateOpenings(std::vector<TempOpening>& openings,
 	bool generate_connection_geometry,
 	const IfcVector3& wall_extrusion_axis)
 {
-	std::vector<IfcVector3>& out = curmesh.verts;
 	OpeningRefVector contours_to_openings;
 
 	// Try to derive a solid base plane within the current surface for use as 
@@ -1175,7 +1172,6 @@ bool GenerateOpenings(std::vector<TempOpening>& openings,
 	IfcVector3 wall_extrusion_axis_norm = wall_extrusion_axis;
 	wall_extrusion_axis_norm.Normalize();
 
-	size_t c = 0;
 	BOOST_FOREACH(TempOpening& opening,openings) {
 
 		// extrusionDir may be 0,0,0 on case where the opening mesh is not an

+ 0 - 2
code/OgreMaterial.cpp

@@ -64,8 +64,6 @@ namespace Ogre
 
 aiMaterial* OgreImporter::LoadMaterial(const std::string MaterialName) const
 {
-	const aiScene* const m_CurrentScene=this->m_CurrentScene;//make sure, that we can access but not change the scene
-
 	/*For better understanding of the material parser, here is a material example file:
 
 	material Sarg