From da8940fa42dd6f3dbc1bfee59935aa55b972ada0 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 22 Dec 2003 16:42:22 +0000
Subject: [PATCH] small cleanup

---
 Mesh/3D_Extrude.cpp | 188 +++++++++++++++++++-------------------------
 1 file changed, 81 insertions(+), 107 deletions(-)

diff --git a/Mesh/3D_Extrude.cpp b/Mesh/3D_Extrude.cpp
index 818326b446..027bf96af4 100644
--- a/Mesh/3D_Extrude.cpp
+++ b/Mesh/3D_Extrude.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Extrude.cpp,v 1.72 2003-12-16 22:17:48 geuzaine Exp $
+// $Id: 3D_Extrude.cpp,v 1.73 2003-12-22 16:42:22 geuzaine Exp $
 //
 // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle
 //
@@ -31,8 +31,7 @@ extern Context_T CTX;
 extern Mesh *THEM;
 
 static int DIM, NUM;            // current dimension of parent entity
-static int TEST_IS_ALL_OK;
-//static double RANDOM_SWAP_FACT = 0.0;
+static int BAD_TETS;
 static Tree_T *Tree_Ares = NULL, *Tree_Swaps = NULL;
 static Curve *THEC = NULL;
 static Surface *THES = NULL;
@@ -233,13 +232,6 @@ void are_cree(Vertex * v1, Vertex * v2, Tree_T * t)
   n.a = IMAX(v1->Num, v2->Num);
   n.b = IMIN(v1->Num, v2->Num);
   Tree_Replace(t, &n);
-
-#if 0
-  if(!comparePosition(&v1, &v2)){
-    Msg(GERROR, "Created zero-length edge!");
-  }
-#endif
-
 }
 
 void are_del(Vertex * v1, Vertex * v2, Tree_T * t)
@@ -285,6 +277,80 @@ void Extrude_Simplex_Phase1(void *data, void *dum)
   }
 }
 
+void Extrude_Simplex_Phase2(void *data, void *dum)
+{
+  Simplex **pS, *s;
+  int i, j, k;
+  Vertex *v1, *v2, *v3, *v4, *v5, *v6;
+  List_T *L0, *L1, *L2;
+
+  pS = (Simplex **) data;
+  s = *pS;
+
+  L0 = getnxl(s->V[0], DIM);
+  L1 = getnxl(s->V[1], DIM);
+  L2 = getnxl(s->V[2], DIM);
+
+  k = 0;
+  for(i = 0; i < ep->mesh.NbLayer; i++) {
+    for(j = 0; j < ep->mesh.NbElmLayer[i]; j++) {
+      List_Read(L0, k, &v1);
+      List_Read(L1, k, &v2);
+      List_Read(L2, k, &v3);
+      List_Read(L0, k + 1, &v4);
+      List_Read(L1, k + 1, &v5);
+      List_Read(L2, k + 1, &v6);
+      k++;
+      if(are_exist(v4, v2, Tree_Ares) &&
+         are_exist(v5, v3, Tree_Ares) && 
+	 are_exist(v1, v6, Tree_Ares)) {
+        BAD_TETS++;
+        if(!are_exist(v4, v2, Tree_Swaps)) {
+          are_del(v4, v2, Tree_Ares);
+          are_cree(v1, v5, Tree_Ares);
+          are_cree(v1, v5, Tree_Swaps);
+          are_cree(v4, v2, Tree_Swaps);
+        }
+        else if(!are_exist(v5, v3, Tree_Swaps)) {
+          are_del(v5, v3, Tree_Ares);
+          are_cree(v2, v6, Tree_Ares);
+          are_cree(v5, v3, Tree_Swaps);
+          are_cree(v2, v6, Tree_Swaps);
+        }
+        else if(!are_exist(v1, v6, Tree_Swaps)) {
+          are_del(v1, v6, Tree_Ares);
+          are_cree(v4, v3, Tree_Ares);
+          are_cree(v1, v6, Tree_Swaps);
+          are_cree(v4, v3, Tree_Swaps);
+        }
+      }
+      else if(are_exist(v1, v5, Tree_Ares) &&
+              are_exist(v2, v6, Tree_Ares) &&
+	      are_exist(v4, v3, Tree_Ares)) {
+        BAD_TETS++;
+        if(!are_exist(v1, v5, Tree_Swaps)) {
+          are_del(v1, v5, Tree_Ares);
+          are_cree(v4, v2, Tree_Ares);
+          are_cree(v1, v5, Tree_Swaps);
+          are_cree(v4, v2, Tree_Swaps);
+        }
+        else if(!are_exist(v2, v6, Tree_Swaps)) {
+          are_del(v2, v6, Tree_Ares);
+          are_cree(v5, v3, Tree_Ares);
+          are_cree(v5, v3, Tree_Swaps);
+          are_cree(v2, v6, Tree_Swaps);
+        }
+        else if(!are_exist(v4, v3, Tree_Swaps)) {
+          are_del(v4, v3, Tree_Ares);
+          are_cree(v1, v6, Tree_Ares);
+          are_cree(v1, v6, Tree_Swaps);
+          are_cree(v4, v3, Tree_Swaps);
+        }
+      }
+    }
+  }
+}
+
 void Create_HexPri(int iEnt, Vertex * v[8])
 {
   int i, j = 0, dup[4];
@@ -500,87 +566,6 @@ void Extrude_Simplex_Phase3(void *data, void *dum)
   }
 }
 
-void Extrude_Simplex_Phase2(void *data, void *dum)
-{
-  Simplex **pS, *s;
-  int i, j, k;
-  Vertex *v1, *v2, *v3, *v4, *v5, *v6;
-  List_T *L0, *L1, *L2;
-
-  pS = (Simplex **) data;
-  s = *pS;
-
-  L0 = getnxl(s->V[0], DIM);
-  L1 = getnxl(s->V[1], DIM);
-  L2 = getnxl(s->V[2], DIM);
-
-  k = 0;
-  for(i = 0; i < ep->mesh.NbLayer; i++) {
-    for(j = 0; j < ep->mesh.NbElmLayer[i]; j++) {
-      List_Read(L0, k, &v1);
-      List_Read(L1, k, &v2);
-      List_Read(L2, k, &v3);
-      List_Read(L0, k + 1, &v4);
-      List_Read(L1, k + 1, &v5);
-      List_Read(L2, k + 1, &v6);
-      k++;
-      /*
-      if(RANDOM_SWAP_FACT){
-	if((double)rand()/(double)RAND_MAX < RANDOM_SWAP_FACT)
-	  break;
-      }
-      */
-      if(are_exist(v4, v2, Tree_Ares) &&
-         are_exist(v5, v3, Tree_Ares) && 
-	 are_exist(v1, v6, Tree_Ares)) {
-        TEST_IS_ALL_OK++;
-        if(!are_exist(v4, v2, Tree_Swaps)) {
-          are_del(v4, v2, Tree_Ares);
-          are_cree(v1, v5, Tree_Ares);
-          are_cree(v1, v5, Tree_Swaps);
-          are_cree(v4, v2, Tree_Swaps);
-        }
-        else if(!are_exist(v5, v3, Tree_Swaps)) {
-          are_del(v5, v3, Tree_Ares);
-          are_cree(v2, v6, Tree_Ares);
-          are_cree(v5, v3, Tree_Swaps);
-          are_cree(v2, v6, Tree_Swaps);
-        }
-        else if(!are_exist(v1, v6, Tree_Swaps)) {
-          are_del(v1, v6, Tree_Ares);
-          are_cree(v4, v3, Tree_Ares);
-          are_cree(v1, v6, Tree_Swaps);
-          are_cree(v4, v3, Tree_Swaps);
-        }
-      }
-      else if(are_exist(v1, v5, Tree_Ares) &&
-              are_exist(v2, v6, Tree_Ares) &&
-	      are_exist(v4, v3, Tree_Ares)) {
-        TEST_IS_ALL_OK++;
-        if(!are_exist(v1, v5, Tree_Swaps)) {
-          are_del(v1, v5, Tree_Ares);
-          are_cree(v4, v2, Tree_Ares);
-          are_cree(v1, v5, Tree_Swaps);
-          are_cree(v4, v2, Tree_Swaps);
-        }
-        else if(!are_exist(v2, v6, Tree_Swaps)) {
-          are_del(v2, v6, Tree_Ares);
-          are_cree(v5, v3, Tree_Ares);
-          are_cree(v5, v3, Tree_Swaps);
-          are_cree(v2, v6, Tree_Swaps);
-        }
-        else if(!are_exist(v4, v3, Tree_Swaps)) {
-          are_del(v4, v3, Tree_Ares);
-          are_cree(v1, v6, Tree_Ares);
-          are_cree(v1, v6, Tree_Swaps);
-          are_cree(v4, v3, Tree_Swaps);
-        }
-      }
-    }
-  }
-}
-
-
 void Extrude_Vertex(void *data, void *dum)
 {
   Vertex **vexist, *v, *newv;
@@ -1082,9 +1067,8 @@ int Extrude_Mesh(Tree_T * Volumes)
   }
 
   j = 0;
-  //RANDOM_SWAP_FACT = 0.0;
   do {
-    TEST_IS_ALL_OK = 0;
+    BAD_TETS = 0;
     for(int ivol = 0; ivol < List_Nbr(vol); ivol++) {
       List_Read(vol, ivol, &THEV);
       ep = THEV->Extrude;
@@ -1096,23 +1080,13 @@ int Extrude_Mesh(Tree_T * Volumes)
           Extrude_Surface2(s);
       }
     }
-    Msg(STATUS3, "Swapping %d", TEST_IS_ALL_OK);
-    if(TEST_IS_ALL_OK == j && j != 0) {
+    Msg(STATUS3, "Swapping %d", BAD_TETS);
+    if(BAD_TETS == j && j != 0) {
       Msg(GERROR, "Unable to swap all edges (output mesh will be incorrect): use 'Recombine'");
       break;
-      /*
-      if(RANDOM_SWAP_FACT > 0.8){
-	Msg(GERROR, "Unable to swap all edges (output mesh will be incorrect): use 'Recombine'");
-	break;
-      }
-      else{
-	RANDOM_SWAP_FACT += 0.05;
-	Msg(INFO, "Setting random swapping factor to %g", RANDOM_SWAP_FACT);
-      }
-      */
     }
-    j = TEST_IS_ALL_OK;
-  } while(TEST_IS_ALL_OK);
+    j = BAD_TETS;
+  } while(BAD_TETS);
 
   Msg(STATUS2, "Mesh 3D... (Final)");
 
-- 
GitLab