Salome HOME
SALOME Forum bug: http://www.salome-platform.org/forum/forum_10/967838025
authoreap <eap@opencascade.com>
Fri, 23 Aug 2013 13:11:32 +0000 (13:11 +0000)
committereap <eap@opencascade.com>
Fri, 23 Aug 2013 13:11:32 +0000 (13:11 +0000)
Fix the problem of element-submesh relation restoring at study loading
in case if some faces have ids lower than segments.

Now TIDCompare does not compare types, a new comparator created for this:
+struct TIDTypeCompare {

src/SMDS/SMDS_MeshElement.hxx

index 0451789422b714e3891194c5122790a824fd68d1..7b1d33dbe419068a739219f862ba2fca17fb3a5c 100644 (file)
@@ -208,9 +208,16 @@ protected:
  */
 // ============================================================
 
-struct TIDCompare {
+struct TIDTypeCompare {
   bool operator () (const SMDS_MeshElement* e1, const SMDS_MeshElement* e2) const
   { return e1->GetType() == e2->GetType() ? e1->GetID() < e2->GetID() : e1->GetType() < e2->GetType(); }
 };
 
+// WARNING: this comparator makes impossible to store both nodes and elements in the same set
+// because there are nodes and elements with the same ID. Use TIDTypeCompare for such containers.
+struct TIDCompare {
+  bool operator () (const SMDS_MeshElement* e1, const SMDS_MeshElement* e2) const
+  { return e1->GetID() < e2->GetID(); }
+};
+
 #endif