From f92ff2f0f367872b720c3ad99326eb0a5ac8786c Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Fri, 21 Sep 2007 23:09:27 +0000
Subject: [PATCH] only make tri unique in 3d

---
 Graphics/Mesh.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/Graphics/Mesh.cpp b/Graphics/Mesh.cpp
index ec49aefcbb..5c94ba93ac 100644
--- a/Graphics/Mesh.cpp
+++ b/Graphics/Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: Mesh.cpp,v 1.206 2007-09-18 16:26:02 geuzaine Exp $
+// $Id: Mesh.cpp,v 1.207 2007-09-21 23:09:27 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -395,6 +395,7 @@ static void addElementsInArrays(GEntity *e, std::vector<T*> &elements,
     if(CTX.mesh.explode != 1.) pc = ele->barycenter();
 
     if(edges){
+      bool unique = e->dim() > 1 && !CTX.pick_elements;
       for(int j = 0; j < ele->getNumEdgesRep(); j++){
 	double x[2], y[2], z[2];
 	SVector3 n[2];
@@ -409,11 +410,12 @@ static void addElementsInArrays(GEntity *e, std::vector<T*> &elements,
 	if(e->dim() == 2 && CTX.mesh.smooth_normals)
 	  for(int k = 0; k < 2; k++)
 	    e->model()->normals->get(x[k], y[k], z[k], n[k][0], n[k][1], n[k][2]);
-	e->va_lines->add(x, y, z, n, col, ele, !CTX.pick_elements);
+	e->va_lines->add(x, y, z, n, col, ele, unique);
       }
     }
 
     if(faces){
+      bool unique = e->dim() > 2 && !CTX.pick_elements;
       for(int j = 0; j < ele->getNumFacesRep(); j++){
 	double x[3], y[3], z[3];
 	SVector3 n[3];
@@ -428,7 +430,7 @@ static void addElementsInArrays(GEntity *e, std::vector<T*> &elements,
 	if(e->dim() == 2 && CTX.mesh.smooth_normals)
 	  for(int k = 0; k < 3; k++)
 	    e->model()->normals->get(x[k], y[k], z[k], n[k][0], n[k][1], n[k][2]);
-	e->va_triangles->add(x, y, z, n, col, ele, !CTX.pick_elements);
+	e->va_triangles->add(x, y, z, n, col, ele, unique);
       }
     }
   }
-- 
GitLab