- EntityWrapperPtr anEntityToAdd = theEntity1;
- if (theEntity1->isExternal()) { // swap found groups;
- anEntityToAdd = theEntity2;
- std::list<CoincidentEntities>::iterator aTempIt = aFound[0];
- aFound[0] = aFound[1];
- aFound[1] = aTempIt;
+ // first check the external points are equal
+ EntityWrapperPtr anExternal0 = aFound[0]->externalPoint();
+ EntityWrapperPtr anExternal1 = aFound[1]->externalPoint();
+ if (anExternal0 && anExternal1) {
+ std::set<EntityWrapperPtr> anExtList;
+ anExtList.insert(anExternal0);
+ if (hasSamePoint(anExtList, anExternal1)) {
+ // no need to add coincidence, because all points are
+ // already coincident to correct external points
+ isAccepted = false;
+ }