1 /****************************************************************************/
2 /* This file is part of FreeFEM.                                            */
3 /*                                                                          */
4 /* FreeFEM is free software: you can redistribute it and/or modify          */
5 /* it under the terms of the GNU Lesser General Public License as           */
6 /* published by the Free Software Foundation, either version 3 of           */
7 /* the License, or (at your option) any later version.                      */
8 /*                                                                          */
9 /* FreeFEM is distributed in the hope that it will be useful,               */
10 /* but WITHOUT ANY WARRANTY; without even the implied warranty of           */
11 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            */
12 /* GNU Lesser General Public License for more details.                      */
13 /*                                                                          */
14 /* You should have received a copy of the GNU Lesser General Public License */
15 /* along with FreeFEM. If not, see <http://www.gnu.org/licenses/>.          */
16 /****************************************************************************/
17 // SUMMARY : ...
18 // LICENSE : LGPLv3
19 // ORG     : LJLL Universite Pierre et Marie Curie, Paris, FRANCE
20 // AUTHORS : Frederic Hecht
21 // E-MAIL  : frederic.hecht@sorbonne-universite.fr
22 // DATE    : Dec. 2007
23 
24 /*
25  Thank to the ARN () FF2A3 grant
26  ref:ANR-07-CIS7-002-01
27  */
28 
29 #ifndef FREEFEMBAMG_H_
30 #define FREEFEMBAMG_H_
31 
32 namespace bamg {
33   extern void (*MeshIstreamErrorHandler)(ios &);
34   class Triangles;
35 }
36 
37 
38 const Fem2D::Mesh *ReadMeshbamg(string *const & s);
39 const Fem2D::Mesh *ReadTriangulate( string *const &s);
40 const Fem2D::Mesh *Triangulate(const KN_<double> &xx, const KN_<double> &yy);
41 const Fem2D::Mesh *bamg2msh(bamg::Triangles* tTh, bool renumbering=false);
42 bamg::Triangles *msh2bamg(const Fem2D::Mesh &Th, double cutoffradian=-1.0,long *reqedgeslab=0, int nreqedgeslab=0);
43 bamg::Triangles *msh2bamg(const Fem2D::Mesh &Th, double cutoffradian, int nbdfv, int *ndfv,int nbdfe, int *ndfe,
44                           long *reqedgeslab=0, int nreqedgeslab=0);
45 
46 const Fem2D::Mesh *BuildMesh(Stack stack, E_BorderN const *const &b, bool justboundary, int nbvmax=0, bool Requiredboundary=true,
47                              KNM<double> *pintern=0, double alea=0);
48 const Fem2D::Mesh *BuildMesh(Stack stack, E_BorderN const *const &b, bool Requiredboundary);
49 const Fem2D::Mesh *BuildMeshBorder(Stack stack, E_BorderN const *const &b);
50 const Fem2D::Mesh *MoveTheMesh(const Fem2D::Mesh &Th, const KN_<double> &u, const KN_<double> &v);
51 const Fem2D::Mesh *buildmeshbamg(string *const &s, int =0);
52 
53 #endif //FREEFEMBAMG_H_
54