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.
pull/30/head^2
Alexander Gessler 2013-04-08 14:27:04 -07:00
commit 02533c11a0
7 changed files with 15 additions and 25 deletions

View File

@ -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;

View File

@ -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();

View File

@ -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;
}

View File

@ -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)

View File

@ -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));

View File

@ -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

View File

@ -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