diff --git a/Geo/MFace.cpp b/Geo/MFace.cpp index 99b1b39640a5a11b9ef18590e81714768873956a..146c4091d47f8412b74bd750d8eba1a941911269 100644 --- a/Geo/MFace.cpp +++ b/Geo/MFace.cpp @@ -10,10 +10,12 @@ #include "Numeric.h" #include "Context.h" +bool compare (MVertex* v0, MVertex* v1) {return v0->getNum() < v1->getNum();} + void sortVertices(std::vector<MVertex*> v, std::vector<char> &si) { std::vector<MVertex*> sorted = v; - std::sort(sorted.begin(), sorted.end()); + std::sort(sorted.begin(), sorted.end(), compare); for(unsigned int i = 0; i < sorted.size(); i++) si.push_back(std::distance(v.begin(), std::find(v.begin(), v.end(), sorted[i]))); } diff --git a/Geo/MFace.h b/Geo/MFace.h index 6ad37f7cba3e9a6f402aaead37e8a5b758b17f68..c2774c819a5c9b6365b33ddeb006c4422712e9c3 100644 --- a/Geo/MFace.h +++ b/Geo/MFace.h @@ -134,8 +134,8 @@ struct Less_Face : public std::binary_function<MFace, MFace, bool> { if (f1.getNumVertices() != f2.getNumVertices()) return f1.getNumVertices() < f2.getNumVertices(); for(int i = 0; i < f1.getNumVertices(); i++) { - if(f1.getSortedVertex(i) < f2.getSortedVertex(i)) return true; - if(f1.getSortedVertex(i) > f2.getSortedVertex(i)) return false; + if(f1.getSortedVertex(i)->getNum() < f2.getSortedVertex(i)->getNum()) return true; + if(f1.getSortedVertex(i)->getNum() > f2.getSortedVertex(i)->getNum()) return false; } return false; }