many gcc compiling issues
This commit is contained in:
parent
e2733d55df
commit
642158fc32
|
@ -78,13 +78,26 @@ namespace vcg
|
|||
|
||||
typedef OBJECT_TYPE* ObjectPointer;
|
||||
typedef std::pair< ObjectPointer, int > hPair;
|
||||
#ifdef __GNUC__
|
||||
typedef typename STDEXT::hash_map< /*ObjectPointer*/void*, int >::iterator hIterator;
|
||||
#else
|
||||
|
||||
struct SimpleObjHashFunc{
|
||||
inline size_t operator ()(const ObjectPointer &p) const {return size_t(p);}
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
STDEXT::hash_map< OBJECT_TYPE*, int > inserted_objects;
|
||||
typedef typename STDEXT::hash_map< ObjectPointer, int >::iterator hIterator;
|
||||
#else
|
||||
STDEXT::hash_map< OBJECT_TYPE*, int, SimpleObjHashFunc > inserted_objects;
|
||||
typedef typename STDEXT::hash_map< ObjectPointer, int, SimpleObjHashFunc >::iterator hIterator;
|
||||
#endif
|
||||
|
||||
typedef std::pair< hIterator, bool > hInsertResult;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public:
|
||||
/*!
|
||||
* Default constructor
|
||||
|
@ -146,11 +159,6 @@ namespace vcg
|
|||
}
|
||||
|
||||
protected:
|
||||
#ifdef __GNUC__
|
||||
STDEXT::hash_map< void*, int > inserted_objects;
|
||||
#else
|
||||
STDEXT::hash_map< OBJECT_TYPE*, int > inserted_objects;
|
||||
#endif
|
||||
std::vector< DisjointSetNode > nodes;
|
||||
};
|
||||
};// end of namespace vcg
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
History
|
||||
|
||||
$Log: not supported by cvs2svn $
|
||||
Revision 1.6 2006/11/07 15:13:57 zifnab1974
|
||||
Necessary changes for compilation with gcc 3.4.6. Especially the hash function is a problem
|
||||
|
||||
Revision 1.5 2006/11/07 11:29:24 cignoni
|
||||
Corrected some errors in the reflections Has*** functions
|
||||
|
||||
|
@ -277,11 +280,11 @@ public:
|
|||
|
||||
namespace tri
|
||||
{
|
||||
template < class VertType, class FaceContainerType >
|
||||
bool HasPerVertexQuality (const TriMesh < vert::vector_ocf< VertType > , FaceContainerType > & m)
|
||||
template < class VertexType, class FaceContainerType >
|
||||
bool HasPerVertexQuality (const TriMesh < vert::vector_ocf< VertexType > , FaceContainerType > & m)
|
||||
{
|
||||
if(VertType::HasQualityOcf()) return m.vert.IsQualityEnabled();
|
||||
else return VertType::HasQuality();
|
||||
if(VertexType::HasQualityOcf()) return m.vert.IsQualityEnabled();
|
||||
else return VertexType::HasQuality();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -171,7 +171,7 @@ namespace vcg
|
|||
|
||||
// for each vertex *iter, compute the centroid as avarege of the k-nearest vertices of *iter
|
||||
Plane *plane = &tangent_planes[ std::distance(begin, iter) ];
|
||||
for (int n=0; n<k; n++)
|
||||
for (unsigned int n=0; n<k; n++)
|
||||
plane->center += nearest_points[n];
|
||||
plane->center /= float(k);
|
||||
|
||||
|
@ -179,7 +179,7 @@ namespace vcg
|
|||
MatrixType covariance_matrix;
|
||||
CoordType diff;
|
||||
covariance_matrix.SetZero();
|
||||
for (int n=0; n<k; n++)
|
||||
for (unsigned int n=0; n<k; n++)
|
||||
{
|
||||
diff = nearest_points[n] - plane->center;
|
||||
for (int i=0; i<3; i++)
|
||||
|
|
|
@ -101,17 +101,17 @@ private:
|
|||
if(mask & vcg::tri::io::Mask::IOM_VERTCOLOR)
|
||||
arrc.reserve(5 * 4 * m.vert.size());
|
||||
int nvert = 0;
|
||||
for(SaveMeshType::VertexIterator it = m.vert.begin();it != m.vert.end();++it)
|
||||
for(typename SaveMeshType::VertexIterator it = m.vert.begin();it != m.vert.end();++it)
|
||||
{
|
||||
if (!(it->IsD()))
|
||||
{
|
||||
arrp.append(QString::number(it->P().X()).append(" ").append(QString::number(it->P().Y())).append(" ").append(QString::number(it->P().Z())).append(" "));
|
||||
arrp.append(QString::number(float(it->P().X())).append(" ").append(QString::number(float(it->P().Y()))).append(" ").append(QString::number(float(it->P().Z()))).append(" "));
|
||||
if(mask & vcg::tri::io::Mask::IOM_VERTNORMAL)
|
||||
arrn.append(QString::number(it->N().X()).append(" ").append(QString::number(it->N().Y())).append(" ").append(QString::number(it->N().Z())).append(" "));
|
||||
arrn.append(QString::number(float(it->N().X())).append(" ").append(QString::number(float(it->N().Y()))).append(" ").append(QString::number(float(it->N().Z()))).append(" "));
|
||||
if(mask & vcg::tri::io::Mask::IOM_VERTTEXCOORD)
|
||||
arrt.append(QString::number(it->T().u()).append(" ").append(QString::number(it->T().v())).append(" "));
|
||||
arrt.append(QString::number(float(it->T().u())).append(" ").append(QString::number(float(it->T().v()))).append(" "));
|
||||
if(mask & vcg::tri::io::Mask::IOM_VERTCOLOR)
|
||||
arrc.append(QString::number(it->C().X()).append(" ").append(QString::number(it->C().Y())).append(" ").append(QString::number(it->C().Z())).append(" ").append(QString::number(it->C().W())).append(" "));
|
||||
arrc.append(QString::number(float(it->C().X())).append(" ").append(QString::number(float(it->C().Y()))).append(" ").append(QString::number(float(it->C().Z()))).append(" ").append(QString::number(float(it->C().W()))).append(" "));
|
||||
++nvert;
|
||||
}
|
||||
}
|
||||
|
@ -174,7 +174,7 @@ private:
|
|||
triangles_tess.reserve(nattr * 3 * 10 * m.face.size());
|
||||
int wn = 0;
|
||||
int wt = 0;
|
||||
for(SaveMeshType::FaceIterator itf = m.face.begin();itf != m.face.end();++itf)
|
||||
for(typename SaveMeshType::FaceIterator itf = m.face.begin();itf != m.face.end();++itf)
|
||||
{
|
||||
if (!(itf->IsD()))
|
||||
{
|
||||
|
@ -188,7 +188,7 @@ private:
|
|||
{
|
||||
triangles_tess.append(" ").append(QString::number(wn));
|
||||
++wn;
|
||||
triangles_wn.append(QString::number((*itf).WN(ii).X()).append(" ").append(QString::number((*itf).WN(ii).Y())).append(" ").append(QString::number((*itf).WN(ii).Z())).append(" "));
|
||||
triangles_wn.append(QString::number(float((*itf).WN(ii).X())).append(" ").append(QString::number(float((*itf).WN(ii).Y()))).append(" ").append(QString::number(float((*itf).WN(ii).Z()))).append(" "));
|
||||
}
|
||||
|
||||
if (mask & MeshModel::IOM_WEDGTEXCOORD)
|
||||
|
@ -335,7 +335,7 @@ public:
|
|||
/*QDomElement mshnode;
|
||||
mshnode.setTagName("mesh");*/
|
||||
|
||||
removeChildNode(geolib.at(0),"geometry","id","vcg-mesh-lib");
|
||||
removeChildNode(geolib.at(0),QString("geometry"),QString("id"),QString("vcg-mesh-lib"));
|
||||
QDomElement geonode = info->doc->createElement("geometry");
|
||||
geonode.setAttribute("id","vcg-mesh-lib");
|
||||
geonode.setAttribute("name","vcg-mesh");
|
||||
|
@ -349,7 +349,7 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
removeChildNode(scenelst,"instance_visual_scene");
|
||||
removeChildNodeList(scenelst,QString("instance_visual_scene"));
|
||||
for(int vsscn = 0;vsscn < scenelst.size();++vsscn)
|
||||
{
|
||||
QString url = scenelst.at(vsscn).toElement().attribute("url");
|
||||
|
@ -361,7 +361,7 @@ public:
|
|||
|
||||
int vsscene_size = vsscene.size();
|
||||
assert(vsscene.size() == 1);
|
||||
removeChildNode(vsscene,"visual_scene","id","vcg-scene-node");
|
||||
removeChildNodeList(vsscene,QString("visual_scene"),QString("id"),QString("vcg-scene-node"));
|
||||
QDomElement vslnode = info->doc->createElement("visual_scene");
|
||||
vslnode.setAttribute("id","vcg-scene-node");
|
||||
vslnode.setAttribute("name","vcg-untitled");
|
||||
|
@ -380,7 +380,7 @@ public:
|
|||
QDomNodeList geolib = info->doc->elementsByTagName("library_geometries");
|
||||
assert(geolib.size() == 1);
|
||||
|
||||
removeChildNode(geolib.at(0),"geometry","id","vcg-mesh-lib");
|
||||
removeChildNode(geolib.at(0),QString("geometry"),QString("id"),QString("vcg-mesh-lib"));
|
||||
QDomElement geonode = info->doc->createElement("geometry");
|
||||
geonode.setAttribute("id","vcg-mesh-lib");
|
||||
geonode.setAttribute("name","vcg-mesh");
|
||||
|
|
|
@ -68,7 +68,8 @@ namespace io {
|
|||
if (!srcnodenorm.isNull())
|
||||
{
|
||||
assert((ii * 3 < geosrcvertnorm.size()) && (ii * 3 + 1 < geosrcvertnorm.size()) && (ii * 3 + 2 < geosrcvertnorm.size()));
|
||||
vcg::Matrix44f intr44 = vcg::Transpose(vcg::Inverse(t));
|
||||
vcg::Matrix44f intr44 = vcg::Inverse(t);
|
||||
vcg::Transpose(intr44);
|
||||
Matrix33f intr33;
|
||||
for(unsigned int rr = 0; rr < 2; ++rr)
|
||||
{
|
||||
|
@ -276,7 +277,7 @@ namespace io {
|
|||
info->doc = doc;
|
||||
//GetTexture(*(info->doc),inf);
|
||||
|
||||
QDomNodeList& scenes = info->doc->elementsByTagName("scene");
|
||||
QDomNodeList scenes = info->doc->elementsByTagName("scene");
|
||||
int scn_size = scenes.size();
|
||||
if (scn_size == 0)
|
||||
return E_NO3DSCENE;
|
||||
|
@ -286,7 +287,7 @@ namespace io {
|
|||
//for each scene in COLLADA FILE
|
||||
for(int scn = 0;scn < scn_size;++scn)
|
||||
{
|
||||
QDomNodeList& instscenes = scenes.at(scn).toElement().elementsByTagName("instance_visual_scene");
|
||||
QDomNodeList instscenes = scenes.at(scn).toElement().elementsByTagName("instance_visual_scene");
|
||||
int instscn_size = instscenes.size();
|
||||
if (instscn_size == 0)
|
||||
return E_INCOMPATIBLECOLLADA141FORMAT;
|
||||
|
@ -302,19 +303,19 @@ namespace io {
|
|||
return E_UNREFERENCEBLEDCOLLADAATTRIBUTE;
|
||||
|
||||
//for each node in the libscn_url visual scene
|
||||
QDomNodeList& visscn_child = visscn.childNodes();
|
||||
QDomNodeList visscn_child = visscn.childNodes();
|
||||
|
||||
//for each direct child of a libscn_url visual scene find if there is some geometry instance
|
||||
int problem = 0;
|
||||
for(int chdind = 0; chdind < visscn_child.size();++chdind)
|
||||
{
|
||||
QDomNodeList& geoinst = visscn_child.at(chdind).toElement().elementsByTagName("instance_geometry");
|
||||
QDomNodeList geoinst = visscn_child.at(chdind).toElement().elementsByTagName("instance_geometry");
|
||||
int geoinst_size = geoinst.size();
|
||||
if (geoinst_size != 0)
|
||||
{
|
||||
|
||||
geoinst_found |= true;
|
||||
QDomNodeList& geolib = info->doc->elementsByTagName("library_geometries");
|
||||
QDomNodeList geolib = info->doc->elementsByTagName("library_geometries");
|
||||
int geolib_size = geolib.size();
|
||||
assert(geolib_size == 1);
|
||||
//!!!!!!!!!!!!!!!!!here will be the code for geometry transformations!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
@ -340,10 +341,10 @@ namespace io {
|
|||
|
||||
if (!geoinst_found)
|
||||
{
|
||||
QDomNodeList& geolib = info->doc->elementsByTagName("library_geometries");
|
||||
QDomNodeList geolib = info->doc->elementsByTagName("library_geometries");
|
||||
int geolib_size = geolib.size();
|
||||
assert(geolib_size == 1);
|
||||
QDomNodeList& geochild = geolib.at(0).childNodes();
|
||||
QDomNodeList geochild = geolib.at(0).childNodes();
|
||||
int geochild_size = geochild.size();
|
||||
int problem = 0;
|
||||
for(int chd = 0;chd < geochild_size;++chd)
|
||||
|
@ -385,7 +386,7 @@ namespace io {
|
|||
|
||||
info->doc = doc;
|
||||
GetTexture(*(info->doc),inf);
|
||||
QDomNodeList& scenes = info->doc->elementsByTagName("scene");
|
||||
QDomNodeList scenes = info->doc->elementsByTagName("scene");
|
||||
int scn_size = scenes.size();
|
||||
|
||||
|
||||
|
@ -394,7 +395,7 @@ namespace io {
|
|||
//for each scene in COLLADA FILE
|
||||
for(int scn = 0;scn < scn_size;++scn)
|
||||
{
|
||||
QDomNodeList& instscenes = scenes.at(scn).toElement().elementsByTagName("instance_visual_scene");
|
||||
QDomNodeList instscenes = scenes.at(scn).toElement().elementsByTagName("instance_visual_scene");
|
||||
int instscn_size = instscenes.size();
|
||||
if (instscn_size == 0)
|
||||
return false;
|
||||
|
@ -410,19 +411,21 @@ namespace io {
|
|||
return false;
|
||||
|
||||
//for each node in the libscn_url visual scene
|
||||
QDomNodeList& visscn_child = visscn.childNodes();
|
||||
//QDomNodeList& visscn_child = visscn.childNodes();
|
||||
QDomNodeList visscn_child = visscn.childNodes();
|
||||
|
||||
//for each direct child of a libscn_url visual scene find if there is some geometry instance
|
||||
int problem = 0;
|
||||
for(int chdind = 0; chdind < visscn_child.size();++chdind)
|
||||
{
|
||||
QDomNodeList& geoinst = visscn_child.at(chdind).toElement().elementsByTagName("instance_geometry");
|
||||
//QDomNodeList& geoinst = visscn_child.at(chdind).toElement().elementsByTagName("instance_geometry");
|
||||
QDomNodeList geoinst = visscn_child.at(chdind).toElement().elementsByTagName("instance_geometry");
|
||||
int geoinst_size = geoinst.size();
|
||||
if (geoinst_size != 0)
|
||||
{
|
||||
|
||||
geoinst_found |= true;
|
||||
QDomNodeList& geolib = info->doc->elementsByTagName("library_geometries");
|
||||
QDomNodeList geolib = info->doc->elementsByTagName("library_geometries");
|
||||
int geolib_size = geolib.size();
|
||||
assert(geolib_size == 1);
|
||||
//!!!!!!!!!!!!!!!!!here will be the code for geometry transformations!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
@ -480,10 +483,10 @@ namespace io {
|
|||
|
||||
if (!geoinst_found)
|
||||
{
|
||||
QDomNodeList& geolib = info->doc->elementsByTagName("library_geometries");
|
||||
QDomNodeList geolib = info->doc->elementsByTagName("library_geometries");
|
||||
int geolib_size = geolib.size();
|
||||
assert(geolib_size == 1);
|
||||
QDomNodeList& geochild = geolib.at(0).toElement().elementsByTagName("geometry");
|
||||
QDomNodeList geochild = geolib.at(0).toElement().elementsByTagName("geometry");
|
||||
//!!!!!!!!!!!!!!!!!here will be the code for geometry transformations!!!!!!!!!!!!!!!!!!!!!!
|
||||
info->numvert = 0;
|
||||
info->numface = 0;
|
||||
|
|
|
@ -161,7 +161,7 @@ namespace io {
|
|||
|
||||
}
|
||||
|
||||
inline static bool removeChildNode(QDomNodeList& nodelst,const QString& tag = "", const QString& attribname = "", const QString& attribvalue = "")
|
||||
inline static bool removeChildNodeList(QDomNodeList& nodelst,const QString& tag = "", const QString& attribname = "", const QString& attribvalue = "")
|
||||
{
|
||||
for(int jj = 0;jj < nodelst.size();++jj)
|
||||
{
|
||||
|
@ -170,12 +170,13 @@ namespace io {
|
|||
return true;
|
||||
}
|
||||
|
||||
inline static bool removeChildNode(QDomNode& node,const QString& tag = "", const QString& attribname = "", const QString& attribvalue = "")
|
||||
/* inline static bool removeChildNode(QDomNode& node,const QString& tag = "", const QString& attribname = "", const QString& attribvalue = "")
|
||||
{
|
||||
return removeChildNode((QDomDocument&) node.toElement(),tag,attribname,attribvalue);
|
||||
}
|
||||
}*/
|
||||
|
||||
inline static bool removeChildNode(QDomDocument& node,const QString& tag = "", const QString& attribname = "", const QString& attribvalue = "")
|
||||
//inline static bool removeChildNode(QDomDocument& node,const QString& tag = "", const QString& attribname = "", const QString& attribvalue = "")
|
||||
inline static bool removeChildNode(QDomNode node,const QString& tag = "", const QString& attribname = "", const QString& attribvalue = "")
|
||||
{
|
||||
QDomNodeList clst = node.childNodes();
|
||||
for(int ii = 0;ii < clst.size();++ii)
|
||||
|
|
Loading…
Reference in New Issue