Hello community,

here is the log from the commit of package gmsh for openSUSE:Factory checked in 
at 2020-06-09 00:04:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gmsh (Old)
 and      /work/SRC/openSUSE:Factory/.gmsh.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gmsh"

Tue Jun  9 00:04:59 2020 rev:5 rq:812371 version:4.5.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/gmsh/gmsh.changes        2020-04-11 
23:49:47.219237362 +0200
+++ /work/SRC/openSUSE:Factory/.gmsh.new.3606/gmsh.changes      2020-06-09 
00:06:29.889681045 +0200
@@ -1,0 +2,10 @@
+Sun Jun  7 23:07:15 UTC 2020 - Stefan Brüns <[email protected]>
+
+- Fix failing build due to GCC10 catching redefinitions, add
+  * move-globals-to-mmg3d-c.patch
+  * 0001-MMG3D-Remove-some-duplicated-variables-from-global-s.patch
+  * 0002-Remove-non-namespaced-endcod-function-duplicates-MMG.patch
+  * 0003-Define-global-variables-mostly-used-by-MMG_analar-in.patch
+- Use OCC OpenCASCADE variant, like FreeCAD. OCE is mostly dormant.
+
+-------------------------------------------------------------------

New:
----
  0001-MMG3D-Remove-some-duplicated-variables-from-global-s.patch
  0002-Remove-non-namespaced-endcod-function-duplicates-MMG.patch
  0003-Define-global-variables-mostly-used-by-MMG_analar-in.patch
  move-globals-to-mmg3d-c.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gmsh.spec ++++++
--- /var/tmp/diff_new_pack.LtrSYO/_old  2020-06-09 00:06:33.685694512 +0200
+++ /var/tmp/diff_new_pack.LtrSYO/_new  2020-06-09 00:06:33.689694526 +0200
@@ -29,7 +29,15 @@
 Source0:        https://gmsh.info/src/gmsh-%{version}-source.tgz
 Patch0:         link_dynamic_gl2ps.patch
 Patch1:         gmsh-2.10.1-implicit.patch
-Patch6:         gmsh-3.0.5-add-shebang-to-onelab.patch
+Patch2:         gmsh-3.0.5-add-shebang-to-onelab.patch
+# PATCH-FIX-UPSTREAM -- fix build with GCC 10
+Patch3:         move-globals-to-mmg3d-c.patch
+# PATCH-FIX-UPSTREAM -- fix build with GCC 10
+Patch4:         0001-MMG3D-Remove-some-duplicated-variables-from-global-s.patch
+# PATCH-FIX-UPSTREAM -- fix build with GCC 10
+Patch5:         0002-Remove-non-namespaced-endcod-function-duplicates-MMG.patch
+# PATCH-FIX-UPSTREAM -- fix build with GCC 10
+Patch6:         0003-Define-global-variables-mostly-used-by-MMG_analar-in.patch
 BuildRequires:  Mesa-devel
 BuildRequires:  bison
 BuildRequires:  blas-devel
@@ -48,7 +56,7 @@
 BuildRequires:  libpng-devel
 BuildRequires:  makeinfo
 BuildRequires:  metis-devel
-BuildRequires:  oce-devel
+BuildRequires:  occt-devel
 BuildRequires:  python-rpm-macros
 BuildRequires:  zlib-devel
 %if %{with pdf_doc}
@@ -148,6 +156,10 @@
 %setup -q -n %{name}-%{version}-source
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
 %patch6 -p1
 
 %build

++++++ 0001-MMG3D-Remove-some-duplicated-variables-from-global-s.patch ++++++
>From 80463d69cbd9fcf76c42f1843316ba5574c95fac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]>
Date: Mon, 8 Jun 2020 02:03:28 +0200
Subject: [PATCH 1/3] MMG3D: Remove some duplicated variables from global scope

---
 contrib/mmg3d/build/sources/analar.c | 6 ++++--
 contrib/mmg3d/build/sources/mmg3d1.c | 1 -
 contrib/mmg3d/build/sources/mmg3d4.c | 3 ---
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/contrib/mmg3d/build/sources/analar.c 
b/contrib/mmg3d/build/sources/analar.c
index 4f56e8e3f..cf032cae0 100644
--- a/contrib/mmg3d/build/sources/analar.c
+++ b/contrib/mmg3d/build/sources/analar.c
@@ -50,11 +50,13 @@ along with MMG3D. If not, see 
<http://www.gnu.org/licenses/>.
 
 #define EPS4  1.e-04
 
-extern int MMG_npuiss,MMG_nvol,MMG_npres;
 extern int MMG_nlen,MMG_ncal,MMG_ntopo,MMG_nex;
 extern int MMG_npuisstot,MMG_nvoltot,MMG_nprestot;
 extern int MMG_npdtot;
-       int MMG_nplen,MMG_npref,MMG_bouffe;
+
+int MMG_npuiss,MMG_nvol,MMG_npres;
+
+static int MMG_nplen,MMG_npref,MMG_bouffe;
 
 int MMG_interp_ani(double *ma,double *mb,double *mp,double t) {
   double       dma[6],dmb[6],mai[6],mbi[6],mi[6];
diff --git a/contrib/mmg3d/build/sources/mmg3d1.c 
b/contrib/mmg3d/build/sources/mmg3d1.c
index 68e18083a..3408e41d3 100644
--- a/contrib/mmg3d/build/sources/mmg3d1.c
+++ b/contrib/mmg3d/build/sources/mmg3d1.c
@@ -48,7 +48,6 @@ along with MMG3D. If not, see <http://www.gnu.org/licenses/>.
 extern TIM_mytime         MMG_ctim[TIMEMAX];
 
 int MMG_npdtot,MMG_npuisstot,MMG_nvoltot,MMG_nprestot;
-int MMG_npuiss,MMG_nvol,MMG_npres,MMG_npd;
 
 int MMG_cendellong(pMesh mesh,pSol sol,double declic,int base);
 
diff --git a/contrib/mmg3d/build/sources/mmg3d4.c 
b/contrib/mmg3d/build/sources/mmg3d4.c
index 67791e2f8..395b01112 100644
--- a/contrib/mmg3d/build/sources/mmg3d4.c
+++ b/contrib/mmg3d/build/sources/mmg3d4.c
@@ -45,11 +45,8 @@ along with MMG3D. If not, see <http://www.gnu.org/licenses/>.
 ****************************************************************************/
 #include "mesh.h"
 
-int MMG_npuiss,MMG_nvol,MMG_npres;
-int MMG_nlen,MMG_ncal,MMG_ntopo,MMG_nex;
 int MMG_npuisstot,MMG_nvoltot,MMG_nprestot;
 int MMG_npdtot;
-int MMG_nplen,MMG_npref,MMG_bouffe;
 
 int ddebug;
 
-- 
2.26.2

++++++ 0002-Remove-non-namespaced-endcod-function-duplicates-MMG.patch ++++++
>From c323dd099fca82cb32a8616071c600a00c930cb1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]>
Date: Mon, 8 Jun 2020 02:15:33 +0200
Subject: [PATCH 2/3] Remove non-namespaced endcod function (duplicates
 MMG_endcod)

MMG_endcod is an identical definition in mmg3dlib.c, which also uses
the same global MMG_ctim/MMG_imprim variables. Defining the variables
twice is an ODR violation.
---
 contrib/mmg3d/build/sources/mmg3d.c | 32 -----------------------------
 1 file changed, 32 deletions(-)

diff --git a/contrib/mmg3d/build/sources/mmg3d.c 
b/contrib/mmg3d/build/sources/mmg3d.c
index 9e6ed7411..4096b3258 100644
--- a/contrib/mmg3d/build/sources/mmg3d.c
+++ b/contrib/mmg3d/build/sources/mmg3d.c
@@ -47,9 +47,6 @@ along with MMG3D. If not, see <http://www.gnu.org/licenses/>.
 #include "mesh.h"
 #include "eigenv.h"
 
-TIM_mytime         MMG_ctim[TIMEMAX];
-short               MMG_imprim;
-
 unsigned char MMG_idir[4][3] = { {1,2,3}, {0,3,2}, {0,1,3}, {0,2,1} };
 unsigned char MMG_inxt[7]    = { 1,2,3,0,1,2,3 };
 unsigned char MMG_iarf[4][3] = { {5,4,3}, {5,1,2}, {4,2,0}, {3,0,1} };
@@ -382,35 +379,6 @@ int parsop(pMesh mesh) {
   return(1);
 }
 
-
-void endcod() {
-  double   ttot,ttim[TIMEMAX];
-  int      k,call[TIMEMAX];
-
-  TIM_chrono(OFF,&MMG_ctim[0]);
-
-  for (k=0; k<TIMEMAX; k++) {
-    call[k] = MMG_ctim[k].call;
-    ttim[k] = MMG_ctim[k].call ? TIM_gttime(MMG_ctim[k]) : 0.0;
-  }
-  ttot    = ttim[1]+ttim[2]+ttim[3]+ttim[4];
-  ttim[0] = M_MAX(ttim[0],ttot);
-
-  if ( abs(MMG_imprim) > 5 ) {
-    fprintf(stdout,"\n  -- CPU REQUIREMENTS\n");
-    fprintf(stdout,"  in/out    %8.2f %%    %3d. calls,   %7.2f sec/call\n",
-           100.*ttim[1]/ttim[0],call[1],ttim[1]/(float)call[1]);
-    fprintf(stdout,"  analysis  %8.2f %%    %3d. calls,   %7.2f sec/call\n",
-           100.*ttim[2]/ttim[0],call[2],ttim[2]/(float)call[2]);
-    fprintf(stdout,"  optim     %8.2f %%    %3d. calls,   %7.2f sec/call\n",
-           100.*ttim[3]/ttim[0],call[3],ttim[3]/(float)call[3]);
-    fprintf(stdout,"  total     %8.2f %%    %3d. calls,   %7.2f sec/call\n",
-           100.*ttot/ttim[0],call[0],ttot/(float)call[0]);
-  }
-  fprintf(stdout,"\n   ELAPSED TIME  %.2f SEC.  (%.2f)\n",ttim[0],ttot);
-}
-
-
 /* set function pointers */
 int MMG_setfunc(int type) {
   if ( type == 6 ) {
-- 
2.26.2

++++++ 0003-Define-global-variables-mostly-used-by-MMG_analar-in.patch ++++++
>From fa82408303433c2fc7bfa2b6f702e7c4b535f0b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]>
Date: Mon, 8 Jun 2020 03:01:38 +0200
Subject: [PATCH 3/3] Define global variables mostly used by MMG_analar in
 analar.c

The analar state variables are only reset and printed in MMG_mmg3d1,
MMG_mm3d4, so move the definition to analar.c.

Another ODR violation fix.
---
 contrib/mmg3d/build/sources/analar.c | 5 +++--
 contrib/mmg3d/build/sources/mmg3d1.c | 3 ++-
 contrib/mmg3d/build/sources/mmg3d4.c | 4 ++--
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/contrib/mmg3d/build/sources/analar.c 
b/contrib/mmg3d/build/sources/analar.c
index cf032cae0..1c9827cf3 100644
--- a/contrib/mmg3d/build/sources/analar.c
+++ b/contrib/mmg3d/build/sources/analar.c
@@ -51,8 +51,9 @@ along with MMG3D. If not, see <http://www.gnu.org/licenses/>.
 #define EPS4  1.e-04
 
 extern int MMG_nlen,MMG_ncal,MMG_ntopo,MMG_nex;
-extern int MMG_npuisstot,MMG_nvoltot,MMG_nprestot;
-extern int MMG_npdtot;
+
+int MMG_npuisstot,MMG_nvoltot,MMG_nprestot;
+int MMG_npdtot;
 
 int MMG_npuiss,MMG_nvol,MMG_npres;
 
diff --git a/contrib/mmg3d/build/sources/mmg3d1.c 
b/contrib/mmg3d/build/sources/mmg3d1.c
index 3408e41d3..d490afdf5 100644
--- a/contrib/mmg3d/build/sources/mmg3d1.c
+++ b/contrib/mmg3d/build/sources/mmg3d1.c
@@ -47,7 +47,8 @@ along with MMG3D. If not, see <http://www.gnu.org/licenses/>.
 
 extern TIM_mytime         MMG_ctim[TIMEMAX];
 
-int MMG_npdtot,MMG_npuisstot,MMG_nvoltot,MMG_nprestot;
+extern int MMG_npuisstot,MMG_nvoltot,MMG_nprestot;
+extern int MMG_npdtot;
 
 int MMG_cendellong(pMesh mesh,pSol sol,double declic,int base);
 
diff --git a/contrib/mmg3d/build/sources/mmg3d4.c 
b/contrib/mmg3d/build/sources/mmg3d4.c
index 395b01112..795fe3500 100644
--- a/contrib/mmg3d/build/sources/mmg3d4.c
+++ b/contrib/mmg3d/build/sources/mmg3d4.c
@@ -45,8 +45,8 @@ along with MMG3D. If not, see <http://www.gnu.org/licenses/>.
 ****************************************************************************/
 #include "mesh.h"
 
-int MMG_npuisstot,MMG_nvoltot,MMG_nprestot;
-int MMG_npdtot;
+extern int MMG_npuisstot,MMG_nvoltot,MMG_nprestot;
+extern int MMG_npdtot;
 
 int ddebug;
 
-- 
2.26.2

++++++ move-globals-to-mmg3d-c.patch ++++++
>From 09b074021140d6760c870a7e2d7c7f44ef9a001c Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <[email protected]>
Date: Fri, 15 May 2020 16:00:50 +0000
Subject: [PATCH] move globals to mmg3d.c to fix #865

(cherry picked from commit b476c2084b544a9482e27a716e94854fc0e17a1a)
---
 contrib/mmg3d/build/sources/mesh.h  | 60 +++++++++++-----------
 contrib/mmg3d/build/sources/mmg3d.c | 77 +++++++++++++++++------------
 2 files changed, 75 insertions(+), 62 deletions(-)

diff --git a/contrib/mmg3d/build/sources/mesh.h 
b/contrib/mmg3d/build/sources/mesh.h
index 9324545c2..f7ee5f5e4 100644
--- a/contrib/mmg3d/build/sources/mesh.h
+++ b/contrib/mmg3d/build/sources/mesh.h
@@ -3,32 +3,32 @@ Logiciel initial: MMG3D Version 4.0
 Co-auteurs : Cecile Dobrzynski et Pascal Frey.
 Propriétaires :IPB - UPMC -INRIA.
 
-Copyright © 2004-2005-2006-2007-2008-2009-2010-2011, 
+Copyright © 2004-2005-2006-2007-2008-2009-2010-2011,
 diffusé sous les termes et conditions de la licence publique générale de GNU
-Version 3 ou toute version ultérieure.  
+Version 3 ou toute version ultérieure.
 
 Ce fichier est une partie de MMG3D.
 MMG3D est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
 suivant les termes de la licence publique générale de GNU
 Version 3 ou toute version ultérieure.
-MMG3D est distribué dans l'espoir qu'il sera utile, mais SANS 
-AUCUNE GARANTIE ; sans même garantie de valeur marchande.  
+MMG3D est distribué dans l'espoir qu'il sera utile, mais SANS
+AUCUNE GARANTIE ; sans même garantie de valeur marchande.
 Voir la licence publique générale de GNU pour plus de détails.
-MMG3D est diffusé en espérant qu’il sera utile, 
-mais SANS AUCUNE GARANTIE, ni explicite ni implicite, 
-y compris les garanties de commercialisation ou 
-d’adaptation dans un but spécifique. 
+MMG3D est diffusé en espérant qu’il sera utile,
+mais SANS AUCUNE GARANTIE, ni explicite ni implicite,
+y compris les garanties de commercialisation ou
+d’adaptation dans un but spécifique.
 Reportez-vous à la licence publique générale de GNU pour plus de détails.
-Vous devez avoir reçu une copie de la licence publique générale de GNU 
-en même temps que ce document. 
+Vous devez avoir reçu une copie de la licence publique générale de GNU
+en même temps que ce document.
 Si ce n’est pas le cas, aller voir <http://www.gnu.org/licenses/>.
 /****************************************************************************
 Initial software: MMG3D Version 4.0
 Co-authors: Cecile Dobrzynski et Pascal Frey.
 Owners: IPB - UPMC -INRIA.
 
-Copyright © 2004-2005-2006-2007-2008-2009-2010-2011, 
-spread under the terms and conditions of the license GNU General Public 
License 
+Copyright © 2004-2005-2006-2007-2008-2009-2010-2011,
+spread under the terms and conditions of the license GNU General Public License
 as published Version 3, or (at your option) any later version.
 
 This file is part of MMG3D
@@ -41,7 +41,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
-along with MMG3D. If not, see <http://www.gnu.org/licenses/>.  
+along with MMG3D. If not, see <http://www.gnu.org/licenses/>.
 ****************************************************************************/
 #ifndef _MMG3D_H
 #define _MMG3D_H
@@ -74,9 +74,9 @@ along with MMG3D. If not, see <http://www.gnu.org/licenses/>.
 #define EPSOK    1.e-18
 #define EPS30    1.e-30
 
-#define ALPHAC   0.20412415      /* sqrt(6)/12 */  
+#define ALPHAC   0.20412415      /* sqrt(6)/12 */
 #define ALPHAD   0.04811252      /* 1.0/(12*sqrt(3)) */
-#define BETAC    0.03928371      /* sqrt(2)/36 */   
+#define BETAC    0.03928371      /* sqrt(2)/36 */
 #define CALLIM   1.E+35            /*valeur de la qual pire*/
 
 
@@ -125,14 +125,14 @@ extern unsigned char MMG_iare[6][2];
 extern unsigned char MMG_ifar[6][2];
 extern unsigned char MMG_isar[6][2];
 extern unsigned char MMG_arpt[4][3];
-                             
+
 
 typedef struct {
   int      min,max,iel,nxt;
 } hedge;
 typedef struct {
   int      size,nhmax,hnxt;
-  hedge   *item;  
+  hedge   *item;
 } Hedge;
 typedef Hedge * pHedge;
 
@@ -189,8 +189,8 @@ int MMG_interp_iso(double *,double *,double *,double );
 int MMG_correction(pMesh ,int ,pList ,int ,int ,char );
 int MMG_delone(pMesh ,pSol ,int ,pList ,int );
 int MMG_delons(pMesh ,pSol ,pQueue ,int ,pList ,int ,double );
-int MMG_cenrad_ani(pMesh ,double * ,double *,double *,double *); 
-int MMG_cenrad_iso(pMesh ,double * ,double *,double *); 
+int MMG_cenrad_ani(pMesh ,double * ,double *,double *,double *);
+int MMG_cenrad_iso(pMesh ,double * ,double *,double *);
 
 /*pattern*/
 int MMG_pattern1(pMesh ,pSol ,pHedge ,int );
@@ -398,17 +398,17 @@ int    MMG_movevertex_iso(pMesh ,pSol ,int ,int );
 
 /* function pointers */
 typedef int (*MMG_Swap)(pMesh ,pSol ,pList );
-MMG_Swap MMG_swpptr;
-double (*MMG_length)(double *,double *,double *,double *);
-double (*MMG_caltet)(pMesh ,pSol ,int );
-double (*MMG_calte1)(pMesh ,pSol ,int );
-int    (*MMG_caltet2)(pMesh ,pSol ,int ,int ,double ,double *);
-int    (*MMG_cavity)(pMesh ,pSol ,int ,int ,pList ,int );
-int    (*MMG_buckin)(pMesh ,pSol ,pBucket ,int );
-int    (*MMG_optlen)(pMesh ,pSol ,double ,int );
-int    (*MMG_interp)(double *,double *,double *,double );
-int    (*MMG_optlentet)(pMesh ,pSol ,pQueue ,double ,int ,int );
-int    (*MMG_movevertex)(pMesh ,pSol ,int ,int );
+extern MMG_Swap MMG_swpptr;
+extern double (*MMG_length)(double *,double *,double *,double *);
+extern double (*MMG_caltet)(pMesh ,pSol ,int );
+extern double (*MMG_calte1)(pMesh ,pSol ,int );
+extern int    (*MMG_caltet2)(pMesh ,pSol ,int ,int ,double ,double *);
+extern int    (*MMG_cavity)(pMesh ,pSol ,int ,int ,pList ,int );
+extern int    (*MMG_buckin)(pMesh ,pSol ,pBucket ,int );
+extern int    (*MMG_optlen)(pMesh ,pSol ,double ,int );
+extern int    (*MMG_interp)(double *,double *,double *,double );
+extern int    (*MMG_optlentet)(pMesh ,pSol ,pQueue ,double ,int ,int );
+extern int    (*MMG_movevertex)(pMesh ,pSol ,int ,int );
 
 
 #endif
diff --git a/contrib/mmg3d/build/sources/mmg3d.c 
b/contrib/mmg3d/build/sources/mmg3d.c
index b394a38a7..9e6ed7411 100644
--- a/contrib/mmg3d/build/sources/mmg3d.c
+++ b/contrib/mmg3d/build/sources/mmg3d.c
@@ -3,32 +3,32 @@ Logiciel initial: MMG3D Version 4.0
 Co-auteurs : Cecile Dobrzynski et Pascal Frey.
 Propriétaires :IPB - UPMC -INRIA.
 
-Copyright © 2004-2005-2006-2007-2008-2009-2010-2011, 
+Copyright © 2004-2005-2006-2007-2008-2009-2010-2011,
 diffusé sous les termes et conditions de la licence publique générale de GNU
-Version 3 ou toute version ultérieure.  
+Version 3 ou toute version ultérieure.
 
 Ce fichier est une partie de MMG3D.
 MMG3D est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
 suivant les termes de la licence publique générale de GNU
 Version 3 ou toute version ultérieure.
-MMG3D est distribué dans l'espoir qu'il sera utile, mais SANS 
-AUCUNE GARANTIE ; sans même garantie de valeur marchande.  
+MMG3D est distribué dans l'espoir qu'il sera utile, mais SANS
+AUCUNE GARANTIE ; sans même garantie de valeur marchande.
 Voir la licence publique générale de GNU pour plus de détails.
-MMG3D est diffusé en espérant qu’il sera utile, 
-mais SANS AUCUNE GARANTIE, ni explicite ni implicite, 
-y compris les garanties de commercialisation ou 
-d’adaptation dans un but spécifique. 
+MMG3D est diffusé en espérant qu’il sera utile,
+mais SANS AUCUNE GARANTIE, ni explicite ni implicite,
+y compris les garanties de commercialisation ou
+d’adaptation dans un but spécifique.
 Reportez-vous à la licence publique générale de GNU pour plus de détails.
-Vous devez avoir reçu une copie de la licence publique générale de GNU 
-en même temps que ce document. 
+Vous devez avoir reçu une copie de la licence publique générale de GNU
+en même temps que ce document.
 Si ce n’est pas le cas, aller voir <http://www.gnu.org/licenses/>.
 /****************************************************************************
 Initial software: MMG3D Version 4.0
 Co-authors: Cecile Dobrzynski et Pascal Frey.
 Owners: IPB - UPMC -INRIA.
 
-Copyright © 2004-2005-2006-2007-2008-2009-2010-2011, 
-spread under the terms and conditions of the license GNU General Public 
License 
+Copyright © 2004-2005-2006-2007-2008-2009-2010-2011,
+spread under the terms and conditions of the license GNU General Public License
 as published Version 3, or (at your option) any later version.
 
 This file is part of MMG3D
@@ -41,7 +41,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
-along with MMG3D. If not, see <http://www.gnu.org/licenses/>.  
+along with MMG3D. If not, see <http://www.gnu.org/licenses/>.
 ****************************************************************************/
 #include "compil.date"
 #include "mesh.h"
@@ -58,6 +58,19 @@ unsigned char MMG_ifar[6][2] = { {2,3}, {1,3}, {1,2}, {0,3}, 
{0,2}, {0,1} };
 unsigned char MMG_isar[6][2] = { {2,3}, {3,1}, {1,2}, {0,3}, {2,0}, {0,1} };
 unsigned char MMG_arpt[4][3] = { {0,1,2}, {0,4,3}, {1,3,5}, {2,5,4} };
 
+/* function pointers */
+MMG_Swap MMG_swpptr;
+double (*MMG_length)(double *,double *,double *,double *);
+double (*MMG_caltet)(pMesh ,pSol ,int );
+double (*MMG_calte1)(pMesh ,pSol ,int );
+int    (*MMG_caltet2)(pMesh ,pSol ,int ,int ,double ,double *);
+int    (*MMG_cavity)(pMesh ,pSol ,int ,int ,pList ,int );
+int    (*MMG_buckin)(pMesh ,pSol ,pBucket ,int );
+int    (*MMG_optlen)(pMesh ,pSol ,double ,int );
+int    (*MMG_interp)(double *,double *,double *,double );
+int    (*MMG_optlentet)(pMesh ,pSol ,pQueue ,double ,int ,int );
+int    (*MMG_movevertex)(pMesh ,pSol ,int ,int );
+
 static void excfun(int sigid) {
   switch (sigid) {
   case SIGFPE:
@@ -81,7 +94,7 @@ static void excfun(int sigid) {
 
 static void usage(char *prog) {
   fprintf(stdout,"usage: %s [-v[n]] [-h] [-m n] [opts..] filein[.mesh] [-out 
fileout]\n",prog);
-  
+
   fprintf(stdout,"\n** Generic options :\n");
   fprintf(stdout,"-d      Turn on debug mode\n");
   fprintf(stdout,"-h      Print this message\n");
@@ -102,7 +115,7 @@ static void usage(char *prog) {
   fprintf(stdout,"-nomove        no point relocation\n");
   fprintf(stdout,"-noinsert      no new point\n");
   //fprintf(stdout,"-bdry          add points on boundary mesh\n");
-  fprintf(stdout,"-out fileout   Specify output file name\n");  
+  fprintf(stdout,"-out fileout   Specify output file name\n");
 #ifdef USE_SCOTCH
   fprintf(stdout,"-rn n num         Specify the number of vertices by box to 
renumber nodes and the renumberings\n");
 #endif
@@ -136,7 +149,7 @@ static int parsar(int argc,char *argv[],pMesh mesh,pSol 
sol) {
                else
                  i--;
              }
-             else if ( !strcmp(argv[i],"-bdry") ){  
+             else if ( !strcmp(argv[i],"-bdry") ){
           printf("-bdry option discarded\n");
              //info->bdry = 1;
              }
@@ -145,7 +158,7 @@ static int parsar(int argc,char *argv[],pMesh mesh,pSol 
sol) {
                usage(argv[0]);
              }
         break;
-      
+
       case 'd':  /* debug */
         if ( !strcmp(argv[i],"-dt") ) {
           ++i;
@@ -213,7 +226,7 @@ static int parsar(int argc,char *argv[],pMesh mesh,pSol 
sol) {
           ++i;
           sol->name = argv[i];
         }
-        break; 
+        break;
 #ifdef USE_SCOTCH
  /* renumbering begin */
       case 'r':
@@ -249,13 +262,13 @@ static int parsar(int argc,char *argv[],pMesh mesh,pSol 
sol) {
           }
         }
         break;
-/* renumbering end */ 
+/* renumbering end */
 #endif
       case 'v':
         if ( ++i < argc ) {
          if ( argv[i][0] == '-' || isdigit(argv[i][0]) )
            info->imprim = atoi(argv[i]);
-         else 
+         else
            i--;
        }
        else {
@@ -299,7 +312,7 @@ static int parsar(int argc,char *argv[],pMesh mesh,pSol 
sol) {
     mesh->name = (char *)calloc(128,sizeof(char));
     assert(mesh->name);
     fprintf(stdout,"  -- FILE BASENAME ?\n");
-    fflush(stdin); 
+    fflush(stdin);
     fscanf(stdin,"%s",mesh->name);
   }
   if ( sol->name == NULL ) {
@@ -319,13 +332,13 @@ static int parsar(int argc,char *argv[],pMesh mesh,pSol 
sol) {
     mesh->move = (char *)calloc(128,sizeof(char));
     assert(mesh->move);
     fprintf(stdout,"  -- DISPLACEMENT FILE ?\n");
-    fflush(stdin); 
+    fflush(stdin);
     fscanf(stdin,"%s",mesh->move);
   }
 
   return(1);
 }
- 
+
 
 int parsop(pMesh mesh) {
   int      i,ret;
@@ -375,7 +388,7 @@ void endcod() {
   int      k,call[TIMEMAX];
 
   TIM_chrono(OFF,&MMG_ctim[0]);
-  
+
   for (k=0; k<TIMEMAX; k++) {
     call[k] = MMG_ctim[k].call;
     ttim[k] = MMG_ctim[k].call ? TIM_gttime(MMG_ctim[k]) : 0.0;
@@ -480,7 +493,7 @@ int MMG_setfunc(int type) {
 
 /* /\*   if ( !parsar(argc,argv,mesh,sol) )  return(1); *\/ */
 /* /\*   MMG_imprim = info->imprim; *\/ */
-  
+
 
 /* /\*   if ( MMG_imprim )   fprintf(stdout,"\n  -- INPUT DATA\n"); *\/ */
 /* /\*   TIM_chrono(ON,&MMG_ctim[1]); *\/ */
@@ -501,7 +514,7 @@ int MMG_setfunc(int type) {
 /* /\*   if ( MMG_imprim ) *\/ */
 /* /\*     fprintf(stdout,"  -- DATA READING COMPLETED.     %.2f sec.\n", *\/ 
*/
 /* /\*             TIM_gttime(MMG_ctim[1])); *\/ */
-  
+
 /* /\*   if ( abs(MMG_imprim) > 3 )  { *\/ */
 /* /\*     alert = MMG_outqua(mesh,sol); *\/ */
 /* /\*     if(alert) { *\/ */
@@ -535,12 +548,12 @@ int MMG_setfunc(int type) {
 /* /\*             TIM_gttime(MMG_ctim[2])); *\/ */
 
 /* /\*   if ( info->ddebug )  MMG_chkmsh(mesh,1,1); *\/ */
-  
+
 /* /\*   if ( abs(MMG_imprim) > 4 )  { *\/ */
 /* /\*           MMG_prilen(mesh,sol); *\/ */
 /* /\*     MMG_ratio(mesh,sol,NULL);         *\/ */
 /* /\*   }                        *\/ */
-   
+
 /* /\* #ifdef USE_SCOTCH *\/ */
 /* /\*   /\\* renumbering begin *\\/ *\/ */
 /* /\*           /\\*check enough vertex to renum*\\/  *\/ */
@@ -549,7 +562,7 @@ int MMG_setfunc(int type) {
 /* /\*      if ( MMG_imprim < -6) *\/ */
 /* /\*        fprintf(stdout,"renumbering"); *\/ */
 /* /\*      renumbering(info->rn, mesh, sol);   *\/ */
-    
+
 /* /\*      if ( !MMG_hashTetra(mesh) )    return(1);     *\/ */
 /* /\*      TIM_chrono(OFF,&MMG_ctim[5]);  *\/ */
 /* /\*      if ( MMG_imprim < -6) *\/ */
@@ -593,7 +606,7 @@ int MMG_setfunc(int type) {
 /* /\*          } *\/ */
 /* /\*       } *\/ */
 /* /\*     }  *\/ */
-    
+
 /* /\*     if(!info->noinsert) { *\/ */
 /* /\*       if(abs(info->option) == 4){ *\/ */
 /* /\*         MMG_mmg3d4(mesh,sol,&alert); *\/ */
@@ -601,7 +614,7 @@ int MMG_setfunc(int type) {
 /* /\*         MMG_mmg3d1(mesh,sol,&alert); *\/ */
 /* /\*       } *\/ */
 /* /\*     } *\/ */
-      
+
 /* /\*     TIM_chrono(OFF,&MMG_ctim[3]); *\/ */
 /* /\*     if ( MMG_imprim ) *\/ */
 /* /\*       fprintf(stdout,"  -- PHASE 2 COMPLETED.     %.2f sec.\n", *\/ */
@@ -644,7 +657,7 @@ int MMG_setfunc(int type) {
 /* /\*          MMG_optra4(mesh,sol);  *\/ */
 /* /\*       } *\/ */
 /* /\*     } *\/ */
-    
+
 /* /\*     if ( info->ddebug )  MMG_chkmsh(mesh,1,1); *\/ */
 /* /\*     TIM_chrono(OFF,&MMG_ctim[4]); *\/ */
 /* /\*     if ( MMG_imprim ) *\/ */
-- 
2.26.2


Reply via email to