diff --git a/Mesh/BDS.cpp b/Mesh/BDS.cpp index b0546b7abf4db54048ff3b77275ced4a698940af..3988ee6fdd5e140c0f6f8fc7d438a890fc2d70c6 100644 --- a/Mesh/BDS.cpp +++ b/Mesh/BDS.cpp @@ -1,4 +1,4 @@ -// $Id: BDS.cpp,v 1.40 2005-11-01 16:37:12 remacle Exp $ +// $Id: BDS.cpp,v 1.41 2005-11-03 02:39:24 geuzaine Exp $ // // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle // @@ -151,7 +151,7 @@ void BDS_GeomEntity::getClosestTriangles ( double x, double y, double z, queryPt[1] = y; queryPt[2] = z; - double eps; + double eps = 0.; kdTree->annkSearch( // search queryPt, // query point nbK, // number of near neighbors @@ -670,7 +670,7 @@ void BDS_Mesh :: reverseEngineerCAD ( ) // printf("%d points plane surface %d ?? : %g %g %g\n",pts.size(),(*it)->classif_tag,RSLT(0),RSLT(1),RSLT(2)); bool plane = true; - for (int i=0;i<pts.size();i++) + for (unsigned int i=0;i<pts.size();i++) { const double dist = PLANE ( i , 0 ) * RSLT(0)+PLANE ( i , 1 ) * RSLT(1)+PLANE ( i , 2 ) * RSLT(2)+1; if (fabs(dist) > 1.e-5 * LC * sqrt (RSLT(0)*RSLT(0)+RSLT(1)*RSLT(1)+RSLT(2)*RSLT(2)) )plane = false; @@ -910,10 +910,8 @@ void BDS_Point :: compute_curvature ( ) } } -int compute_curvatures (std::list<BDS_Edge*> &edges) +void compute_curvatures (std::list<BDS_Edge*> &edges) { - const int init_inner = 1; - { std::list<BDS_Edge*>::iterator it = edges.begin(); std::list<BDS_Edge*>::iterator ite = edges.end(); @@ -999,7 +997,7 @@ void BDS_Mesh :: color_plane_surf ( double eps, int NB_T ) } if (!start)break; recur_color_plane_surf ( eps, start , start->N(),all,plane ); - if (plane.size() > NB_T) + if ((int)plane.size() > NB_T) { // printf("plane surface found %d triangles\n",plane.size()); std::list<BDS_Triangle*>::iterator xit = plane.begin(); @@ -1141,7 +1139,7 @@ void BDS_Mesh :: classify ( double angle, int NB_T ) { int MIN_FAC = 100000; int MAX_FAC = -100000; - std::map< std::pair<int,int> , int >::iterator found; + std::map< std::pair<int,int> , int >::iterator found = 0; BDS_GeomEntity *g; if ( e.numfaces() == 1) { diff --git a/Mesh/BDS.h b/Mesh/BDS.h index 8de723d097d18e2290c1985616d8780d85c9c458..c1bb9fd2f294c3b9833c7a3d36286d9ae5d3d643 100644 --- a/Mesh/BDS.h +++ b/Mesh/BDS.h @@ -51,7 +51,7 @@ class BDS_Metric const double target,_min,_max,treshold, beta; const double nb_elements_per_radius_of_curvature; BDS_Metric ( double _target , double _mmin, double _mmax, double _b, double cc, double _tres = 0.7) - : target(_target),_min(_mmin),_max(_mmax), beta(_b),treshold(_tres),nb_elements_per_radius_of_curvature(cc) + : target(_target),_min(_mmin),_max(_mmax),treshold(_tres),beta(_b),nb_elements_per_radius_of_curvature(cc) {} inline double update_target_length( double _target, double old_target_length ) const { @@ -480,6 +480,7 @@ public: BDS_Point *o[3]; f1->getNodes (n); f2->getNodes (o); + n[3] = 0; //for stupid gcc warning if(o[0] != n[0] && o[0] != n[1] &&o[0] != n[2])n[3] = o[0]; if(o[1] != n[0] && o[1] != n[1] &&o[1] != n[2])n[3] = o[1]; if(o[2] != n[0] && o[2] != n[1] &&o[2] != n[2])n[3] = o[2]; diff --git a/Mesh/Makefile b/Mesh/Makefile index ee11a13c746fa8203e58188f6fc7e870768e7a78..8789bf3f7d22cb2769cad563a9f93615fe0b7fb2 100644 --- a/Mesh/Makefile +++ b/Mesh/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.97 2005-09-21 18:09:20 geuzaine Exp $ +# $Id: Makefile,v 1.98 2005-11-03 02:39:24 geuzaine Exp $ # # Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle # @@ -93,6 +93,9 @@ ${LIB}: ${OBJ} # Don't optimize 3D_Mesh: it sometimes mysteriously crashes on Linux 3D_Mesh.o: ${CXX} ${FLAGS} ${INCLUDE} -c $< +# Don't optimize BDS: it leads to erroneous results with gcc 4.0 +BDS.o: + ${CXX} ${FLAGS} ${INCLUDE} -c $< clean: rm -f *.o