diff --git a/Geo/Makefile b/Geo/Makefile index 7cc431cdf0290ed5a098e8eb55a91d3d7699c52c..32b798047dff8480fa4e911f9e9ad8e8a2d05939 100644 --- a/Geo/Makefile +++ b/Geo/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.152 2007-07-26 16:35:58 geuzaine Exp $ +# $Id: Makefile,v 1.153 2007-07-31 20:07:38 geuzaine Exp $ # # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle # @@ -223,7 +223,8 @@ GModelIO_F.o: GModelIO_F.cpp GModel.h GVertex.h GEntity.h Range.h \ ExtrudeParams.h ../Common/SmoothData.h GFace.h GEdgeLoop.h Pair.h \ GRegion.h ../Common/Message.h ../Post/Views.h ../Post/ColorTable.h \ ../Common/VertexArray.h ../Post/AdaptiveViews.h ../Common/GmshMatrix.h \ - FFace.h FEdge.h FVertex.h ../Mesh/meshGFace.h GModelIO_F.h + FFace.h FEdge.h FVertex.h ../Mesh/meshGFace.h ../Geo/MVertex.h \ + GModelIO_F.h GModelIO_CGNS.o: GModelIO_CGNS.cpp GModel.h GVertex.h GEntity.h Range.h \ SPoint3.h SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h \ SPoint2.h GEdge.h SVector3.h MElement.h MEdge.h ../Common/Hash.h \ diff --git a/Mesh/Makefile b/Mesh/Makefile index daeebbc567e1e27d2ab250e27a635e9937ffd359..836d395680b669c2f98ad07712e29480b968410a 100644 --- a/Mesh/Makefile +++ b/Mesh/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.176 2007-07-26 16:35:58 geuzaine Exp $ +# $Id: Makefile,v 1.177 2007-07-31 20:07:38 geuzaine Exp $ # # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle # @@ -150,9 +150,9 @@ meshGEdgeExtruded.o: meshGEdgeExtruded.cpp ../Geo/ExtrudeParams.h \ ../Geo/Pair.h ../Geo/ExtrudeParams.h ../Geo/GRegion.h ../Geo/GEntity.h \ ../Geo/MElement.h ../Geo/ExtrudeParams.h ../Geo/SBoundingBox3d.h \ ../Common/Message.h -meshGFace.o: meshGFace.cpp meshGFace.h meshGFaceDelaunayInsertion.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ +meshGFace.o: meshGFace.cpp meshGFace.h ../Geo/MVertex.h ../Geo/SPoint3.h \ + meshGFaceDelaunayInsertion.h ../Geo/MElement.h ../Common/GmshDefines.h \ + ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ ../Geo/SPoint3.h ../Common/Hash.h ../Geo/MFace.h ../Geo/MVertex.h \ ../Geo/SVector3.h ../Numeric/Numeric.h ../Common/Context.h \ ../DataStr/List.h DivideAndConquer.h BackgroundMesh.h ../Geo/GVertex.h \ @@ -170,18 +170,19 @@ meshGFace.o: meshGFace.cpp meshGFace.h meshGFaceDelaunayInsertion.h \ ../Common/OS.h BDS.h ../Post/Views.h ../Post/ColorTable.h \ ../Post/AdaptiveViews.h ../Common/GmshMatrix.h meshGFaceTransfinite.o: meshGFaceTransfinite.cpp meshGFace.h \ - ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Common/GmshDefines.h \ - ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/GPoint.h ../Geo/SPoint2.h \ - ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h \ - ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Common/Hash.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Geo/GFace.h \ - ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \ - ../Geo/MElement.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/ExtrudeParams.h ../Common/Message.h + ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/GVertex.h ../Geo/GEntity.h \ + ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \ + ../Geo/SPoint3.h ../Common/GmshDefines.h ../Geo/MVertex.h \ + ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \ + ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \ + ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h \ + ../Geo/MVertex.h ../Geo/SVector3.h ../Common/Hash.h ../Geo/MFace.h \ + ../Geo/MVertex.h ../Geo/SVector3.h ../Numeric/Numeric.h \ + ../Common/Context.h ../DataStr/List.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h \ + ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/MElement.h ../Geo/SPoint2.h \ + ../Geo/SVector3.h ../Geo/Pair.h ../Geo/ExtrudeParams.h \ + ../Common/Message.h meshGFaceExtruded.o: meshGFaceExtruded.cpp ../Geo/ExtrudeParams.h \ ../Common/SmoothData.h ../Numeric/Numeric.h ../Geo/GModel.h \ ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ @@ -253,19 +254,19 @@ meshGRegionDelaunayInsertion.o: meshGRegionDelaunayInsertion.cpp \ ../Geo/GEntity.h ../Geo/MElement.h ../Geo/ExtrudeParams.h \ ../Geo/SBoundingBox3d.h ../Common/Message.h meshGRegionTransfinite.o: meshGRegionTransfinite.cpp meshGFace.h \ - ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ - ../Common/GmshDefines.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \ - ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h \ - ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Common/Hash.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Geo/MElement.h \ - ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Geo/ExtrudeParams.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/MElement.h \ - ../Geo/ExtrudeParams.h ../Common/Message.h + ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/GFace.h ../Geo/GPoint.h \ + ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ + ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Common/GmshDefines.h \ + ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ + ../Geo/GEntity.h ../Geo/MVertex.h ../Geo/GPoint.h ../Geo/SPoint2.h \ + ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ + ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MVertex.h \ + ../Geo/SVector3.h ../Common/Hash.h ../Geo/MFace.h ../Geo/MVertex.h \ + ../Geo/SVector3.h ../Numeric/Numeric.h ../Common/Context.h \ + ../DataStr/List.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Geo/MElement.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ + ../Geo/ExtrudeParams.h ../Geo/GRegion.h ../Geo/GEntity.h \ + ../Geo/MElement.h ../Geo/ExtrudeParams.h ../Common/Message.h meshGRegionExtruded.o: meshGRegionExtruded.cpp ../Geo/ExtrudeParams.h \ ../Common/SmoothData.h ../Numeric/Numeric.h ../Geo/GModel.h \ ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ diff --git a/Mesh/meshGFace.h b/Mesh/meshGFace.h index 7f3b16b0c838559b26644845b020ba17a51b6aa5..da58bf00ef66fca4e6b9d0ed72537bd20c17c062 100644 --- a/Mesh/meshGFace.h +++ b/Mesh/meshGFace.h @@ -22,8 +22,8 @@ #include <vector> #include <set> +#include "MVertex.h" -class MVertex; class GFace; // Create the mesh of the face @@ -59,4 +59,7 @@ int MeshTransfiniteSurface(GFace *gf); int MeshExtrudedSurface(GFace *gf, std::set<std::pair<MVertex*, MVertex*> > *constrainedEdges=0); +std::set<MVertex*, MVertexLessThanLexicographic>::iterator +linearFind(std::set<MVertex*, MVertexLessThanLexicographic> &pos, MVertex *p); + #endif diff --git a/Mesh/meshGFaceExtruded.cpp b/Mesh/meshGFaceExtruded.cpp index 97003f1c714a88002ed46e9c8a1e9b8966fc3556..759f50b8b7d14c4ec3163adbc4b81eeebd651c4c 100644 --- a/Mesh/meshGFaceExtruded.cpp +++ b/Mesh/meshGFaceExtruded.cpp @@ -1,4 +1,4 @@ -// $Id: meshGFaceExtruded.cpp,v 1.19 2007-05-24 17:34:04 geuzaine Exp $ +// $Id: meshGFaceExtruded.cpp,v 1.20 2007-07-31 20:07:38 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -60,6 +60,26 @@ void createQuaTri(std::vector<MVertex*> &v, GFace *to, } } +// FIXME: this is a temporary hack to try to circumvent problems +// experienced with pos.find(). We need to find a better solution. +std::set<MVertex*, MVertexLessThanLexicographic>::iterator +linearFind(std::set<MVertex*, MVertexLessThanLexicographic> &pos, MVertex *p) +{ + double eps = MVertexLessThanLexicographic::tolerance; + Msg(INFO, "Trying linear find for point %.16g %.16g %.16g (eps = %.16g)", + p->x(), p->y(), p->z(), eps); + for(std::set<MVertex*, MVertexLessThanLexicographic>::iterator it = pos.begin(); + it != pos.end(); ++it){ + MVertex *v = *it; + double dx = v->x() - p->x(); + double dy = v->y() - p->y(); + double dz = v->z() - p->z(); + if(sqrt(dx * dx + dy * dy + dz * dz) < eps) return it; + } + return pos.end(); +} + + void extrudeMesh(GEdge *from, GFace *to, std::set<MVertex*, MVertexLessThanLexicographic> &pos, std::set<std::pair<MVertex*, MVertex*> > *constrainedEdges) @@ -104,7 +124,8 @@ void extrudeMesh(GEdge *from, GFace *to, for(int p = 0; p < 4; p++){ MVertex tmp(x[p], y[p], z[p], 0, -1); itp = pos.find(&tmp); - if(itp == pos.end()) { + if(itp == pos.end()) itp = linearFind(pos, &tmp); + if(itp == pos.end()){ Msg(GERROR, "Could not find extruded vertex (%.16g, %.16g, %.16g) in surface %d", tmp.x(), tmp.y(), tmp.z(), to->tag()); return; @@ -143,6 +164,7 @@ void copyMesh(GFace *from, GFace *to, ep->Extrude(ep->mesh.NbLayer - 1, ep->mesh.NbElmLayer[ep->mesh.NbLayer - 1], tmp.x(), tmp.y(), tmp.z()); itp = pos.find(&tmp); + if(itp == pos.end()) itp = linearFind(pos, &tmp); if(itp == pos.end()) { Msg(GERROR, "Could not find extruded vertex (%.16g, %.16g, %.16g) in surface %d", tmp.x(), tmp.y(), tmp.z(), to->tag()); @@ -160,6 +182,7 @@ void copyMesh(GFace *from, GFace *to, ep->Extrude(ep->mesh.NbLayer - 1, ep->mesh.NbElmLayer[ep->mesh.NbLayer - 1], tmp.x(), tmp.y(), tmp.z()); itp = pos.find(&tmp); + if(itp == pos.end()) itp = linearFind(pos, &tmp); if(itp == pos.end()) { Msg(GERROR, "Could not find extruded vertex (%.16g, %.16g, %.16g) in surface %d", tmp.x(), tmp.y(), tmp.z(), to->tag()); @@ -184,6 +207,7 @@ int MeshExtrudedSurface(GFace *gf, // build a set with all the vertices on the boundary of gf double old_tol = MVertexLessThanLexicographic::tolerance; MVertexLessThanLexicographic::tolerance = 1.e-12 * CTX.lc; + std::set<MVertex*, MVertexLessThanLexicographic> pos; std::list<GEdge*> edges = gf->edges(); std::list<GEdge*>::iterator it = edges.begin(); diff --git a/Mesh/meshGRegionExtruded.cpp b/Mesh/meshGRegionExtruded.cpp index 5c01d7ebea07ba2c102cdcaa20065e479d3b8bef..27ee65851d49fdb3c2c1615f6f2a424afad8f0f5 100644 --- a/Mesh/meshGRegionExtruded.cpp +++ b/Mesh/meshGRegionExtruded.cpp @@ -1,4 +1,4 @@ -// $Id: meshGRegionExtruded.cpp,v 1.17 2007-05-10 22:08:06 geuzaine Exp $ +// $Id: meshGRegionExtruded.cpp,v 1.18 2007-07-31 20:07:38 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -111,6 +111,7 @@ int getExtrudedVertices(MElement *ele, ExtrudeParams *ep, int j, int k, for(int p = 0; p < 2 * n; p++){ MVertex tmp(x[p], y[p], z[p], 0, -1); itp = pos.find(&tmp); + if(itp == pos.end()) itp = linearFind(pos, &tmp); if(itp == pos.end()) Msg(GERROR, "Could not find extruded vertex (%.16g, %.16g, %.16g)", tmp.x(), tmp.y(), tmp.z()); diff --git a/benchmarks/bugs/test_problem_point_set_search.cpp b/benchmarks/bugs/test_problem_point_set_search.cpp new file mode 100644 index 0000000000000000000000000000000000000000..67d8025308ccc8efbc608cc7814d0969aabffcef --- /dev/null +++ b/benchmarks/bugs/test_problem_point_set_search.cpp @@ -0,0 +1,106 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <set> +#include <algorithm> + +class MVertex{ +private: + double _x, _y, _z; +public: + MVertex(double x, double y, double z) : _x(x), _y(y), _z(z) {} + double x() const {return _x;} + double y() const {return _y;} + double z() const {return _z;} +}; + +class MVertexLessThanLexicographic{ + public: + static double tolerance; + bool operator()(const MVertex *v1, const MVertex *v2) const + { + printf("v1 = %.16g, %.16g, %.16g +++ v2 = %.16g, %.16g, %.16g\n", + v1->x(), v1->y(), v1->z(), v2->x(), v2->y(), v2->z()); + if(v1->x() < v2->x() - tolerance) return true; + if(v1->x() > v2->x() + tolerance) return false; + if(v1->y() < v2->y() - tolerance) return true; + if(v1->y() > v2->y() + tolerance) return false; + if(v1->z() < v2->z() - tolerance) return true; + return false; + } +}; + +// works +//double MVertexLessThanLexicographic::tolerance = 3.5e-13; + +// does not work +double MVertexLessThanLexicographic::tolerance = 2.361143790623519e-13; + +// works +//double MVertexLessThanLexicographic::tolerance = 0.; + + +int main() +{ + std::set<MVertex*, MVertexLessThanLexicographic> pos; + pos.insert(new MVertex(0.201, 0.1096015510839149, 0.1096015510839149)); + pos.insert(new MVertex(0.201, 0.1178511301975126, 0.1178511301975126)); + pos.insert(new MVertex(0.201, 0.1261007093115192, 0.1261007093115192)); + pos.insert(new MVertex(0.201, 0.1343502884254441, 0.134350288425444)); + pos.insert(new MVertex(0.201, 0.1432013275392494, 0.05931593201658891)); + pos.insert(new MVertex(0.201, 0.1539799220848939, 0.06378057206071552)); + pos.insert(new MVertex(0.201, 0.155, 0)); + pos.insert(new MVertex(0.201, 0.1647585166310726, 0.06824521210506342)); + pos.insert(new MVertex(0.201, 0.1666666666663197, 0)); + pos.insert(new MVertex(0.201, 0.1755371111771445, 0.07270985214936707)); + pos.insert(new MVertex(0.201, 0.1783333333332177, 0)); + pos.insert(new MVertex(0.201, 0.19, 0)); + pos.insert(new MVertex(0.214333333333449, 0.1096015510839149, 0.1096015510839149)); + pos.insert(new MVertex(0.2143333333333334, 0.1178511301976489, 0.1178511301976489)); + pos.insert(new MVertex(0.2143333333332177, 0.126100709311601, 0.1261007093116009)); + pos.insert(new MVertex(0.2143333333331021, 0.1343502884254441, 0.134350288425444)); + pos.insert(new MVertex(0.2143333333331021, 0.1755371111771445, 0.07270985214936707)); + pos.insert(new MVertex(0.214333333333449, 0.1432013275392494, 0.05931593201658891)); + pos.insert(new MVertex(0.2143333333333334, 0.153979922085072, 0.0637805720607893)); + pos.insert(new MVertex(0.214333333333449, 0.155, 0)); + pos.insert(new MVertex(0.2143333333332177, 0.1647585166311795, 0.06824521210510767)); + pos.insert(new MVertex(0.2143333333333334, 0.1666666666665125, 0)); + pos.insert(new MVertex(0.2143333333332177, 0.1783333333333333, 0)); + pos.insert(new MVertex(0.2143333333331021, 0.19, 0)); + pos.insert(new MVertex(0.2276666666668209, 0.1178511301977852, 0.1178511301977852)); + pos.insert(new MVertex(0.2276666666666282, 0.1261007093116827, 0.1261007093116827)); + pos.insert(new MVertex(0.2276666666664354, 0.1343502884254441, 0.134350288425444)); + pos.insert(new MVertex(0.2276666666666282, 0.1647585166312863, 0.06824521210515193)); + pos.insert(new MVertex(0.2276666666664354, 0.1755371111771445, 0.07270985214936707)); + pos.insert(new MVertex(0.2276666666668209, 0.1539799220852501, 0.06378057206086306)); + pos.insert(new MVertex(0.2276666666668209, 0.1666666666667052, 0)); + pos.insert(new MVertex(0.2276666666666282, 0.178333333333449, 0)); + pos.insert(new MVertex(0.2276666666664354, 0.19, 0)); + pos.insert(new MVertex(0.2276666666670136, 0.1096015510839149, 0.1096015510839149)); + pos.insert(new MVertex(0.2276666666670136, 0.1432013275392494, 0.05931593201658891)); + pos.insert(new MVertex(0.2276666666670136, 0.155, 0)); + pos.insert(new MVertex(0.241, 0.1096015510839149, 0.1096015510839149)); + pos.insert(new MVertex(0.241, 0.1178511301979215, 0.1178511301979215)); + pos.insert(new MVertex(0.241, 0.1261007093117645, 0.1261007093117645)); + pos.insert(new MVertex(0.241, 0.1343502884254441, 0.134350288425444)); + pos.insert(new MVertex(0.241, 0.1432013275392494, 0.05931593201658891)); + pos.insert(new MVertex(0.241, 0.1539799220854282, 0.06378057206093682)); + pos.insert(new MVertex(0.241, 0.155, 0)); + pos.insert(new MVertex(0.241, 0.1647585166313932, 0.06824521210519618)); + pos.insert(new MVertex(0.241, 0.166666666666898, 0)); + pos.insert(new MVertex(0.241, 0.1755371111771445, 0.07270985214936707)); + pos.insert(new MVertex(0.241, 0.1783333333335646, 0)); + pos.insert(new MVertex(0.241, 0.19, 0)); + + printf("set contains %d points\n", pos.size()); + + MVertex tmp(0.214333333333449, 0.1096015510839149, 0.1096015510839149); + std::set<MVertex*, MVertexLessThanLexicographic>::iterator itp = pos.find(&tmp); + if(itp == pos.end()){ + printf("NOT FOUND!\n"); + } + else{ + printf("found: %.16g %.16g %.16g\n", (*itp)->x(), (*itp)->y(), (*itp)->z()); + } + +} diff --git a/contrib/FourierModel/Makefile b/contrib/FourierModel/Makefile index 10b6f263f05326179e6da83d92dbf337e21be3d9..f8de9d751edb21c6de9e8eff87724f0deafbb8d5 100644 --- a/contrib/FourierModel/Makefile +++ b/contrib/FourierModel/Makefile @@ -49,23 +49,31 @@ depend: ProjectionSurface.o: ProjectionSurface.cpp ProjectionSurface.h CylindricalProjectionSurface.o: CylindricalProjectionSurface.cpp \ CylindricalProjectionSurface.h ProjectionSurface.h -RevolvedParabolaProjectionSurface.o: RevolvedParabolaProjectionSurface.cpp \ - RevolvedParabolaProjectionSurface.h ProjectionSurface.h +RevolvedParabolaProjectionSurface.o: \ + RevolvedParabolaProjectionSurface.cpp \ + RevolvedParabolaProjectionSurface.h Utils.h ProjectionSurface.h ContinuationPatch.o: ContinuationPatch.cpp Message.h ContinuationPatch.h \ - Patch.h FM_Info.h PartitionOfUnity.h -ExactPatch.o: ExactPatch.cpp Message.h ExactPatch.h Patch.h FM_Info.h -Patch.o: Patch.cpp Patch.h FM_Info.h -BlendedPatch.o: BlendedPatch.cpp BlendedPatch.h BlendOperator.h Patch.h -BlendOperator.o: BlendOperator.cpp BlendOperator.h Patch.h ProjectionSurface.h -Curve.o: Curve.cpp Message.h Curve.h Patch.h FM_Info.h -FM_Edge.o: FM_Edge.cpp FM_Edge.h Curve.h Patch.h FM_Info.h FM_Vertex.h \ - Message.h -FM_Face.o: FM_Face.cpp FM_Face.h Patch.h FM_Info.h FM_Edge.h Curve.h \ - FM_Vertex.h Message.h + Patch.h FM_Info.h ProjectionSurface.h PartitionOfUnity.h \ + Interpolator1D.h +ExactPatch.o: ExactPatch.cpp Message.h ExactPatch.h Patch.h FM_Info.h \ + ProjectionSurface.h +Patch.o: Patch.cpp Patch.h FM_Info.h ProjectionSurface.h +BlendedPatch.o: BlendedPatch.cpp BlendedPatch.h Message.h Patch.h \ + FM_Info.h ProjectionSurface.h BlendOperator.h PartitionOfUnity.h +BlendOperator.o: BlendOperator.cpp BlendOperator.h FM_Info.h Patch.h \ + ProjectionSurface.h +Curve.o: Curve.cpp Message.h Curve.h Patch.h FM_Info.h \ + ProjectionSurface.h +FM_Edge.o: FM_Edge.cpp FM_Edge.h Curve.h Patch.h FM_Info.h \ + ProjectionSurface.h FM_Vertex.h Message.h +FM_Face.o: FM_Face.cpp FM_Face.h Patch.h FM_Info.h ProjectionSurface.h \ + FM_Edge.h Curve.h FM_Vertex.h Message.h FM_Info.o: FM_Info.cpp FM_Info.h FM_Reader.o: FM_Reader.cpp Message.h FM_Reader.h Curve.h Patch.h \ - FM_Info.h ExactPatch.h ContinuationPatch.h FM_Face.h FM_Edge.h \ - FM_Vertex.h + FM_Info.h ProjectionSurface.h ExactPatch.h ContinuationPatch.h \ + PartitionOfUnity.h Interpolator1D.h CylindricalProjectionSurface.h \ + RevolvedParabolaProjectionSurface.h Utils.h FM_Face.h FM_Edge.h \ + FM_Vertex.h BlendOperator.h BlendedPatch.h FM_Vertex.o: FM_Vertex.cpp Message.o: Message.cpp Message.h Utils.o: Utils.cpp Utils.h diff --git a/doc/VERSIONS b/doc/VERSIONS index 3c5b47128c0ad287a7fcaa3b61a8ba38f0ca66a6..694749957d54372a7e9774812fed300c74d7f7df 100644 --- a/doc/VERSIONS +++ b/doc/VERSIONS @@ -1,4 +1,6 @@ -$Id: VERSIONS,v 1.388 2007-07-13 14:12:07 geuzaine Exp $ +$Id: VERSIONS,v 1.389 2007-07-31 20:07:39 geuzaine Exp $ + +2.0.9 (XX): temp fix for 'could not find extruded vertex' bug; 2.0.8 (Jul 13, 2007): unused vertices are not saved in mesh files anymore; new plugin GUI; automatic GUI font size selection; renamed