+bool operator<(const SMDS_MeshEdge & e1, const SMDS_MeshEdge & e2)
+{
+ int id11=e1.myNodes[0]->GetID();
+ int id21=e2.myNodes[0]->GetID();
+ int id12=e1.myNodes[1]->GetID();
+ int id22=e2.myNodes[1]->GetID();
+ int tmp;
+
+ if(id11>=id12)
+ {
+ tmp=id11;
+ id11=id12;
+ id12=tmp;
+ }
+ if(id21>=id22)
+ {
+ tmp=id21;
+ id21=id22;
+ id22=tmp;
+ }
+
+ if(id11<id21) return true;
+ else if(id11==id21) return (id21<id22);
+ else return false;
+}
+
+/*!
+ * \brief Return node by its index
+ * \param ind - node index
+ * \retval const SMDS_MeshNode* - the node
+ *
+ * Index is wrapped if it is out of a valid range
+ */
+const SMDS_MeshNode* SMDS_MeshEdge::GetNode(const int ind) const
+{
+ return myNodes[ WrappedIndex( ind )];
+}
+