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
commit
02533c11a0
|
@ -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;
|
const char* cursor = input + 0x1b;
|
||||||
|
|
||||||
|
|
|
@ -97,9 +97,9 @@ public:
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Converter(aiScene* out, const Document& doc)
|
Converter(aiScene* out, const Document& doc)
|
||||||
: out(out)
|
: defaultMaterialIndex()
|
||||||
|
, out(out)
|
||||||
, doc(doc)
|
, doc(doc)
|
||||||
, defaultMaterialIndex()
|
|
||||||
{
|
{
|
||||||
// animations need to be converted first since this will
|
// animations need to be converted first since this will
|
||||||
// populate the node_anim_chain_bits map, which is needed
|
// populate the node_anim_chain_bits map, which is needed
|
||||||
|
@ -1171,7 +1171,6 @@ private:
|
||||||
ai_assert(cluster);
|
ai_assert(cluster);
|
||||||
|
|
||||||
const WeightIndexArray& indices = cluster->GetIndices();
|
const WeightIndexArray& indices = cluster->GetIndices();
|
||||||
const WeightArray& weights = cluster->GetWeights();
|
|
||||||
|
|
||||||
if(indices.empty()) {
|
if(indices.empty()) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -1198,7 +1197,7 @@ private:
|
||||||
count_out_indices.push_back(0);
|
count_out_indices.push_back(0);
|
||||||
|
|
||||||
for(unsigned int i = 0; i < count; ++i) {
|
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) {
|
if (index_out_indices.back() == no_index_sentinel) {
|
||||||
index_out_indices.back() = out_indices.size();
|
index_out_indices.back() = out_indices.size();
|
||||||
|
|
|
@ -231,8 +231,8 @@ Object::~Object()
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
FileGlobalSettings::FileGlobalSettings(const Document& doc, boost::shared_ptr<const PropertyTable> props)
|
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) {
|
for (size_t i = 0; i < c; ++i) {
|
||||||
ai_assert(classnames[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;
|
obtype = NULL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,13 +51,13 @@ namespace FBX {
|
||||||
struct ImportSettings
|
struct ImportSettings
|
||||||
{
|
{
|
||||||
ImportSettings()
|
ImportSettings()
|
||||||
: readAllLayers(true)
|
: strictMode(true)
|
||||||
|
, readAllLayers(true)
|
||||||
, readAllMaterials()
|
, readAllMaterials()
|
||||||
, readMaterials(true)
|
, readMaterials(true)
|
||||||
, readCameras(true)
|
, readCameras(true)
|
||||||
, readLights(true)
|
, readLights(true)
|
||||||
, readAnimations(true)
|
, readAnimations(true)
|
||||||
, strictMode(true)
|
|
||||||
, readWeights(true)
|
, readWeights(true)
|
||||||
, preservePivots(true)
|
, preservePivots(true)
|
||||||
, optimizeEmptyAnimationCurves(true)
|
, optimizeEmptyAnimationCurves(true)
|
||||||
|
|
|
@ -137,8 +137,6 @@ void ProcessPolygonBoundaries(TempMesh& result, const TempMesh& inmesh, size_t m
|
||||||
|
|
||||||
const size_t outer_polygon_size = *outer_polygon_it;
|
const size_t outer_polygon_size = *outer_polygon_it;
|
||||||
const IfcVector3& master_normal = normals[std::distance(begin, 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
|
// Generate fake openings to meet the interface for the quadrulate
|
||||||
// algorithm. It boils down to generating small boxes given the
|
// algorithm. It boils down to generating small boxes given the
|
||||||
|
@ -329,7 +327,6 @@ void ProcessSweptDiskSolid(const IfcSweptDiskSolid solid, TempMesh& result, Conv
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::vector<IfcVector3>& in = result.verts;
|
const std::vector<IfcVector3>& in = result.verts;
|
||||||
const size_t size=in.size();
|
|
||||||
|
|
||||||
const unsigned int cnt_segments = 16;
|
const unsigned int cnt_segments = 16;
|
||||||
const IfcFloat deltaAngle = AI_MATH_TWO_PI/cnt_segments;
|
const IfcFloat deltaAngle = AI_MATH_TWO_PI/cnt_segments;
|
||||||
|
@ -476,12 +473,12 @@ IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh& curmesh, bool& ok, IfcVect
|
||||||
IfcVector3 nor;
|
IfcVector3 nor;
|
||||||
|
|
||||||
// The input polygon is arbitrarily shaped, therefore we might need some tries
|
// 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
|
// 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
|
// axis for the 2D coordinate space on the polygon plane, exploiting the
|
||||||
// fact that the input polygon is nearly always a quad.
|
// fact that the input polygon is nearly always a quad.
|
||||||
bool done = false;
|
bool done = false;
|
||||||
size_t base = 0, i, j;
|
size_t i, j;
|
||||||
for (i = 0; !done && i < s-2; done || ++i) {
|
for (i = 0; !done && i < s-2; done || ++i) {
|
||||||
for (j = i+1; j < s-1; ++j) {
|
for (j = i+1; j < s-1; ++j) {
|
||||||
nor = -((out[i]-any_point)^(out[j]-any_point));
|
nor = -((out[i]-any_point)^(out[j]-any_point));
|
||||||
|
|
|
@ -603,7 +603,6 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1,
|
||||||
const IfcVector2& m0, const IfcVector2& m1,
|
const IfcVector2& m0, const IfcVector2& m1,
|
||||||
IfcVector2& out0, IfcVector2& out1)
|
IfcVector2& out0, IfcVector2& out1)
|
||||||
{
|
{
|
||||||
const IfcVector2& m0_to_m1 = m1 - m0;
|
|
||||||
const IfcVector2& n0_to_n1 = n1 - n0;
|
const IfcVector2& n0_to_n1 = n1 - n0;
|
||||||
|
|
||||||
const IfcVector2& n0_to_m0 = m0 - 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());
|
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.verts.reserve(curmesh.verts.size() + (*it).contour.size() * 4);
|
||||||
curmesh.vertcnt.reserve(curmesh.vertcnt.size() + (*it).contour.size());
|
curmesh.vertcnt.reserve(curmesh.vertcnt.size() + (*it).contour.size());
|
||||||
|
|
||||||
// XXX this algorithm is really a bit inefficient - both in terms
|
// XXX this algorithm is really a bit inefficient - both in terms
|
||||||
// of constant factor and of asymptotic runtime.
|
// of constant factor and of asymptotic runtime.
|
||||||
size_t vstart = curmesh.verts.size();
|
|
||||||
std::vector<bool>::const_iterator skipit = skipbegin;
|
std::vector<bool>::const_iterator skipit = skipbegin;
|
||||||
|
|
||||||
IfcVector3 start0;
|
IfcVector3 start0;
|
||||||
|
@ -991,10 +989,10 @@ size_t CloseWindows(ContourVector& contours,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
BOOST_FOREACH(TempOpening* opening, refs) {
|
BOOST_FOREACH(TempOpening* opening, refs) {
|
||||||
//opening->wallPoints.clear();
|
//opening->wallPoints.clear();
|
||||||
}
|
}*/
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -1146,7 +1144,6 @@ bool GenerateOpenings(std::vector<TempOpening>& openings,
|
||||||
bool generate_connection_geometry,
|
bool generate_connection_geometry,
|
||||||
const IfcVector3& wall_extrusion_axis)
|
const IfcVector3& wall_extrusion_axis)
|
||||||
{
|
{
|
||||||
std::vector<IfcVector3>& out = curmesh.verts;
|
|
||||||
OpeningRefVector contours_to_openings;
|
OpeningRefVector contours_to_openings;
|
||||||
|
|
||||||
// Try to derive a solid base plane within the current surface for use as
|
// 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;
|
IfcVector3 wall_extrusion_axis_norm = wall_extrusion_axis;
|
||||||
wall_extrusion_axis_norm.Normalize();
|
wall_extrusion_axis_norm.Normalize();
|
||||||
|
|
||||||
size_t c = 0;
|
|
||||||
BOOST_FOREACH(TempOpening& opening,openings) {
|
BOOST_FOREACH(TempOpening& opening,openings) {
|
||||||
|
|
||||||
// extrusionDir may be 0,0,0 on case where the opening mesh is not an
|
// extrusionDir may be 0,0,0 on case where the opening mesh is not an
|
||||||
|
|
|
@ -64,8 +64,6 @@ namespace Ogre
|
||||||
|
|
||||||
aiMaterial* OgreImporter::LoadMaterial(const std::string MaterialName) const
|
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:
|
/*For better understanding of the material parser, here is a material example file:
|
||||||
|
|
||||||
material Sarg
|
material Sarg
|
||||||
|
|
Loading…
Reference in New Issue